mesa/src
Lionel Landwerlin 5c53c6e693 vulkan/runtime: track dynamic descriptor offsets for RT pipelines
Dynamic descriptors are mapped an array of offsets provided through
vkCmdBindDescriptorSets*() commands.

When pipelines are compiled with independent sets layouts, the
implementation might have to do additional runtime calculation to
figure out what offset in the contiguous array maps to what dynamic
descriptor in the pipeline layout.

For graphics pipelines you can always compute that information when
binding the shaders. There is always a limited amount of shaders (5
max).

For ray tracing pipelines, there could be lots of shaders to process
at every pipeline binding call. Besides there is no interface from the
runtime to the driver to list all the shaders used at the moment.

So do that tracking in the runtime and pass the information down to
the driver through the cmd_set_rt_state() vfunc.

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Fixes: 69a04151db ("vulkan/runtime: add ray tracing pipeline support")
Acked-by: Alyssa Rosenzweig <alyssa.rosenzweig@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38678>
2025-12-02 13:25:20 +00:00
..
amd radv/video: Fix AV1 quantization map maxQIndexDelta value 2025-12-02 09:44:35 +00:00
android_stub
asahi vulkan/wsi: Add missing KHR_surface_maintenance1 promotions. 2025-11-30 12:17:33 +01:00
broadcom vulkan/wsi: Add missing KHR_surface_maintenance1 promotions. 2025-11-30 12:17:33 +01:00
c11 c11/threads: fix build on c23 2025-11-10 07:01:50 +10:00
compiler glsl: support barrier() for task and mesh shader 2025-12-01 02:33:00 +00:00
drm-shim drm-shim: handle DRM_CAP_ADDFB2_MODIFIERS 2025-11-24 12:34:08 +00:00
egl egl: Disable kopper on Android 2025-11-25 10:04:51 +00:00
etnaviv ci: use $CI_TRON_JOB_PRIORITY tag on all ci-tron jobs 2025-11-24 12:02:40 +00:00
freedreno vulkan/wsi: Add missing KHR_surface_maintenance1 promotions. 2025-11-30 12:17:33 +01:00
gallium brw/iris: remove fs key for coherent_fb_fetch 2025-12-02 12:44:35 +00:00
gbm mesa: replace most occurrences of getenv() with os_get_option() 2025-11-06 04:36:13 +00:00
getopt
gfxstream gfxstream: more fixes for missing prototypes 2025-12-01 14:07:18 -08:00
glx apple_cgl.c: Fix error: call to undeclared function 'os_get_option' 2025-11-20 18:39:19 +00:00
gtest
imagination nir: remove nir_io_add_const_offset_to_base 2025-11-29 00:16:38 +00:00
imgui imgui: Silence build warnings for imgui 2025-09-16 06:16:19 +00:00
intel vulkan/runtime: track dynamic descriptor offsets for RT pipelines 2025-12-02 13:25:20 +00:00
kosmickrisp kk: Clamp negative array indices to 0 2025-12-01 09:09:58 +00:00
loader loader: Wrap nouveau_zink_predicate with HAVE_LIBDRM 2025-11-20 18:39:19 +00:00
mesa gallium: add a flag to finalize_nir to allow drivers to skip NIR opts 2025-11-29 07:29:05 +00:00
microsoft nir: Always use sysvals in lower_input_attachments() 2025-11-29 00:50:34 +00:00
nouveau nvk: Implement ISBE space sharing on vertex stage 2025-12-01 10:53:53 +01:00
panfrost pan/va: Add missing 8bit widen swizzles 2025-12-02 10:04:13 +00:00
poly nir: remove nir_io_add_const_offset_to_base 2025-11-29 00:16:38 +00:00
tool pps/meson: minor refactor for pps_deps 2025-11-08 18:39:00 -08:00
util anv: add vk_wsi_disable_unordered_submits and enable for GTK 2025-12-02 10:22:02 +02:00
virtio vulkan/wsi: Add missing KHR_surface_maintenance1 promotions. 2025-11-30 12:17:33 +01:00
vulkan vulkan/runtime: track dynamic descriptor offsets for RT pipelines 2025-12-02 13:25:20 +00:00
x11 treewide: strip unneeded inc_gallium inc_gallium_aux 2025-11-13 22:01:43 +00:00
.clang-format util: Add sparse bitset data structure 2025-11-06 21:34:33 +00:00
meson.build kk: Add KosmicKrisp 2025-10-20 17:46:38 +00:00