From 1b892c5a7d7200eefa4b74baa17d7001d13c9792 Mon Sep 17 00:00:00 2001 From: Erik Faye-Lund Date: Thu, 24 Nov 2022 10:39:52 +0100 Subject: [PATCH] freedreno: fix PIPE_CAP_MAX_TEXTURE_ARRAY_LAYERS for a6xx We're reporting 2048 for VkPhysicalDeviceLimits::maxImageArrayLayers on Turnip, so we should be able to use 2048 for OpenGL as well. And that's the minimum required value for OpenGL 4.1 support. According to http://vulkan.gpuinfo.org/, it seems like values of 2048 should be possible for at least as low as some Adreno 4xx GPUs. But since we don't support recent GL versions on those, we this won't make a big difference. So let's leave that up to someone who actually knows what they're doing! Acked-by: Rob Clark Part-of: --- src/freedreno/ci/freedreno-a618-fails.txt | 2 -- src/freedreno/ci/freedreno-a630-fails.txt | 2 -- src/gallium/drivers/freedreno/freedreno_screen.c | 5 +++-- 3 files changed, 3 insertions(+), 6 deletions(-) diff --git a/src/freedreno/ci/freedreno-a618-fails.txt b/src/freedreno/ci/freedreno-a618-fails.txt index 50ee80bfd29..51d67defb80 100644 --- a/src/freedreno/ci/freedreno-a618-fails.txt +++ b/src/freedreno/ci/freedreno-a618-fails.txt @@ -34,8 +34,6 @@ KHR-GL45.texture_cube_map_array.color_depth_attachments,Fail # # Various limits we cannot or do not support: -KHR-GL45.limits.max_array_texture_layers,Fail -KHR-GL45.limits.max_framebuffer_layers,Fail KHR-GL45.limits.max_vertex_streams,Fail # Shader compile fails: diff --git a/src/freedreno/ci/freedreno-a630-fails.txt b/src/freedreno/ci/freedreno-a630-fails.txt index 788498fc00c..69b7a3509f0 100644 --- a/src/freedreno/ci/freedreno-a630-fails.txt +++ b/src/freedreno/ci/freedreno-a630-fails.txt @@ -34,8 +34,6 @@ KHR-GL45.texture_cube_map_array.color_depth_attachments,Fail # # Various limits we cannot or do not support: -KHR-GL45.limits.max_array_texture_layers,Fail -KHR-GL45.limits.max_framebuffer_layers,Fail KHR-GL45.limits.max_vertex_streams,Fail # Shader compile fails: diff --git a/src/gallium/drivers/freedreno/freedreno_screen.c b/src/gallium/drivers/freedreno/freedreno_screen.c index bcbe465e25a..a4394f8c9a3 100644 --- a/src/gallium/drivers/freedreno/freedreno_screen.c +++ b/src/gallium/drivers/freedreno/freedreno_screen.c @@ -509,8 +509,9 @@ fd_screen_get_param(struct pipe_screen *pscreen, enum pipe_cap param) return 12; case PIPE_CAP_MAX_TEXTURE_ARRAY_LAYERS: - return (is_a3xx(screen) || is_a4xx(screen) || is_a5xx(screen) || - is_a6xx(screen)) + if (is_a6xx(screen)) + return 2048; + return (is_a3xx(screen) || is_a4xx(screen) || is_a5xx(screen)) ? 256 : 0;