new radeon tiling patch

Alex Deucher alexdeucher at gmail.com
Mon Jan 17 12:47:57 PST 2005


On Mon, 17 Jan 2005 21:34:40 +0100, Roland Scheidegger
<rscheidegger_lists at hispeed.ch> wrote:
> Michel Dänzer wrote:
> > On Sat, 2005-01-15 at 03:29 +0100, Roland Scheidegger wrote:
> >
> >>One question I still have though is regarding to the surface setup, I'm
> >>actually not convinced the addresses are correct in all cases, because I
> >>don't understand how all that address translation stuff works. So
> >>currently the addresses which are used always start from 0 (which
> >>usually is the framebuffer location), but I'm not so sure if that's
> >>correct for instance for igps regarding how this looks to the gpu.
> >
> >
> > There's no difference between IGP and non-IGP, this simply isn't correct
> > with recent DDX and DRM. 
> Looked at it again, and you're right.
> 
> > The location of the framebuffer as seen by the
> > GPU needs is defined by MC_FB_LOCATION. All current components have
> > fields named along the lines of ...->fbLocation for that.
> I've done some tests, and this doesn't seem to be true for the surface
> regs. Maybe the addresses there are already relative to MC_FB_LOCATION.
> 
> I've uploaded a new version here:
> http://homepage.hispeed.ch/rscheidegger/dri_experimental/radeon_tiling_ddx8.diff
> http://homepage.hispeed.ch/rscheidegger/dri_experimental/radeon_tiling_dri8.diff
> http://homepage.hispeed.ch/rscheidegger/dri_experimental/radeon_tiling_drm8.diff
> 
> This one should have mergedfb + mixed interlaced/non-interlaced
> resolutions fixed (untested), fixed some errors with pageflip in some
> resolutions (backbuffer alignment problem), fixed a copy & paste error
> in the non-core drm version, and it actually auto-refreshes the screen
> when switching between a tiled and untiled resolution...
> Also should correct depth read/write problems with rv100 cards, which
> seem to not always use depth tiling.
> It also enables color tiling by default.
> Last but not least, it implements the versioning scheme as suggested on
> the ml (i.e boost ddx major when color tiling is used, and dri accepts a
> range of ddx versions).
> 
> If noone has objections, I'm going to commit this (minus some printfs)
> soon (consider yourself warned ;-)). Though I don't quite know if the
> drm/dri changes should also be applied to xorg cvs.
> 
> Roland

I'll give this a test on mergedfb in the next day or so.  I quickly
perused the DDX changes and I noticed this:

+    if (info->allowColorTiling && (pScrn->virtualY > 2048)) {
+	xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
+		   "Color tiling not supported with virtual x resolutions larger
than 2048\n");
+	info->allowColorTiling = FALSE;
+    }

you'll probably want to check pScrn->virtualX as well.  maybe something like:

+    if (info->allowColorTiling && ((pScrn->virtualY > 2048) ||
(pScrn->virtualX > 2048))) {
+	xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
+		   "Color tiling not supported with virtual x/y resolutions larger
than 2048\n");
+	info->allowColorTiling = FALSE;
+    }


Looks good so far otherwise.

Alex



More information about the xorg mailing list