etnaviv: don't drop TS capability on GPUs with MMUv2

Currently etnaviv disables TS on all MC1.0 GPUs, since the TS unit
doesn't properly take into account the linear window offset with
MC1.0, creating address aliases on MMUv1 that aren't properly dealt
with.

MMUv2 however doesn't have a linear window, so we can safely enable
TS on those GPUs.

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/20552>
This commit is contained in:
Lucas Stach
2023-01-06 19:14:18 +01:00
committed by Marge Bot
parent 3b69b67545
commit c966b06736

View File

@@ -1020,10 +1020,12 @@ etna_get_specs(struct etna_screen *screen)
screen->specs.use_blt = VIV_FEATURE(screen, chipMinorFeatures5, BLT_ENGINE);
/* Only allow fast clear with MC2.0, as the TS unit bypasses the memory
* offset on MC1.0 and we have no way to fixup the address.
/* Only allow fast clear with MC2.0 or MMUv2, as the TS unit bypasses the
* memory offset for the MMUv1 linear window on MC1.0 and we have no way to
* fixup the address.
*/
if (!VIV_FEATURE(screen, chipMinorFeatures0, MC20))
if (!VIV_FEATURE(screen, chipMinorFeatures0, MC20) &&
!VIV_FEATURE(screen, chipMinorFeatures1, MMU_VERSION))
screen->features[viv_chipFeatures] &= ~chipFeatures_FAST_CLEAR;
return true;