diff --git a/src/freedreno/ci/deqp-freedreno-a630-fails.txt b/src/freedreno/ci/deqp-freedreno-a630-fails.txt index 5473dbb4924..f43e3612d89 100644 --- a/src/freedreno/ci/deqp-freedreno-a630-fails.txt +++ b/src/freedreno/ci/deqp-freedreno-a630-fails.txt @@ -67,11 +67,6 @@ dEQP-VK.spirv_assembly.instruction.graphics.variable_pointers.graphics.writes_si dEQP-VK.spirv_assembly.instruction.graphics.variable_pointers.graphics.writes_two_buffers_geom,Fail dEQP-VK.spirv_assembly.instruction.graphics.variable_pointers.graphics.writes_two_buffers_vert,Fail -dEQP-VK.texture.filtering.2d.formats.d24_unorm_s8_uint_stencil.nearest,Fail -dEQP-VK.texture.filtering.2d_array.formats.d24_unorm_s8_uint_stencil.d24_unorm_s8_uint_stencil_nearest,Fail -dEQP-VK.texture.filtering.cube.formats.d24_unorm_s8_uint_stencil.nearest,Fail -dEQP-VK.texture.filtering.unnormal.formats.d24_unorm_s8_uint_stencil.nearest,Fail - # Broken on all drivers: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4582 dEQP-VK.wsi.display_control.register_device_event,Fail diff --git a/src/freedreno/vulkan/tu_image.c b/src/freedreno/vulkan/tu_image.c index 804c5dd5b56..6b5d8eed9f8 100644 --- a/src/freedreno/vulkan/tu_image.c +++ b/src/freedreno/vulkan/tu_image.c @@ -136,11 +136,17 @@ tu6_texswiz(const VkComponentMapping *comps, case VK_FORMAT_D24_UNORM_S8_UINT: if (aspect_mask == VK_IMAGE_ASPECT_STENCIL_BIT) { if (!has_z24uint_s8uint) { - /* using FMT6_8_8_8_8_UINT */ + /* using FMT6_8_8_8_8_UINT, so need to pick out the W channel and + * swizzle (0,0,1) in the rest (see "Conversion to RGBA"). + */ swiz[0] = A6XX_TEX_W; swiz[1] = A6XX_TEX_ZERO; + swiz[2] = A6XX_TEX_ZERO; + swiz[3] = A6XX_TEX_ONE; } else { - /* using FMT6_Z24_UINT_S8_UINT */ + /* using FMT6_Z24_UINT_S8_UINT, which is (d, s, 0, 1), so need to + * swizzle away the d. + */ swiz[0] = A6XX_TEX_Y; swiz[1] = A6XX_TEX_ZERO; }