From: Connor Abbott Date: Fri, 30 Apr 2021 16:05:37 +0000 (+0200) Subject: freedreno/a6xx: Fix SP_GS_PRIM_SIZE for large sizes X-Git-Tag: upstream/21.2.3~3948 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=e7b7908f87a437b3d4a239bf9f2119154967757e;p=platform%2Fupstream%2Fmesa.git 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: --- diff --git a/src/gallium/drivers/freedreno/a6xx/fd6_program.c b/src/gallium/drivers/freedreno/a6xx/fd6_program.c index 067ecbd..308bfad 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 1e1a12d..2082485 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@glsl-1.50@execution@primitive-id-no-gs-quads,Fail spec@glsl-1.50@execution@variable-indexing@gs-input-array-float-index-rd,Fail spec@glsl-1.50@execution@variable-indexing@gs-input-array-vec2-index-rd,Fail spec@glsl-1.50@execution@variable-indexing@gs-input-array-vec3-index-rd,Crash -spec@glsl-1.50@execution@variable-indexing@gs-input-array-vec4-index-rd,Fail spec@glsl-1.50@execution@variable-indexing@gs-output-array-vec3-index-wr,Fail spec@glsl-1.50@execution@variable-indexing@gs-output-array-vec4-index-wr,Crash spec@glsl-1.50@execution@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 4c94bb0..c65867d 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@clearbuffer-depth-cs-probe spec@ext_texture_array@fbo-depth-array depth-clear