if (*num_components_queued != 0) {
(*num_components_queued)--;
- c->num_inputs++;
return vir_MOV(c, vpm);
}
*num_components_queued = num_components - 1;
*remaining -= num_components;
- c->num_inputs++;
return vir_MOV(c, vpm);
}
uint32_t ubo_size;
uint32_t spill_size;
- uint8_t num_inputs;
uint8_t threads;
/* For threads > 1, whether the program should be dispatched in the
uint32_t centroid_flags[((V3D_MAX_FS_INPUTS - 1) / 24) + 1];
+ uint8_t num_inputs;
bool writes_z;
bool disable_ez;
bool uses_center_w;
v3d_vs_set_prog_data(struct v3d_compile *c,
struct v3d_vs_prog_data *prog_data)
{
- prog_data->base.num_inputs = c->num_inputs;
-
/* The vertex data gets format converted by the VPM so that
* each attribute channel takes up a VPM column. Precompute
* the sizes for the shader record.
v3d_set_fs_prog_data_inputs(struct v3d_compile *c,
struct v3d_fs_prog_data *prog_data)
{
- prog_data->base.num_inputs = c->num_inputs;
+ prog_data->num_inputs = c->num_inputs;
memcpy(prog_data->input_slots, c->input_slots,
c->num_inputs * sizeof(*c->input_slots));
uint32_t offset = (inst->src[i].index % 4);
if (c->vattr_sizes[attr] == offset) {
- c->num_inputs--;
c->vattr_sizes[attr]--;
}
}
memset(key, 0, sizeof(*key));
v3d_setup_shared_key(v3d, &key->base, &v3d->tex[PIPE_SHADER_VERTEX]);
key->base.shader_state = v3d->prog.bind_vs;
- key->num_fs_inputs = v3d->prog.fs->prog_data.fs->base.num_inputs;
+ key->num_fs_inputs = v3d->prog.fs->prog_data.fs->num_inputs;
STATIC_ASSERT(sizeof(key->fs_inputs) ==
sizeof(v3d->prog.fs->prog_data.fs->input_slots));
memcpy(key->fs_inputs, v3d->prog.fs->prog_data.fs->input_slots,
v3d->prog.fs->prog_data.fs->uses_center_w;
shader.number_of_varyings_in_fragment_shader =
- v3d->prog.fs->prog_data.base->num_inputs;
+ v3d->prog.fs->prog_data.fs->num_inputs;
shader.coordinate_shader_propagate_nans = true;
shader.vertex_shader_propagate_nans = true;