VK_EXT_descriptor_heap: Uniform buffer loads use global memory loads instead of constant loads

GPU: RTX 5080
OS: Windows 11 x64
Driver version: 595.92

When using VK_EXT_descriptor_heap + VK_DESCRIPTOR_MAPPING_SOURCE_PUSH_ADDRESS_EXT to “bind” uniform buffers, data loaded from those uniform buffers in shaders are loaded using global memory load instructions instead of constant load instructions.

This causes a small perf regression compared to other methods such as vkCmdPushDescriptorSet.

Here is a comparison of what is reported in Nsight Graphics for a shader line where I load a matrix from an uniform buffer with either method:

Push descriptor

Descriptor heap + push address

1 Like