Module: Mesa Branch: main Commit: 3197aff4e8ff47708b825f272322e759591d7f79 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=3197aff4e8ff47708b825f272322e759591d7f79
Author: Faith Ekstrand <faith.ekstr...@collabora.com> Date: Fri Jan 12 15:19:06 2024 -0600 nvk: Make dynamic cbuf indices relative to the descriptor set Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27048> --- src/nouveau/vulkan/nvk_cmd_buffer.c | 7 +++++-- src/nouveau/vulkan/nvk_nir_lower_descriptors.c | 7 ++----- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/nouveau/vulkan/nvk_cmd_buffer.c b/src/nouveau/vulkan/nvk_cmd_buffer.c index c20917bdb24..24615afb5b5 100644 --- a/src/nouveau/vulkan/nvk_cmd_buffer.c +++ b/src/nouveau/vulkan/nvk_cmd_buffer.c @@ -758,9 +758,12 @@ nvk_cmd_buffer_get_cbuf_descriptor(struct nvk_cmd_buffer *cmd, }; return true; - case NVK_CBUF_TYPE_DYNAMIC_UBO: - *desc_out = desc->root.dynamic_buffers[cbuf->dynamic_idx]; + case NVK_CBUF_TYPE_DYNAMIC_UBO: { + const uint32_t dyn_start = + desc->root.set_dynamic_buffer_start[cbuf->desc_set]; + *desc_out = desc->root.dynamic_buffers[dyn_start + cbuf->dynamic_idx]; return true; + } case NVK_CBUF_TYPE_UBO_DESC: { if (desc->sets[cbuf->desc_set] != NULL) diff --git a/src/nouveau/vulkan/nvk_nir_lower_descriptors.c b/src/nouveau/vulkan/nvk_nir_lower_descriptors.c index 98324ccf2e3..0e57eb2acd9 100644 --- a/src/nouveau/vulkan/nvk_nir_lower_descriptors.c +++ b/src/nouveau/vulkan/nvk_nir_lower_descriptors.c @@ -291,17 +291,14 @@ ubo_deref_to_cbuf(nir_deref_instr *deref, } case VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC: { - uint8_t dynamic_buffer_index = - nvk_descriptor_set_layout_dynbuf_start(ctx->layout, set) + - binding_layout->dynamic_buffer_index + index; - *offset_out = 0; *start_out = offset; *end_out = offset + range; return (struct nvk_cbuf) { .type = NVK_CBUF_TYPE_DYNAMIC_UBO, - .dynamic_idx = dynamic_buffer_index, + .desc_set = set, + .dynamic_idx = binding_layout->dynamic_buffer_index + index, }; }