We processed fs key 3 multiple times, resulting in overwriting the
pointer in the meta struct and hence only freeing one of them.

Fixes: 69136f4e633 "radv/meta: add resolve pass using fragment/vertex shaders"
Signed-off-by: Bas Nieuwenhuizen <[email protected]>
---
 src/amd/vulkan/radv_meta_resolve_fs.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/amd/vulkan/radv_meta_resolve_fs.c 
b/src/amd/vulkan/radv_meta_resolve_fs.c
index e583808b2d1..d5fb39a0a80 100644
--- a/src/amd/vulkan/radv_meta_resolve_fs.c
+++ b/src/amd/vulkan/radv_meta_resolve_fs.c
@@ -176,7 +176,6 @@ static VkFormat pipeline_formats[] = {
    VK_FORMAT_R8G8B8A8_UNORM,
    VK_FORMAT_R8G8B8A8_UINT,
    VK_FORMAT_R8G8B8A8_SINT,
-   VK_FORMAT_R8G8B8A8_SRGB,
    VK_FORMAT_R16G16B16A16_UNORM,
    VK_FORMAT_R16G16B16A16_SNORM,
    VK_FORMAT_R16G16B16A16_UINT,
@@ -202,6 +201,7 @@ create_resolve_pipeline(struct radv_device *device,
        else if (vk_format_is_srgb(format))
                is_srgb = true;
 
+       
assert(!device->meta_state.resolve_fragment.rc[samples_log2].render_pass[fs_key]);
        struct radv_shader_module fs = { .nir = NULL };
        fs.nir = build_resolve_fragment_shader(device, is_integer, is_srgb, 
samples);
        struct radv_shader_module vs = {
-- 
2.12.2

_______________________________________________
mesa-dev mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to