aboutsummaryrefslogtreecommitdiffstats
path: root/src/mesa/drivers/dri/i965/brw_vs.c
diff options
context:
space:
mode:
authorFrancisco Jerez <[email protected]>2014-02-19 15:14:02 +0100
committerFrancisco Jerez <[email protected]>2014-02-19 16:27:22 +0100
commitae8b066da5862b4cfc510b3a9a0e1273f9f6edd4 (patch)
tree700ad532f65cbba9e8e76710e0c27b44f40528dc /src/mesa/drivers/dri/i965/brw_vs.c
parent7f00c5f1a3e0db20a89cfedefd53cbe817fec9e3 (diff)
i965: Move up duplicated fields from stage-specific prog_data to brw_stage_prog_data.
There doesn't seem to be any reason for nr_params, nr_pull_params, param, and pull_param to be duplicated in the stage-specific subclasses of brw_stage_prog_data. Moving their definition to the common base class will allow some code sharing in a future commit, the removal of brw_vec4_prog_data_compare and brw_*_prog_data_free, and the simplification of the stage-specific brw_*_prog_data_compare. Reviewed-by: Paul Berry <[email protected]>
Diffstat (limited to 'src/mesa/drivers/dri/i965/brw_vs.c')
-rw-r--r--src/mesa/drivers/dri/i965/brw_vs.c20
1 files changed, 6 insertions, 14 deletions
diff --git a/src/mesa/drivers/dri/i965/brw_vs.c b/src/mesa/drivers/dri/i965/brw_vs.c
index 092d53af3f5..3e319a650b8 100644
--- a/src/mesa/drivers/dri/i965/brw_vs.c
+++ b/src/mesa/drivers/dri/i965/brw_vs.c
@@ -182,12 +182,12 @@ brw_vs_prog_data_compare(const void *in_a, const void *in_b)
const struct brw_vs_prog_data *a = in_a;
const struct brw_vs_prog_data *b = in_b;
- /* Compare the base vec4 structure. */
- if (!brw_vec4_prog_data_compare(&a->base, &b->base))
+ /* Compare the base structure. */
+ if (!brw_stage_prog_data_compare(&a->base.base, &b->base.base))
return false;
/* Compare the rest of the struct. */
- const unsigned offset = sizeof(struct brw_vec4_prog_data);
+ const unsigned offset = sizeof(struct brw_stage_prog_data);
if (memcmp(((char *) a) + offset, ((char *) b) + offset,
sizeof(struct brw_vs_prog_data) - offset)) {
return false;
@@ -206,6 +206,7 @@ do_vs_prog(struct brw_context *brw,
const GLuint *program;
struct brw_vs_compile c;
struct brw_vs_prog_data prog_data;
+ struct brw_stage_prog_data *stage_prog_data = &prog_data.base.base;
void *mem_ctx;
int i;
struct gl_shader *vs = NULL;
@@ -241,8 +242,8 @@ do_vs_prog(struct brw_context *brw,
*/
param_count += c.key.base.nr_userclip_plane_consts * 4;
- prog_data.base.param = rzalloc_array(NULL, const float *, param_count);
- prog_data.base.pull_param = rzalloc_array(NULL, const float *, param_count);
+ stage_prog_data->param = rzalloc_array(NULL, const float *, param_count);
+ stage_prog_data->pull_param = rzalloc_array(NULL, const float *, param_count);
GLbitfield64 outputs_written = vp->program.Base.OutputsWritten;
prog_data.inputs_read = vp->program.Base.InputsRead;
@@ -545,12 +546,3 @@ brw_vs_precompile(struct gl_context *ctx, struct gl_shader_program *prog)
return success;
}
-
-
-void
-brw_vs_prog_data_free(const void *in_prog_data)
-{
- const struct brw_vs_prog_data *prog_data = in_prog_data;
-
- brw_vec4_prog_data_free(&prog_data->base);
-}