draw: Fix regression in draw_set_sampler(_views).

draw->samplers(_views) now has PIPE_SHADER_TYPES elements, instead of
PIPE_MAX_SAMPLERS as before.

Also, shader_stage must be less than PIPE_SHADER_TYPES to prevent buffer
overflow.

Trivial.
This commit is contained in:
José Fonseca 2012-08-24 11:27:22 +01:00
parent e84d45fdb7
commit 3e3f99277d

View file

@ -760,12 +760,12 @@ draw_set_sampler_views(struct draw_context *draw,
{
unsigned i;
debug_assert(num <= Elements(draw->sampler_views));
debug_assert(shader_stage <= PIPE_SHADER_TYPES);
debug_assert(shader_stage < PIPE_SHADER_TYPES);
debug_assert(num <= PIPE_MAX_SAMPLERS);
for (i = 0; i < num; ++i)
draw->sampler_views[shader_stage][i] = views[i];
for (i = num; i < Elements(draw->sampler_views); ++i)
for (i = num; i < PIPE_MAX_SAMPLERS; ++i)
draw->sampler_views[shader_stage][i] = NULL;
draw->num_sampler_views[shader_stage] = num;
@ -779,12 +779,12 @@ draw_set_samplers(struct draw_context *draw,
{
unsigned i;
debug_assert(num <= Elements(draw->samplers));
debug_assert(shader_stage <= PIPE_SHADER_TYPES);
debug_assert(shader_stage < PIPE_SHADER_TYPES);
debug_assert(num <= PIPE_MAX_SAMPLERS);
for (i = 0; i < num; ++i)
draw->samplers[shader_stage][i] = samplers[i];
for (i = num; i < Elements(draw->samplers); ++i)
for (i = num; i < PIPE_MAX_SAMPLERS; ++i)
draw->samplers[shader_stage][i] = NULL;
draw->num_samplers[shader_stage] = num;