freedreno/a6xx: remove special handling based on MRT format

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>
This commit is contained in:
Rob Clark 2020-01-25 13:44:59 -08:00 committed by Marge Bot
parent eb281df1a1
commit f066e3afc7
1 changed files with 1 additions and 15 deletions

View 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);