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