Lines Matching refs:producer
124 * progress = nir_remove_unused_io_vars(producer, nir_var_shader_out,
188 nir_remove_unused_varyings(nir_shader *producer, nir_shader *consumer)
190 assert(producer->info.stage != MESA_SHADER_FRAGMENT);
196 nir_foreach_shader_out_variable(var, producer) {
203 get_variable_io_mask(var, producer->info.stage);
206 get_variable_io_mask(var, producer->info.stage);
230 if (producer->info.stage == MESA_SHADER_TESS_CTRL)
231 tcs_add_output_reads(producer, read, patches_read);
234 progress = nir_remove_unused_io_vars(producer, nir_var_shader_out, read,
536 gather_varying_component_info(nir_shader *producer, nir_shader *consumer,
547 nir_foreach_shader_out_variable(var, producer) {
558 if (nir_is_arrayed_io(var, producer->info.stage) || var->data.per_view) {
628 vc_info->is_mediump = !producer->options->linker_ignore_precision &&
641 if (producer->info.stage == MESA_SHADER_TESS_CTRL) {
642 impl = nir_shader_get_entrypoint(producer);
682 if (nir_is_arrayed_io(out_var, producer->info.stage)) {
694 vc_info->is_mediump = !producer->options->linker_ignore_precision &&
856 compact_components(nir_shader *producer, nir_shader *consumer,
865 gather_varying_component_info(producer, consumer, &varying_comp_info,
925 remap_slots_and_components(producer, nir_var_shader_out, remap,
926 &producer->info.outputs_written,
927 &producer->info.outputs_read,
928 &producer->info.patch_outputs_written,
929 &producer->info.patch_outputs_read);
943 nir_compact_varyings(nir_shader *producer, nir_shader *consumer,
946 assert(producer->info.stage != MESA_SHADER_FRAGMENT);
951 get_unmoveable_components_masks(producer, nir_var_shader_out,
953 producer->info.stage,
960 compact_components(producer, consumer, assigned_comps,
969 nir_link_xfb_varyings(nir_shader *producer, nir_shader *consumer)
982 nir_foreach_shader_out_variable(var, producer) {
1315 nir_link_precision(unsigned producer, unsigned consumer, bool fs)
1317 if (producer == GLSL_PRECISION_NONE)
1320 return producer;
1322 return fs ? MAX2(producer, consumer) : consumer;
1326 nir_link_varying_precision(nir_shader *producer, nir_shader *consumer)
1330 nir_foreach_shader_out_variable(producer_var, producer) {
1353 nir_link_opt_varyings(nir_shader *producer, nir_shader *consumer)
1357 (producer->info.stage != MESA_SHADER_VERTEX &&
1358 producer->info.stage != MESA_SHADER_TESS_EVAL))
1363 nir_function_impl *impl = nir_shader_get_entrypoint(producer);
1367 /* If we find a store in the last block of the producer we can be sure this
1648 nir_assign_linked_io_var_locations(nir_shader *producer, nir_shader *consumer)
1650 assert(producer);
1656 nir_foreach_shader_out_variable(variable, producer) {
1657 uint64_t mask = get_linked_variable_io_mask(variable, producer->info.stage);
1682 nir_foreach_shader_out_variable(variable, producer) {