summaryrefslogtreecommitdiff
path: root/uxa/uxa.h
AgeCommit message (Collapse)AuthorFilesLines
2010-06-09Revert "xp:trapezoids"Chris Wilson1-5/+0
This reverts commit f429fb9d872950705e11171d0e7407fb7673c786. An experimental patch I forgot was on my main branch as I was bugfixing. ARGH!
2010-06-08xp:trapezoidsChris Wilson1-0/+5
2010-06-07uxa: Setup acceleration functions prior to the damage layerChris Wilson1-0/+1
We need to install the acceleration functions so that they are wrapped by the Damage layer. This fixes the corruption under a compositing WM introduced in commit 8700673157fdd3a87ad5150f2f30823261fec519. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Reported-and-tested-by: Arkadiusz Miƛkiewicz <arekm@maven.pl>
2010-05-31Disable acceleration if we detect a hardware error.Chris Wilson1-0/+1
This is wildly optimistic, but it should work in a surprising number of error situations and some output in those cases will be hopefully be better than none... If we submit a batchbuffer and the kernel reports the GPU is hung (which will be caused by an earlier execbuffer, and so the kernel should have had enough time to determine whether or not it could reset the GPU) then disable any further attempt to accelerate gfx and force fallbacks to map the buffers and use the CPU. We cannot normally map any more buffers if the GPU is hung, so only those already mapped prior to the hang can be written to, or those allocated in system memory. However, we can expect that the framebuffer is already mapped, and so have a reasonable expectation to continue to see the display update. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2010-05-24uxa: Use temporary dest when target is too large for compositorChris Wilson1-4/+16
If the destination cannot fit into the 3D pipeline when we need to composite, we fallback to doing the operation on the CPU. This is very slow, and quite easy to trigger on i915 by plugging in an external display. An alternative is to extract the extents of the operation from the destination using the blitter which can usually handle much larger operations. This gives us a temporary target that can fit into the 3D pipeline and thus be accelerated, before copying back into the larger real destination. For x11perf this boosts glyph rendering on PineView, from 38kglyphs/s to 480kglyphs/s. Just a little shy of the native performance of 601kglyphs/s Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2010-05-14Split the prepare blitter functions into check + prepare.Chris Wilson1-0/+17
Allow us to check whether we can handle the operation using the blitter prior to doing any work. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2010-05-10uxa: Rearrange checking and preparing of composite textures.Chris Wilson1-0/+13
x11perf regression caused by 2D driver https://bugs.freedesktop.org/show_bug.cgi?id=28047 caused by commit a7b800513fcc94e063dfd68d2f63b6bab7fae47d uxa: Extract sub-region from in-memory buffers. The issue is that as we extract the region prior to checking whether the composite can in fact be accelerated, we perform expensive surplus operations. This is particularly noticeable for ComponentAlpha text, such as rgb10text. The solution here is to rearrange the check_composite() prior to acquiring the sources, and only extracting the subregion if the render path can not actually handle the texture. Performance (on PineView): a7b800513^: aa=68600 glyphs/s, rgb=29900 glyphs/s a7b800513: aa=65700 glyphs/s, rgb=13200 glyphs/s now: aa=66800 glyph/s, rgb=28800 glyphs/s The residual lossage seems to be from the extra function call and dixPrivate lookups. Hmm. More warning is the extremely low performance, however the results are consistent so the improvement looks real... Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2009-11-13i915: Derive the correct target color from the pixmap by checking its formatChris Wilson1-0/+6
Particularly noting to route alpha to the green channel when blending with a8 destinations. Fixes: rendercheck/repeat/triangles regressed http://bugs.freedesktop.org/show_bug.cgi?id=25047 introduced with commit 14109a. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2009-10-06Move to kernel coding style.Eric Anholt1-448/+441
We've talked about doing this since the start of the project, putting it off until "some convenient time". Just after removing a third of the driver seems like a convenient time, when backporting's probably not happening much anyway.
2009-07-22uxa: Tell the driver when we're just going to immediately map the pixmap.Eric Anholt1-0/+10
This lets the driver allocate a nice idle buffer object instead of a busy one, reducing runtime of firefox-20090601 on my G45 from 50.7 (+/- .41%) to 48.4 (+/- 1.1%).
2009-02-10uxa: hook up the fallback debug to the driver's fallback debug option.Eric Anholt1-0/+3
2008-08-05[uxa] Remove unused pixmap size limits.Keith Packard1-50/+0
All size-related rendering limits should be managed by the driver in the pixmap_is_offscreen call. There's no need for uxa to even know these values.
2008-08-05Rename uxa using _ instead of capsKeith Packard1-181/+106
2008-08-05Change PrepareAccess to take access mode rather than indexKeith Packard1-27/+9
2008-08-05Add UXA - the unified memory acceleration architecture.Keith Packard1-0/+671
This eliminates the cost of EXA migration management while providing full pixmap allocation control to the driver. The goal is to make something useful for UMA drivers.