Refresh/src
cosmonaut 0e05ed6b34 Buffer and Submission Rework (#1)
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.

Reviewed-on: MoonsideGames/Refresh#1
Co-authored-by: cosmonaut <evan@moonside.games>
Co-committed-by: cosmonaut <evan@moonside.games>
2022-01-12 22:41:10 +00:00
..
Refresh.c Buffer and Submission Rework (#1) 2022-01-12 22:41:10 +00:00
Refresh_Driver.h Buffer and Submission Rework (#1) 2022-01-12 22:41:10 +00:00
Refresh_Driver_Vulkan.c Buffer and Submission Rework (#1) 2022-01-12 22:41:10 +00:00
Refresh_Driver_Vulkan_vkfuncs.h compute functions 2020-12-30 23:07:59 -08:00
Refresh_Image.c uncapitalize REFRESH in API calls 2021-01-05 15:05:16 -08:00
miniz.h image load and save 2020-12-27 22:45:12 -08:00
stb_image.h image load and save 2020-12-27 22:45:12 -08:00
stb_image_write.h image load and save 2020-12-27 22:45:12 -08:00