diff --git a/src/amd/vulkan/meta/radv_meta.c b/src/amd/vulkan/meta/radv_meta.c index 00d01333d58..7eeafc6f5eb 100644 --- a/src/amd/vulkan/meta/radv_meta.c +++ b/src/amd/vulkan/meta/radv_meta.c @@ -608,3 +608,12 @@ radv_break_on_count(nir_builder *b, nir_variable *var, nir_def *count) counter = nir_iadd_imm(b, counter, 1); nir_store_var(b, var, counter, 0x1); } + +VkResult +radv_meta_get_noop_pipeline_layout(struct radv_device *device, VkPipelineLayout *layout_out) +{ + const char *key_data = "radv-noop"; + + return vk_meta_get_pipeline_layout(&device->vk, &device->meta_state.device, NULL, NULL, key_data, strlen(key_data), + layout_out); +} diff --git a/src/amd/vulkan/meta/radv_meta.h b/src/amd/vulkan/meta/radv_meta.h index d771b31c12b..f98462a2007 100644 --- a/src/amd/vulkan/meta/radv_meta.h +++ b/src/amd/vulkan/meta/radv_meta.h @@ -255,6 +255,8 @@ void radv_cmd_buffer_resolve_rendering_fs(struct radv_cmd_buffer *cmd_buffer, st void radv_depth_stencil_resolve_rendering_fs(struct radv_cmd_buffer *cmd_buffer, VkImageAspectFlags aspects, VkResolveModeFlagBits resolve_mode); +VkResult radv_meta_get_noop_pipeline_layout(struct radv_device *device, VkPipelineLayout *layout_out); + #ifdef __cplusplus } #endif diff --git a/src/amd/vulkan/meta/radv_meta_decompress.c b/src/amd/vulkan/meta/radv_meta_decompress.c index 1d1a99be3ab..3b9398b398e 100644 --- a/src/amd/vulkan/meta/radv_meta_decompress.c +++ b/src/amd/vulkan/meta/radv_meta_decompress.c @@ -57,13 +57,12 @@ get_pipeline_gfx(struct radv_device *device, struct radv_image *image, VkPipelin char key_data[64]; VkResult result; - snprintf(key_data, sizeof(key_data), "radv-htile-expand-gfx-%d", samples); - - result = vk_meta_get_pipeline_layout(&device->vk, &device->meta_state.device, NULL, NULL, key_data, - strlen(key_data), layout_out); + result = radv_meta_get_noop_pipeline_layout(device, layout_out); if (result != VK_SUCCESS) return result; + snprintf(key_data, sizeof(key_data), "radv-htile-expand-gfx-%d", samples); + VkPipeline pipeline_from_cache = vk_meta_lookup_pipeline(&device->meta_state.device, key_data, strlen(key_data)); if (pipeline_from_cache != VK_NULL_HANDLE) { *pipeline_out = pipeline_from_cache; diff --git a/src/amd/vulkan/meta/radv_meta_fast_clear.c b/src/amd/vulkan/meta/radv_meta_fast_clear.c index b4e3ef5295c..b83e386908a 100644 --- a/src/amd/vulkan/meta/radv_meta_fast_clear.c +++ b/src/amd/vulkan/meta/radv_meta_fast_clear.c @@ -125,8 +125,7 @@ get_pipeline(struct radv_device *device, enum radv_color_op op, VkPipeline *pipe snprintf(key_data, sizeof(key_data), "radv-color-op-%d", op); - result = vk_meta_get_pipeline_layout(&device->vk, &device->meta_state.device, NULL, NULL, key_data, - strlen(key_data), layout_out); + result = radv_meta_get_noop_pipeline_layout(device, layout_out); if (result != VK_SUCCESS) return result; diff --git a/src/amd/vulkan/meta/radv_meta_resolve.c b/src/amd/vulkan/meta/radv_meta_resolve.c index eb81e375117..5019e19c577 100644 --- a/src/amd/vulkan/meta/radv_meta_resolve.c +++ b/src/amd/vulkan/meta/radv_meta_resolve.c @@ -37,8 +37,7 @@ get_pipeline(struct radv_device *device, unsigned fs_key, VkPipeline *pipeline_o snprintf(key_data, sizeof(key_data), "radv-resolve-hw-%d", fs_key); - result = vk_meta_get_pipeline_layout(&device->vk, &device->meta_state.device, NULL, NULL, key_data, - strlen(key_data), layout_out); + result = radv_meta_get_noop_pipeline_layout(device, layout_out); if (result != VK_SUCCESS) return result;