From 1946592e39600f0cd790fb7bf538172ea85f2b11 Mon Sep 17 00:00:00 2001 From: Christian Gmeiner Date: Mon, 21 Jul 2025 20:55:30 +0200 Subject: [PATCH] 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 Reviewed-by: Lucas Stach Part-of: --- src/gallium/drivers/etnaviv/etnaviv_texture.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/gallium/drivers/etnaviv/etnaviv_texture.c b/src/gallium/drivers/etnaviv/etnaviv_texture.c index e41e1d17719..3f98d180227 100644 --- a/src/gallium/drivers/etnaviv/etnaviv_texture.c +++ b/src/gallium/drivers/etnaviv/etnaviv_texture.c @@ -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;