Lines Matching defs:consumer
188 nir_remove_unused_varyings(nir_shader *producer, nir_shader *consumer)
191 assert(consumer->info.stage != MESA_SHADER_VERTEX);
211 nir_foreach_shader_in_variable(var, consumer) {
218 get_variable_io_mask(var, consumer->info.stage);
221 get_variable_io_mask(var, consumer->info.stage);
237 progress = nir_remove_unused_io_vars(consumer, nir_var_shader_in, written,
536 gather_varying_component_info(nir_shader *producer, nir_shader *consumer,
576 nir_function_impl *impl = nir_shader_get_entrypoint(consumer);
615 if (nir_is_arrayed_io(in_var, consumer->info.stage) ||
856 compact_components(nir_shader *producer, nir_shader *consumer,
865 gather_varying_component_info(producer, consumer, &varying_comp_info,
873 nir_pack_varying_options options = consumer->options->pack_varying_options;
922 remap_slots_and_components(consumer, nir_var_shader_in, remap,
923 &consumer->info.inputs_read, &zero,
924 &consumer->info.patch_inputs_read, &zero32);
943 nir_compact_varyings(nir_shader *producer, nir_shader *consumer,
947 assert(consumer->info.stage != MESA_SHADER_VERTEX);
955 get_unmoveable_components_masks(consumer, nir_var_shader_in,
957 consumer->info.stage,
960 compact_components(producer, consumer, assigned_comps,
965 * Mark XFB varyings as always_active_io in the consumer so the linking opts
969 nir_link_xfb_varyings(nir_shader *producer, nir_shader *consumer)
973 nir_foreach_shader_in_variable(var, consumer) {
1005 get_matching_input_var(nir_shader *consumer, nir_variable *out_var)
1007 nir_foreach_shader_in_variable(var, consumer) {
1172 get_uniform_var_in_consumer(nir_shader *consumer,
1175 /* Find if uniform already exists in consumer. */
1177 nir_foreach_uniform_variable(v, consumer) {
1186 new_var = nir_variable_clone(var_in_producer, consumer);
1187 nir_shader_add_variable(consumer, new_var);
1315 nir_link_precision(unsigned producer, unsigned consumer, bool fs)
1318 return consumer;
1319 else if (consumer == GLSL_PRECISION_NONE)
1322 return fs ? MAX2(producer, consumer) : consumer;
1326 nir_link_varying_precision(nir_shader *producer, nir_shader *consumer)
1328 bool frag = consumer->info.stage == MESA_SHADER_FRAGMENT;
1335 nir_variable *consumer_var = nir_find_variable_with_location(consumer,
1353 nir_link_opt_varyings(nir_shader *producer, nir_shader *consumer)
1356 if (consumer->info.stage != MESA_SHADER_FRAGMENT ||
1390 progress |= replace_varying_input_by_constant_load(consumer, intr);
1396 if (consumer->options->lower_varying_from_uniform) {
1397 progress |= replace_varying_input_by_uniform_load(consumer, intr,
1401 nir_variable *in_var = get_matching_input_var(consumer, out_var);
1405 if (!consumer->options->no_integers &&
1415 progress |= replace_duplicate_input(consumer,
1419 nir_variable *in_var = get_matching_input_var(consumer, out_var);
1648 nir_assign_linked_io_var_locations(nir_shader *producer, nir_shader *consumer)
1651 assert(consumer);
1669 nir_foreach_shader_in_variable(variable, consumer) {
1670 uint64_t mask = get_linked_variable_io_mask(variable, consumer->info.stage);
1691 nir_foreach_shader_in_variable(variable, consumer) {