Lines Matching refs:data
41 if (var->data.location < 0)
44 unsigned location = var->data.patch ?
45 var->data.location - VARYING_SLOT_PATCH0 : var->data.location;
47 assert(var->data.mode == nir_var_shader_in ||
48 var->data.mode == nir_var_shader_out);
49 assert(var->data.location >= 0);
53 if (nir_is_arrayed_io(var, stage) || var->data.per_view) {
65 return var->data.location == VARYING_SLOT_TESS_LEVEL_INNER ||
66 var->data.location == VARYING_SLOT_TESS_LEVEL_OUTER ||
67 var->data.location == VARYING_SLOT_BOUNDING_BOX0 ||
68 var->data.location == VARYING_SLOT_BOUNDING_BOX1;
102 if (var->data.patch) {
106 patches_read[var->data.location_frac + i] |=
109 read[var->data.location_frac + i] |=
145 if (var->data.patch)
150 if (var->data.location < VARYING_SLOT_VAR0 && var->data.location >= 0)
151 if (shader->info.stage != MESA_SHADER_MESH || var->data.location != VARYING_SLOT_PRIMITIVE_ID)
154 if (var->data.always_active_io)
157 if (var->data.explicit_xfb_buffer)
160 uint64_t other_stage = used[var->data.location_frac];
165 (shader->info.outputs_read & BITFIELD64_BIT(var->data.location)))
166 var->data.mode = nir_var_mem_shared;
168 var->data.mode = nir_var_shader_temp;
169 var->data.location = 0;
198 if (var->data.patch) {
202 patches_written[var->data.location_frac + i] |=
205 written[var->data.location_frac + i] |=
213 if (var->data.patch) {
217 patches_read[var->data.location_frac + i] |=
220 read[var->data.location_frac + i] |=
226 /* Each TCS invocation can read data written by other TCS invocations,
247 if (var->data.per_primitive)
251 else if (var->data.interpolation != INTERP_MODE_NONE)
252 return var->data.interpolation;
266 if (var->data.sample)
268 else if (var->data.centroid)
308 assert(var->data.location >= 0);
311 if (var->data.location >= VARYING_SLOT_VAR0 &&
312 var->data.location - VARYING_SLOT_VAR0 < MAX_VARYINGS_INCL_PATCH) {
315 if (nir_is_arrayed_io(var, stage) || var->data.per_view) {
324 !var->data.always_active_io)
327 unsigned location = var->data.location - VARYING_SLOT_VAR0;
342 unsigned num_comps = 4 - var->data.location_frac;
346 assert(var->data.location_frac == 0 ||
347 var->data.location_frac == 2);
351 ((1 << num_comps) - 1) << var->data.location_frac;
355 ((1 << (elements * dmul)) - 1) << var->data.location_frac;
364 var->data.precision == GLSL_PRECISION_MEDIUM ||
365 var->data.precision == GLSL_PRECISION_LOW;
366 comps[location + i].is_per_primitive = var->data.per_primitive;
382 unsigned loc_offset = var->data.patch ? VARYING_SLOT_PATCH0 : 0;
384 slots_used[var->data.patch ? 1 : 0] |= slots_used_mask &
385 BITFIELD64_RANGE(var->data.location - loc_offset, num_slots);
391 unsigned loc_offset = var->data.patch ? VARYING_SLOT_PATCH0 : 0;
393 slots_used[var->data.patch ? 1 : 0] |=
394 BITFIELD64_BIT(var->data.location - loc_offset + offset);
411 assert(var->data.location >= 0);
414 if (var->data.location >= VARYING_SLOT_VAR0 &&
415 var->data.location - VARYING_SLOT_VAR0 < MAX_VARYINGS_INCL_PATCH) {
418 if (nir_is_arrayed_io(var, stage) || var->data.per_view) {
427 unsigned location = var->data.location - VARYING_SLOT_VAR0;
428 struct varying_loc *new_loc = &remap[location][var->data.location_frac];
430 unsigned loc_offset = var->data.patch ? VARYING_SLOT_PATCH0 : 0;
431 uint64_t used = var->data.patch ? *p_slots_used : *slots_used;
433 var->data.patch ? *p_out_slots_read : *out_slots_read;
435 BITFIELD64_RANGE(var->data.location - loc_offset, num_slots);
444 var->data.location = new_loc->location;
445 var->data.location_frac = new_loc->component;
448 if (var->data.always_active_io) {
528 const struct nir_variable_data *const data1 = &comp1->var->data;
529 const struct nir_variable_data *const data2 = &comp2->var->data;
550 if (var->data.location >= VARYING_SLOT_VAR0 &&
551 var->data.location - VARYING_SLOT_VAR0 < MAX_VARYINGS_INCL_PATCH) {
554 if (var->data.always_active_io)
558 if (nir_is_arrayed_io(var, producer->info.stage) || var->data.per_view) {
566 unsigned loc = var->data.location - VARYING_SLOT_VAR0;
567 store_varying_info_idx[loc][var->data.location_frac] =
598 if (in_var->data.location < VARYING_SLOT_VAR0)
601 unsigned location = in_var->data.location - VARYING_SLOT_VAR0;
606 store_varying_info_idx[location][in_var->data.location_frac];
616 in_var->data.per_view) {
626 vc_info->is_patch = in_var->data.patch;
627 vc_info->is_per_primitive = in_var->data.per_primitive;
629 (in_var->data.precision == GLSL_PRECISION_MEDIUM ||
630 in_var->data.precision == GLSL_PRECISION_LOW);
659 if (out_var->data.location < VARYING_SLOT_VAR0)
662 unsigned location = out_var->data.location - VARYING_SLOT_VAR0;
667 store_varying_info_idx[location][out_var->data.location_frac];
692 vc_info->is_patch = out_var->data.patch;
693 vc_info->is_per_primitive = out_var->data.per_primitive;
695 (out_var->data.precision == GLSL_PRECISION_MEDIUM ||
696 out_var->data.precision == GLSL_PRECISION_LOW);
829 unsigned location = info->var->data.location - VARYING_SLOT_VAR0;
840 remap[location][info->var->data.location_frac].component = tmp_comp++;
841 remap[location][info->var->data.location_frac].location =
974 if (var->data.location >= VARYING_SLOT_VAR0 &&
975 var->data.location - VARYING_SLOT_VAR0 < MAX_VARYING) {
977 unsigned location = var->data.location - VARYING_SLOT_VAR0;
978 input_vars[location][var->data.location_frac] = var;
983 if (var->data.location >= VARYING_SLOT_VAR0 &&
984 var->data.location - VARYING_SLOT_VAR0 < MAX_VARYING) {
986 if (!var->data.always_active_io)
989 unsigned location = var->data.location - VARYING_SLOT_VAR0;
990 if (input_vars[location][var->data.location_frac]) {
991 input_vars[location][var->data.location_frac]->data.always_active_io = true;
1000 return in_var->data.location == out_var->data.location &&
1001 in_var->data.location_frac == out_var->data.location_frac;
1033 if (out_var->data.location < VARYING_SLOT_VAR0 ||
1034 out_var->data.location - VARYING_SLOT_VAR0 >= MAX_VARYING)
1121 in_var->data.interpolation != input_var->data.interpolation ||
1332 if (producer_var->data.location < 0)
1336 nir_var_shader_in, producer_var->data.location);
1343 unsigned precision_1 = producer_var->data.precision;
1344 unsigned precision_2 = consumer_var->data.precision;
1348 producer_var->data.precision = consumer_var->data.precision = minimum;
1406 in_var && in_var->data.interpolation <= INTERP_MODE_NOPERSPECTIVE) {
1407 in_var->data.interpolation = INTERP_MODE_FLAT;
1408 out_var->data.interpolation = INTERP_MODE_FLAT;
1416 (nir_variable *) entry->data,
1445 if (new_var->data.per_primitive < var->data.per_primitive ||
1446 (new_var->data.per_primitive == var->data.per_primitive &&
1447 (var->data.location > new_var->data.location ||
1448 (var->data.location == new_var->data.location &&
1449 var->data.location_frac > new_var->data.location_frac)))) {
1490 if (var->data.mode == nir_var_shader_in && stage == MESA_SHADER_VERTEX)
1492 else if (var->data.mode == nir_var_shader_out &&
1499 if (var->data.compact) {
1504 if (last_partial && var->data.location_frac == 0) {
1509 assert(!var->data.per_view);
1512 unsigned start = 4 * location + var->data.location_frac;
1528 * when counting user-facing slots (var->data.location), but *not*
1529 * with driver slots (var->data.driver_location). That is, each user
1533 if (var->data.per_view) {
1546 if (var->data.location >= base) {
1547 unsigned glsl_location = var->data.location - base;
1550 if (processed_locs[var->data.index] &
1554 processed_locs[var->data.index] |=
1564 assert(!var->data.per_view);
1565 unsigned driver_location = assigned_locations[var->data.location];
1566 var->data.driver_location = driver_location;
1577 assert(last_loc <= var->data.location ||
1578 last_per_prim != var->data.per_primitive);
1579 last_loc = var->data.location;
1580 last_per_prim = var->data.per_primitive;
1586 assigned_locations[var->data.location + i] = location;
1594 assigned_locations[var->data.location + i] = location + i;
1597 var->data.driver_location = location;
1638 if (variable->data.compact) {
1639 unsigned component_count = variable->data.location_frac + glsl_get_length(type);
1658 uint64_t loc = get_linked_variable_location(variable->data.location, variable->data.patch);
1660 if (variable->data.patch)
1671 uint64_t loc = get_linked_variable_location(variable->data.location, variable->data.patch);
1673 if (variable->data.patch)
1683 uint64_t loc = get_linked_variable_location(variable->data.location, variable->data.patch);
1685 if (variable->data.patch)
1686 variable->data.driver_location = util_bitcount64(patch_io_mask & u_bit_consecutive64(0, loc));
1688 variable->data.driver_location = util_bitcount64(io_mask & u_bit_consecutive64(0, loc));
1692 uint64_t loc = get_linked_variable_location(variable->data.location, variable->data.patch);
1694 if (variable->data.patch)
1695 variable->data.driver_location = util_bitcount64(patch_io_mask & u_bit_consecutive64(0, loc));
1697 variable->data.driver_location = util_bitcount64(io_mask & u_bit_consecutive64(0, loc));