On Tue, May 22, 2018 at 10:45:55AM -0700, Ian Romanick wrote: > 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 <[email protected]> > >> > >> Every other caller of make_surface does something sensible when NULL is > >> returned. > >> > >> Signed-off-by: Ian Romanick <[email protected]> > >> 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 <[email protected]> > >> Cc: "17.3" <[email protected]> > > > > 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). >
Right. > 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? > Good question. I did some git blaming and didn't find any modifications to make_surface after 897c54d522ab9. This patch protects against the OOM case. Whether or not that is causing the gnome-shell bug, I don't know. -Nanley > > With at least the fixes tag, this patch is > > Reviewed-by: Nanley Chery <[email protected]> > > > >> --- > >> 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 > >> [email protected] > >> https://lists.freedesktop.org/mailman/listinfo/mesa-dev _______________________________________________ mesa-dev mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-dev
