Mesa (main): radv: explicitly load a desc set layout struct member during set allocate

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Wed Jun 2 13:47:31 UTC 2021


Module: Mesa
Branch: main
Commit: 89bac36f0913a8544728b0fe6cfc8be65f8f929c
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=89bac36f0913a8544728b0fe6cfc8be65f8f929c

Author: Mike Blumenkrantz <michael.blumenkrantz at gmail.com>
Date:   Tue Jun  1 11:11:00 2021 -0400

radv: explicitly load a desc set layout struct member during set allocate

accessing this variable repeatedly like this is a contended hotpath somehow,
so instead just create a const for reference

Reviewed-by: Bas Nieuwenhuizen <bas at basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11124>

---

 src/amd/vulkan/radv_descriptor_set.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/src/amd/vulkan/radv_descriptor_set.c b/src/amd/vulkan/radv_descriptor_set.c
index 21f015755d3..2b9073ab83d 100644
--- a/src/amd/vulkan/radv_descriptor_set.c
+++ b/src/amd/vulkan/radv_descriptor_set.c
@@ -539,8 +539,9 @@ radv_descriptor_set_create(struct radv_device *device, struct radv_descriptor_po
    }
    unsigned range_offset =
       sizeof(struct radv_descriptor_set_header) + sizeof(struct radeon_winsys_bo *) * buffer_count;
+   const unsigned dynamic_offset_count = layout->dynamic_offset_count;
    unsigned mem_size =
-      range_offset + sizeof(struct radv_descriptor_range) * layout->dynamic_offset_count;
+      range_offset + sizeof(struct radv_descriptor_range) * dynamic_offset_count;
 
    if (pool->host_memory_base) {
       if (pool->host_memory_end - pool->host_memory_ptr < mem_size)
@@ -560,7 +561,7 @@ radv_descriptor_set_create(struct radv_device *device, struct radv_descriptor_po
 
    vk_object_base_init(&device->vk, &set->header.base, VK_OBJECT_TYPE_DESCRIPTOR_SET);
 
-   if (layout->dynamic_offset_count) {
+   if (dynamic_offset_count) {
       set->header.dynamic_descriptors =
          (struct radv_descriptor_range *)((uint8_t *)set + range_offset);
    }



More information about the mesa-commit mailing list