glamor: Return NullPixmap on failure to create shareable pixmap

If we were asked to create a shareable pixmap, it doesn't make sense
to return a pixmap which isn't shareable. Doing so caused trouble down
the line such as a crash with older versions of glamor when trying to
use GLX pixmaps of bpp < 32 via DRI2.

Signed-off-by: JimQu <jim.qu@amd.com>
(ported from amdgpu commit 2fcb7dadd3c71cd405cbbaafc777697538ca9c29)
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
jimqu
2016-02-16 17:05:48 +09:00
committed by Michel Dänzer
parent 4cc3203146
commit 7bc089ee97

View File

@@ -262,7 +262,9 @@ fallback_glamor:
*/
xf86DrvMsg(scrn->scrnIndex, X_WARNING,
"Failed to create textured DRI2/PRIME pixmap.");
return pixmap;
radeon_glamor_destroy_pixmap(pixmap);
return NullPixmap;
}
/* Create textured pixmap failed means glamor failed to
* create a texture from current BO for some reasons. We turn