diff --git a/src/amd/vulkan/radv_cmd_buffer.c b/src/amd/vulkan/radv_cmd_buffer.c index 9fea76deebc..fef41c4d745 100644 --- a/src/amd/vulkan/radv_cmd_buffer.c +++ b/src/amd/vulkan/radv_cmd_buffer.c @@ -4732,8 +4732,8 @@ radv_CmdPushDescriptorSetWithTemplateKHR(VkCommandBuffer commandBuffer, templ->bind_point)) return; - radv_update_descriptor_set_with_template(cmd_buffer->device, cmd_buffer, push_set, - descriptorUpdateTemplate, pData); + radv_cmd_update_descriptor_set_with_template(cmd_buffer->device, cmd_buffer, push_set, + descriptorUpdateTemplate, pData); radv_set_descriptor_set(cmd_buffer, templ->bind_point, push_set, set); descriptors_state->push_dirty = true; diff --git a/src/amd/vulkan/radv_descriptor_set.c b/src/amd/vulkan/radv_descriptor_set.c index f0ff13822aa..d4c769c0ea1 100644 --- a/src/amd/vulkan/radv_descriptor_set.c +++ b/src/amd/vulkan/radv_descriptor_set.c @@ -1420,12 +1420,12 @@ radv_DestroyDescriptorUpdateTemplate(VkDevice _device, vk_free2(&device->vk.alloc, pAllocator, templ); } -void -radv_update_descriptor_set_with_template(struct radv_device *device, - struct radv_cmd_buffer *cmd_buffer, - struct radv_descriptor_set *set, - VkDescriptorUpdateTemplate descriptorUpdateTemplate, - const void *pData) +static ALWAYS_INLINE void +radv_update_descriptor_set_with_template_impl(struct radv_device *device, + struct radv_cmd_buffer *cmd_buffer, + struct radv_descriptor_set *set, + VkDescriptorUpdateTemplate descriptorUpdateTemplate, + const void *pData) { RADV_FROM_HANDLE(radv_descriptor_update_template, templ, descriptorUpdateTemplate); uint32_t i; @@ -1502,6 +1502,18 @@ radv_update_descriptor_set_with_template(struct radv_device *device, } } +void +radv_cmd_update_descriptor_set_with_template(struct radv_device *device, + struct radv_cmd_buffer *cmd_buffer, + struct radv_descriptor_set *set, + VkDescriptorUpdateTemplate descriptorUpdateTemplate, + const void *pData) +{ + /* Assume cmd_buffer != NULL to optimize out cmd_buffer checks in generic code above. */ + assume(cmd_buffer != NULL); + radv_update_descriptor_set_with_template_impl(device, cmd_buffer, set, descriptorUpdateTemplate, pData); +} + void radv_UpdateDescriptorSetWithTemplate(VkDevice _device, VkDescriptorSet descriptorSet, VkDescriptorUpdateTemplate descriptorUpdateTemplate, @@ -1510,7 +1522,7 @@ radv_UpdateDescriptorSetWithTemplate(VkDevice _device, VkDescriptorSet descripto RADV_FROM_HANDLE(radv_device, device, _device); RADV_FROM_HANDLE(radv_descriptor_set, set, descriptorSet); - radv_update_descriptor_set_with_template(device, NULL, set, descriptorUpdateTemplate, pData); + radv_update_descriptor_set_with_template_impl(device, NULL, set, descriptorUpdateTemplate, pData); } VkResult diff --git a/src/amd/vulkan/radv_private.h b/src/amd/vulkan/radv_private.h index 8d981f1cebd..f85ac5f91c8 100644 --- a/src/amd/vulkan/radv_private.h +++ b/src/amd/vulkan/radv_private.h @@ -2583,11 +2583,11 @@ void radv_cmd_update_descriptor_sets(struct radv_device *device, struct radv_cmd uint32_t descriptorCopyCount, const VkCopyDescriptorSet *pDescriptorCopies); -void radv_update_descriptor_set_with_template(struct radv_device *device, - struct radv_cmd_buffer *cmd_buffer, - struct radv_descriptor_set *set, - VkDescriptorUpdateTemplate descriptorUpdateTemplate, - const void *pData); +void radv_cmd_update_descriptor_set_with_template(struct radv_device *device, + struct radv_cmd_buffer *cmd_buffer, + struct radv_descriptor_set *set, + VkDescriptorUpdateTemplate descriptorUpdateTemplate, + const void *pData); void radv_meta_push_descriptor_set(struct radv_cmd_buffer *cmd_buffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout _layout,