etnaviv: enable full overwrite when no color buffer is present
The OVERWRITE bit disables destination fetches, which is exactly what we want when there is no valid color buffer bound. Signed-off-by: Lucas Stach <l.stach@pengutronix.de> Reviewed-by: Wladimir J. van der Laan <laanwj@gmail.com>
This commit is contained in:
parent
1eab327ba7
commit
f5d477f447
|
@ -131,8 +131,8 @@ etna_update_blend(struct etna_context *ctx)
|
|||
* - The color mask is 1111
|
||||
* - No blending is used
|
||||
*/
|
||||
bool full_overwrite = (rt0->colormask == 0xf) &&
|
||||
blend->fo_allowed;
|
||||
bool full_overwrite = ((rt0->colormask == 0xf) && blend->fo_allowed) ||
|
||||
!pfb->cbufs[0];
|
||||
blend->PE_COLOR_FORMAT =
|
||||
VIVS_PE_COLOR_FORMAT_COMPONENTS(colormask) |
|
||||
COND(full_overwrite, VIVS_PE_COLOR_FORMAT_OVERWRITE);
|
||||
|
|
|
@ -185,7 +185,7 @@ etna_set_framebuffer_state(struct pipe_context *pctx,
|
|||
/* Clearing VIVS_PE_COLOR_FORMAT_COMPONENTS__MASK and
|
||||
* VIVS_PE_COLOR_FORMAT_OVERWRITE prevents us from overwriting the
|
||||
* color target */
|
||||
cs->PE_COLOR_FORMAT = 0;
|
||||
cs->PE_COLOR_FORMAT = VIVS_PE_COLOR_FORMAT_OVERWRITE;
|
||||
cs->PE_COLOR_STRIDE = 0;
|
||||
cs->TS_COLOR_STATUS_BASE.bo = NULL;
|
||||
cs->TS_COLOR_SURFACE_BASE.bo = NULL;
|
||||
|
|
Loading…
Reference in New Issue