Mesa (master): freedreno: Don't lower indirects in GLSL IR
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Mon Apr 26 17:31:21 UTC 2021
Module: Mesa
Branch: master
Commit: a07ab4f9142e8154ae140d8a5c755b0eb413f304
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=a07ab4f9142e8154ae140d8a5c755b0eb413f304
Author: Connor Abbott <cwabbott0 at gmail.com>
Date: Thu Oct 22 15:26:21 2020 +0200
freedreno: Don't lower indirects in GLSL IR
nir_lower_io_to_temporaries should generate better code.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7274>
---
.../freedreno/ci/piglit-freedreno-a630-fails.txt | 31 ++--------------------
.../freedreno/ci/piglit-freedreno-a630-skips.txt | 1 +
src/gallium/drivers/freedreno/freedreno_screen.c | 9 -------
3 files changed, 3 insertions(+), 38 deletions(-)
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 f8bcfae23f7..ebc0ece5d8b 100644
--- a/src/gallium/drivers/freedreno/ci/piglit-freedreno-a630-fails.txt
+++ b/src/gallium/drivers/freedreno/ci/piglit-freedreno-a630-fails.txt
@@ -457,9 +457,6 @@ spec at arb_arrays_of_arrays@execution at image_store@basic-imagestore-non-const-unifo
spec at arb_arrays_of_arrays@execution at sampler@fs-struct-const-index-sampler-const-index,Crash
spec at arb_compute_shader@execution at border-color,Fail
spec at arb_shader_storage_buffer_object@linker at instance-matching-shader-storage-blocks-member-array-size-mismatch,Fail
-spec at arb_tessellation_shader@execution at 16in-1out,Crash
-spec at arb_tessellation_shader@execution at 1in-1out,Crash
-spec at arb_tessellation_shader@execution at barrier-patch,Crash
spec at arb_tessellation_shader@execution at fs-primitiveid-instanced,Fail
spec at arb_tessellation_shader@execution at gs-primitiveid-instanced,Fail
spec at arb_tessellation_shader@execution at invocation-counting-even,Fail
@@ -478,43 +475,19 @@ spec at arb_tessellation_shader@execution at variable-indexing@tcs-input-array-float-i
spec at arb_tessellation_shader@execution at variable-indexing@tcs-input-array-vec2-index-rd,Crash
spec at arb_tessellation_shader@execution at variable-indexing@tcs-input-array-vec3-index-rd,Crash
spec at arb_tessellation_shader@execution at variable-indexing@tcs-input-array-vec4-index-rd,Crash
-spec at arb_tessellation_shader@execution at variable-indexing@tcs-output-array-float-index-rd-after-barrier,Crash
-spec at arb_tessellation_shader@execution at variable-indexing@tcs-output-array-float-index-wr,Crash
-spec at arb_tessellation_shader@execution at variable-indexing@tcs-output-array-float-index-wr-before-barrier,Crash
-spec at arb_tessellation_shader@execution at variable-indexing@tcs-output-array-vec2-index-rd-after-barrier,Crash
-spec at arb_tessellation_shader@execution at variable-indexing@tcs-output-array-vec2-index-wr,Crash
-spec at arb_tessellation_shader@execution at variable-indexing@tcs-output-array-vec2-index-wr-before-barrier,Crash
-spec at arb_tessellation_shader@execution at variable-indexing@tcs-output-array-vec3-index-rd-after-barrier,Crash
-spec at arb_tessellation_shader@execution at variable-indexing@tcs-output-array-vec3-index-wr,Crash
-spec at arb_tessellation_shader@execution at variable-indexing@tcs-output-array-vec3-index-wr-before-barrier,Crash
-spec at arb_tessellation_shader@execution at variable-indexing@tcs-output-array-vec4-index-rd-after-barrier,Crash
-spec at arb_tessellation_shader@execution at variable-indexing@tcs-output-array-vec4-index-wr,Crash
-spec at arb_tessellation_shader@execution at variable-indexing@tcs-output-array-vec4-index-wr-before-barrier,Crash
-spec at arb_tessellation_shader@execution at variable-indexing@tcs-patch-output-array-float-index-wr,Crash
-spec at arb_tessellation_shader@execution at variable-indexing@tcs-patch-output-array-vec2-index-wr,Crash
-spec at arb_tessellation_shader@execution at variable-indexing@tcs-patch-output-array-vec3-index-wr,Crash
-spec at arb_tessellation_shader@execution at variable-indexing@tcs-patch-output-array-vec4-index-wr,Crash
spec at arb_tessellation_shader@execution at variable-indexing@tcs-patch-vec4-index-wr,Crash
spec at arb_tessellation_shader@execution at variable-indexing@tcs-patch-vec4-swiz-index-wr,Crash
-spec at arb_tessellation_shader@execution at variable-indexing@tes-both-input-array-float-index-rd,Crash
-spec at arb_tessellation_shader@execution at variable-indexing@tes-both-input-array-vec2-index-rd,Crash
-spec at arb_tessellation_shader@execution at variable-indexing@tes-both-input-array-vec3-index-rd,Crash
-spec at arb_tessellation_shader@execution at variable-indexing@tes-both-input-array-vec4-index-rd,Crash
spec at arb_tessellation_shader@execution at variable-indexing@tes-input-array-float-index-rd,Crash
spec at arb_tessellation_shader@execution at variable-indexing@tes-input-array-vec2-index-rd,Crash
spec at arb_tessellation_shader@execution at variable-indexing@tes-input-array-vec3-index-rd,Crash
spec at arb_tessellation_shader@execution at variable-indexing@tes-input-array-vec4-index-rd,Crash
-spec at arb_tessellation_shader@execution at variable-indexing@tes-patch-input-array-float-index-rd,Crash
-spec at arb_tessellation_shader@execution at variable-indexing@tes-patch-input-array-vec2-index-invalid-rd,Crash
-spec at arb_tessellation_shader@execution at variable-indexing@tes-patch-input-array-vec2-index-rd,Crash
-spec at arb_tessellation_shader@execution at variable-indexing@tes-patch-input-array-vec3-index-rd,Crash
-spec at arb_tessellation_shader@execution at variable-indexing@tes-patch-input-array-vec4-index-rd,Crash
+spec at arb_tessellation_shader@execution at variable-indexing@vs-output-array-vec3-index-wr-before-tcs,Fail
+spec at arb_tessellation_shader@execution at variable-indexing@vs-output-array-vec4-index-wr-before-tcs,Fail
spec at arb_tessellation_shader@execution at vertex-partial-write,Crash
spec at arb_tessellation_shader@execution at vs-tes-max-in-out-components,Fail
spec at arb_tessellation_shader@execution at vs-tes-tessinner-tessouter-inputs-quads,Fail
spec at arb_tessellation_shader@execution at vs-tes-tessinner-tessouter-inputs-tris,Fail
spec at arb_tessellation_shader@execution at vs-tes-vertex,Fail
-spec at glsl-1.10@execution at vsfs-unused-array-member,Crash
spec at glsl-1.30@execution at fs-large-local-array-vec2,Crash
spec at glsl-1.30@execution at fs-large-local-array-vec3,Crash
spec at glsl-1.30@execution at fs-large-local-array-vec4,Crash
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 65e0672e97b..4c94bb0a4b0 100644
--- a/src/gallium/drivers/freedreno/ci/piglit-freedreno-a630-skips.txt
+++ b/src/gallium/drivers/freedreno/ci/piglit-freedreno-a630-skips.txt
@@ -1,5 +1,6 @@
# 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
diff --git a/src/gallium/drivers/freedreno/freedreno_screen.c b/src/gallium/drivers/freedreno/freedreno_screen.c
index b1845766f46..e2d22e07fd5 100644
--- a/src/gallium/drivers/freedreno/freedreno_screen.c
+++ b/src/gallium/drivers/freedreno/freedreno_screen.c
@@ -613,15 +613,6 @@ fd_screen_get_shader_param(struct pipe_screen *pscreen,
return 1;
case PIPE_SHADER_CAP_INDIRECT_INPUT_ADDR:
case PIPE_SHADER_CAP_INDIRECT_OUTPUT_ADDR:
- /* Technically this should be the same as for TEMP/CONST, since
- * everything is just normal registers. This is just temporary
- * hack until load_input/store_output handle arrays in a similar
- * way as load_var/store_var..
- *
- * For tessellation stages, inputs are loaded using ldlw or ldg, both
- * of which support indirection.
- */
- return shader == PIPE_SHADER_TESS_CTRL || shader == PIPE_SHADER_TESS_EVAL;
case PIPE_SHADER_CAP_INDIRECT_TEMP_ADDR:
case PIPE_SHADER_CAP_INDIRECT_CONST_ADDR:
/* a2xx compiler doesn't handle indirect: */
More information about the mesa-commit
mailing list