Am Mi., 19. Dez. 2018 um 16:27 Uhr schrieb Lucas Stach <l.st...@pengutronix.de>: > > Take into account the render target format when checking if the color > mask affects all channels of the RT. This allows to enable full > override in a few cases where a non-alpha format is used. > > Signed-off-by: Lucas Stach <l.st...@pengutronix.de>
Reviewed-by: Christian Gmeiner <christian.gmei...@gmail.com> > --- > v2: clarify comment > --- > src/gallium/drivers/etnaviv/etnaviv_blend.c | 11 +++++++---- > 1 file changed, 7 insertions(+), 4 deletions(-) > > diff --git a/src/gallium/drivers/etnaviv/etnaviv_blend.c > b/src/gallium/drivers/etnaviv/etnaviv_blend.c > index 0e2299a50b30..061c9af5247f 100644 > --- a/src/gallium/drivers/etnaviv/etnaviv_blend.c > +++ b/src/gallium/drivers/etnaviv/etnaviv_blend.c > @@ -114,6 +114,7 @@ etna_update_blend(struct etna_context *ctx) > struct pipe_blend_state *pblend = ctx->blend; > struct etna_blend_state *blend = etna_blend_state(pblend); > const struct pipe_rt_blend_state *rt0 = &pblend->rt[0]; > + const struct util_format_description *desc; > uint32_t colormask; > > if (pfb->cbufs[0] && > @@ -128,11 +129,13 @@ etna_update_blend(struct etna_context *ctx) > } > > /* If the complete render target is written, set full_overwrite: > - * - The color mask is 1111 > - * - No blending is used > + * - The color mask covers all channels of the render target > + * - No blending or logicop is used > */ > - bool full_overwrite = ((rt0->colormask == 0xf) && blend->fo_allowed) || > - !pfb->cbufs[0]; > + if (pfb->cbufs[0]) > + desc = util_format_description(pfb->cbufs[0]->format); > + bool full_overwrite = !pfb->cbufs[0] || ((blend->fo_allowed && > + util_format_colormask_full(desc, colormask))); > blend->PE_COLOR_FORMAT = > VIVS_PE_COLOR_FORMAT_COMPONENTS(colormask) | > COND(full_overwrite, VIVS_PE_COLOR_FORMAT_OVERWRITE); > -- > 2.19.1 > > _______________________________________________ > etnaviv mailing list > etna...@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/etnaviv -- greets -- Christian Gmeiner, MSc https://christian-gmeiner.info _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev