v3d: Stop tracking num_inputs for VPM loads.
It's unused in the VS (since we need vattr_sizes[] anyway), so move it to FS prog data.
This commit is contained in:
@@ -1481,7 +1481,6 @@ ntq_emit_vpm_read(struct v3d_compile *c,
|
||||
|
||||
if (*num_components_queued != 0) {
|
||||
(*num_components_queued)--;
|
||||
c->num_inputs++;
|
||||
return vir_MOV(c, vpm);
|
||||
}
|
||||
|
||||
@@ -1491,7 +1490,6 @@ ntq_emit_vpm_read(struct v3d_compile *c,
|
||||
|
||||
*num_components_queued = num_components - 1;
|
||||
*remaining -= num_components;
|
||||
c->num_inputs++;
|
||||
|
||||
return vir_MOV(c, vpm);
|
||||
}
|
||||
|
@@ -675,7 +675,6 @@ struct v3d_prog_data {
|
||||
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
|
||||
@@ -723,6 +722,7 @@ struct v3d_fs_prog_data {
|
||||
|
||||
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;
|
||||
|
@@ -665,8 +665,6 @@ static void
|
||||
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.
|
||||
@@ -722,7 +720,7 @@ static void
|
||||
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));
|
||||
|
||||
|
@@ -194,7 +194,6 @@ vir_opt_dead_code(struct v3d_compile *c)
|
||||
uint32_t offset = (inst->src[i].index % 4);
|
||||
|
||||
if (c->vattr_sizes[attr] == offset) {
|
||||
c->num_inputs--;
|
||||
c->vattr_sizes[attr]--;
|
||||
}
|
||||
}
|
||||
|
@@ -614,7 +614,7 @@ v3d_update_compiled_vs(struct v3d_context *v3d, uint8_t prim_mode)
|
||||
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,
|
||||
|
@@ -215,7 +215,7 @@ v3d_emit_gl_shader_state(struct v3d_context *v3d,
|
||||
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;
|
||||
|
Reference in New Issue
Block a user