etnaviv: fix alpha blend with dither on older GPUs
While setting up DITHER_MODE allows alpha blending to work properly together with dithering on new GPUs (those with PE_DITHER_FIX), older cores still change the render target. As dithering is optional and implementation defined we can simply disable it on the affected GPUs, when alpha blending is enabled to work around this bug. Signed-off-by: Lucas Stach <l.stach@pengutronix.de> Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13396>
This commit is contained in:
parent
d199d65c3a
commit
fc17f79f2c
|
@ -108,7 +108,9 @@ etna_blend_state_create(struct pipe_context *pctx,
|
|||
* dither pattern,
|
||||
* for now, set the same values as the blob.
|
||||
*/
|
||||
if (so->dither) {
|
||||
if (so->dither &&
|
||||
(!alpha_enable ||
|
||||
VIV_FEATURE(ctx->screen, chipMinorFeatures3, PE_DITHER_FIX))) {
|
||||
co->PE_DITHER[0] = 0x6e4ca280;
|
||||
co->PE_DITHER[1] = 0x5d7f91b3;
|
||||
} else {
|
||||
|
|
Loading…
Reference in New Issue