From d08bd9a8d8baf0f88554dd4f69ee5aa0fa3663ef Mon Sep 17 00:00:00 2001 From: Lucas Stach Date: Fri, 12 Aug 2022 19:40:20 +0200 Subject: [PATCH] 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 Reviewed-by: Christian Gmeiner Part-of: --- src/gallium/drivers/etnaviv/etnaviv_screen.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/gallium/drivers/etnaviv/etnaviv_screen.c b/src/gallium/drivers/etnaviv/etnaviv_screen.c index e4cecb5024d..31e82a09ec0 100644 --- a/src/gallium/drivers/etnaviv/etnaviv_screen.c +++ b/src/gallium/drivers/etnaviv/etnaviv_screen.c @@ -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);