From: Connor Abbott Date: Thu, 7 Apr 2022 17:10:40 +0000 (+0200) Subject: freedreno/a6xx: Fix SP_DS_CTRL_REG0 definition X-Git-Tag: upstream/22.3.5~10688 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=32af90d96f7f3c0983546a837e32da4d6029c816;p=platform%2Fupstream%2Fmesa.git freedreno/a6xx: Fix SP_DS_CTRL_REG0 definition Bit 20 isn't actually MERGEDREGS, the mode for the entire geometry pipeline is controlled by SP_VS_CTRL_REG0::MERGEDREGS and it appears to be something preamble-related instead since writing any register in the preamble hangs if it's set. This fixes those hangs on freedreno and turnip since we no longer set it. Fixes: fccc35c2def ("ir3: Add preamble optimization pass") Part-of: --- diff --git a/src/freedreno/registers/adreno/a6xx.xml b/src/freedreno/registers/adreno/a6xx.xml index 006bd71..fc4f60b 100644 --- a/src/freedreno/registers/adreno/a6xx.xml +++ b/src/freedreno/registers/adreno/a6xx.xml @@ -2882,6 +2882,10 @@ to upconvert to 32b float internally? + @@ -2998,7 +3002,7 @@ to upconvert to 32b float internally? @@ -3024,7 +3028,8 @@ to upconvert to 32b float internally? - + + @@ -3060,7 +3065,7 @@ to upconvert to 32b float internally? diff --git a/src/freedreno/vulkan/tu_pipeline.c b/src/freedreno/vulkan/tu_pipeline.c index 428cebb..b027623 100644 --- a/src/freedreno/vulkan/tu_pipeline.c +++ b/src/freedreno/vulkan/tu_pipeline.c @@ -494,7 +494,6 @@ tu6_emit_xs(struct tu_cs *cs, .fullregfootprint = xs->info.max_reg + 1, .halfregfootprint = xs->info.max_half_reg + 1, .branchstack = ir3_shader_branchstack_hw(xs), - .mergedregs = xs->mergedregs, )); break; case MESA_SHADER_GEOMETRY: diff --git a/src/gallium/drivers/freedreno/a6xx/fd6_program.c b/src/gallium/drivers/freedreno/a6xx/fd6_program.c index 5a0e8dd..983970f 100644 --- a/src/gallium/drivers/freedreno/a6xx/fd6_program.c +++ b/src/gallium/drivers/freedreno/a6xx/fd6_program.c @@ -713,7 +713,6 @@ setup_stateobj(struct fd_ringbuffer *ring, struct fd_context *ctx, ring, A6XX_SP_DS_CTRL_REG0_FULLREGFOOTPRINT(ds->info.max_reg + 1) | A6XX_SP_DS_CTRL_REG0_HALFREGFOOTPRINT(ds->info.max_half_reg + 1) | - COND(ds->mergedregs, A6XX_SP_DS_CTRL_REG0_MERGEDREGS) | A6XX_SP_DS_CTRL_REG0_BRANCHSTACK(ir3_shader_branchstack_hw(ds))); fd6_emit_shader(ctx, ring, ds);