[Mesa-dev] [PATCH] st/mesa: avoid integer overflows with buffers >= 512MB
Ilia Mirkin
imirkin at alum.mit.edu
Wed Sep 16 09:41:11 PDT 2015
On Wed, Sep 16, 2015 at 9:21 AM, Roland Scheidegger <sroland at vmware.com> wrote:
> Since there are no formats where block.bits isn't a multiple of 8 (and I
> wouldn't expect that to change), you could theoretically fix that by
> dividing by block.bits / 8 instead of multiplying base (or size) by 8.
> Ought to be faster at least on 32bit systems...
Why didn't I think of that... I even tried playing with a few other
expression orderings, and gave up.
> Unless you wanted to support >= 4GB buffers (I think though for that
> we're missing way more things).
No. In fact my piglit test explicitly skips situations that would
cause it to create >= 2G buffers.
> Either way though,
> Reviewed-by: Roland Scheidegger <sroland at vmware.com>
Thanks!
>
> Am 16.09.2015 um 01:32 schrieb Ilia Mirkin:
>> This fixes failures with the newly-submitted max-size texture buffer
>> piglit test for GPUs exposing >= 128M max texels.
>>
>> Signed-off-by: Ilia Mirkin <imirkin at alum.mit.edu>
>> Cc: "10.6 11.0" <mesa-stable at lists.freedesktop.org>
>> ---
>> src/mesa/state_tracker/st_atom_texture.c | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/src/mesa/state_tracker/st_atom_texture.c b/src/mesa/state_tracker/st_atom_texture.c
>> index 31e0f6b..62312af 100644
>> --- a/src/mesa/state_tracker/st_atom_texture.c
>> +++ b/src/mesa/state_tracker/st_atom_texture.c
>> @@ -264,7 +264,7 @@ st_create_texture_sampler_view_from_stobj(struct pipe_context *pipe,
>> format);
>>
>> if (stObj->pt->target == PIPE_BUFFER) {
>> - unsigned base, size;
>> + uint64_t base, size;
>> unsigned f, n;
>> const struct util_format_description *desc
>> = util_format_description(templ.format);
>>
>
More information about the mesa-dev
mailing list