st/mesa: remove out_num_textures from update_textures
authorMarek Olšák <marek.olsak@amd.com>
Thu, 16 Nov 2017 15:01:11 +0000 (16:01 +0100)
committerMarek Olšák <marek.olsak@amd.com>
Thu, 8 Feb 2018 15:14:11 +0000 (16:14 +0100)
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
src/mesa/state_tracker/st_atom_texture.c

index 105fa79de0242ce2aa628fb7996f8b6c2c7f9b06..ce7755f0c5884a7dc45c5f4a97ab36d376866c28 100644 (file)
@@ -101,10 +101,9 @@ static void
 update_textures(struct st_context *st,
                 enum pipe_shader_type shader_stage,
                 const struct gl_program *prog,
-                struct pipe_sampler_view **sampler_views,
-                unsigned *out_num_textures)
+                struct pipe_sampler_view **sampler_views)
 {
-   const GLuint old_max = *out_num_textures;
+   const GLuint old_max = st->state.num_sampler_views[shader_stage];
    GLbitfield samplers_used = prog->SamplersUsed;
    GLbitfield texel_fetch_samplers = prog->info.textures_used_by_txf;
    GLbitfield free_slots = ~prog->SamplersUsed;
@@ -213,21 +212,20 @@ update_textures(struct st_context *st,
                          shader_stage,
                          num_textures,
                          sampler_views);
-   *out_num_textures = num_textures;
+   st->state.num_sampler_views[shader_stage] = num_textures;
 }
 
 /* Same as update_textures, but don't store the views in st_context. */
 static void
 update_textures_local(struct st_context *st,
                       enum pipe_shader_type shader_stage,
-                      const struct gl_program *prog,
-                      unsigned *out_num_textures)
+                      const struct gl_program *prog)
 {
    struct pipe_sampler_view *local_views[PIPE_MAX_SAMPLERS] = {0};
 
-   update_textures(st, shader_stage, prog, local_views, out_num_textures);
+   update_textures(st, shader_stage, prog, local_views);
 
-   unsigned num = *out_num_textures;
+   unsigned num = st->state.num_sampler_views[shader_stage];
    for (unsigned i = 0; i < num; i++)
       pipe_sampler_view_reference(&local_views[i], NULL);
 }
@@ -239,8 +237,7 @@ st_update_vertex_textures(struct st_context *st)
 
    if (ctx->Const.Program[MESA_SHADER_VERTEX].MaxTextureImageUnits > 0) {
       update_textures_local(st, PIPE_SHADER_VERTEX,
-                            ctx->VertexProgram._Current,
-                            &st->state.num_sampler_views[PIPE_SHADER_VERTEX]);
+                            ctx->VertexProgram._Current);
    }
 }
 
@@ -253,8 +250,7 @@ st_update_fragment_textures(struct st_context *st)
    update_textures(st,
                    PIPE_SHADER_FRAGMENT,
                    ctx->FragmentProgram._Current,
-                   st->state.frag_sampler_views,
-                   &st->state.num_sampler_views[PIPE_SHADER_FRAGMENT]);
+                   st->state.frag_sampler_views);
 }
 
 
@@ -265,8 +261,7 @@ st_update_geometry_textures(struct st_context *st)
 
    if (ctx->GeometryProgram._Current) {
       update_textures_local(st, PIPE_SHADER_GEOMETRY,
-                            ctx->GeometryProgram._Current,
-                            &st->state.num_sampler_views[PIPE_SHADER_GEOMETRY]);
+                            ctx->GeometryProgram._Current);
    }
 }
 
@@ -278,8 +273,7 @@ st_update_tessctrl_textures(struct st_context *st)
 
    if (ctx->TessCtrlProgram._Current) {
       update_textures_local(st, PIPE_SHADER_TESS_CTRL,
-                            ctx->TessCtrlProgram._Current,
-                            &st->state.num_sampler_views[PIPE_SHADER_TESS_CTRL]);
+                            ctx->TessCtrlProgram._Current);
    }
 }
 
@@ -291,8 +285,7 @@ st_update_tesseval_textures(struct st_context *st)
 
    if (ctx->TessEvalProgram._Current) {
       update_textures_local(st, PIPE_SHADER_TESS_EVAL,
-                            ctx->TessEvalProgram._Current,
-                            &st->state.num_sampler_views[PIPE_SHADER_TESS_EVAL]);
+                            ctx->TessEvalProgram._Current);
    }
 }
 
@@ -304,7 +297,6 @@ st_update_compute_textures(struct st_context *st)
 
    if (ctx->ComputeProgram._Current) {
       update_textures_local(st, PIPE_SHADER_COMPUTE,
-                            ctx->ComputeProgram._Current,
-                            &st->state.num_sampler_views[PIPE_SHADER_COMPUTE]);
+                            ctx->ComputeProgram._Current);
    }
 }