Mesa (master): tgsi/scan: fix scanning fragment shaders with PrimID and Position/Face

Marek Olšák mareko at kemper.freedesktop.org
Mon Jun 5 16:29:54 UTC 2017


Module: Mesa
Branch: master
Commit: 4b1e6ed49a2840e4aca2a177fe3a1c1b4e710c90
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=4b1e6ed49a2840e4aca2a177fe3a1c1b4e710c90

Author: Marek Olšák <marek.olsak at amd.com>
Date:   Tue May 30 02:04:29 2017 +0200

tgsi/scan: fix scanning fragment shaders with PrimID and Position/Face

Not relevant to radeonsi, because Position/Face are system values
with radeonsi, while this codepath is for drivers where Position and
Face are ordinary inputs.

Reviewed-by: Brian Paul <brianp at vmware.com>

---

 src/gallium/auxiliary/tgsi/tgsi_scan.c | 17 ++++++++++-------
 1 file changed, 10 insertions(+), 7 deletions(-)

diff --git a/src/gallium/auxiliary/tgsi/tgsi_scan.c b/src/gallium/auxiliary/tgsi/tgsi_scan.c
index 847f4fce28..018ca4b5bd 100644
--- a/src/gallium/auxiliary/tgsi/tgsi_scan.c
+++ b/src/gallium/auxiliary/tgsi/tgsi_scan.c
@@ -557,13 +557,16 @@ scan_declaration(struct tgsi_shader_info *info,
          /* Vertex shaders can have inputs with holes between them. */
          info->num_inputs = MAX2(info->num_inputs, reg + 1);
 
-         if (semName == TGSI_SEMANTIC_PRIMID)
-            info->uses_primid = TRUE;
-         else if (procType == PIPE_SHADER_FRAGMENT) {
-            if (semName == TGSI_SEMANTIC_POSITION)
-               info->reads_position = TRUE;
-            else if (semName == TGSI_SEMANTIC_FACE)
-               info->uses_frontface = TRUE;
+         switch (semName) {
+         case TGSI_SEMANTIC_PRIMID:
+            info->uses_primid = true;
+            break;
+         case TGSI_SEMANTIC_POSITION:
+            info->reads_position = true;
+            break;
+         case TGSI_SEMANTIC_FACE:
+            info->uses_frontface = true;
+            break;
          }
          break;
 




More information about the mesa-commit mailing list