Summary: | EXA support for via | ||||||||
---|---|---|---|---|---|---|---|---|---|
Product: | xorg | Reporter: | Thomas Hellström <thomas> | ||||||
Component: | Driver/Via | Assignee: | Thomas Hellström <thomas> | ||||||
Status: | RESOLVED FIXED | QA Contact: | |||||||
Severity: | enhancement | ||||||||
Priority: | high | CC: | alexdeucher | ||||||
Version: | git | ||||||||
Hardware: | x86 (IA32) | ||||||||
OS: | Linux (All) | ||||||||
Whiteboard: | |||||||||
i915 platform: | i915 features: | ||||||||
Attachments: |
|
Description
Thomas Hellström
2005-11-27 22:34:05 UTC
Created attachment 3919 [details] [review] Patch to add EXA support and clean up accel. This patch adds EXA support and cleans up acceleration for via. EXA support does not yet include hardware composite acceleration, but includes hardware upload to and download from screen if a CVS via drm is installed. DGA interoperability is implemented but untested. XAA works around the 2047x2047 hw blitter limit and gets a new memory layout. Some XAA bugfixes (mainly clipping) are in as well. Xv still works in the absence of acceleration. - need to put exaGetPixmap{Offset,Pitch} in exaSymbols - you check the planemask correctly in PrepareCopy but not in PrepareSolid. do via chips really not have planemask blit support? (In reply to comment #2) > - need to put exaGetPixmap{Offset,Pitch} in exaSymbols > - you check the planemask correctly in PrepareCopy but not in PrepareSolid. do > via chips really not have planemask blit support? Thanks. I'll fix item 1 up. For item 2, Yes they do but it wasn't evident from the XAA implementation. According to the docs they support a planemask as a multiple of 8 bits in 32bpp mode. /Thomas Comment on attachment 3919 [details] [review] Patch to add EXA support and clean up accel. Made obsolete by the next patch Created attachment 4337 [details] [review] Patch to add EXA and render accel This patch cleans up xaa acceleration and adds render accel through EXA. Actually small composite operations are done faster in software, but big things, like translucent windows are quite nicely accelerated. There is actually a composite size constant below which the driver refuses to do hw composite. This constant is set to 1 byte ATM to make rendering bugs etc. visible. May be adjusted in the future. All composite options may not have been taken care of in the viaExaCheckComposite() function, and some size guards may have to be added. If a composite manager is run, The video memory should really be set to 64MB. Works with or without DRI, and cooperates nicely with other dri clients, except the usual stuff that DRI in general doesn't play well with composite. DGA is taken care of but not tested. Exa Composite is accelerated using 3D engine multitexturing, and the 3D engine has been abstracted to something looking mostly like a C++ class. The idea is to be able to use 3D acceleration also for Xv in the future. /Thomas - viaOpCodes and viaFormats look like they should be const - still no exaGetPixmap{Offset,Pitch} in exaSymbols (which is admittedly cosmetic) the optimizations for ->Composite should probably be factored up to the exa core some day, but i don't see any glaring problems. Commited + fixups to xf86-vide-via (7.X) |
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.