Implement a Render Graph #16
No reviewers
Labels
No Label
Kind/Breaking
Kind/Bug
Kind/Documentation
Kind/Enhancement
Kind/Feature
Kind/Security
Kind/Testing
Priority
Critical
Priority
High
Priority
Low
Priority
Medium
Reviewed
Confirmed
Reviewed
Duplicate
Reviewed
Invalid
Reviewed
Won't Fix
Status
Abandoned
Status
Blocked
Status
Need More Info
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: SeanOMik/lyra-engine#16
Loading…
Reference in New Issue
No description provided.
Delete Branch "feature/render-graph"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
This is a PR that would resolve #15
Here's a list of tasks:
The tasks will likely need to be expanded on later. This list may or may not be up to date.
I was able to get a super simple pass in the render graph working!
This triangle is hard coded in the shader though, the shader was taken from learn-wgpu. Yes, the renderer has gone all the way back to drawing a triangle lmao.
Its now possible to create a gpu buffer, put it in a bind group, update the buffer every frame, and use that bind group in the pipeline. Here's a simple demo updating a uniform buffer
I FINALLY got meshes rendering again!!
This is using the render graph of course, but the code is super messy. A large portion of the mesh rendering code is shoved in a single pass called
MeshPass
.What's left to be done:
MeshPass
a bitRenderGraphPass
toRenderGraphNode
The
MeshPass
wont be split up. Although there's a lot in it, it does all relate to rendering meshes.I finished implementing a
RenderGraphLabel
trait as well as a proc macro for implementing it. The labels are used everywhere a string was used, so render graph nodes, node slots, and bind group names.It's slightly annoying to use them when specifing the bind groups in a PassDesc since you have to provide a borro, but everywhere else it's great.
WIP: Implement a Render Graphto Implement a Render GraphThe render graph is finally good enough for a first pass. In the last few commits, I completed the TODOs of the other comment, and removed IDs from nodes, bind groups, slots, anything that was using it and replaced it with labels. Labels were being used anyway, I just had to delete the ids and reorganize some fields a bit.