[Mesa-dev] [PATCH] st/mesa: ensure that images don't try to reference non-existent levels

Ilia Mirkin imirkin at alum.mit.edu
Thu Mar 1 12:23:19 UTC 2018


Yes, as I mentioned this makes some tests assert.

They were passing before, but it was through luck since the actual images
were never accessed.

On Mar 1, 2018 04:04, "Timothy Arceri" <tarceri at itsqueeze.com> wrote:

> This causes the CTS tests to assert on radeonsi where they previously
> passed. If that expected?
>
> On 27/02/18 16:19, Ilia Mirkin wrote:
>
>> Ideally the st_finalize_texture call would take care of that, but it
>> doesn't seem to with KHR-GL45.shader_image_size.advanced-nonMS-*. This
>> assertions makes sure that no such values are passed to the driver.
>>
>> Signed-off-by: Ilia Mirkin <imirkin at alum.mit.edu>
>> ---
>>
>> This will trigger asserts in CTS, but I think that's better than feeding
>> broken values to driver backends.
>>
>>   src/mesa/state_tracker/st_atom_image.c | 1 +
>>   1 file changed, 1 insertion(+)
>>
>> diff --git a/src/mesa/state_tracker/st_atom_image.c
>> b/src/mesa/state_tracker/st_atom_image.c
>> index 1c4980173f4..421c926cf04 100644
>> --- a/src/mesa/state_tracker/st_atom_image.c
>> +++ b/src/mesa/state_tracker/st_atom_image.c
>> @@ -97,6 +97,7 @@ st_convert_image(const struct st_context *st, const
>> struct gl_image_unit *u,
>>           img->resource = stObj->pt;
>>         img->u.tex.level = u->Level + stObj->base.MinLevel;
>> +      assert(img->u.tex.level <= img->resource->last_level);
>>         if (stObj->pt->target == PIPE_TEXTURE_3D) {
>>            if (u->Layered) {
>>               img->u.tex.first_layer = 0;
>>
>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20180301/8e978e54/attachment.html>


More information about the mesa-dev mailing list