On Fri, 2005-01-07 at 04:10 +0100, Roland Scheidegger wrote: > > The dri and drm seem fairly straightforward, though I'm not sure the way > I handled communication between especially drm and ddx is how it's meant > to be. dri got a bit unlucky, as ddx can't know at startup if it will be > able to handle color tiling, so old dri together with new drm and new > ddx will not work (correctly) (if you have enabled color tiling).
You might be able to solve this with a two-way handshake between the 3D driver and the DDX, similar to how it's done with the DRM already. With that, the DDX could recognize clients that can deal with tiling and prevent others from using direct rendering. > 1) the biggest problem is XAA's handling of graphic memory. It treats > everything as a single big chunk of linear framebuffer. Actually, it treats it as a rectangle of the same width as the virtual width of the screen. The tiling should really be uniform over that whole rectangle. A problem with that is that the hardware cursor does and the back and depth buffers and textures may overlap with it. > 2) I was unable to make render work with the changed x coordinates > trick, needed to support coordinates beyond 2048. I think it should be > possible that this works? Maybe the calculation of the colour offset has to take the tiling into account? > 3) When switching from/to a resolution without tiling support, If tiling doesn't work with all resolutions, shouldn't those resolutions be discarded in the first place if tiling is enabled? > everything on screen will be really wrong and needs to be redrawn. I > guess it's somehow possible to mark everything as dirty or something > like that? Just externally calling "xrender" doesn't sound like a good > solution... Maybe you could walk the window tree and generate expose events or something like that, but that would be rather ugly. > 5) I'm not sure how exactly fbdev (the UseFBDev option) works, but I'm > pretty confident it won't work at all with color tiling, and I've no > idea how you'd fix that, [...] It's true that radeonfb doesn't enable tiling when it sets a mode, and there's no way that I know of to tell it to do it even if it could. The only (hackish) way I can see would be to make sure the relevant registers are correct after calling into fbdevHW for setting the mode, but for now I'd just disable tiling if fbdev is enabled. -- Earthling Michel DÃnzer | Debian (powerpc), X and DRI developer Libre software enthusiast | http://svcs.affero.net/rm.php?r=daenzer ------------------------------------------------------- The SF.Net email is sponsored by: Beat the post-holiday blues Get a FREE limited edition SourceForge.net t-shirt from ThinkGeek. It's fun and FREE -- well, almost....http://www.thinkgeek.com/sfshirt -- _______________________________________________ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel