Mesa (main): nir/lower_io: Identify Mesh output as arrayed

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Sat Aug 28 04:47:08 UTC 2021


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

Author: Caio Marcelo de Oliveira Filho <caio.oliveira at intel.com>
Date:   Fri Apr 30 00:01:07 2021 -0700

nir/lower_io: Identify Mesh output as arrayed

Mesh shader outputs are either:

- non-array builtins
- array builtins that are either per-primitive or per-vertex
- user-defined outputs that must be either per-primitive or per-vertex

So we can identify any array output as "arrayed" for the purposes of
I/O lowering.

Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>
Reviewed-by: Timur Kristóf <timur.kristof at gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10600>

---

 src/compiler/nir/nir_lower_io.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/compiler/nir/nir_lower_io.c b/src/compiler/nir/nir_lower_io.c
index c9aa0b26e9c..899f0e063e7 100644
--- a/src/compiler/nir/nir_lower_io.c
+++ b/src/compiler/nir/nir_lower_io.c
@@ -158,7 +158,8 @@ nir_is_arrayed_io(const nir_variable *var, gl_shader_stage stage)
              stage == MESA_SHADER_TESS_EVAL;
 
    if (var->data.mode == nir_var_shader_out)
-      return stage == MESA_SHADER_TESS_CTRL;
+      return stage == MESA_SHADER_TESS_CTRL ||
+             stage == MESA_SHADER_MESH;
 
    return false;
 }



More information about the mesa-commit mailing list