st/mesa: remove out_num_textures from update_textures
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
This commit is contained in:
parent
08496c5d52
commit
d9e6e0bbe3
|
@ -101,10 +101,9 @@ static void
|
||||||
update_textures(struct st_context *st,
|
update_textures(struct st_context *st,
|
||||||
enum pipe_shader_type shader_stage,
|
enum pipe_shader_type shader_stage,
|
||||||
const struct gl_program *prog,
|
const struct gl_program *prog,
|
||||||
struct pipe_sampler_view **sampler_views,
|
struct pipe_sampler_view **sampler_views)
|
||||||
unsigned *out_num_textures)
|
|
||||||
{
|
{
|
||||||
const GLuint old_max = *out_num_textures;
|
const GLuint old_max = st->state.num_sampler_views[shader_stage];
|
||||||
GLbitfield samplers_used = prog->SamplersUsed;
|
GLbitfield samplers_used = prog->SamplersUsed;
|
||||||
GLbitfield texel_fetch_samplers = prog->info.textures_used_by_txf;
|
GLbitfield texel_fetch_samplers = prog->info.textures_used_by_txf;
|
||||||
GLbitfield free_slots = ~prog->SamplersUsed;
|
GLbitfield free_slots = ~prog->SamplersUsed;
|
||||||
|
@ -213,21 +212,20 @@ update_textures(struct st_context *st,
|
||||||
shader_stage,
|
shader_stage,
|
||||||
num_textures,
|
num_textures,
|
||||||
sampler_views);
|
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. */
|
/* Same as update_textures, but don't store the views in st_context. */
|
||||||
static void
|
static void
|
||||||
update_textures_local(struct st_context *st,
|
update_textures_local(struct st_context *st,
|
||||||
enum pipe_shader_type shader_stage,
|
enum pipe_shader_type shader_stage,
|
||||||
const struct gl_program *prog,
|
const struct gl_program *prog)
|
||||||
unsigned *out_num_textures)
|
|
||||||
{
|
{
|
||||||
struct pipe_sampler_view *local_views[PIPE_MAX_SAMPLERS] = {0};
|
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++)
|
for (unsigned i = 0; i < num; i++)
|
||||||
pipe_sampler_view_reference(&local_views[i], NULL);
|
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) {
|
if (ctx->Const.Program[MESA_SHADER_VERTEX].MaxTextureImageUnits > 0) {
|
||||||
update_textures_local(st, PIPE_SHADER_VERTEX,
|
update_textures_local(st, PIPE_SHADER_VERTEX,
|
||||||
ctx->VertexProgram._Current,
|
ctx->VertexProgram._Current);
|
||||||
&st->state.num_sampler_views[PIPE_SHADER_VERTEX]);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -253,8 +250,7 @@ st_update_fragment_textures(struct st_context *st)
|
||||||
update_textures(st,
|
update_textures(st,
|
||||||
PIPE_SHADER_FRAGMENT,
|
PIPE_SHADER_FRAGMENT,
|
||||||
ctx->FragmentProgram._Current,
|
ctx->FragmentProgram._Current,
|
||||||
st->state.frag_sampler_views,
|
st->state.frag_sampler_views);
|
||||||
&st->state.num_sampler_views[PIPE_SHADER_FRAGMENT]);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -265,8 +261,7 @@ st_update_geometry_textures(struct st_context *st)
|
||||||
|
|
||||||
if (ctx->GeometryProgram._Current) {
|
if (ctx->GeometryProgram._Current) {
|
||||||
update_textures_local(st, PIPE_SHADER_GEOMETRY,
|
update_textures_local(st, PIPE_SHADER_GEOMETRY,
|
||||||
ctx->GeometryProgram._Current,
|
ctx->GeometryProgram._Current);
|
||||||
&st->state.num_sampler_views[PIPE_SHADER_GEOMETRY]);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -278,8 +273,7 @@ st_update_tessctrl_textures(struct st_context *st)
|
||||||
|
|
||||||
if (ctx->TessCtrlProgram._Current) {
|
if (ctx->TessCtrlProgram._Current) {
|
||||||
update_textures_local(st, PIPE_SHADER_TESS_CTRL,
|
update_textures_local(st, PIPE_SHADER_TESS_CTRL,
|
||||||
ctx->TessCtrlProgram._Current,
|
ctx->TessCtrlProgram._Current);
|
||||||
&st->state.num_sampler_views[PIPE_SHADER_TESS_CTRL]);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -291,8 +285,7 @@ st_update_tesseval_textures(struct st_context *st)
|
||||||
|
|
||||||
if (ctx->TessEvalProgram._Current) {
|
if (ctx->TessEvalProgram._Current) {
|
||||||
update_textures_local(st, PIPE_SHADER_TESS_EVAL,
|
update_textures_local(st, PIPE_SHADER_TESS_EVAL,
|
||||||
ctx->TessEvalProgram._Current,
|
ctx->TessEvalProgram._Current);
|
||||||
&st->state.num_sampler_views[PIPE_SHADER_TESS_EVAL]);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -304,7 +297,6 @@ st_update_compute_textures(struct st_context *st)
|
||||||
|
|
||||||
if (ctx->ComputeProgram._Current) {
|
if (ctx->ComputeProgram._Current) {
|
||||||
update_textures_local(st, PIPE_SHADER_COMPUTE,
|
update_textures_local(st, PIPE_SHADER_COMPUTE,
|
||||||
ctx->ComputeProgram._Current,
|
ctx->ComputeProgram._Current);
|
||||||
&st->state.num_sampler_views[PIPE_SHADER_COMPUTE]);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue