[Mesa-dev] [PATCH 4/4] program: remove _mesa_init_*_program wrappers

Emil Velikov emil.l.velikov at gmail.com
Thu Oct 8 06:49:36 PDT 2015


On 8 October 2015 at 01:12, Marek Olšák <maraeo at gmail.com> wrote:
> From: Marek Olšák <marek.olsak at amd.com>
>
> They didn't do anything useful.
> ---
>  src/mesa/drivers/dri/i915/i915_fragprog.c          |   7 +-
>  src/mesa/drivers/dri/i965/brw_program.c            |  10 +-
>  .../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          |   4 +-
>  src/mesa/program/program.c                         | 133 +++------------------
>  src/mesa/program/program.h                         |  29 +----
>  src/mesa/state_tracker/st_cb_program.c             |  43 +++----
>  10 files changed, 50 insertions(+), 184 deletions(-)
>
> diff --git a/src/mesa/drivers/dri/i915/i915_fragprog.c b/src/mesa/drivers/dri/i915/i915_fragprog.c
> index 1a5943c..237d219 100644
> --- a/src/mesa/drivers/dri/i915/i915_fragprog.c
> +++ b/src/mesa/drivers/dri/i915/i915_fragprog.c
> @@ -1316,8 +1316,8 @@ i915NewProgram(struct gl_context * ctx, GLenum target, GLuint id)
>  {
>     switch (target) {
>     case GL_VERTEX_PROGRAM_ARB:
> -      return _mesa_init_vertex_program(ctx, CALLOC_STRUCT(gl_vertex_program),
> -                                       target, id);
> +      return _mesa_init_gl_program(CALLOC_STRUCT(gl_vertex_program),
> +                                   target, id);
>
Worth doing the memory allocation to a temporary variable, and feeding
&prog->base to _mesa_init_gl_program ?

> --- a/src/mesa/drivers/dri/r200/r200_vertprog.c
> +++ b/src/mesa/drivers/dri/r200/r200_vertprog.c
> @@ -1205,9 +1205,9 @@ r200NewProgram(struct gl_context *ctx, GLenum target, GLuint id)
>     switch(target){
>     case GL_VERTEX_PROGRAM_ARB:
>        vp = CALLOC_STRUCT(r200_vertex_program);
> -      return _mesa_init_vertex_program(ctx, &vp->mesa_program, target, id);
> +      return _mesa_init_gl_program(&vp->mesa_program, target, id);
>     case GL_FRAGMENT_PROGRAM_ARB:
> -      return _mesa_init_fragment_program( ctx, CALLOC_STRUCT(gl_fragment_program), target, id );
> +      return _mesa_init_gl_program(CALLOC_STRUCT(gl_fragment_program), target, id);
Ditto.


> --- a/src/mesa/program/program.c
> +++ b/src/mesa/program/program.c

> @@ -309,34 +217,29 @@ _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_vertex_program(ctx, CALLOC_STRUCT(gl_vertex_program),
> -                                       target, id );
> +      prog = _mesa_init_gl_program(CALLOC_STRUCT(gl_vertex_program),
> +                                   target, id);
Ditto. + early return similar to st/mesa ?

> --- a/src/mesa/program/program.h
> +++ b/src/mesa/program/program.h

> -extern struct gl_program *
> -_mesa_init_compute_program(struct gl_context *ctx,
> -                           struct gl_compute_program *prog,
> -                           GLenum target, GLuint id);
> +_mesa_init_gl_program(void *prog, GLenum target, GLuint id);
>
If you go for my suggestion you can keep prog as struct gl_program *.

> --- a/src/mesa/state_tracker/st_cb_program.c
> +++ b/src/mesa/state_tracker/st_cb_program.c

> +   switch (target) {
> +   case GL_VERTEX_PROGRAM_ARB:
> +      prog = (struct gl_program*)ST_CALLOC_STRUCT(st_vertex_program);
> +      break;
> +   case GL_FRAGMENT_PROGRAM_ARB:
Worth adding case GL_FRAGMENT_PROGRAM_NV, or perhaps nuking it from
mesa/program/program.c above ?
Can we keep the variables as is and avoid the casts ?

Emil


More information about the mesa-dev mailing list