X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=src%2Fcompiler%2Fnir%2Fnir_lower_tex.c;h=66e231762f898879614ef25a025b9c18058c77e8;hb=134a5ad31c8d39219f241f7a7cad246a6864c74b;hp=c67a8eda3f23977532881f6a1957efa1701ca2fc;hpb=da3389a331b07d3e58aa9ad8df6864cc04f877e4;p=mesa.git diff --git a/src/compiler/nir/nir_lower_tex.c b/src/compiler/nir/nir_lower_tex.c index c67a8eda3f2..66e231762f8 100644 --- a/src/compiler/nir/nir_lower_tex.c +++ b/src/compiler/nir/nir_lower_tex.c @@ -163,11 +163,9 @@ get_texture_size(nir_builder *b, nir_tex_instr *tex) txs->is_shadow = tex->is_shadow; txs->is_new_style_shadow = tex->is_new_style_shadow; txs->texture_index = tex->texture_index; - txs->texture = (nir_deref_var *) - nir_copy_deref(txs, &tex->texture->deref); + txs->texture = nir_deref_var_clone(tex->texture, txs); txs->sampler_index = tex->sampler_index; - txs->sampler = (nir_deref_var *) - nir_copy_deref(txs, &tex->sampler->deref); + txs->sampler = nir_deref_var_clone(tex->sampler, txs); txs->dest_type = nir_type_int; /* only single src, the lod: */ @@ -221,11 +219,9 @@ sample_plane(nir_builder *b, nir_tex_instr *tex, int plane) plane_tex->coord_components = 2; plane_tex->texture_index = tex->texture_index; - plane_tex->texture = (nir_deref_var *) - nir_copy_deref(plane_tex, &tex->texture->deref); + plane_tex->texture = nir_deref_var_clone(tex->texture, plane_tex); plane_tex->sampler_index = tex->sampler_index; - plane_tex->sampler = (nir_deref_var *) - nir_copy_deref(plane_tex, &tex->sampler->deref); + plane_tex->sampler = nir_deref_var_clone(tex->sampler, plane_tex); nir_ssa_dest_init(&plane_tex->instr, &plane_tex->dest, 4, 32, NULL); @@ -325,10 +321,8 @@ replace_gradient_with_lod(nir_builder *b, nir_ssa_def *lod, nir_tex_instr *tex) txl->is_shadow = tex->is_shadow; txl->is_new_style_shadow = tex->is_new_style_shadow; txl->sampler_index = tex->sampler_index; - txl->texture = (nir_deref_var *) - nir_copy_deref(txl, &tex->texture->deref); - txl->sampler = (nir_deref_var *) - nir_copy_deref(txl, &tex->sampler->deref); + txl->texture = nir_deref_var_clone(tex->texture, txl); + txl->sampler = nir_deref_var_clone(tex->sampler, txl); txl->coord_components = tex->coord_components; nir_ssa_dest_init(&txl->instr, &txl->dest, 4, 32, NULL); @@ -349,7 +343,8 @@ replace_gradient_with_lod(nir_builder *b, nir_ssa_def *lod, nir_tex_instr *tex) assert(src_num == num_srcs); - nir_ssa_dest_init(&txl->instr, &txl->dest, 4, 32, NULL); + nir_ssa_dest_init(&txl->instr, &txl->dest, + tex->dest.ssa.num_components, 32, NULL); nir_builder_instr_insert(b, &txl->instr); nir_ssa_def_rewrite_uses(&tex->dest.ssa, nir_src_for_ssa(&txl->dest.ssa));