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:
@@ -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);
|
||||
|
||||
@@ -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) */
|
||||
|
||||
@@ -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. */
|
||||
|
||||
Reference in New Issue
Block a user