~mmach/netext73/mesa-ryzen

« back to all changes in this revision

Viewing changes to src/gallium/drivers/r600/sfn/sfn_nir_vectorize_vs_inputs.c

  • Committer: mmach
  • Date: 2023-11-02 21:31:35 UTC
  • Revision ID: netbit73@gmail.com-20231102213135-18d4tzh7tj0uz752
2023-11-02 22:11:57

Show diffs side-by-side

added added

removed removed

Lines of Context:
101
101
   nir_intrinsic_instr *intr1 = nir_instr_as_intrinsic(instr1);
102
102
   nir_intrinsic_instr *intr2 = nir_instr_as_intrinsic(instr2);
103
103
 
104
 
   nir_variable *var1 = nir_deref_instr_get_variable(nir_src_as_deref(intr1->src[0]));
105
 
   nir_variable *var2 = nir_deref_instr_get_variable(nir_src_as_deref(intr2->src[0]));
 
104
   nir_variable *var1 = nir_intrinsic_get_var(intr1, 0);
 
105
   nir_variable *var2 = nir_intrinsic_get_var(intr2, 0);
106
106
 
107
107
   /* We don't handle combining vars of different base types, so skip those */
108
108
   if (glsl_get_base_type(var1->type) != glsl_get_base_type(var2->type))
149
149
   assert(intr->dest.is_ssa);
150
150
 
151
151
   nir_intrinsic_instr *new_intr = nir_intrinsic_instr_create(b->shader, intr->intrinsic);
152
 
   nir_ssa_dest_init(
153
 
      &new_intr->instr, &new_intr->dest, num_comps, intr->dest.ssa.bit_size, NULL);
 
152
   nir_ssa_dest_init(&new_intr->instr, &new_intr->dest, num_comps,
 
153
                     intr->dest.ssa.bit_size);
154
154
   new_intr->num_components = num_comps;
155
155
 
156
156
   nir_deref_instr *deref = nir_build_deref_var(b, var);
185
185
   assert(last->type == nir_instr_type_intrinsic);
186
186
 
187
187
   nir_intrinsic_instr *intr = nir_instr_as_intrinsic(last);
188
 
   nir_variable *var = nir_deref_instr_get_variable(nir_src_as_deref(intr->src[0]));
 
188
   nir_variable *var = nir_intrinsic_get_var(intr, 0);
189
189
   unsigned loc = r600_correct_location(var);
190
190
 
191
191
   nir_variable *new_var;
229
229
   assert(instr->type == nir_instr_type_intrinsic);
230
230
 
231
231
   nir_intrinsic_instr *intr = nir_instr_as_intrinsic(instr);
232
 
   nir_variable *var = nir_deref_instr_get_variable(nir_src_as_deref(intr->src[0]));
 
232
   nir_variable *var = nir_intrinsic_get_var(intr, 0);
233
233
 
234
234
   uint32_t hash = 0;
235
235
 
428
428
static bool
429
429
r600_vectorize_io_impl(nir_function_impl *impl)
430
430
{
431
 
   nir_builder b;
432
 
   nir_builder_init(&b, impl);
 
431
   nir_builder b = nir_builder_create(impl);
433
432
 
434
433
   nir_metadata_require(impl, nir_metadata_dominance);
435
434
 
460
459
   if (shader->info.stage != MESA_SHADER_VERTEX)
461
460
      return false;
462
461
 
463
 
   nir_foreach_function(function, shader)
 
462
   nir_foreach_function_impl(impl, shader)
464
463
   {
465
 
      if (function->impl)
466
 
         progress |= r600_vectorize_io_impl(function->impl);
 
464
      progress |= r600_vectorize_io_impl(impl);
467
465
   }
468
466
 
469
467
   return progress;