On Mon, 2012-02-20 at 05:59 +0100, Mario Kleiner wrote: > On 02/16/2012 11:04 AM, Michel Dänzer wrote: > > On Don, 2012-02-16 at 00:45 +0100, Mario Kleiner wrote: > >> can_exchange() fails on at least Xorg 1.12+. This fixes > >> it in the same way it was fixed in the ati& intel ddx. > >> > >> Signed-off-by: Mario Kleiner<[email protected]> > >> --- > >> src/nouveau_dri2.c | 2 +- > >> 1 files changed, 1 insertions(+), 1 deletions(-) > >> > >> diff --git a/src/nouveau_dri2.c b/src/nouveau_dri2.c > >> index 3aa5ec5..5b62425 100644 > >> --- a/src/nouveau_dri2.c > >> +++ b/src/nouveau_dri2.c > >> @@ -160,7 +160,7 @@ can_exchange(DrawablePtr draw, PixmapPtr dst_pix, > >> PixmapPtr src_pix) > >> return ((DRI2CanFlip(draw)&& pNv->has_pageflip))&& > >> dst_pix->drawable.width == src_pix->drawable.width&& > >> dst_pix->drawable.height == src_pix->drawable.height&& > >> - dst_pix->drawable.depth == src_pix->drawable.depth&& > >> + dst_pix->drawable.bitsPerPixel == > >> src_pix->drawable.bitsPerPixel&& > >> dst_pix->devKind == src_pix->devKind; > >> } > >> > > > > Actually, it seems like the pixmap depths really should match, otherwise > > one could end up with the front pixmap depth not matching the window > > depth. Not sure that's a real problem right now, but it seems wonky at > > least... > > > > Have you investigated why the depths don't match? > > Depends on the meaning of "investigated": One of the pixmaps has depth > 24 bits (the pixmap of the root window) the other 32 bits (as requested > from the client via DRI2GetBuffersWithFormat for RGBA8 visuals). Both > have 32 bpp. I checked what the intel and ati ddx do. The ati ddx always > checked for matching drawable.bitsPerPixel since kms pageflip support > was implemented. The intel ddx does the same, but the code and comments > suggests they tried both and checking for matching depths probably > didn't work: > > cd xorg/drivers/xf86-video-intel/ > git log -p e2615cdeef078dbd2e834b68c437f098a92b941d > > So everybody does it like this currently, and it seems to work.
Right. I must have been incorrectly thinking of flipping as changing the window pixmap. I still have some doubts — e.g. why is an RGBA visual chosen for a fullscreen window, and does this really have anything to do with changes in xserver 1.12, or rather in Mesa — but I think the change itself is okay. -- Earthling Michel Dänzer | http://www.amd.com Libre software enthusiast | Debian, X and DRI developer _______________________________________________ Nouveau mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/nouveau
