summaryrefslogtreecommitdiffstats
path: root/src/mesa
diff options
context:
space:
mode:
authorEric Anholt <[email protected]>2018-05-17 15:53:40 +0100
committerTimothy Arceri <[email protected]>2018-05-28 14:41:03 +1000
commit3b6dfcf7ae0abd65c0db8a71e55977a0e20ea94f (patch)
treec2403648ba27288f82b99af1fa6474652287129b /src/mesa
parent4714784daeb4df97fa82cfcf8f566661cc4ff4a4 (diff)
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 <[email protected]> https://bugs.freedesktop.org/show_bug.cgi?id=106673
Diffstat (limited to 'src/mesa')
-rw-r--r--src/mesa/state_tracker/st_program.c65
1 files changed, 7 insertions, 58 deletions
diff --git a/src/mesa/state_tracker/st_program.c b/src/mesa/state_tracker/st_program.c
index a7671b7fd1d..8117f4ff8db 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.
*/