Mesa (main): lima: switch to NIR loop unrolling

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Sat Jun 4 16:47:32 UTC 2022


Module: Mesa
Branch: main
Commit: bb2f97eb272a68fce582cebf78c53987024356af
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=bb2f97eb272a68fce582cebf78c53987024356af

Author: Timothy Arceri <tarceri at itsqueeze.com>
Date:   Fri May  6 11:44:31 2022 +1000

lima: switch to NIR loop unrolling

Reviewed-by: Emma Anholt <emma at anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16366>

---

 src/gallium/drivers/lima/ci/lima-fails.txt | 2 --
 src/gallium/drivers/lima/lima_program.c    | 2 ++
 src/gallium/drivers/lima/lima_screen.c     | 6 ++----
 3 files changed, 4 insertions(+), 6 deletions(-)

diff --git a/src/gallium/drivers/lima/ci/lima-fails.txt b/src/gallium/drivers/lima/ci/lima-fails.txt
index 8cc9dffab87..d61d5e9c6df 100644
--- a/src/gallium/drivers/lima/ci/lima-fails.txt
+++ b/src/gallium/drivers/lima/ci/lima-fails.txt
@@ -455,8 +455,6 @@ spec at glsl-1.10@execution at variable-indexing@vs-varying-mat4-row-wr,Fail
 spec at glsl-1.10@execution at variable-indexing@vs-varying-mat4-wr,Fail
 spec at glsl-1.10@glsl-fs-discard-only,Fail
 spec at glsl-1.10@linker at glsl-link-varyings-3,Fail
-spec at glsl-1.20@execution at array_bounds@glsl-array-bounds-03,Fail
-spec at glsl-1.20@execution at array_bounds@glsl-array-bounds-07,Fail
 spec at glsl-1.20@execution at built-in-functions@fs-op-assign-div-mat2x4-mat2x4,Fail
 spec at glsl-1.20@execution at built-in-functions@fs-op-assign-div-mat3x2-mat3x2,Fail
 spec at glsl-1.20@execution at built-in-functions@fs-op-assign-div-mat3x4-mat3x4,Fail
diff --git a/src/gallium/drivers/lima/lima_program.c b/src/gallium/drivers/lima/lima_program.c
index d971f01b35f..4a975f726fb 100644
--- a/src/gallium/drivers/lima/lima_program.c
+++ b/src/gallium/drivers/lima/lima_program.c
@@ -64,6 +64,7 @@ static const nir_shader_compiler_options vs_nir_options = {
    .force_indirect_unrolling = nir_var_all,
    .force_indirect_unrolling_sampler = true,
    .lower_varying_from_uniform = true,
+   .max_unroll_iterations = 32,
 };
 
 static const nir_shader_compiler_options fs_nir_options = {
@@ -86,6 +87,7 @@ static const nir_shader_compiler_options fs_nir_options = {
    .force_indirect_unrolling = (nir_var_shader_out | nir_var_function_temp),
    .force_indirect_unrolling_sampler = true,
    .lower_varying_from_uniform = true,
+   .max_unroll_iterations = 32,
 };
 
 const void *
diff --git a/src/gallium/drivers/lima/lima_screen.c b/src/gallium/drivers/lima/lima_screen.c
index 46db45bb74e..0ac69411c36 100644
--- a/src/gallium/drivers/lima/lima_screen.c
+++ b/src/gallium/drivers/lima/lima_screen.c
@@ -239,7 +239,7 @@ get_vertex_shader_param(struct lima_screen *screen,
       return 256; /* need investigate */
 
    case PIPE_SHADER_CAP_MAX_UNROLL_ITERATIONS_HINT:
-      return 32;
+      return 0;
 
    default:
       return 0;
@@ -289,10 +289,8 @@ get_fragment_shader_param(struct lima_screen *screen,
 
    case PIPE_SHADER_CAP_INDIRECT_TEMP_ADDR:
    case PIPE_SHADER_CAP_INDIRECT_OUTPUT_ADDR:
-      return 0;
-
    case PIPE_SHADER_CAP_MAX_UNROLL_ITERATIONS_HINT:
-      return 32;
+      return 0;
 
    default:
       return 0;



More information about the mesa-commit mailing list