anv/apply_pipeline_layout: Use nir_tex_instr_remove_src
authorJason Ekstrand <jason.ekstrand@intel.com>
Mon, 16 Oct 2017 15:50:44 +0000 (08:50 -0700)
committerJason Ekstrand <jason.ekstrand@intel.com>
Tue, 17 Oct 2017 14:36:00 +0000 (07:36 -0700)
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
src/intel/vulkan/anv_nir_apply_pipeline_layout.c

index 1c8651333b31ea6159b9be99a4b99f9d3a59d70d..3ca2b04049ac511b956f3f541230f318fdcb690b 100644 (file)
@@ -192,10 +192,10 @@ has_tex_src_plane(nir_tex_instr *tex)
 static uint32_t
 extract_tex_src_plane(nir_tex_instr *tex)
 {
-   nir_tex_src *new_srcs = rzalloc_array(tex, nir_tex_src, tex->num_srcs - 1);
    unsigned plane = 0;
 
-   for (unsigned i = 0, w = 0; i < tex->num_srcs; i++) {
+   int plane_src_idx = -1;
+   for (unsigned i = 0; i < tex->num_srcs; i++) {
       if (tex->src[i].src_type == nir_tex_src_plane) {
          nir_const_value *const_plane =
             nir_src_as_const_value(tex->src[i].src);
@@ -204,19 +204,12 @@ extract_tex_src_plane(nir_tex_instr *tex)
           * constants. */
          assert(const_plane);
          plane = const_plane->u32[0];
-
-         /* Remove the source from the instruction */
-         nir_instr_rewrite_src(&tex->instr, &tex->src[i].src, NIR_SRC_INIT);
-      } else {
-         new_srcs[w].src_type = tex->src[i].src_type;
-         nir_instr_move_src(&tex->instr, &new_srcs[w].src, &tex->src[i].src);
-         w++;
+         plane_src_idx = i;
       }
    }
 
-   ralloc_free(tex->src);
-   tex->src = new_srcs;
-   tex->num_srcs--;
+   assert(plane_src_idx >= 0);
+   nir_tex_instr_remove_src(tex, plane_src_idx);
 
    return plane;
 }