From 71397a81623d01077d0c03d5c71f563b1fb87bfd Mon Sep 17 00:00:00 2001 From: Samuel Pitoiset Date: Fri, 27 Jun 2025 12:48:16 +0200 Subject: [PATCH] radv/meta: stop allocating sampler for blit operations Signed-off-by: Samuel Pitoiset Part-of: --- src/amd/vulkan/meta/radv_meta_blit.c | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/src/amd/vulkan/meta/radv_meta_blit.c b/src/amd/vulkan/meta/radv_meta_blit.c index db00b26676d..3d792dafafc 100644 --- a/src/amd/vulkan/meta/radv_meta_blit.c +++ b/src/amd/vulkan/meta/radv_meta_blit.c @@ -6,6 +6,7 @@ #include "nir/radv_meta_nir.h" #include "radv_meta.h" +#include "radv_sampler.h" #include "vk_command_pool.h" static enum glsl_sampler_dim @@ -366,7 +367,7 @@ blit_image(struct radv_cmd_buffer *cmd_buffer, struct radv_image *src_image, VkI const VkImageSubresourceLayers *src_res = ®ion->srcSubresource; const VkImageSubresourceLayers *dst_res = ®ion->dstSubresource; struct radv_meta_saved_state saved_state; - VkSampler sampler; + struct radv_sampler sampler; /* From the Vulkan 1.0 spec: * @@ -376,16 +377,15 @@ blit_image(struct radv_cmd_buffer *cmd_buffer, struct radv_image *src_image, VkI assert(src_image->vk.samples == 1); assert(dst_image->vk.samples == 1); - radv_CreateSampler(radv_device_to_handle(device), - &(VkSamplerCreateInfo){ - .sType = VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO, - .magFilter = filter, - .minFilter = filter, - .addressModeU = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE, - .addressModeV = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE, - .addressModeW = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE, - }, - &cmd_buffer->vk.pool->alloc, &sampler); + radv_sampler_init(device, &sampler, + &(VkSamplerCreateInfo){ + .sType = VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO, + .magFilter = filter, + .minFilter = filter, + .addressModeU = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE, + .addressModeV = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE, + .addressModeW = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE, + }); radv_meta_save(&saved_state, cmd_buffer, RADV_META_SAVE_GRAPHICS_PIPELINE | RADV_META_SAVE_CONSTANTS | RADV_META_SAVE_DESCRIPTORS); @@ -511,7 +511,7 @@ blit_image(struct radv_cmd_buffer *cmd_buffer, struct radv_image *src_image, VkI }, NULL); meta_emit_blit(cmd_buffer, &src_iview, src_image_layout, src_offset_0, src_offset_1, &dst_iview, dst_image_layout, - dst_box, sampler); + dst_box, radv_sampler_to_handle(&sampler)); radv_image_view_finish(&dst_iview); radv_image_view_finish(&src_iview); @@ -519,7 +519,7 @@ blit_image(struct radv_cmd_buffer *cmd_buffer, struct radv_image *src_image, VkI radv_meta_restore(&saved_state, cmd_buffer); - radv_DestroySampler(radv_device_to_handle(device), sampler, &cmd_buffer->vk.pool->alloc); + radv_sampler_finish(device, &sampler); } VKAPI_ATTR void VKAPI_CALL