From f1ec223cd2773adb86e14733e01ace4533657a5c Mon Sep 17 00:00:00 2001 From: Samuel Pitoiset Date: Wed, 17 Jul 2024 21:49:43 +0200 Subject: [PATCH] radv/meta: create fmask expand layouts regardless on-demand To be consistent with other meta operations. Signed-off-by: Samuel Pitoiset Part-of: --- src/amd/vulkan/meta/radv_meta_fmask_expand.c | 53 +++++++++----------- 1 file changed, 25 insertions(+), 28 deletions(-) diff --git a/src/amd/vulkan/meta/radv_meta_fmask_expand.c b/src/amd/vulkan/meta/radv_meta_fmask_expand.c index 5c6d61cd513..57fb92ce92b 100644 --- a/src/amd/vulkan/meta/radv_meta_fmask_expand.c +++ b/src/amd/vulkan/meta/radv_meta_fmask_expand.c @@ -168,34 +168,6 @@ radv_device_init_meta_fmask_expand_state_internal(struct radv_device *device, ui if (state->fmask_expand.pipeline[samples_log2]) return VK_SUCCESS; - if (!state->fmask_expand.ds_layout) { - const VkDescriptorSetLayoutBinding bindings[] = { - { - .binding = 0, - .descriptorType = VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, - .descriptorCount = 1, - .stageFlags = VK_SHADER_STAGE_COMPUTE_BIT, - }, - { - .binding = 1, - .descriptorType = VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, - .descriptorCount = 1, - .stageFlags = VK_SHADER_STAGE_COMPUTE_BIT, - }, - }; - - result = radv_meta_create_descriptor_set_layout(device, 2, bindings, &state->fmask_expand.ds_layout); - if (result != VK_SUCCESS) - return result; - } - - if (!state->fmask_expand.p_layout) { - result = radv_meta_create_pipeline_layout(device, &state->fmask_expand.ds_layout, 0, NULL, - &state->fmask_expand.p_layout); - if (result != VK_SUCCESS) - return result; - } - result = create_fmask_expand_pipeline(device, 1 << samples_log2, &state->fmask_expand.pipeline[samples_log2]); return result; @@ -204,8 +176,33 @@ radv_device_init_meta_fmask_expand_state_internal(struct radv_device *device, ui VkResult radv_device_init_meta_fmask_expand_state(struct radv_device *device, bool on_demand) { + struct radv_meta_state *state = &device->meta_state; VkResult result; + const VkDescriptorSetLayoutBinding bindings[] = { + { + .binding = 0, + .descriptorType = VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, + .descriptorCount = 1, + .stageFlags = VK_SHADER_STAGE_COMPUTE_BIT, + }, + { + .binding = 1, + .descriptorType = VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, + .descriptorCount = 1, + .stageFlags = VK_SHADER_STAGE_COMPUTE_BIT, + }, + }; + + result = radv_meta_create_descriptor_set_layout(device, 2, bindings, &state->fmask_expand.ds_layout); + if (result != VK_SUCCESS) + return result; + + result = + radv_meta_create_pipeline_layout(device, &state->fmask_expand.ds_layout, 0, NULL, &state->fmask_expand.p_layout); + if (result != VK_SUCCESS) + return result; + if (on_demand) return VK_SUCCESS;