etnaviv: Handle 64-bit pixel formats in texture sampler TS setup

Set VIVS_TS_SAMPLER_CONFIG_64BPP_FORMAT when the texture format
has 64 bits per pixel to ensure proper tile status handling for
wide formats.

Fixes at least the following CTS tests:
- dEQP-GLES3.functional.fbo.color.repeated_clear.sample.tex2d.rg32i
- dEQP-GLES3.functional.fbo.color.repeated_clear.sample.tex2d.rg32ui
- dEQP-GLES3.functional.fbo.color.repeated_clear.sample.tex2d.rgba16i
- dEQP-GLES3.functional.fbo.color.repeated_clear.sample.tex2d.rgba16ui

Signed-off-by: Christian Gmeiner <cgmeiner@igalia.com>
Reviewed-by: Lucas Stach <l.stach@pengutronix.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36270>
This commit is contained in:
Christian Gmeiner
2025-07-21 20:55:30 +02:00
committed by Marge Bot
parent 3f55070152
commit 1946592e39
@@ -102,7 +102,8 @@ etna_configure_sampler_ts(struct etna_sampler_ts *sts, struct pipe_sampler_view
sts->TS_SAMPLER_CONFIG =
VIVS_TS_SAMPLER_CONFIG_ENABLE |
COND(lev->ts_compress_fmt >= 0, VIVS_TS_SAMPLER_CONFIG_COMPRESSION) |
VIVS_TS_SAMPLER_CONFIG_COMPRESSION_FORMAT(lev->ts_compress_fmt);
VIVS_TS_SAMPLER_CONFIG_COMPRESSION_FORMAT(lev->ts_compress_fmt) |
COND(util_format_get_blocksizebits(pview->format) == 64, VIVS_TS_SAMPLER_CONFIG_64BPP_FORMAT);
sts->TS_SAMPLER_CLEAR_VALUE = lev->clear_value;
sts->TS_SAMPLER_CLEAR_VALUE2 = lev->clear_value >> 32;
sts->TS_SAMPLER_STATUS_BASE.bo = rsc->ts_bo;