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