Skip to content
vulkan abstraction layer that represent frame as a task graph
C++ C CMake GLSL
Branch: dev
Clone or download
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
cmake update extensions Jul 22, 2019
docs some minor fixes and improvements May 11, 2019
extensions update extensions Jul 22, 2019
external VR support in Scene extension Jul 22, 2019
framegraph fixed unresolved symbol, updated readme Jul 22, 2019
samples added sample with planet rendering Jul 22, 2019
stl update framegraph and stl Jul 22, 2019
tests fix for AMD that doesn't support D24_S8 format Jul 22, 2019
.gitignore added OpenVR support Jul 22, 2019
CMakeLists.txt
LICENSE bug fix and some improvements, Jan 8, 2019
README.md fixed unresolved symbol, updated readme Jul 22, 2019

README.md

FrameGraph

FrameGraph simplifies prototyping on Vulkan and can be used as a base layer for the graphics engine. FrameGraph designed for maximum performance but not at the expense of usability. API developed as simple as possible, it hides all synchronizations, memory allocations and all this boilerplate code that is needed to get Vulkan work. Builtin validations together with Vulkan validation layers allow you to quickly find and fix errors.

Features

  • multithreaded command buffer building and submission.
  • simple API, hides memory allocation, host<->device transfers, synchronizations.
  • glsl debugging.
  • supports RTX extensions.
  • supports async compute and async transfer queues.

Documentation

Suported Platforms

  • Windows (with MSVC 2017)
  • Linux (with GCC 8.2)

Building

Generate project with CMake and build.
Required C++17 standard support.

CMake version 3.11 and greater will download all dependencies during configuration time.
If it didn't, manualy download dependencies into 'external' directory or in cmake specify FG_EXTERNAL_*** pathes for each dependency.

Dependencies:
Vulkan-headers or Vulkan SDK - required.
VulkanMemoryAllocator - required.
glfw or SDL2 or SFML - required for framework and some tests.
glslang - required for glsl compiler.
SPIRV-Tools, SPIRV-Headers and Python - optional, for spirv optimization.
lodepng - optional.
graphviz - (optional) for graph visualization.
Assimp - (optional) for Scene extension.
DevIL - (optional) for Scene extension.
FreeImage - (optional) for Scene extension.
imgui - (optional) for UI extension.
OpenVR - (optional) for VR support.

References

  1. FrameGraph in Frostbite.
  2. Handles vs pointers
  3. Porting engine to vulkan.
  4. FrameGraph from Ubisoft
You can’t perform that action at this time.