About a year ago I was using DGA for my games graphics library. I was told by various people that using DGA was not the way to go. At first I thought this was nonsense, as you can't get vsync using the more standard XPutImage method (and get tearing). However, all changed when I bought a laptop with TFT screen. Problem is, there is no vsync on the new LCD/TFT monitors! So you get tearing anyway! The result is I now draw to an XImage and use XPutImage (using SHM is avaiable), and just forget about vsyncing. Still got a DGA mode if people wanna try it, but on LCD screens its pointless... (my findings anyway)...
On Sat, 27 Nov 2004 09:19:04 -0600 [EMAIL PROTECTED] wrote: > Is XFree86 w/DGA the only way to achieve high performance direct > framebuffer rendering (page flipped) without any negative artifacts on > linux? > > I'm using svgalib w/vesa right now for a strictly 8bpp project and the > only way I've managed to get fast (full) frame rates without tearing or > flickering is page flipping when linear frame buffer is supported. > However, it took some vga hacks to reliably sync before the flip (just > waiting for retrace doesnt work, I duplicated the Abrash-documented method > reading the vga status port and waiting til it is mid-scan (display enable) > to set the start address then waiting for retrace to ensure the new offset > gets a draw in). > > It's working fine on all my test machines which it would tear on before I > implemented the Abrash method (previously I just waited for vertical > retrace then flipped the page), but now it tears on the only box the old > approach worked flawlessly on :( It looks like my matrox millenium II > notices when you change the display start address mid-scan and > demonstrates this with a regular (every frame) tear. My Abrash books say > to set the address while the display is enabled as it's supposed to have > latched onto the last start address for the duration of the scan... grr. > > Any suggestions would be much appreciated, I know this is a bit of a > thread-hijack but it's somewhat related to Eugene's question. I've been > considering going down the DGA route and adding X to the mix due to > the problems I've been encountering... I'm just not sure it will solve > all the problems, and will probably add new ones. > > Thanks in advance for any input, I'm sure many of you have had to deal > with similar issues. > > > On Thu, Nov 25, 2004 at 11:38:17AM -0800, Mark Vojkovich wrote: > > If you want tearless rendering you should be flipping. Ie. render > > to a non displayed portion of the framebuffer, then call XDGASetViewport > > to display it after the copy is finished. See the DGA test apps at > > http://www.xfree86.org/~mvojkovi/, specifically texture.tar.gz. > > If the texture and skull demos aren't tearless, there is a bug in the > > DGA driver support for your card. > > > > > > Mark. > > > > On Thu, 25 Nov 2004, Eugene Farinas wrote: > > > > > Hi guys! We're developing a DGA program that render full screen at > > > 1280x1024 16 bpp 15fps the video image read from a sony camera, but we're > > > experiencing tearing artifacts during rendering. This is a part of the > > > code that copies the data to the frame buffer: > > > > > > void CAM_APP::DisplayImage_NoPartial(unsigned char* offset) > > > { > > > register int j; > > > register unsigned long caddr = (unsigned long) offset; > > > for(j=0; j<iSize; caddr+=2,j++){ > > > *( (unsigned short*) caddr ) = sTable[g_pBuf[j]]; > > > } > > > } > > > > > > Where the offset is the start of the buffer destination, and g_pBuf is > > > the data captured from the camera. we've tried copying the data during > > > vertical resync but we're still experiencing tearing on the image. We're > > > using an AMD gx2 geode processor w/ 128 mb ram and 8mb vram. I would like > > > to ask your help in removing the tearing artifacts. Thanks. > > > > > > --- > > > Outgoing mail is certified Virus Free. > > > Checked by AVG anti-virus system (http://www.grisoft.com). > > > Version: 6.0.797 / Virus Database: 541 - Release Date: 11/15/2004 > > > > > > > > > _______________________________________________ > > > Devel mailing list > > > [EMAIL PROTECTED] > > > http://XFree86.Org/mailman/listinfo/devel > > > > > _______________________________________________ > > Devel mailing list > > [EMAIL PROTECTED] > > http://XFree86.Org/mailman/listinfo/devel > _______________________________________________ > Devel mailing list > [EMAIL PROTECTED] > http://XFree86.Org/mailman/listinfo/devel > _______________________________________________ Devel mailing list [EMAIL PROTECTED] http://XFree86.Org/mailman/listinfo/devel