[Mesa-dev] [PATCH] st/mesa: bound the sampler count before calling into the driver.
Jose Fonseca
jfonseca at vmware.com
Sat Mar 9 12:30:00 PST 2013
Looks a sensible thing to do.
Reviewed-by: Jose Fonseca <jfonseca at vmware.com>
Any insight how the caller can be fixed so that this doesn't happen?
Jose
----- Original Message -----
> With the current code, the sampler count can become higher than
> PIPE_MAX_SAMPLERS and once it gets to the driver this can lead to
> miscellaneous crashes and memory corruptions.
>
> Although this is taken care of in debug mode with an assert,
> there is still a way to cause a crash/overflow in release mode.
>
> So instead, we bound the number of samplers in the state tracker.
> ---
> src/mesa/state_tracker/st_atom_texture.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/src/mesa/state_tracker/st_atom_texture.c
> b/src/mesa/state_tracker/st_atom_texture.c
> index fc2d690..bcd5856 100644
> --- a/src/mesa/state_tracker/st_atom_texture.c
> +++ b/src/mesa/state_tracker/st_atom_texture.c
> @@ -311,6 +311,7 @@ update_textures(struct st_context *st,
> */
> new_count = MAX2(*num_textures, old_max);
> assert(new_count <= max_units);
> + new_count = MIN2(new_count, max_units);
>
> cso_set_sampler_views(st->cso_context,
> shader_stage,
> --
> 1.8.1.3
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/mesa-dev
>
More information about the mesa-dev
mailing list