Lines Matching defs:instr
37 gather_intrinsic_load_input_info(const nir_shader *nir, const nir_intrinsic_instr *instr,
42 unsigned idx = nir_intrinsic_io_semantics(instr).location;
43 unsigned component = nir_intrinsic_component(instr);
44 unsigned mask = nir_ssa_def_components_read(&instr->dest.ssa);
55 gather_intrinsic_store_output_info(const nir_shader *nir, const nir_intrinsic_instr *instr,
58 unsigned idx = nir_intrinsic_base(instr);
59 unsigned num_slots = nir_intrinsic_io_semantics(instr).num_slots;
60 unsigned component = nir_intrinsic_component(instr);
61 unsigned write_mask = nir_intrinsic_write_mask(instr);
64 if (instr->src[0].ssa->bit_size == 64)
89 gather_push_constant_info(const nir_shader *nir, const nir_intrinsic_instr *instr,
94 if (nir_src_is_const(instr->src[0]) && instr->dest.ssa.bit_size >= 32) {
95 uint32_t start = (nir_intrinsic_base(instr) + nir_src_as_uint(instr->src[0])) / 4u;
96 uint32_t size = instr->num_components * (instr->dest.ssa.bit_size / 32u);
108 gather_intrinsic_info(const nir_shader *nir, const nir_intrinsic_instr *instr,
111 switch (instr->intrinsic) {
117 enum glsl_interp_mode mode = nir_intrinsic_interp_mode(instr);
121 if (instr->intrinsic == nir_intrinsic_load_barycentric_pixel ||
122 instr->intrinsic == nir_intrinsic_load_barycentric_at_sample ||
123 instr->intrinsic == nir_intrinsic_load_barycentric_at_offset)
125 else if (instr->intrinsic == nir_intrinsic_load_barycentric_centroid)
127 else if (instr->intrinsic == nir_intrinsic_load_barycentric_sample)
131 if (instr->intrinsic == nir_intrinsic_load_barycentric_pixel ||
132 instr->intrinsic == nir_intrinsic_load_barycentric_at_sample ||
133 instr->intrinsic == nir_intrinsic_load_barycentric_at_offset)
135 else if (instr->intrinsic == nir_intrinsic_load_barycentric_centroid)
137 else if (instr->intrinsic == nir_intrinsic_load_barycentric_sample)
143 if (instr->intrinsic == nir_intrinsic_load_barycentric_at_sample)
149 unsigned mask = nir_ssa_def_components_read(&instr->dest.ssa);
153 if (instr->intrinsic == nir_intrinsic_load_workgroup_id)
161 info->ps.reads_frag_coord_mask |= nir_ssa_def_components_read(&instr->dest.ssa);
164 info->ps.reads_sample_pos_mask |= nir_ssa_def_components_read(&instr->dest.ssa);
167 gather_push_constant_info(nir, instr, info);
170 info->desc_set_used_mask |= (1u << nir_intrinsic_desc_set(instr));
190 nir_deref_instr_get_variable(nir_instr_as_deref(instr->src[0].ssa->parent_instr));
195 gather_intrinsic_load_input_info(nir, instr, info);
198 gather_intrinsic_store_output_info(nir, instr, info);
212 gather_tex_info(const nir_shader *nir, const nir_tex_instr *instr, struct radv_shader_info *info)
214 for (unsigned i = 0; i < instr->num_srcs; i++) {
215 switch (instr->src[i].src_type) {
217 mark_sampler_desc(nir_deref_instr_get_variable(nir_src_as_deref(instr->src[i].src)), info);
220 mark_sampler_desc(nir_deref_instr_get_variable(nir_src_as_deref(instr->src[i].src)), info);
231 nir_foreach_instr (instr, block) {
232 switch (instr->type) {
234 gather_intrinsic_info(nir, nir_instr_as_intrinsic(instr), info);
237 gather_tex_info(nir, nir_instr_as_tex(instr), info);