summaryrefslogtreecommitdiffstats
path: root/src/compiler/nir
diff options
context:
space:
mode:
authorRob Clark <[email protected]>2016-09-08 14:07:06 -0400
committerRob Clark <[email protected]>2016-09-14 13:45:32 -0400
commit1a8424cebaeaf46a01000624a46764f3e84dad85 (patch)
treefe7d57ce69ee32fd14163128db63e524409ef9c1 /src/compiler/nir
parent2c3f9662762f6e45b47ea5d3047f5596b555f29c (diff)
nir: move tex_instr_remove_src
I want to re-use this in a different pass, so move to nir.h Signed-off-by: Rob Clark <[email protected]> Reviewed-by: Jason Ekstrand <[email protected]>
Diffstat (limited to 'src/compiler/nir')
-rw-r--r--src/compiler/nir/nir.c16
-rw-r--r--src/compiler/nir/nir.h2
-rw-r--r--src/compiler/nir/nir_lower_tex.c20
3 files changed, 20 insertions, 18 deletions
diff --git a/src/compiler/nir/nir.c b/src/compiler/nir/nir.c
index 6bebb7392f5..13ba989af4b 100644
--- a/src/compiler/nir/nir.c
+++ b/src/compiler/nir/nir.c
@@ -536,6 +536,22 @@ nir_tex_instr_create(nir_shader *shader, unsigned num_srcs)
return instr;
}
+void
+nir_tex_instr_remove_src(nir_tex_instr *tex, unsigned src_idx)
+{
+ assert(src_idx < tex->num_srcs);
+
+ /* First rewrite the source to NIR_SRC_INIT */
+ nir_instr_rewrite_src(&tex->instr, &tex->src[src_idx].src, NIR_SRC_INIT);
+
+ /* Now, move all of the other sources down */
+ for (unsigned i = src_idx + 1; i < tex->num_srcs; i++) {
+ tex->src[i-1].src_type = tex->src[i].src_type;
+ nir_instr_move_src(&tex->instr, &tex->src[i-1].src, &tex->src[i].src);
+ }
+ tex->num_srcs--;
+}
+
nir_phi_instr *
nir_phi_instr_create(nir_shader *shader)
{
diff --git a/src/compiler/nir/nir.h b/src/compiler/nir/nir.h
index ff7c422a6ea..6f85bdb6bb6 100644
--- a/src/compiler/nir/nir.h
+++ b/src/compiler/nir/nir.h
@@ -1329,6 +1329,8 @@ nir_tex_instr_src_index(nir_tex_instr *instr, nir_tex_src_type type)
return -1;
}
+void nir_tex_instr_remove_src(nir_tex_instr *tex, unsigned src_idx);
+
typedef union {
float f32[4];
double f64[4];
diff --git a/src/compiler/nir/nir_lower_tex.c b/src/compiler/nir/nir_lower_tex.c
index b5705985f82..a40575806cb 100644
--- a/src/compiler/nir/nir_lower_tex.c
+++ b/src/compiler/nir/nir_lower_tex.c
@@ -39,22 +39,6 @@
#include "nir_builder.h"
static void
-tex_instr_remove_src(nir_tex_instr *tex, unsigned src_idx)
-{
- assert(src_idx < tex->num_srcs);
-
- /* First rewrite the source to NIR_SRC_INIT */
- nir_instr_rewrite_src(&tex->instr, &tex->src[src_idx].src, NIR_SRC_INIT);
-
- /* Now, move all of the other sources down */
- for (unsigned i = src_idx + 1; i < tex->num_srcs; i++) {
- tex->src[i-1].src_type = tex->src[i].src_type;
- nir_instr_move_src(&tex->instr, &tex->src[i-1].src, &tex->src[i].src);
- }
- tex->num_srcs--;
-}
-
-static void
project_src(nir_builder *b, nir_tex_instr *tex)
{
/* Find the projector in the srcs list, if present. */
@@ -114,7 +98,7 @@ project_src(nir_builder *b, nir_tex_instr *tex)
nir_src_for_ssa(projected));
}
- tex_instr_remove_src(tex, proj_index);
+ nir_tex_instr_remove_src(tex, proj_index);
}
static bool
@@ -159,7 +143,7 @@ lower_offset(nir_builder *b, nir_tex_instr *tex)
nir_instr_rewrite_src(&tex->instr, &tex->src[coord_index].src,
nir_src_for_ssa(offset_coord));
- tex_instr_remove_src(tex, offset_index);
+ nir_tex_instr_remove_src(tex, offset_index);
return true;
}