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:
Eric Anholt
2019-02-14 21:01:05 -08:00
parent 581eba072d
commit 5a84d46896
6 changed files with 4 additions and 9 deletions

View File

@@ -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);
}

View File

@@ -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;

View File

@@ -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));

View File

@@ -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]--;
}
}

View File

@@ -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,

View File

@@ -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;