LunarG / gfxreconstruct

Graphics API Capture and Replay Tools for Reconstructing Graphics Application Behavior
https://vulkan.lunarg.com/doc/sdk/latest/linux/capture_tools.html
MIT License
416 stars 123 forks source link

VK_EXT_descriptor_buffer support #917

Open ishitatsuyuki opened 1 year ago

ishitatsuyuki commented 1 year ago

VK_EXT_descriptor_buffer is expected to be used by and provide some performance boost for vkd3d-proton.

This extension has some tricky aspects, mainly the use of direct memory writes which requires similar handling as HOST_VISIBLE buffer writes.

bradgrantham-lunarg commented 1 year ago

Does vkd3d-proton work without this extension?

ishitatsuyuki commented 1 year ago

It can fallback to the traditional binding model, however it’s a drastically different code path, with things such as buffer view offset buffer (16B per SRD, required because views in D3D12 are just the descriptors themselves and creating individual VkBufferViews would insanely complicate lifetime tracking). These buffers also lead to very different performance characteristics, since they consume a considerable amount of non-resizable BAR budget (64M out of 256M) and pushes out other upload heaps to system memory.