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 <imir...@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 _______________________________________________ Nouveau mailing list Nouveau@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/nouveau