freedreno/a6xx: remove special handling based on MRT format
authorRob Clark <robdclark@chromium.org>
Sat, 25 Jan 2020 21:44:59 +0000 (13:44 -0800)
committerMarge Bot <eric+marge@anholt.net>
Wed, 29 Jan 2020 11:21:47 +0000 (11:21 +0000)
Logicop in particular is supposed to work for integer formats.. but
maybe this situation doesn't happen in gles.  The only thing that isn't
required for integer formats is blending.

Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3565>

src/gallium/drivers/freedreno/a6xx/fd6_emit.c

index 087b537f10f04836396215971454e58cf91eaea8..3af96d91cfea4dfe13b9fcafe9de1690c5a49446 100644 (file)
@@ -1078,22 +1078,8 @@ fd6_emit_state(struct fd_ringbuffer *ring, struct fd6_emit *emit)
                uint32_t i;
 
                for (i = 0; i < pfb->nr_cbufs; i++) {
-                       enum pipe_format format = pipe_surface_format(pfb->cbufs[i]);
-                       bool is_int = util_format_is_pure_integer(format);
-                       bool has_alpha = util_format_has_alpha(format);
-                       uint32_t control = blend->rb_mrt[i].control;
-
-                       if (is_int) {
-                               control &= A6XX_RB_MRT_CONTROL_COMPONENT_ENABLE__MASK;
-                               control |= A6XX_RB_MRT_CONTROL_ROP_CODE(ROP_COPY);
-                       }
-
-                       if (!has_alpha) {
-                               control &= ~A6XX_RB_MRT_CONTROL_BLEND2;
-                       }
-
                        OUT_PKT4(ring, REG_A6XX_RB_MRT_CONTROL(i), 1);
-                       OUT_RING(ring, control);
+                       OUT_RING(ring, blend->rb_mrt[i].control);
 
                        OUT_PKT4(ring, REG_A6XX_RB_MRT_BLEND_CONTROL(i), 1);
                        OUT_RING(ring, blend->rb_mrt[i].blend_control);