Buffer and Submission Rework #1

Merged
cosmonaut merged 5 commits from ubo_rework into main 2022-01-12 22:41:12 +00:00

We used to have monolithic uniform buffers on the VulkanRenderer object, but this was inefficient in the case of threaded usage.

Now, we have a pool of uniform buffers. A uniform buffer is selected from the pool when a pipeline is bound. The uniform buffers are rotated upon presentation.

Now pushing uniforms is now a concern of the command buffer instead of the pipeline. The pipeline should just always have been a static object anyway.

Additionally, we now do extra buffer record-keeping so that buffer data can be updated after a bind/draw.

Fence submission has also been restructured so that submissions don't cause unnecessary blocks. Now we assign one fence per submission, and we don't wait for fences until it's time to present.

We used to have monolithic uniform buffers on the VulkanRenderer object, but this was inefficient in the case of threaded usage. Now, we have a pool of uniform buffers. A uniform buffer is selected from the pool when a pipeline is bound. The uniform buffers are rotated upon presentation. Now pushing uniforms is now a concern of the command buffer instead of the pipeline. The pipeline should just always have been a static object anyway. Additionally, we now do extra buffer record-keeping so that buffer data can be updated after a bind/draw. Fence submission has also been restructured so that submissions don't cause unnecessary blocks. Now we assign one fence per submission, and we don't wait for fences until it's time to present.
cosmonaut added 3 commits 2022-01-12 22:27:54 +00:00
continuous-integration/drone/push Build is passing Details
5c47f98160
rewrite UBO implementation
continuous-integration/drone/push Build is passing Details
4ad948aba4
some uniform buffer fixes
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/pr Build is passing Details
5df612f7b1
revise fence usage
cosmonaut added 1 commit 2022-01-12 22:31:43 +00:00
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/pr Build is passing Details
1eb749ed10
reduce UBO size
cosmonaut added 1 commit 2022-01-12 22:39:30 +00:00
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/pr Build is passing Details
38ff5af448
rotate uniform buffer if we run out of space
cosmonaut merged commit 0e05ed6b34 into main 2022-01-12 22:41:12 +00:00
cosmonaut deleted branch ubo_rework 2022-01-12 22:41:12 +00:00
Sign in to join this conversation.
No reviewers
No Label
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: MoonsideGames/Refresh#1
There is no content yet.