On Sun, May 08, 2011 at 10:26:00AM +0200, Julien Cristau wrote: > On Sun, May 8, 2011 at 01:25:01 +0000, Bjarni Ingi Gislason wrote: > > > The "X" server issues "PreInit" that maps and unmaps. Then it > > issues "ScreenInit" which maps. > > > > "iceweasel" causes a second map though "ScreenInit", which > > leads to error. > > > That should never happen. ScreenInit is called at the start of a > session, and CloseScreen should be called before the next ScreenInit. > That's not a client bug. >
You are probably right. I have made some more tests in the trident driver code. Unmapping is only done in "CloseScreen", if "vtSema" is true. If I switch terminals after issuing a single "X &" command to issue "iceweasel", then "vtSema" is false in the next "CloseScreen". "iceweasel" switches automatically to the X display, but "xpdf" does not do it. If I transfer the "TRIDENTUnmapMem(pScrn)" subroutine outside the "if (pScrn->vtSema)" block, then the missing unmapping occurs. A comment in the code before "CloseScreen" is: "It should really also unmap the video memory too." The conditions to trigger the error (using "libpciaccess") are 1) change from the X display (pure server, e.g. "X -retro &") to a text terminal 2) issue a X client (in the background) that automatically switches to the X display. Other video drivers should be tested in this way. -- Bjarni I. Gislason -- To UNSUBSCRIBE, email to debian-x-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/20110511185039.ga24...@rhi.hi.is