From: Michel <mi...@da...> - 2002-08-04 23:53:17
|
On Mon, 2002-08-05 at 01:16, Leif Delgass wrote: >=20 > I've taken the offscreen reallocation code from this branch and I am > working on applying it to the mach64 branch, along with some other change= s > to help texture memory allocation. It should be helpful for 2D accel on > cards with low memory. >=20 > One thing I noticed from comparing this to the TDFX driver is that the > TransitionTo3d function needs to free any overlay buffer held for XVideo. > Otherwise the 3D allocations may fail and cause screen corruption. I hav= e > a tree I've been working on to merge the mach64 gatos driver with the > mach64 DRI branch, and I was getting screen corruption when starting gear= s > with XVideo running (this only appeared with the dynamic reallocation of > offscreen mem). I fixed the problem by freeing the pPriv->linear > offscreen area (from the XVideo port private struct), but I had to move > the structure to a header so I could access it. It looks like Radeon has > a similar structure (RADEONPortPrivRec) defined in radeon_video.c, so > you'll probably need to do likewise and move the structure to a header > which can be included by radeon_dri.c I'll look into that, thanks. What happens to XVideo if you just free its offscreen area though? Don't you get corruption in the overlay? > Another thing I was wondering was whether it's possible for the offsets t= o > change when reallocating the back/depth/texture areas. My code handles that by querying the largest available area in TransitionTo3d. > Other than XVideo, is there anything that could be holding offscreen memo= ry > when the reallocation is done? Only the hardware cursor in the radeon driver, which is a constant. > Also, this is a minor thing, but is there a reason not to allocate a > single area for back/depth/texture instead of two separate areas for > back + depth/textures? With pageflipping, front and back buffer can be reversed when we go back to 2d only, then we need to keep the back buffer reserved. But now that you mention it, I wonder if it's freed without pageflipping... > If only one allocation succeeds, you'll still have screen corruption. Yes. I haven't put too much thought into the low memory situations yet because they shouldn't occur too often with the radeon driver. :) --=20 Earthling Michel D=E4nzer (MrCooper)/ Debian GNU/Linux (powerpc) developer XFree86 and DRI project member / CS student, Free Software enthusiast |