From 739486de2f5b7854e5cc9f47888d9d9059fc19d4 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Mon, 15 Mar 2021 20:28:11 -0700 Subject: [PATCH] freedreno/a5xx: Fix the max texture buffer size. The GLES minmax is 65536. The blob vulkan exposes 65536 on both a5xx and a6xx, but try just doing the same as we do for a6xx. Part-of: --- src/freedreno/ci/deqp-freedreno-a530-fails.txt | 14 -------------- src/gallium/drivers/freedreno/freedreno_screen.c | 8 ++++++-- 2 files changed, 6 insertions(+), 16 deletions(-) diff --git a/src/freedreno/ci/deqp-freedreno-a530-fails.txt b/src/freedreno/ci/deqp-freedreno-a530-fails.txt index baa8b6fe709..adc99a8239f 100644 --- a/src/freedreno/ci/deqp-freedreno-a530-fails.txt +++ b/src/freedreno/ci/deqp-freedreno-a530-fails.txt @@ -125,20 +125,6 @@ dEQP-GLES31.functional.texture.border_clamp.sampler.uint_stencil,Fail dEQP-GLES31.functional.texture.border_clamp.sampler.unorm_depth,Fail dEQP-GLES31.functional.texture.border_clamp.unused_channels.r16i,Fail dEQP-GLES31.functional.texture.border_clamp.unused_channels.r8,Fail -dEQP-GLES31.functional.texture.texture_buffer.modify.bufferdata.buffer_size_131071,Fail -dEQP-GLES31.functional.texture.texture_buffer.modify.bufferdata.range_size_98304,Fail -dEQP-GLES31.functional.texture.texture_buffer.modify.mapbuffer_write.buffer_size_131071,Fail -dEQP-GLES31.functional.texture.texture_buffer.modify.mapbuffer_write.range_size_98304,Fail -dEQP-GLES31.functional.texture.texture_buffer.render.as_fragment_texture.buffer_size_131071,Fail -dEQP-GLES31.functional.texture.texture_buffer.render.as_fragment_texture.range_size_98304,Fail -dEQP-GLES31.functional.texture.texture_buffer.render.as_index_array_as_fragment_texture.buffer_size_131071,Fail -dEQP-GLES31.functional.texture.texture_buffer.render.as_index_array_as_fragment_texture.range_size_98304,Fail -dEQP-GLES31.functional.texture.texture_buffer.render.as_index_array_as_vertex_texture_as_fragment_texture.buffer_size_131071,Fail -dEQP-GLES31.functional.texture.texture_buffer.render.as_index_array_as_vertex_texture_as_fragment_texture.range_size_98304,Fail -dEQP-GLES31.functional.texture.texture_buffer.render.as_vertex_texture_as_fragment_texture.buffer_size_131071,Fail -dEQP-GLES31.functional.texture.texture_buffer.render.as_vertex_texture_as_fragment_texture.range_size_98304,Fail -dEQP-GLES31.functional.texture.texture_buffer.state_query.max_texture_buffer_size_getfloat,Fail -dEQP-GLES31.functional.texture.texture_buffer.state_query.max_texture_buffer_size_getinteger,Fail dEQP-GLES3.functional.clipping.line.wide_line_clip_viewport_corner,Fail dEQP-GLES3.functional.clipping.point.wide_point_clip_viewport_center,Fail dEQP-GLES3.functional.fbo.blit.depth_stencil.depth24_stencil8_scale,Fail diff --git a/src/gallium/drivers/freedreno/freedreno_screen.c b/src/gallium/drivers/freedreno/freedreno_screen.c index d00e1e42988..533df75292a 100644 --- a/src/gallium/drivers/freedreno/freedreno_screen.c +++ b/src/gallium/drivers/freedreno/freedreno_screen.c @@ -285,8 +285,12 @@ fd_screen_get_param(struct pipe_screen *pscreen, enum pipe_cap param) */ if (is_a3xx(screen)) return 8192; if (is_a4xx(screen)) return 16384; - if (is_a5xx(screen)) return 16384; - if (is_a6xx(screen)) return 1 << 27; + + /* Note that the Vulkan blob on a540 and 640 report a + * maxTexelBufferElements of just 65536 (the GLES3.2 and Vulkan + * minimum). + */ + if (is_a5xx(screen) || is_a6xx(screen)) return 1 << 27; return 0; case PIPE_CAP_TEXTURE_FLOAT_LINEAR: