Home | History | Annotate | Download | only in nir

Lines Matching full:shader

28 set_io_mask(nir_shader *shader, nir_variable *var, int offset, int len)
52 shader->info->patch_inputs_read |= bitfield;
54 shader->info->inputs_read |= bitfield;
56 if (shader->stage == MESA_SHADER_FRAGMENT) {
57 shader->info->fs.uses_sample_qualifier |= var->data.sample;
62 shader->info->patch_outputs_written |= bitfield;
64 shader->info->outputs_written |= bitfield;
68 shader->info->outputs_read |= bitfield;
75 * represents a shader input or output.
78 mark_whole_variable(nir_shader *shader, nir_variable *var)
82 if (nir_is_per_vertex_io(var, shader->stage)) {
91 set_io_mask(shader, var, 0, slots);
121 * that the variable represents a shader input or output.
127 try_mask_partial_io(nir_shader *shader, nir_deref_var *deref)
132 if (nir_is_per_vertex_io(var, shader->stage)) {
189 set_io_mask(shader, var, offset, elem_width);
194 gather_intrinsic_info(nir_intrinsic_instr *instr, nir_shader *shader)
199 assert(shader->stage == MESA_SHADER_FRAGMENT);
200 shader->info->fs.uses_discard = true;
212 if (!try_mask_partial_io(shader, instr->variables[0]))
213 mark_whole_variable(shader, var);
217 if (shader->stage == MESA_SHADER_VERTEX &&
222 shader->info->double_inputs_read |= BITFIELD64_BIT(idx);
248 shader->info->system_values_read |=
254 assert(shader->stage == MESA_SHADER_GEOMETRY);
255 shader->info->gs.uses_end_primitive = 1;
264 gather_tex_info(nir_tex_instr *instr, nir_shader *shader)
267 shader->info->uses_texture_gather = true;
271 gather_info_block(nir_block *block, nir_shader *shader)
276 gather_intrinsic_info(nir_instr_as_intrinsic(instr), shader);
279 gather_tex_info(nir_instr_as_tex(instr), shader);
291 nir_shader_gather_info(nir_shader *shader, nir_function_impl *entrypoint)
293 shader->info->num_textures = 0;
294 shader->info->num_images = 0;
295 nir_foreach_variable(var, &shader->uniforms) {
304 shader->info->num_images += count;
306 shader->info->num_textures += count;
310 shader->info->inputs_read = 0;
311 shader->info->outputs_written = 0;
312 shader->info->outputs_read = 0;
313 shader->info->double_inputs_read = 0;
314 shader->info->patch_inputs_read = 0;
315 shader->info->patch_outputs_written = 0;
316 shader->info->system_values_read = 0;
317 if (shader->stage == MESA_SHADER_FRAGMENT) {
318 shader->info->fs.uses_sample_qualifier = false;
321 gather_info_block(block, shader);