Giter Club home page Giter Club logo

framegraph's Introduction

FrameGraph

FrameGraph simplifies prototyping on Vulkan and can also 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 submitting.
  • simple API, hides memory allocation, host to/from device transfers, synchronizations.
  • glsl debugging.
  • supports RTX extensions.

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.

References

  1. FrameGraph in Frostbite.
  2. Handles vs pointers
  3. Porting engine to vulkan.

framegraph's People

Contributors

azhirnov avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.