Skip to content

GitLab

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
iMSTK
iMSTK
  • Project overview
    • Project overview
    • Details
    • Activity
    • Releases
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 39
    • Issues 39
    • List
    • Boards
    • Labels
    • Service Desk
    • Milestones
  • Merge Requests 13
    • Merge Requests 13
  • Operations
    • Operations
    • Incidents
  • Analytics
    • Analytics
    • Repository
    • Value Stream
  • Members
    • Members
  • Activity
  • Graph
  • Create a new issue
  • Commits
  • Issue Boards
Collapse sidebar
  • iMSTK
  • iMSTKiMSTK
  • Issues
  • #200

Closed
Open
Opened Jan 29, 2019 by Nicholas Milef@NickMilefDeveloper

Add Frame Graph Feature

Currently, it's difficult to add new workloads to the GPU and add new render passes in the Vulkan engine. Currently, render passes are in one big function called renderFrame() inside of imstkVulkanRenderer.cpp. This is getting messy, especially with ensuring correct image layout transitions.

This is also problematic with compute shaders. The compute shader MR currently is asynchronous (async compute) with the render graph, but it only allows CPU read-back. I want to add support for Compute->Graphics transfer to easily allow for GPU physics.

The frame graph concept allows GPU workloads to be scheduled automatically and handle resource transitions/synchronization, particularly for explicit graphics APIs (Vulkan, DirectX 12, Metal, etc.). This is a relatively new (2017) idea for structuring a renderer: https://www.gdcvault.com/play/1024612/FrameGraph-Extensible-Rendering-Architecture-in

This feature will be slowly integrated into the Vulkan renderer.

To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information
Assignee
Assign to
None
Milestone
None
Assign milestone
Time tracking
None
Due date
None
Reference: iMSTK/iMSTK#200