[Nouveau] [PATCH 1/2] dri3: remove bogus condition for creating pixmap
Ilia Mirkin
imirkin at alum.mit.edu
Sun Feb 4 18:58:46 UTC 2018
Not clear what the depth % 8 was trying to protect against, but it was
breaking 30bpp visuals with DRI3. Add it in to ensure that bitsPerPixel
% 8 is 0, since there is plenty of bpp/8 math in the driver.
Signed-off-by: Ilia Mirkin <imirkin at alum.mit.edu>
---
src/nouveau_dri2.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/src/nouveau_dri2.c b/src/nouveau_dri2.c
index cbb7b2a..ac0ca09 100644
--- a/src/nouveau_dri2.c
+++ b/src/nouveau_dri2.c
@@ -1076,13 +1076,16 @@ static PixmapPtr nouveau_dri3_pixmap_from_fd(ScreenPtr screen, int fd, CARD16 wi
struct nouveau_bo *bo = NULL;
struct nouveau_pixmap *nvpix;
- if (depth < 8 || depth > 32 || depth % 8)
+ if (depth < 8 || depth > 32)
return NULL;
pixmap = screen->CreatePixmap(screen, 0, 0, depth, 0);
if (!pixmap)
return NULL;
+ if (pixmap->drawable.bitsPerPixel % 8)
+ goto free_pixmap;
+
if (!screen->ModifyPixmapHeader(pixmap, width, height, 0, 0, stride, NULL))
goto free_pixmap;
--
2.13.6
More information about the Nouveau
mailing list