On 14 August 2013 18:55, Kenneth Graunke <[email protected]> wrote:
> Now that we have the number of samplers available, we don't need to > iterate over all 16. This should be particularly helpful for vertex > shaders. > > Signed-off-by: Kenneth Graunke <[email protected]> > --- > src/mesa/drivers/dri/i965/brw_fs.cpp | 2 +- > src/mesa/drivers/dri/i965/brw_vs.c | 2 +- > 2 files changed, 2 insertions(+), 2 deletions(-) > > diff --git a/src/mesa/drivers/dri/i965/brw_fs.cpp > b/src/mesa/drivers/dri/i965/brw_fs.cpp > index 69e544a..27263fd 100644 > --- a/src/mesa/drivers/dri/i965/brw_fs.cpp > +++ b/src/mesa/drivers/dri/i965/brw_fs.cpp > @@ -3143,7 +3143,7 @@ brw_fs_precompile(struct gl_context *ctx, struct > gl_shader_program *prog) > > key.clamp_fragment_color = ctx->API == API_OPENGL_COMPAT; > > - for (int i = 0; i < MAX_SAMPLERS; i++) { > + for (unsigned i = 0; i < brw->wm.sampler_count; i++) { > Precompile is called during link, before the program is made current. So brw->wm is some other program. I think you need to do this instead: _mesa_fls(fp->Base.SamplersUsed). > if (fp->Base.ShadowSamplers & (1 << i)) { > /* Assume DEPTH_TEXTURE_MODE is the default: X, X, X, 1 */ > key.tex.swizzles[i] = > diff --git a/src/mesa/drivers/dri/i965/brw_vs.c > b/src/mesa/drivers/dri/i965/brw_vs.c > index 5b8173d..7df93c2 100644 > --- a/src/mesa/drivers/dri/i965/brw_vs.c > +++ b/src/mesa/drivers/dri/i965/brw_vs.c > @@ -544,7 +544,7 @@ brw_vs_precompile(struct gl_context *ctx, struct > gl_shader_program *prog) > key.base.program_string_id = bvp->id; > key.base.clamp_vertex_color = ctx->API == API_OPENGL_COMPAT; > > - for (int i = 0; i < MAX_SAMPLERS; i++) { > + for (unsigned i = 0; i < brw->vs.sampler_count; i++) { > Similarly, this should be _mesa_fls(vp->Base.SamplersUsed). With those fixes, this patch is: Reviewed-by: Paul Berry <[email protected]>
_______________________________________________ mesa-dev mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/mesa-dev
