freedreno: fix PIPE_CAP_MAX_TEXTURE_ARRAY_LAYERS for a6xx
authorErik Faye-Lund <erik.faye-lund@collabora.com>
Thu, 24 Nov 2022 09:39:52 +0000 (10:39 +0100)
committerMarge Bot <emma+marge@anholt.net>
Tue, 29 Nov 2022 13:35:46 +0000 (13:35 +0000)
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 <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19780>

src/freedreno/ci/freedreno-a618-fails.txt
src/freedreno/ci/freedreno-a630-fails.txt
src/gallium/drivers/freedreno/freedreno_screen.c

index 50ee80b..51d67de 100644 (file)
@@ -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:
index 788498f..69b7a35 100644 (file)
@@ -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:
index bcbe465..a4394f8 100644 (file)
@@ -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;