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,
       };
    }
 

Reply via email to