diff --git a/.gitlab-ci/deqp-panfrost-g52-fails.txt b/.gitlab-ci/deqp-panfrost-g52-fails.txt index 01c87e7c034..54827ab32cc 100644 --- a/.gitlab-ci/deqp-panfrost-g52-fails.txt +++ b/.gitlab-ci/deqp-panfrost-g52-fails.txt @@ -1,9 +1,3 @@ -dEQP-GLES3.functional.fbo.blit.conversion.rgb8_to_rgba4,Fail -dEQP-GLES3.functional.fbo.blit.conversion.rgb8_to_srgb8_alpha8,Fail -dEQP-GLES3.functional.fbo.blit.default_framebuffer.rgb8,Fail -dEQP-GLES3.functional.fbo.blit.default_framebuffer.rgb8_linear_out_of_bounds_blit_to_default,Fail -dEQP-GLES3.functional.fbo.blit.default_framebuffer.rgb8_linear_scale_blit_to_default,Fail -dEQP-GLES3.functional.fbo.blit.default_framebuffer.rgb8_nearest_scale_blit_to_default,Fail dEQP-GLES3.functional.transform_feedback.random.interleaved.lines.9,Fail dEQP-GLES3.functional.transform_feedback.random.interleaved.points.1,Fail dEQP-GLES3.functional.transform_feedback.random.interleaved.points.3,Fail diff --git a/src/panfrost/lib/pan_afbc.c b/src/panfrost/lib/pan_afbc.c index 50b379daed6..576f67fd970 100644 --- a/src/panfrost/lib/pan_afbc.c +++ b/src/panfrost/lib/pan_afbc.c @@ -151,8 +151,16 @@ panfrost_afbc_format_needs_fixup(const struct panfrost_device *dev, const struct util_format_description *desc = util_format_description(format); + unsigned nr_channels = desc->nr_channels; + + /* rgb1 is a valid component order, don't test channel 3 in that + * case. + */ + if (nr_channels == 4 && desc->swizzle[3] == PIPE_SWIZZLE_1) + nr_channels = 3; + bool identity_swizzle = true; - for (unsigned c = 0; c < desc->nr_channels; c++) { + for (unsigned c = 0; c < nr_channels; c++) { if (desc->swizzle[c] != c) { identity_swizzle = false; break;