On Don, 2010-06-10 at 12:54 +0200, Yves De Muyter wrote: > Here you find the code: > > http://code.google.com/p/gma500/source/browse/trunk/xserver-xorg-video-psb/xserver-xorg-video-psb-0.32.1/src/psb_video.c > > The problem is on line 688. > > The code tries to find the pointer to the buffer and the offset, and if > it doesnt find it, it calls exaMoveInPixmap(). > > I don't like the 'while' thing personally but I didn't write that code > and are willing to change it, that's not the problem.
FWIW I don't think it makes sense to try exaMoveInPixmap more than once. > The problem is that exaMoveInPixmap() doesnt do anything if the pixmap > has a score that is 'PINNED', and that's the case here... As the pixmap was retrieved from a window, I *think* the only way it can be pinned is if it's the screen pixmap (i.e. you're not using a compositing manager, or it unredirected the fullscreen window). In that case I think the problem is actually a spurious failure of psbExaGetSuperOffset(), possibly due to an issue in exaGetPixmapOffset() - there's recently been some discussion about that with drivers like psb or geode. Of course these issues should be fixed, but in the long term it might make sense for the psb driver to use the EXA 'mixed' or 'driver' pixmap memory allocation scheme rather than the 'classic' one in rather special ways prone to breakage. -- Earthling Michel Dänzer | http://www.vmware.com Libre software enthusiast | Debian, X and DRI developer _______________________________________________ [email protected]: X.Org support Archives: http://lists.freedesktop.org/archives/xorg Info: http://lists.freedesktop.org/mailman/listinfo/xorg Your subscription address: [email protected]
