Mesa (master): freedreno/a6xx: Fix SP_GS_PRIM_SIZE for large sizes
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Mon May 3 14:27:11 UTC 2021
Module: Mesa
Branch: master
Commit: e7b7908f87a437b3d4a239bf9f2119154967757e
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=e7b7908f87a437b3d4a239bf9f2119154967757e
Author: Connor Abbott <cwabbott0 at gmail.com>
Date: Fri Apr 30 18:05:37 2021 +0200
freedreno/a6xx: Fix SP_GS_PRIM_SIZE for large sizes
This fixes a few piglit hangs.
Fixes: 0eebedb ("freedreno/a6xx: Emit program state for GS")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10551>
---
src/gallium/drivers/freedreno/a6xx/fd6_program.c | 7 ++++++-
src/gallium/drivers/freedreno/ci/piglit-freedreno-a630-fails.txt | 1 -
src/gallium/drivers/freedreno/ci/piglit-freedreno-a630-skips.txt | 4 ----
3 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/src/gallium/drivers/freedreno/a6xx/fd6_program.c b/src/gallium/drivers/freedreno/a6xx/fd6_program.c
index 067ecbd0702..308bfadf0a4 100644
--- a/src/gallium/drivers/freedreno/a6xx/fd6_program.c
+++ b/src/gallium/drivers/freedreno/a6xx/fd6_program.c
@@ -902,8 +902,13 @@ setup_stateobj(struct fd_ringbuffer *ring, struct fd_context *ctx,
OUT_PKT4(ring, REG_A6XX_PC_MULTIVIEW_CNTL, 1);
OUT_RING(ring, 0);
+ uint32_t prim_size = prev->output_size;
+ if (prim_size > 64)
+ prim_size = 64;
+ else if (prim_size == 64)
+ prim_size = 63;
OUT_PKT4(ring, REG_A6XX_SP_GS_PRIM_SIZE, 1);
- OUT_RING(ring, prev->output_size);
+ OUT_RING(ring, prim_size);
} else {
OUT_PKT4(ring, REG_A6XX_PC_PRIMITIVE_CNTL_6, 1);
OUT_RING(ring, 0);
diff --git a/src/gallium/drivers/freedreno/ci/piglit-freedreno-a630-fails.txt b/src/gallium/drivers/freedreno/ci/piglit-freedreno-a630-fails.txt
index 1e1a12ded35..2082485326e 100644
--- a/src/gallium/drivers/freedreno/ci/piglit-freedreno-a630-fails.txt
+++ b/src/gallium/drivers/freedreno/ci/piglit-freedreno-a630-fails.txt
@@ -515,7 +515,6 @@ spec at glsl-1.50@execution at primitive-id-no-gs-quads,Fail
spec at glsl-1.50@execution at variable-indexing@gs-input-array-float-index-rd,Fail
spec at glsl-1.50@execution at variable-indexing@gs-input-array-vec2-index-rd,Fail
spec at glsl-1.50@execution at variable-indexing@gs-input-array-vec3-index-rd,Crash
-spec at glsl-1.50@execution at variable-indexing@gs-input-array-vec4-index-rd,Fail
spec at glsl-1.50@execution at variable-indexing@gs-output-array-vec3-index-wr,Fail
spec at glsl-1.50@execution at variable-indexing@gs-output-array-vec4-index-wr,Crash
spec at glsl-1.50@execution at variable-indexing@vs-output-array-vec3-index-wr-before-gs,Fail
diff --git a/src/gallium/drivers/freedreno/ci/piglit-freedreno-a630-skips.txt b/src/gallium/drivers/freedreno/ci/piglit-freedreno-a630-skips.txt
index 4c94bb0a4b0..c65867db4a3 100644
--- a/src/gallium/drivers/freedreno/ci/piglit-freedreno-a630-skips.txt
+++ b/src/gallium/drivers/freedreno/ci/piglit-freedreno-a630-skips.txt
@@ -1,7 +1,3 @@
-# Can wedge the GPU
-vs-output-array-vec2-index-wr-before-gs
-gs-input-array-vec4-index-rd
-
# These take most of a minute to run
spec@!opengl 3.0 at clearbuffer-depth-cs-probe
spec at ext_texture_array@fbo-depth-array depth-clear
More information about the mesa-commit
mailing list