Ilia Mirkin
2017-Dec-31 07:23 UTC
[Nouveau] [PATCH] dri3: remove bogus condition for creating pixmap
Not clear what the depth % 8 was trying to protect against, but it was breaking 30bpp visuals with DRI3. Signed-off-by: Ilia Mirkin <imirkin at alum.mit.edu> --- src/nouveau_dri2.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/nouveau_dri2.c b/src/nouveau_dri2.c index cbb7b2a..07b6022 100644 --- a/src/nouveau_dri2.c +++ b/src/nouveau_dri2.c @@ -1076,7 +1076,7 @@ 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); -- 2.13.6
Ilia Mirkin
2017-Dec-31 07:35 UTC
[Nouveau] [PATCH] dri3: remove bogus condition for creating pixmap
On Sun, Dec 31, 2017 at 2:23 AM, Ilia Mirkin <imirkin at alum.mit.edu> wrote:> Not clear what the depth % 8 was trying to protect against, but it was > breaking 30bpp visuals with DRI3.Erm, actually switching to my test config which doesn't enable dri3 is what "fixed" things. DRI3 is still busted. Ignore this patch until that's properly figured out for 30bpp.> > Signed-off-by: Ilia Mirkin <imirkin at alum.mit.edu> > --- > src/nouveau_dri2.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/src/nouveau_dri2.c b/src/nouveau_dri2.c > index cbb7b2a..07b6022 100644 > --- a/src/nouveau_dri2.c > +++ b/src/nouveau_dri2.c > @@ -1076,7 +1076,7 @@ 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); > -- > 2.13.6 >
Ilia Mirkin
2018-Feb-04 17:49 UTC
[Nouveau] [PATCH] dri3: remove bogus condition for creating pixmap
On Sun, Dec 31, 2017 at 2:35 AM, Ilia Mirkin <imirkin at alum.mit.edu> wrote:> On Sun, Dec 31, 2017 at 2:23 AM, Ilia Mirkin <imirkin at alum.mit.edu> wrote: >> Not clear what the depth % 8 was trying to protect against, but it was >> breaking 30bpp visuals with DRI3. > > Erm, actually switching to my test config which doesn't enable dri3 is > what "fixed" things. DRI3 is still busted. Ignore this patch until > that's properly figured out for 30bpp.So actually it does seem like DRI3 works fine now. After a lot of tracing, looks like bitsPerPixel will still get set to 32 in this case, so a lot of the code that does like bitsPerPixel / 8 should remain OK. I'm following up with a patch which also ensures that the pixmap->drawable.bitsPerPixel % 8 == 0. Presumably that's what was trying to be checked earlier.> >> >> Signed-off-by: Ilia Mirkin <imirkin at alum.mit.edu> >> --- >> src/nouveau_dri2.c | 2 +- >> 1 file changed, 1 insertion(+), 1 deletion(-) >> >> diff --git a/src/nouveau_dri2.c b/src/nouveau_dri2.c >> index cbb7b2a..07b6022 100644 >> --- a/src/nouveau_dri2.c >> +++ b/src/nouveau_dri2.c >> @@ -1076,7 +1076,7 @@ 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); >> -- >> 2.13.6 >>
Reasonably Related Threads
- [PATCH] dri3: remove bogus condition for creating pixmap
- [PATCH 1/2] dri3: remove bogus condition for creating pixmap
- [PATCH 1/2] exa: Pre-G80 tiling support.
- [PATCH ddx] Add support for VRAM-less devices to the ddx
- [PATCH xf86-video-nouveau] dri2, present: move in pixmap before getting addresses