From 6ec95b990e130a4d6b6323b3040c18d050c048f4 Mon Sep 17 00:00:00 2001 From: Pierre-Eric Pelloux-Prayer Date: Mon, 17 Jun 2024 13:35:23 +0200 Subject: [PATCH] ac/nir: don't use the compute blit for PIPE_FORMAT_R5G6B5_UNORM MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit It breaks spec@arb_pixel_buffer_object@texsubimage array pbo and spec@arb_pixel_buffer_object@texsubimage pbo with some formats: 72,3,0: test = 140,0,8,255 ref = 148,0,8,255 (comparing 8 bits) texsubimage failed target: GL_TEXTURE_1D_ARRAY internal format: GL_R3_G3_B2 region: 5, 3 116 x 11 72,3,0: test = 140,0,8,255 ref = 148,0,8,255 (comparing 8 bits) texsubimage failed target: GL_TEXTURE_1D_ARRAY internal format: GL_RGB5 region: 33, 3 78 x 11 72,10,0: test = 140,0,41,255 ref = 148,0,41,255 (comparing 8 bits) texsubimage failed target: GL_TEXTURE_1D_ARRAY internal format: GL_RGB5_A1 region: 3, 10 124 x 33 72,19,4: test = 140,65,74,255 ref = 148,65,74,255 (comparing 8 bits) texsubimage failed target: GL_TEXTURE_2D_ARRAY internal format: GL_R3_G3_B2 region: 36, 19 81 x 18 12,36,4: test = 25,66,140,255 ref = 25,66,148,255 (comparing 8 bits) texsubimage failed target: GL_TEXTURE_2D_ARRAY internal format: GL_RGB5 region: 12, 9 30 x 39 72,22,2: test = 140,33,90,255 ref = 148,33,90,255 (comparing 8 bits) texsubimage failed target: GL_TEXTURE_2D_ARRAY internal format: GL_RGB5_A1 region: 39, 22 36 x 37 Reviewed-by: Marek Olšák Part-of: --- src/amd/common/ac_nir_meta_cs_blit.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/amd/common/ac_nir_meta_cs_blit.c b/src/amd/common/ac_nir_meta_cs_blit.c index bf37851b65e..1bdccdf5792 100644 --- a/src/amd/common/ac_nir_meta_cs_blit.c +++ b/src/amd/common/ac_nir_meta_cs_blit.c @@ -561,6 +561,7 @@ ac_prepare_compute_blit(const struct ac_cs_blit_options *options, if (blit->dst.format == PIPE_FORMAT_A8R8_UNORM || /* This format fails AMD_TEST=imagecopy. */ max_dst_chan_size == 5 || /* PIPE_FORMAT_R5G5B5A1_UNORM has precision issues */ + max_dst_chan_size == 6 || /* PIPE_FORMAT_R5G6B5_UNORM has precision issues */ util_format_is_depth_or_stencil(blit->dst.format) || dst_samples > SI_MAX_COMPUTE_BLIT_SAMPLES || (!is_clear &&