From: Ian R. <id...@us...> - 2003-04-08 23:20:21
|
Eric Anholt wrote: > The last few days I've been looking at the radeon pageflipping code and > copying it to Rage 128. It's been pretty easy due to the disabled > fullscreen pageflip code already being there. I've got a patch now that > seems to work for the trivial stuff I've tried, but I would like someone > else to look at it since I'm clueless, particularly in the h/w driver > (is that the current official name of the *_dri.so?). The current patch I've always called it the client-side driver. Afterall, there is another part to the 3D driver that lives in the kernel. :) I don't think it matters too much. Client-side driver, h/w driver, 3D driver...people will know what you mean. > I have is here: > http://people.freebsd.org/~anholt/dri/files/r128-pageflip-4.diff > > On my Rage 128 Mobility M4 MF: > glxgears at 16 bit went from 735->733 fps (too much deviation to see a difference) > glxgears at 24 bit went from 458->661 fps I haven't had a chance to look at it yet, but if it works, then it's probably okay. You might wait to commit it until after I merge the texmem branch into the trunk. I refactored some code in this area in the MGA, R200, and Radeon drivers. You might want to use that for the R128 also. > Among the things I noticed in trunk code while working on this: > > There are clipping issues on R128 with two 3d clients. To see it, drag > the corner of a glxgears over another running glxgears. I don't see that problem on R200, so it's probably R128 specific. Have you had a chance to look into it more? > Texture problems are visible in mesa fire demo, also in various ways in > tuxracer. Here are links to hardware and software > (LIBGL_ALWAYS_INDIRECT=1) screenshots of the fire demo: > http://people.freebsd.org/~anholt/dri/shots/r128fire.png > http://people.freebsd.org/~anholt/dri/shots/swfire.png I see the same problem on R200. It looks like there's too much fog happening. > There is a block of garbage that looks 64x64 in tuxracer where the > cursor used to be before it got turned off. Hmm...sounds like the cursor isn't really getting turned off. I seem to remember a problem like this once a long time ago w/a different driver. > In radeon_dri.c:RADEONDisablePageFlip() it talks about "bumping the > window counters". Are they actually being bumped? I see that > radeon_lock.c is watching for the counters to get bumped. I think that comment is incorrect. The 2D driver communicates to the 3D driver that page-flipping is disabled by setting pfAllowPageFlip to 0. The 2D driver internally uses "window counting" to know when to set pfAllowPageFlip to 0 or 1. |