On 05/01/2017 06:52 AM, Marek Olšák wrote:
From: Marek Olšák <marek.ol...@amd.com>

---
  src/mesa/state_tracker/st_atom.c           | 12 ++---
  src/mesa/state_tracker/st_atom_constbuf.c  |  6 +--
  src/mesa/state_tracker/st_atom_shader.c    | 24 ++++-----
  src/mesa/state_tracker/st_cb_program.c     | 34 ++++++------
  src/mesa/state_tracker/st_context.c        | 18 +++----
  src/mesa/state_tracker/st_context.h        |  6 +--
  src/mesa/state_tracker/st_glsl_to_tgsi.cpp | 12 ++---
  src/mesa/state_tracker/st_program.c        | 24 ++++-----
  src/mesa/state_tracker/st_program.h        | 86 ++++--------------------------
  src/mesa/state_tracker/st_shader_cache.c   | 30 +++++------
  10 files changed, 93 insertions(+), 159 deletions(-)

diff --git a/src/mesa/state_tracker/st_atom.c b/src/mesa/state_tracker/st_atom.c
index b40ce1e..cbac762 100644
--- a/src/mesa/state_tracker/st_atom.c
+++ b/src/mesa/state_tracker/st_atom.c
@@ -58,23 +58,23 @@ void st_destroy_atoms( struct st_context *st )
     /* no-op */
  }


  /* Too complex to figure out, just check every time:
   */
  static void check_program_state( struct st_context *st )
  {
     struct gl_context *ctx = st->ctx;
     struct st_vertex_program *old_vp = st->vp;
-   struct st_tessctrl_program *old_tcp = st->tcp;
-   struct st_tesseval_program *old_tep = st->tep;
-   struct st_geometry_program *old_gp = st->gp;
+   struct st_common_program *old_tcp = st->tcp;
+   struct st_common_program *old_tep = st->tep;
+   struct st_common_program *old_gp = st->gp;
     struct st_fragment_program *old_fp = st->fp;

     struct gl_program *new_vp = ctx->VertexProgram._Current;
     struct gl_program *new_tcp = ctx->TessCtrlProgram._Current;
     struct gl_program *new_tep = ctx->TessEvalProgram._Current;
     struct gl_program *new_gp = ctx->GeometryProgram._Current;
     struct gl_program *new_fp = ctx->FragmentProgram._Current;
     uint64_t dirty = 0;

     /* Flag states used by both new and old shaders to unbind shader resources
@@ -84,35 +84,35 @@ static void check_program_state( struct st_context *st )
        if (old_vp)
           dirty |= old_vp->affected_states;
        if (new_vp)
           dirty |= ST_NEW_VERTEX_PROGRAM(st, st_vertex_program(new_vp));
     }

     if (unlikely(new_tcp != &old_tcp->Base)) {
        if (old_tcp)
           dirty |= old_tcp->affected_states;
        if (new_tcp)
-         dirty |= st_tessctrl_program(new_tcp)->affected_states;
+         dirty |= st_common_program(new_tcp)->affected_states;
     }

     if (unlikely(new_tep != &old_tep->Base)) {
        if (old_tep)
           dirty |= old_tep->affected_states;
        if (new_tep)
-         dirty |= st_tesseval_program(new_tep)->affected_states;
+         dirty |= st_common_program(new_tep)->affected_states;
     }

     if (unlikely(new_gp != &old_gp->Base)) {
        if (old_gp)
           dirty |= old_gp->affected_states;
        if (new_gp)
-         dirty |= st_geometry_program(new_gp)->affected_states;
+         dirty |= st_common_program(new_gp)->affected_states;
     }

     if (unlikely(new_fp != &old_fp->Base)) {
        if (old_fp)
           dirty |= old_fp->affected_states;
        if (new_fp)
           dirty |= st_fragment_program(new_fp)->affected_states;
     }

     st->dirty |= dirty;
diff --git a/src/mesa/state_tracker/st_atom_constbuf.c 
b/src/mesa/state_tracker/st_atom_constbuf.c
index 9c04580..6cbfba7 100644
--- a/src/mesa/state_tracker/st_atom_constbuf.c
+++ b/src/mesa/state_tracker/st_atom_constbuf.c
@@ -156,47 +156,47 @@ void st_update_fs_constants(struct st_context *st )
     struct gl_program_parameter_list *params = fp->Base.Parameters;

     st_upload_constants( st, params, MESA_SHADER_FRAGMENT );
  }


  /* Geometry shader:
   */
  void st_update_gs_constants(struct st_context *st )
  {
-   struct st_geometry_program *gp = st->gp;
+   struct st_common_program *gp = st->gp;
     struct gl_program_parameter_list *params;

     if (gp) {
        params = gp->Base.Parameters;
        st_upload_constants( st, params, MESA_SHADER_GEOMETRY );
     }
  }

  /* Tessellation control shader:
   */
  void st_update_tcs_constants(struct st_context *st )
  {
-   struct st_tessctrl_program *tcp = st->tcp;
+   struct st_common_program *tcp = st->tcp;
     struct gl_program_parameter_list *params;

     if (tcp) {
        params = tcp->Base.Parameters;
        st_upload_constants( st, params, MESA_SHADER_TESS_CTRL );
     }
  }

  /* Tessellation evaluation shader:
   */
  void st_update_tes_constants(struct st_context *st )
  {
-   struct st_tesseval_program *tep = st->tep;
+   struct st_common_program *tep = st->tep;
     struct gl_program_parameter_list *params;

     if (tep) {
        params = tep->Base.Parameters;
        st_upload_constants( st, params, MESA_SHADER_TESS_EVAL );
     }
  }

  /* Compute shader:
   */
diff --git a/src/mesa/state_tracker/st_atom_shader.c 
b/src/mesa/state_tracker/st_atom_shader.c
index 091cbe0..875279d 100644
--- a/src/mesa/state_tracker/st_atom_shader.c
+++ b/src/mesa/state_tracker/st_atom_shader.c
@@ -178,83 +178,83 @@ st_update_vp( struct st_context *st )
     st_reference_vertprog(st, &st->vp, stvp);

     cso_set_vertex_shader_handle(st->cso_context,
                                  st->vp_variant->driver_shader);
  }


  void
  st_update_gp( struct st_context *st )
  {
-   struct st_geometry_program *stgp;
+   struct st_common_program *stgp;

     if (!st->ctx->GeometryProgram._Current) {
        cso_set_geometry_shader_handle(st->cso_context, NULL);
-      st_reference_geomprog(st, &st->gp, NULL);
+      st_reference_prog(st, &st->gp, NULL);
        return;
     }

-   stgp = st_geometry_program(st->ctx->GeometryProgram._Current);
+   stgp = st_common_program(st->ctx->GeometryProgram._Current);
     assert(stgp->Base.Target == GL_GEOMETRY_PROGRAM_NV);

     st->gp_variant = st_get_basic_variant(st, PIPE_SHADER_GEOMETRY,
                                           &stgp->tgsi, &stgp->variants);

-   st_reference_geomprog(st, &st->gp, stgp);
+   st_reference_prog(st, &st->gp, stgp);

     cso_set_geometry_shader_handle(st->cso_context,
                                    st->gp_variant->driver_shader);
  }


  void
  st_update_tcp( struct st_context *st )
  {
-   struct st_tessctrl_program *sttcp;
+   struct st_common_program *sttcp;

     if (!st->ctx->TessCtrlProgram._Current) {
        cso_set_tessctrl_shader_handle(st->cso_context, NULL);
-      st_reference_tesscprog(st, &st->tcp, NULL);
+      st_reference_prog(st, &st->tcp, NULL);
        return;
     }

-   sttcp = st_tessctrl_program(st->ctx->TessCtrlProgram._Current);
+   sttcp = st_common_program(st->ctx->TessCtrlProgram._Current);
     assert(sttcp->Base.Target == GL_TESS_CONTROL_PROGRAM_NV);

     st->tcp_variant = st_get_basic_variant(st, PIPE_SHADER_TESS_CTRL,
                                            &sttcp->tgsi, &sttcp->variants);

-   st_reference_tesscprog(st, &st->tcp, sttcp);
+   st_reference_prog(st, &st->tcp, sttcp);

     cso_set_tessctrl_shader_handle(st->cso_context,
                                    st->tcp_variant->driver_shader);
  }


  void
  st_update_tep( struct st_context *st )
  {
-   struct st_tesseval_program *sttep;
+   struct st_common_program *sttep;

     if (!st->ctx->TessEvalProgram._Current) {
        cso_set_tesseval_shader_handle(st->cso_context, NULL);
-      st_reference_tesseprog(st, &st->tep, NULL);
+      st_reference_prog(st, &st->tep, NULL);
        return;
     }

-   sttep = st_tesseval_program(st->ctx->TessEvalProgram._Current);
+   sttep = st_common_program(st->ctx->TessEvalProgram._Current);
     assert(sttep->Base.Target == GL_TESS_EVALUATION_PROGRAM_NV);

     st->tep_variant = st_get_basic_variant(st, PIPE_SHADER_TESS_EVAL,
                                            &sttep->tgsi, &sttep->variants);

-   st_reference_tesseprog(st, &st->tep, sttep);
+   st_reference_prog(st, &st->tep, sttep);

     cso_set_tesseval_shader_handle(st->cso_context,
                                    st->tep_variant->driver_shader);
  }


  void
  st_update_cp( struct st_context *st )
  {
     struct st_compute_program *stcp;
diff --git a/src/mesa/state_tracker/st_cb_program.c 
b/src/mesa/state_tracker/st_cb_program.c
index b104649..531d20d 100644
--- a/src/mesa/state_tracker/st_cb_program.c
+++ b/src/mesa/state_tracker/st_cb_program.c
@@ -62,32 +62,32 @@ st_new_program(struct gl_context *ctx, GLenum target, 
GLuint id,
        struct st_vertex_program *prog = rzalloc(NULL,
                                                 struct st_vertex_program);
        return _mesa_init_gl_program(&prog->Base, target, id, is_arb_asm);
     }
     case GL_FRAGMENT_PROGRAM_ARB: {
        struct st_fragment_program *prog = rzalloc(NULL,
                                                   struct st_fragment_program);
        return _mesa_init_gl_program(&prog->Base, target, id, is_arb_asm);
     }
     case GL_GEOMETRY_PROGRAM_NV: {
-      struct st_geometry_program *prog = rzalloc(NULL,
-                                                 struct st_geometry_program);
+      struct st_common_program *prog = rzalloc(NULL,
+                                                 struct st_common_program);
        return _mesa_init_gl_program(&prog->Base, target, id, is_arb_asm);
     }
     case GL_TESS_CONTROL_PROGRAM_NV: {
-      struct st_tessctrl_program *prog = rzalloc(NULL,
-                                                 struct st_tessctrl_program);
+      struct st_common_program *prog = rzalloc(NULL,
+                                                 struct st_common_program);
        return _mesa_init_gl_program(&prog->Base, target, id, is_arb_asm);
     }
     case GL_TESS_EVALUATION_PROGRAM_NV: {
-      struct st_tesseval_program *prog = rzalloc(NULL,
-                                                 struct st_tesseval_program);
+      struct st_common_program *prog = rzalloc(NULL,
+                                                 struct st_common_program);
        return _mesa_init_gl_program(&prog->Base, target, id, is_arb_asm);
     }
     case GL_COMPUTE_PROGRAM_NV: {
        struct st_compute_program *prog = rzalloc(NULL,
                                                  struct st_compute_program);
        return _mesa_init_gl_program(&prog->Base, target, id, is_arb_asm);
     }
     default:
        assert(0);
        return NULL;
@@ -108,22 +108,22 @@ st_delete_program(struct gl_context *ctx, struct 
gl_program *prog)
        {
           struct st_vertex_program *stvp = (struct st_vertex_program *) prog;
           st_release_vp_variants( st, stvp );

           if (stvp->glsl_to_tgsi)
              free_glsl_to_tgsi_visitor(stvp->glsl_to_tgsi);
        }
        break;
     case GL_GEOMETRY_PROGRAM_NV:
        {
-         struct st_geometry_program *stgp =
-            (struct st_geometry_program *) prog;
+         struct st_common_program *stgp =
+            (struct st_common_program *) prog;


Here, and a bunch of places below, I think we should be using the st_common_program() cast wrapper. Though, that could probably be done in a follow-on change.

-Brian

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to