From 73f5ab54565961f1e26e66d3a9bc248da1a17772 Mon Sep 17 00:00:00 2001 From: George Ouzounoudis Date: Wed, 9 Nov 2022 20:13:26 +0200 Subject: [PATCH] nvk: Add a macro for root descriptor table byte offsets Use a helper macro instead of using offsetof directly. Part-of: --- src/nouveau/vulkan/nvk_cmd_buffer.h | 4 ++++ src/nouveau/vulkan/nvk_nir_lower_descriptors.c | 6 +++--- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/nouveau/vulkan/nvk_cmd_buffer.h b/src/nouveau/vulkan/nvk_cmd_buffer.h index a50fe41dc34..331cdafde1e 100644 --- a/src/nouveau/vulkan/nvk_cmd_buffer.h +++ b/src/nouveau/vulkan/nvk_cmd_buffer.h @@ -38,6 +38,10 @@ struct nvk_root_descriptor_table { struct nvk_buffer_address dynamic_buffers[NVK_MAX_DYNAMIC_BUFFERS]; }; +/* helper macro for computing root descriptor byte offsets */ +#define nvk_root_descriptor_offset(member)\ + offsetof(struct nvk_root_descriptor_table, member) + struct nvk_descriptor_state { struct nvk_root_descriptor_table root; struct nvk_descriptor_set *sets[NVK_MAX_SETS]; diff --git a/src/nouveau/vulkan/nvk_nir_lower_descriptors.c b/src/nouveau/vulkan/nvk_nir_lower_descriptors.c index 7e8458b07be..8d0a56e0401 100644 --- a/src/nouveau/vulkan/nvk_nir_lower_descriptors.c +++ b/src/nouveau/vulkan/nvk_nir_lower_descriptors.c @@ -20,7 +20,7 @@ load_descriptor_set_addr(nir_builder *b, uint32_t set, UNUSED const struct lower_descriptors_ctx *ctx) { uint32_t set_addr_offset = - offsetof(struct nvk_root_descriptor_table, sets) + set * sizeof(uint64_t); + nvk_root_descriptor_offset(sets) + set * sizeof(uint64_t); return nir_load_ubo(b, 1, 64, nir_imm_int(b, 0), nir_imm_int(b, set_addr_offset), @@ -56,7 +56,7 @@ load_descriptor(nir_builder *b, unsigned num_components, unsigned bit_size, nir_ssa_def *root_desc_offset = nir_iadd_imm(b, nir_imul_imm(b, index, sizeof(struct nvk_buffer_address)), - offsetof(struct nvk_root_descriptor_table, dynamic_buffers)); + nvk_root_descriptor_offset(dynamic_buffers)); return nir_load_ubo(b, num_components, bit_size, nir_imm_int(b, 0), root_desc_offset, @@ -128,7 +128,7 @@ lower_load_push_constant(nir_builder *b, nir_intrinsic_instr *load, const struct lower_descriptors_ctx *ctx) { const uint32_t push_region_offset = - offsetof(struct nvk_root_descriptor_table, push); + nvk_root_descriptor_offset(push); const uint32_t base = nir_intrinsic_base(load); b->cursor = nir_before_instr(&load->instr);