Looks good. Reviewed-by: Zack Rusin <za...@vmware.com>
----- Original Message ----- > From: Roland Scheidegger <srol...@vmware.com> > > pstipple/aaline stages used PIPE_MAX_SAMPLER instead of > PIPE_MAX_SHADER_SAMPLER_VIEWS when dealing with sampler views. > Now these stages can't actually handle sampler_unit != texture_unit anyway > (they cannot work with d3d10 shaders at all due to using tex not sample > opcodes as "mixed mode" shaders are impossible) but this leads to crashes if > a driver just installs these stages and then more than PIPE_MAX_SAMPLER views > are set even if the stages aren't even used. > --- > src/gallium/auxiliary/draw/draw_pipe_aaline.c | 6 +++--- > src/gallium/auxiliary/draw/draw_pipe_pstipple.c | 6 +++--- > 2 files changed, 6 insertions(+), 6 deletions(-) > > diff --git a/src/gallium/auxiliary/draw/draw_pipe_aaline.c > b/src/gallium/auxiliary/draw/draw_pipe_aaline.c > index c44c236..8483bd7 100644 > --- a/src/gallium/auxiliary/draw/draw_pipe_aaline.c > +++ b/src/gallium/auxiliary/draw/draw_pipe_aaline.c > @@ -107,7 +107,7 @@ struct aaline_stage > struct aaline_fragment_shader *fs; > struct { > void *sampler[PIPE_MAX_SAMPLERS]; > - struct pipe_sampler_view *sampler_views[PIPE_MAX_SAMPLERS]; > + struct pipe_sampler_view > *sampler_views[PIPE_MAX_SHADER_SAMPLER_VIEWS]; > } state; > > /* > @@ -763,7 +763,7 @@ aaline_destroy(struct draw_stage *stage) > struct pipe_context *pipe = stage->draw->pipe; > uint i; > > - for (i = 0; i < PIPE_MAX_SAMPLERS; i++) { > + for (i = 0; i < PIPE_MAX_SHADER_SAMPLER_VIEWS; i++) { > pipe_sampler_view_reference(&aaline->state.sampler_views[i], NULL); > } > > @@ -937,7 +937,7 @@ aaline_set_sampler_views(struct pipe_context *pipe, > for (i = 0; i < num; i++) { > pipe_sampler_view_reference(&aaline->state.sampler_views[i], > views[i]); > } > - for ( ; i < PIPE_MAX_SAMPLERS; i++) { > + for ( ; i < PIPE_MAX_SHADER_SAMPLER_VIEWS; i++) { > pipe_sampler_view_reference(&aaline->state.sampler_views[i], NULL); > } > aaline->num_sampler_views = num; > diff --git a/src/gallium/auxiliary/draw/draw_pipe_pstipple.c > b/src/gallium/auxiliary/draw/draw_pipe_pstipple.c > index 51f5a86..f38addd 100644 > --- a/src/gallium/auxiliary/draw/draw_pipe_pstipple.c > +++ b/src/gallium/auxiliary/draw/draw_pipe_pstipple.c > @@ -87,7 +87,7 @@ struct pstip_stage > struct pstip_fragment_shader *fs; > struct { > void *samplers[PIPE_MAX_SAMPLERS]; > - struct pipe_sampler_view *sampler_views[PIPE_MAX_SAMPLERS]; > + struct pipe_sampler_view > *sampler_views[PIPE_MAX_SHADER_SAMPLER_VIEWS]; > const struct pipe_poly_stipple *stipple; > } state; > > @@ -592,7 +592,7 @@ pstip_destroy(struct draw_stage *stage) > struct pstip_stage *pstip = pstip_stage(stage); > uint i; > > - for (i = 0; i < PIPE_MAX_SAMPLERS; i++) { > + for (i = 0; i < PIPE_MAX_SHADER_SAMPLER_VIEWS; i++) { > pipe_sampler_view_reference(&pstip->state.sampler_views[i], NULL); > } > > @@ -731,7 +731,7 @@ pstip_set_sampler_views(struct pipe_context *pipe, > for (i = 0; i < num; i++) { > pipe_sampler_view_reference(&pstip->state.sampler_views[i], views[i]); > } > - for (; i < PIPE_MAX_SAMPLERS; i++) { > + for (; i < PIPE_MAX_SHADER_SAMPLER_VIEWS; i++) { > pipe_sampler_view_reference(&pstip->state.sampler_views[i], NULL); > } > > -- > 1.7.9.5 > _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev