Reviewed-by: Marek Olšák <marek.ol...@amd.com> Marek
On Tue, Oct 13, 2015 at 12:26 PM, Emil Velikov <emil.l.veli...@gmail.com> wrote: > Rather than accepting a void pointer, only to down and up cast around > it, convert the function to take the base (struct gl_program) pointer. > > Cc: Marek Olšák <marek.ol...@amd.com> > Signed-off-by: Emil Velikov <emil.l.veli...@gmail.com> > --- > src/mesa/drivers/dri/i915/i915_fragprog.c | 9 ++-- > src/mesa/drivers/dri/i965/brw_program.c | 6 +-- > .../drivers/dri/i965/test_fs_cmod_propagation.cpp | 2 +- > .../dri/i965/test_fs_saturate_propagation.cpp | 2 +- > .../dri/i965/test_vec4_copy_propagation.cpp | 2 +- > .../dri/i965/test_vec4_register_coalesce.cpp | 2 +- > src/mesa/drivers/dri/r200/r200_vertprog.c | 17 +++---- > src/mesa/program/program.c | 55 > ++++++++++------------ > src/mesa/program/program.h | 2 +- > src/mesa/state_tracker/st_cb_program.c | 38 ++++++++------- > 10 files changed, 68 insertions(+), 67 deletions(-) > > diff --git a/src/mesa/drivers/dri/i915/i915_fragprog.c > b/src/mesa/drivers/dri/i915/i915_fragprog.c > index 237d219..59d7959 100644 > --- a/src/mesa/drivers/dri/i915/i915_fragprog.c > +++ b/src/mesa/drivers/dri/i915/i915_fragprog.c > @@ -1315,9 +1315,10 @@ static struct gl_program * > i915NewProgram(struct gl_context * ctx, GLenum target, GLuint id) > { > switch (target) { > - case GL_VERTEX_PROGRAM_ARB: > - return _mesa_init_gl_program(CALLOC_STRUCT(gl_vertex_program), > - target, id); > + case GL_VERTEX_PROGRAM_ARB: { > + struct gl_vertex_program *prog = CALLOC_STRUCT(gl_vertex_program); > + return _mesa_init_gl_program(&prog->Base, target, id); > + } > > case GL_FRAGMENT_PROGRAM_ARB:{ > struct i915_fragment_program *prog = > @@ -1325,7 +1326,7 @@ i915NewProgram(struct gl_context * ctx, GLenum target, > GLuint id) > if (prog) { > i915_init_program(I915_CONTEXT(ctx), prog); > > - return _mesa_init_gl_program(prog, target, id); > + return _mesa_init_gl_program(&prog->FragProg.Base, target, id); > } > else > return NULL; > diff --git a/src/mesa/drivers/dri/i965/brw_program.c > b/src/mesa/drivers/dri/i965/brw_program.c > index 164c3d7..b547d07 100644 > --- a/src/mesa/drivers/dri/i965/brw_program.c > +++ b/src/mesa/drivers/dri/i965/brw_program.c > @@ -69,7 +69,7 @@ static struct gl_program *brwNewProgram( struct gl_context > *ctx, > if (prog) { > prog->id = get_new_program_id(brw->intelScreen); > > - return _mesa_init_gl_program(&prog->program, target, id); > + return _mesa_init_gl_program(&prog->program.Base, target, id); > } > else > return NULL; > @@ -80,7 +80,7 @@ static struct gl_program *brwNewProgram( struct gl_context > *ctx, > if (prog) { > prog->id = get_new_program_id(brw->intelScreen); > > - return _mesa_init_gl_program(&prog->program, target, id); > + return _mesa_init_gl_program(&prog->program.Base, target, id); > } > else > return NULL; > @@ -102,7 +102,7 @@ static struct gl_program *brwNewProgram( struct > gl_context *ctx, > if (prog) { > prog->id = get_new_program_id(brw->intelScreen); > > - return _mesa_init_gl_program(&prog->program, target, id); > + return _mesa_init_gl_program(&prog->program.Base, target, id); > } else { > return NULL; > } > diff --git a/src/mesa/drivers/dri/i965/test_fs_cmod_propagation.cpp > b/src/mesa/drivers/dri/i965/test_fs_cmod_propagation.cpp > index 7eee426..5f80f90 100644 > --- a/src/mesa/drivers/dri/i965/test_fs_cmod_propagation.cpp > +++ b/src/mesa/drivers/dri/i965/test_fs_cmod_propagation.cpp > @@ -66,7 +66,7 @@ void cmod_propagation_test::SetUp() > > v = new cmod_propagation_fs_visitor(compiler, prog_data, shader); > > - _mesa_init_gl_program(&fp->program, GL_FRAGMENT_SHADER, 0); > + _mesa_init_gl_program(&fp->program.Base, GL_FRAGMENT_SHADER, 0); > > devinfo->gen = 4; > } > diff --git a/src/mesa/drivers/dri/i965/test_fs_saturate_propagation.cpp > b/src/mesa/drivers/dri/i965/test_fs_saturate_propagation.cpp > index fefde4b..32e8b8f 100644 > --- a/src/mesa/drivers/dri/i965/test_fs_saturate_propagation.cpp > +++ b/src/mesa/drivers/dri/i965/test_fs_saturate_propagation.cpp > @@ -66,7 +66,7 @@ void saturate_propagation_test::SetUp() > > v = new saturate_propagation_fs_visitor(compiler, prog_data, shader); > > - _mesa_init_gl_program(&fp->program, GL_FRAGMENT_SHADER, 0); > + _mesa_init_gl_program(&fp->program.Base, GL_FRAGMENT_SHADER, 0); > > devinfo->gen = 4; > } > diff --git a/src/mesa/drivers/dri/i965/test_vec4_copy_propagation.cpp > b/src/mesa/drivers/dri/i965/test_vec4_copy_propagation.cpp > index 4a87e6e..e80b71b 100644 > --- a/src/mesa/drivers/dri/i965/test_vec4_copy_propagation.cpp > +++ b/src/mesa/drivers/dri/i965/test_vec4_copy_propagation.cpp > @@ -98,7 +98,7 @@ void copy_propagation_test::SetUp() > > v = new copy_propagation_vec4_visitor(compiler, shader); > > - _mesa_init_gl_program(&vp->program, GL_VERTEX_SHADER, 0); > + _mesa_init_gl_program(&vp->program.Base, GL_VERTEX_SHADER, 0); > > devinfo->gen = 4; > } > diff --git a/src/mesa/drivers/dri/i965/test_vec4_register_coalesce.cpp > b/src/mesa/drivers/dri/i965/test_vec4_register_coalesce.cpp > index 92d75e7..2f82461 100644 > --- a/src/mesa/drivers/dri/i965/test_vec4_register_coalesce.cpp > +++ b/src/mesa/drivers/dri/i965/test_vec4_register_coalesce.cpp > @@ -101,7 +101,7 @@ void register_coalesce_test::SetUp() > > v = new register_coalesce_vec4_visitor(compiler, shader); > > - _mesa_init_gl_program(&vp->program, GL_VERTEX_SHADER, 0); > + _mesa_init_gl_program(&vp->program.Base, GL_VERTEX_SHADER, 0); > > devinfo->gen = 4; > } > diff --git a/src/mesa/drivers/dri/r200/r200_vertprog.c > b/src/mesa/drivers/dri/r200/r200_vertprog.c > index d173605..628c570 100644 > --- a/src/mesa/drivers/dri/r200/r200_vertprog.c > +++ b/src/mesa/drivers/dri/r200/r200_vertprog.c > @@ -1200,18 +1200,19 @@ r200BindProgram(struct gl_context *ctx, GLenum > target, struct gl_program *prog) > static struct gl_program * > r200NewProgram(struct gl_context *ctx, GLenum target, GLuint id) > { > - struct r200_vertex_program *vp; > - > switch(target){ > - case GL_VERTEX_PROGRAM_ARB: > - vp = CALLOC_STRUCT(r200_vertex_program); > - return _mesa_init_gl_program(&vp->mesa_program, target, id); > - case GL_FRAGMENT_PROGRAM_ARB: > - return _mesa_init_gl_program(CALLOC_STRUCT(gl_fragment_program), > target, id); > + case GL_VERTEX_PROGRAM_ARB: { > + struct r200_vertex_program *vp = CALLOC_STRUCT(r200_vertex_program); > + return _mesa_init_gl_program(&vp->mesa_program.Base, target, id); > + } > + case GL_FRAGMENT_PROGRAM_ARB: { > + struct gl_fragment_program *prog = CALLOC_STRUCT(gl_fragment_program); > + return _mesa_init_gl_program(&prog->Base, target, id); > + } > default: > _mesa_problem(ctx, "Bad target in r200NewProgram"); > + return NULL; > } > - return NULL; > } > > > diff --git a/src/mesa/program/program.c b/src/mesa/program/program.c > index c35a89b..075c18c 100644 > --- a/src/mesa/program/program.c > +++ b/src/mesa/program/program.c > @@ -176,9 +176,8 @@ _mesa_set_program_error(struct gl_context *ctx, GLint > pos, const char *string) > * Initialize a new gl_program object. > */ > struct gl_program * > -_mesa_init_gl_program(void *_prog, GLenum target, GLuint id) > +_mesa_init_gl_program(struct gl_program *prog, GLenum target, GLuint id) > { > - struct gl_program *prog = (struct gl_program*)_prog; > GLuint i; > > if (!prog) > @@ -214,38 +213,36 @@ _mesa_init_gl_program(void *_prog, GLenum target, > GLuint id) > struct gl_program * > _mesa_new_program(struct gl_context *ctx, GLenum target, GLuint id) > { > - struct gl_program *prog; > switch (target) { > - case GL_VERTEX_PROGRAM_ARB: /* == GL_VERTEX_PROGRAM_NV */ > - prog = _mesa_init_gl_program(CALLOC_STRUCT(gl_vertex_program), > - target, id); > - break; > + case GL_VERTEX_PROGRAM_ARB: { /* == GL_VERTEX_PROGRAM_NV */ > + struct gl_vertex_program *prog = CALLOC_STRUCT(gl_vertex_program); > + return _mesa_init_gl_program(&prog->Base, target, id); > + } > case GL_FRAGMENT_PROGRAM_NV: > - case GL_FRAGMENT_PROGRAM_ARB: > - prog =_mesa_init_gl_program(CALLOC_STRUCT(gl_fragment_program), > - target, id); > - break; > - case GL_GEOMETRY_PROGRAM_NV: > - prog = _mesa_init_gl_program(CALLOC_STRUCT(gl_geometry_program), > - target, id); > - break; > - case GL_TESS_CONTROL_PROGRAM_NV: > - prog = _mesa_init_gl_program(CALLOC_STRUCT(gl_tess_ctrl_program), > - target, id); > - break; > - case GL_TESS_EVALUATION_PROGRAM_NV: > - prog = _mesa_init_gl_program(CALLOC_STRUCT(gl_tess_eval_program), > - target, id); > - break; > - case GL_COMPUTE_PROGRAM_NV: > - prog = _mesa_init_gl_program(CALLOC_STRUCT(gl_compute_program), > - target, id); > - break; > + case GL_FRAGMENT_PROGRAM_ARB: { > + struct gl_fragment_program *prog = CALLOC_STRUCT(gl_fragment_program); > + return _mesa_init_gl_program(&prog->Base, target, id); > + } > + case GL_GEOMETRY_PROGRAM_NV: { > + struct gl_geometry_program *prog = CALLOC_STRUCT(gl_geometry_program); > + return _mesa_init_gl_program(&prog->Base, target, id); > + } > + case GL_TESS_CONTROL_PROGRAM_NV: { > + struct gl_tess_ctrl_program *prog = > CALLOC_STRUCT(gl_tess_ctrl_program); > + return _mesa_init_gl_program(&prog->Base, target, id); > + } > + case GL_TESS_EVALUATION_PROGRAM_NV: { > + struct gl_tess_eval_program *prog = > CALLOC_STRUCT(gl_tess_eval_program); > + return _mesa_init_gl_program(&prog->Base, target, id); > + } > + case GL_COMPUTE_PROGRAM_NV: { > + struct gl_compute_program *prog = CALLOC_STRUCT(gl_compute_program); > + return _mesa_init_gl_program(&prog->Base, target, id); > + } > default: > _mesa_problem(ctx, "bad target in _mesa_new_program"); > - prog = NULL; > + return NULL; > } > - return prog; > } > > > diff --git a/src/mesa/program/program.h b/src/mesa/program/program.h > index 51e10a1..24e0597 100644 > --- a/src/mesa/program/program.h > +++ b/src/mesa/program/program.h > @@ -64,7 +64,7 @@ extern void > _mesa_set_program_error(struct gl_context *ctx, GLint pos, const char > *string); > > extern struct gl_program * > -_mesa_init_gl_program(void *prog, GLenum target, GLuint id); > +_mesa_init_gl_program(struct gl_program *prog, GLenum target, GLuint id); > > extern struct gl_program * > _mesa_new_program(struct gl_context *ctx, GLenum target, GLuint id); > diff --git a/src/mesa/state_tracker/st_cb_program.c > b/src/mesa/state_tracker/st_cb_program.c > index 40f2af0..26d128a 100644 > --- a/src/mesa/state_tracker/st_cb_program.c > +++ b/src/mesa/state_tracker/st_cb_program.c > @@ -102,29 +102,31 @@ st_use_program(struct gl_context *ctx, struct > gl_shader_program *shProg) > static struct gl_program * > st_new_program(struct gl_context *ctx, GLenum target, GLuint id) > { > - struct gl_program *prog; > - > switch (target) { > - case GL_VERTEX_PROGRAM_ARB: > - prog = (struct gl_program*)ST_CALLOC_STRUCT(st_vertex_program); > - break; > - case GL_FRAGMENT_PROGRAM_ARB: > - prog = (struct gl_program*)ST_CALLOC_STRUCT(st_fragment_program); > - break; > - case GL_GEOMETRY_PROGRAM_NV: > - prog = (struct gl_program*)ST_CALLOC_STRUCT(st_geometry_program); > - break; > - case GL_TESS_CONTROL_PROGRAM_NV: > - prog = (struct gl_program*)ST_CALLOC_STRUCT(st_tessctrl_program); > - break; > - case GL_TESS_EVALUATION_PROGRAM_NV: > - prog = (struct gl_program*)ST_CALLOC_STRUCT(st_tesseval_program); > - break; > + case GL_VERTEX_PROGRAM_ARB: { > + struct st_vertex_program *prog = ST_CALLOC_STRUCT(st_vertex_program); > + return _mesa_init_gl_program(&prog->Base, target, id); > + } > + case GL_FRAGMENT_PROGRAM_ARB: { > + struct st_fragment_program *prog = > ST_CALLOC_STRUCT(st_fragment_program); > + return _mesa_init_gl_program(&prog->Base, target, id); > + } > + case GL_GEOMETRY_PROGRAM_NV: { > + struct st_geometry_program *prog = > ST_CALLOC_STRUCT(st_geometry_program); > + return _mesa_init_gl_program(&prog->Base, target, id); > + } > + case GL_TESS_CONTROL_PROGRAM_NV: { > + struct st_tessctrl_program *prog = > ST_CALLOC_STRUCT(st_tessctrl_program); > + return _mesa_init_gl_program(&prog->Base, target, id); > + } > + case GL_TESS_EVALUATION_PROGRAM_NV: { > + struct st_tesseval_program *prog = > ST_CALLOC_STRUCT(st_tesseval_program); > + return _mesa_init_gl_program(&prog->Base, target, id); > + } > default: > assert(0); > return NULL; > } > - return _mesa_init_gl_program(prog, target, id); > } > > > -- > 2.6.1 > > _______________________________________________ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/mesa-dev _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev