Ville Syrjälä <syrj...@sci.fi> writes: > Just set the alignment to your fixed pitch value and it should work, > shouldn't it?
Great! Good idea! I have tried to set up pitch align pEXA->pixmapPitchAlign = pScrn->displayWidth * pS3->s3Bpp; and got almost normal working screen (with artefacts though) but not so ugly as before. I think that it may be bug somewhere in EXA or driver bacause server's log is full of error messages. ... EXA bug: Calling FinishAccess on pixmap 0x9278d68 with index 1 while it should have been (nil). EXA bug: Calling FinishAccess on pixmap 0x921a2e0 with index 1 while it should have been (nil). EXA bug: Calling FinishAccess on pixmap 0x921a2e0 with index 1 while it should have been (nil). ... However the main problem with this method is that memory manager doesn't effectively use the offscreen in this case. To allocate tiny pixmap with w,h = (4,4) in 800x600/32bpp the 4 * 3200 = 12800 bytes (with alignment 800 * 4 bytes for colour) is required. I verified that by printing exaPixmapSize for every offscreen pixmap. The offscreen memory manager is not so smart to allocate the pixmap 2 on the same scanlines within reserved area for pixmap's 1 alignment. It can be placed only after last row of previous pixmap (see pixmap 2'). When the size of video RAM is very limited this becomes meaningless (for 800x600/32bpp, 2Mb RAM , the offscreen is about 171 kB -- total height of stored pixmaps is 55). <--- 800 * 4 Bpp ----> 0 ====================== - . ====================== | . ====================== | . ====================== 600 scanlines (Framebuffer) . ====================== | 599 ====================== | 600 +----+================ - . | 1 |=====+---+====== | . | |=====| 2 |====== | . +----+=====+---+====== 55 scanlines (Offscreen) . +---+================= | . | 2'|================= | 654 +---+================= - But anyway, thanks for idea. _______________________________________________ xorg mailing list xorg@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/xorg