aboutsummaryrefslogtreecommitdiff
path: root/mesalib/src/glsl/nir/nir_lower_tex_projector.c
diff options
context:
space:
mode:
Diffstat (limited to 'mesalib/src/glsl/nir/nir_lower_tex_projector.c')
-rw-r--r--mesalib/src/glsl/nir/nir_lower_tex_projector.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/mesalib/src/glsl/nir/nir_lower_tex_projector.c b/mesalib/src/glsl/nir/nir_lower_tex_projector.c
index 6b0e9c340..357131cd7 100644
--- a/mesalib/src/glsl/nir/nir_lower_tex_projector.c
+++ b/mesalib/src/glsl/nir/nir_lower_tex_projector.c
@@ -109,12 +109,12 @@ nir_lower_tex_projector_block(nir_block *block, void *void_state)
/* Now move the later tex sources down the array so that the projector
* disappears.
*/
- nir_src dead;
- memset(&dead, 0, sizeof dead);
- nir_instr_rewrite_src(&tex->instr, &tex->src[proj_index].src, dead);
- memmove(&tex->src[proj_index],
- &tex->src[proj_index + 1],
- (tex->num_srcs - proj_index) * sizeof(*tex->src));
+ nir_instr_rewrite_src(&tex->instr, &tex->src[proj_index].src,
+ NIR_SRC_INIT);
+ for (int i = proj_index + 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--;
}