Mesa (master): st/mesa: don't generate VS TGSI if NIR is enabled

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Tue Dec 10 02:11:09 UTC 2019


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

Author: Marek Olšák <marek.olsak at amd.com>
Date:   Wed Nov 27 22:47:56 2019 -0500

st/mesa: don't generate VS TGSI if NIR is enabled

it's no longer needed

Reviewed-by: Dave Airlie <airlied at redhat.com>

---

 src/mesa/state_tracker/st_program.c | 36 ++++++++++++++----------------------
 1 file changed, 14 insertions(+), 22 deletions(-)

diff --git a/src/mesa/state_tracker/st_program.c b/src/mesa/state_tracker/st_program.c
index 81d6e16fefa..1beba6317b6 100644
--- a/src/mesa/state_tracker/st_program.c
+++ b/src/mesa/state_tracker/st_program.c
@@ -450,7 +450,20 @@ st_translate_vertex_program(struct st_context *st,
       if (stp->Base.Parameters->NumParameters)
          stp->affected_states |= ST_NEW_VS_CONSTANTS;
 
-      /* No samplers are allowed in ARB_vp. */
+      /* Translate to NIR if preferred. */
+      if (st->pipe->screen->get_shader_param(st->pipe->screen,
+                                             PIPE_SHADER_VERTEX,
+                                             PIPE_SHADER_CAP_PREFERRED_IR)) {
+         assert(!stp->glsl_to_tgsi);
+
+         if (stp->Base.nir)
+            ralloc_free(stp->Base.nir);
+
+         stp->state.type = PIPE_SHADER_IR_NIR;
+         stp->Base.nir = st_translate_prog_to_nir(st, &stp->Base,
+                                                  MESA_SHADER_VERTEX);
+         return true;
+      }
    }
 
    /* Get semantic names and indices. */
@@ -541,27 +554,6 @@ st_translate_vertex_program(struct st_context *st,
       st_store_ir_in_disk_cache(st, &stp->Base, false);
    }
 
-   /* Translate to NIR.
-    *
-    * This must be done after the translation to TGSI is done, because
-    * we'll pass the NIR shader to the driver and the TGSI version to
-    * the draw module for the select/feedback/rasterpos code.
-    */
-   if (st->pipe->screen->get_shader_param(st->pipe->screen,
-                                          PIPE_SHADER_VERTEX,
-                                          PIPE_SHADER_CAP_PREFERRED_IR)) {
-      assert(!stp->glsl_to_tgsi);
-
-      nir_shader *nir =
-         st_translate_prog_to_nir(st, &stp->Base, MESA_SHADER_VERTEX);
-
-      if (stp->Base.nir)
-         ralloc_free(stp->Base.nir);
-      stp->state.type = PIPE_SHADER_IR_NIR;
-      stp->Base.nir = nir;
-      return true;
-   }
-
    return stp->state.tokens != NULL;
 }
 




More information about the mesa-commit mailing list