etnaviv: don't expose array and 3D texture support on pre-halti GPUs

3D and array texture support is a halti0 GPU feature and
gpu_supports_texture_target() already prevents such textures from being
constructed on older GPUs. Set the screen caps correctly to avoid
exposing EXT_texture_array and OES_texture_3D 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/17996>
This commit is contained in:
Lucas Stach 2022-08-12 19:40:20 +02:00 committed by Marge Bot
parent 2b0f77bde5
commit d08bd9a8d8

View file

@ -214,9 +214,12 @@ etna_screen_get_param(struct pipe_screen *pscreen, enum pipe_cap param)
return 1;
case PIPE_CAP_MAX_TEXTURE_2D_SIZE:
case PIPE_CAP_MAX_TEXTURE_ARRAY_LAYERS: /* TODO: verify */
return screen->specs.max_texture_size;
case PIPE_CAP_MAX_TEXTURE_CUBE_LEVELS:
return screen->specs.halti >= 0 ? screen->specs.max_texture_size : 0;
case PIPE_CAP_MAX_TEXTURE_3D_LEVELS:
if (screen->specs.halti < 0)
return 0;
FALLTHROUGH;
case PIPE_CAP_MAX_TEXTURE_CUBE_LEVELS:
{
int log2_max_tex_size = util_last_bit(screen->specs.max_texture_size);
assert(log2_max_tex_size > 0);