Mesa (master): Revert "st/nir: use NIR for asm programs"

Timothy Arceri tarceri at kemper.freedesktop.org
Mon May 28 04:41:13 UTC 2018


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

Author: Eric Anholt <eric at anholt.net>
Date:   Thu May 17 15:53:40 2018 +0100

Revert "st/nir: use NIR for asm programs"

This reverts commit 5c33e8c7729edd5e16020ebb8703be96523e04f2.  It broke
fixed function vertex programs on vc4 and v3d, and apparently caused
trouble for radeonsi's NIR paths as well.

Acked-by: Timothy Arceri <tarceri at itsqueeze.com>
https://bugs.freedesktop.org/show_bug.cgi?id=106673

---

 src/mesa/state_tracker/st_program.c | 65 ++++---------------------------------
 1 file changed, 7 insertions(+), 58 deletions(-)

diff --git a/src/mesa/state_tracker/st_program.c b/src/mesa/state_tracker/st_program.c
index a7671b7fd1..8117f4ff8d 100644
--- a/src/mesa/state_tracker/st_program.c
+++ b/src/mesa/state_tracker/st_program.c
@@ -37,7 +37,6 @@
 #include "main/mtypes.h"
 #include "program/prog_parameter.h"
 #include "program/prog_print.h"
-#include "program/prog_to_nir.h"
 #include "program/programopt.h"
 
 #include "compiler/nir/nir.h"
@@ -379,28 +378,6 @@ st_release_cp_variants(struct st_context *st, struct st_compute_program *stcp)
 }
 
 /**
- * Translate ARB (asm) program to NIR
- */
-static nir_shader *
-st_translate_prog_to_nir(struct st_context *st, struct gl_program *prog,
-                         gl_shader_stage stage)
-{
-   const struct gl_shader_compiler_options *options =
-      &st->ctx->Const.ShaderCompilerOptions[stage];
-
-   /* Translate to NIR */
-   nir_shader *nir = prog_to_nir(prog, options->NirOptions);
-   NIR_PASS_V(nir, nir_lower_regs_to_ssa); /* turn registers into SSA */
-   nir_validate_shader(nir);
-
-   /* Optimise NIR */
-   st_nir_opts(nir);
-   nir_validate_shader(nir);
-
-   return nir;
-}
-
-/**
  * Translate a vertex program.
  */
 bool
@@ -481,28 +458,15 @@ st_translate_vertex_program(struct st_context *st,
       /* No samplers are allowed in ARB_vp. */
    }
 
-   enum pipe_shader_ir preferred_ir = (enum pipe_shader_ir)
-      st->pipe->screen->get_shader_param(st->pipe->screen, PIPE_SHADER_VERTEX,
-                                         PIPE_SHADER_CAP_PREFERRED_IR);
-
-   if (preferred_ir == PIPE_SHADER_IR_NIR) {
-      if (stvp->shader_program) {
-         struct gl_program *prog = stvp->shader_program->last_vert_prog;
-         if (prog) {
-            st_translate_stream_output_info2(prog->sh.LinkedTransformFeedback,
-                                             stvp->result_to_output,
-                                             &stvp->tgsi.stream_output);
-         }
-
-         st_store_ir_in_disk_cache(st, &stvp->Base, true);
-      } else {
-         nir_shader *nir = st_translate_prog_to_nir(st, &stvp->Base,
-                                                    MESA_SHADER_VERTEX);
-
-         stvp->tgsi.type = PIPE_SHADER_IR_NIR;
-         stvp->tgsi.ir.nir = nir;
+   if (stvp->shader_program) {
+      struct gl_program *prog = stvp->shader_program->last_vert_prog;
+      if (prog) {
+         st_translate_stream_output_info2(prog->sh.LinkedTransformFeedback,
+                                          stvp->result_to_output,
+                                          &stvp->tgsi.stream_output);
       }
 
+      st_store_ir_in_disk_cache(st, &stvp->Base, true);
       return true;
    }
 
@@ -742,21 +706,6 @@ st_translate_fragment_program(struct st_context *st,
       }
    }
 
-   enum pipe_shader_ir preferred_ir = (enum pipe_shader_ir)
-      st->pipe->screen->get_shader_param(st->pipe->screen,
-                                         PIPE_SHADER_FRAGMENT,
-                                         PIPE_SHADER_CAP_PREFERRED_IR);
-
-   if (preferred_ir == PIPE_SHADER_IR_NIR) {
-      nir_shader *nir = st_translate_prog_to_nir(st, &stfp->Base,
-                                                 MESA_SHADER_FRAGMENT);
-
-      stfp->tgsi.type = PIPE_SHADER_IR_NIR;
-      stfp->tgsi.ir.nir = nir;
-
-      return true;
-   }
-
    /*
     * Convert Mesa program inputs to TGSI input register semantics.
     */




More information about the mesa-commit mailing list