[Mesa-dev] [PATCH 5/7] mesa/st: pass st_compute_program to st_get_cp_variant

Marek Olšák maraeo at gmail.com
Mon Sep 12 13:13:33 UTC 2016


Reviewed-by: Marek Olšák <marek.olsak at amd.com>

Marek

On Thu, Sep 8, 2016 at 10:30 PM, Rob Clark <robdclark at gmail.com> wrote:
> Makes it more consistent with vp/fp variants, and will be needed in a
> following patch.
>
> Signed-off-by: Rob Clark <robdclark at gmail.com>
> ---
>  src/mesa/state_tracker/st_atom_shader.c |  2 +-
>  src/mesa/state_tracker/st_program.c     | 12 ++++++------
>  src/mesa/state_tracker/st_program.h     |  3 +--
>  3 files changed, 8 insertions(+), 9 deletions(-)
>
> diff --git a/src/mesa/state_tracker/st_atom_shader.c b/src/mesa/state_tracker/st_atom_shader.c
> index c2e4fc8..3cf8992 100644
> --- a/src/mesa/state_tracker/st_atom_shader.c
> +++ b/src/mesa/state_tracker/st_atom_shader.c
> @@ -322,7 +322,7 @@ update_cp( struct st_context *st )
>     assert(stcp->Base.Base.Target == GL_COMPUTE_PROGRAM_NV);
>
>     key = st_get_basic_variant_key(st, &stcp->Base.Base);
> -   st->cp_variant = st_get_cp_variant(st, &stcp->tgsi, &stcp->variants, &key);
> +   st->cp_variant = st_get_cp_variant(st, stcp, &key);
>
>     st_reference_compprog(st, &st->cp, stcp);
>
> diff --git a/src/mesa/state_tracker/st_program.c b/src/mesa/state_tracker/st_program.c
> index 284cc22..41ccc20 100644
> --- a/src/mesa/state_tracker/st_program.c
> +++ b/src/mesa/state_tracker/st_program.c
> @@ -1685,15 +1685,15 @@ st_translate_compute_program(struct st_context *st,
>   */
>  struct st_basic_variant *
>  st_get_cp_variant(struct st_context *st,
> -                  struct pipe_compute_state *tgsi,
> -                  struct st_basic_variant **variants,
> +                  struct st_compute_program *stcp,
>                    const struct st_basic_variant_key *key)
>  {
>     struct pipe_context *pipe = st->pipe;
> +   struct pipe_compute_state *tgsi = &stcp->tgsi;
>     struct st_basic_variant *v;
>
>     /* Search for existing variant */
> -   for (v = *variants; v; v = v->next) {
> +   for (v = stcp->variants; v; v = v->next) {
>        if (memcmp(&v->key, key, sizeof(*key)) == 0) {
>           break;
>        }
> @@ -1708,8 +1708,8 @@ st_get_cp_variant(struct st_context *st,
>           v->key = *key;
>
>           /* insert into list */
> -         v->next = *variants;
> -         *variants = v;
> +         v->next = stcp->variants;
> +         stcp->variants = v;
>        }
>     }
>
> @@ -1955,7 +1955,7 @@ st_precompile_shader_variant(struct st_context *st,
>     case GL_COMPUTE_PROGRAM_NV: {
>        struct st_compute_program *p = (struct st_compute_program *)prog;
>        struct st_basic_variant_key key = st_get_basic_variant_key(st, prog);
> -      st_get_cp_variant(st, &p->tgsi, &p->variants, &key);
> +      st_get_cp_variant(st, p, &key);
>        break;
>     }
>
> diff --git a/src/mesa/state_tracker/st_program.h b/src/mesa/state_tracker/st_program.h
> index f4e572a..dd5a89b 100644
> --- a/src/mesa/state_tracker/st_program.h
> +++ b/src/mesa/state_tracker/st_program.h
> @@ -447,8 +447,7 @@ st_get_fp_variant(struct st_context *st,
>
>  extern struct st_basic_variant *
>  st_get_cp_variant(struct st_context *st,
> -                  struct pipe_compute_state *tgsi,
> -                  struct st_basic_variant **variants,
> +                  struct st_compute_program *p,
>                    const struct st_basic_variant_key *key);
>
>  extern struct st_basic_variant *
> --
> 2.7.4
>


More information about the mesa-dev mailing list