[Mesa-dev] [PATCH] i965/miptree: Fail gracefully when make_surface returns NULL
Ian Romanick
idr at freedesktop.org
Tue May 22 17:45:55 UTC 2018
On 05/22/2018 09:03 AM, Nanley Chery wrote:
> On Wed, Jan 03, 2018 at 10:41:43AM -0800, Ian Romanick wrote:
>> From: Ian Romanick <ian.d.romanick at intel.com>
>>
>> Every other caller of make_surface does something sensible when NULL is
>> returned.
>>
>> Signed-off-by: Ian Romanick <ian.d.romanick at intel.com>
>> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=104214
>
> I think it'd be helpful to add/use this tag which shows the specific
> issue out in the wild:
>
> Bug: https://bugs.launchpad.net/ubuntu/+source/gnome-shell/+bug/1760415
>
>> Tested-by: Cyril <cyril.duez at gmail.com>
>> Cc: "17.3" <mesa-stable at lists.freedesktop.org>
>
> I think this fixes tag should catch all relevant stable releases:
>
> Fixes: 67b53ee4183 "i965: Represent depth surfaces with isl"
Okay... we previously had a case where make_surface would return NULL,
but we determined that this was because of a problem elsewhere. This
was fixed by 897c54d522ab9 (loader/dri3: Avoid freeing renderbuffers in
use).
Based on this fixes tag, am I correct that another scenario where
make_surface could fail was added later? Assuming that's correct, is
this actually the right fix or, as before, is it just papering over the
real issue?
> With at least the fixes tag, this patch is
> Reviewed-by: Nanley Chery <nanley.g.chery at intel.com>
>
>> ---
>> src/mesa/drivers/dri/i965/intel_mipmap_tree.c | 3 +++
>> 1 file changed, 3 insertions(+)
>>
>> diff --git a/src/mesa/drivers/dri/i965/intel_mipmap_tree.c b/src/mesa/drivers/dri/i965/intel_mipmap_tree.c
>> index ead0c35..0079a08 100644
>> --- a/src/mesa/drivers/dri/i965/intel_mipmap_tree.c
>> +++ b/src/mesa/drivers/dri/i965/intel_mipmap_tree.c
>> @@ -719,6 +719,9 @@ miptree_create(struct brw_context *brw,
>> ISL_SURF_USAGE_DEPTH_BIT | ISL_SURF_USAGE_TEXTURE_BIT,
>> BO_ALLOC_BUSY, 0, NULL);
>>
>> + if (mt == NULL)
>> + return NULL;
>> +
>> if (needs_separate_stencil(brw, mt, format) &&
>> !make_separate_stencil_surface(brw, mt)) {
>> intel_miptree_release(&mt);
>> --
>> 2.9.5
>>
>> _______________________________________________
>> mesa-dev mailing list
>> mesa-dev at lists.freedesktop.org
>> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
More information about the mesa-dev
mailing list