etnaviv: use TX_SEAMLESS_CUBE to determine seamless cubemap support

I have no idea why the HWDB includes two distinct bits that seem to
relate to seamless cubemap support. However, the only cores where
both bits disagree are NPUs (which don't have any samplers) and the
GC880, which is currently special cased in the driver.

Use TX_SEAMLESS_CUBE to determine seamless cubemap support, which
seems to accurately reflect the real support status.

Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
Reviewed-by: Christian Gmeiner <cgmeiner@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35666>
This commit is contained in:
Lucas Stach
2025-06-20 23:32:26 +02:00
committed by Marge Bot
parent d31b0c9b3b
commit 4b424e9b86
3 changed files with 3 additions and 8 deletions

View File

@@ -69,7 +69,7 @@ etna_query_feature_db(struct etna_core_info *info)
ETNA_FEATURE(REG_SuperTiledTexture, SUPERTILED_TEXTURE);
ETNA_FEATURE(REG_LogicOp, LOGIC_OP);
ETNA_FEATURE(REG_Halti1, HALTI1);
ETNA_FEATURE(REG_SeamlessCubeMap, SEAMLESS_CUBE_MAP);
ETNA_FEATURE(TX_SEAMLESS_CUBE, SEAMLESS_CUBE_MAP);
ETNA_FEATURE(REG_LineLoop, LINE_LOOP);
ETNA_FEATURE(REG_TextureTileStatus, TEXTURE_TILED_READ);
ETNA_FEATURE(REG_BugFixes8, BUG_FIXES8);

View File

@@ -89,8 +89,6 @@ struct etna_specs {
unsigned tex_astc : 1;
/* has BLT engine instead of RS */
unsigned use_blt : 1;
/* supports seamless cube map */
unsigned seamless_cube_map : 1;
/* number of bits per TS tile */
unsigned bits_per_tile;
/* clear value for TS (dependent on bits_per_tile) */

View File

@@ -277,8 +277,8 @@ etna_init_screen_caps(struct etna_screen *screen)
caps->min_texel_offset = -8;
caps->max_texel_offset = 7;
caps->seamless_cube_map = screen->specs.seamless_cube_map;
caps->seamless_cube_map_per_texture = screen->specs.seamless_cube_map;
caps->seamless_cube_map_per_texture =
caps->seamless_cube_map = VIV_FEATURE(screen, ETNA_FEATURE_SEAMLESS_CUBE_MAP);
/* Render targets. */
caps->max_render_targets = VIV_FEATURE(screen, ETNA_FEATURE_HALTI2) ?
@@ -826,9 +826,6 @@ etna_get_specs(struct etna_screen *screen)
VIV_FEATURE(screen, ETNA_FEATURE_SH_NO_ONECONST_LIMIT);
screen->specs.v4_compression =
VIV_FEATURE(screen, ETNA_FEATURE_V4_COMPRESSION);
screen->specs.seamless_cube_map =
(screen->info->model != 0x880) && /* Seamless cubemap is broken on GC880? */
VIV_FEATURE(screen, ETNA_FEATURE_SEAMLESS_CUBE_MAP);
if (screen->info->halti >= 5) {
/* GC7000 - this core must load shaders from memory. */