broadcom/vc5: Stop trying to swizzle around RGBA4 clear color.
authorEric Anholt <eric@anholt.net>
Wed, 28 Mar 2018 04:52:35 +0000 (21:52 -0700)
committerEric Anholt <eric@anholt.net>
Thu, 29 Mar 2018 00:48:41 +0000 (17:48 -0700)
We always want A in the A slot in the tile buffer, and any other swapping
should happen elsewhere.

Fixes RGBA4-using cases in fbo-clear-formats and
GTF-GLES3.gtf.GL3Tests.color_buffer_float.color_buffer_float_clamp_fixed.

src/gallium/drivers/vc5/vc5_draw.c

index 25f4883be2d65d09286f8b97c121c652b6aa4afb..841c991d205906490f204a0e045c68e632470631 100644 (file)
@@ -627,18 +627,8 @@ vc5_clear(struct pipe_context *pctx, unsigned buffers,
 
                 switch (surf->internal_type) {
                 case V3D_INTERNAL_TYPE_8:
-                        if (surf->format == PIPE_FORMAT_B4G4R4A4_UNORM ||
-                            surf->format == PIPE_FORMAT_B4G4R4A4_UNORM) {
-                                /* Our actual hardware layout is ABGR4444, but
-                                 * we apply a swizzle when texturing to flip
-                                 * things back around.
-                                 */
-                                util_pack_color(color->f, PIPE_FORMAT_A8R8G8B8_UNORM,
-                                                &uc);
-                        } else {
-                                util_pack_color(color->f, PIPE_FORMAT_R8G8B8A8_UNORM,
-                                                &uc);
-                        }
+                        util_pack_color(color->f, PIPE_FORMAT_R8G8B8A8_UNORM,
+                                        &uc);
                         memcpy(job->clear_color[i], uc.ui, internal_size);
                         break;
                 case V3D_INTERNAL_TYPE_8I: