We've had this optimization in the GL driver since July but never got around to hooking it up in Vulkan. This lets us turn UBOs into push constants which are significantly faster since they read the UBO data once and the shader dispatch shoves it into the shader prior to program execution.
I have zero benchmark numbers at the moment but I expect this to help anything which uses UBOs and has constant offsets into them which is basically everything. Unfortunately, I'm at home and not near any hardware with stable enough performance characteristics to get decent numbers today. Cc: Kenneth Graunke <kenn...@whitecape.org> Cc: Eero Tamminen <eero.t.tammi...@intel.com> Jason Ekstrand (6): anv/pipeline: Translate vulkan_resource_index to a constant when possible anv/cmd_buffer: Add some helpers for working with descriptor sets anv/cmd_buffer: Add some stage asserts anv/cmd_buffer: Add support for pushing UBO ranges anv/device: Increase the UBO alignment requirement to 32 anv: Enable UBO pushing src/intel/vulkan/anv_device.c | 13 +- src/intel/vulkan/anv_nir_apply_pipeline_layout.c | 15 +- src/intel/vulkan/anv_pipeline.c | 6 + src/intel/vulkan/genX_cmd_buffer.c | 191 ++++++++++++++++++----- src/intel/vulkan/genX_pipeline.c | 3 +- 5 files changed, 179 insertions(+), 49 deletions(-) -- 2.5.0.400.gff86faf _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev