summaryrefslogtreecommitdiff
path: root/exa/exa_render.c
AgeCommit message (Collapse)AuthorFilesLines
2009-05-15EXA: Take GC client clip type into account for migration.Michel Dänzer1-1/+1
Fixes http://bugs.freedesktop.org/show_bug.cgi?id=18950 . Signed-off-by: Michel Dänzer <daenzer@vmware.com>
2009-02-27EXA: No longer use the driver UploadToScratch hook.Michel Dänzer1-19/+0
See http://bugs.freedesktop.org/show_bug.cgi?id=20213 . Signed-off-by: Michel Dänzer <daenzer@vmware.com>
2009-02-27Revert "EXA: Handle separate alpha maps properly in Composite fallback."Michel Dänzer1-0/+20
This reverts commit 170cf1270dff38d3cce7f5ba5b940d1c0d70eff5. Conflicts: exa/exa_render.c
2009-02-26EXA: Allow using exaCompositeRects also when we can't use a mask in exaGlyphs.Michel Dänzer1-37/+86
This should give the full benefits of the glyph cache even when we can't use a mask. This also means we no longer need to scan the glyphs to see if they overlap, we can just use a mask or not as the client asks. Signed-off-by: Michel Dänzer <daenzer@vmware.com>
2009-02-24EXA: Handle separate alpha maps properly in Composite fallback.Michel Dänzer1-19/+0
Fixes https://bugs.freedesktop.org/show_bug.cgi?id=18710 . As this can't work without new EXA_PREPARE_AUX* indices, this requires a major version bump, so we can also drop the UploadToScratch driver hook and ExaOffscreenSwap*(). So this also fixes http://bugs.freedesktop.org/show_bug.cgi?id=20213 . Moreover, introduce EXA_DRIVER_KNOWN_MAJOR to break compilation of drivers which may not be able to handle EXA_PREPARE_AUX*, giving instructions how to make them build again in the #error message. Signed-off-by: Michel Dänzer <daenzer@vmware.com>
2009-02-06exa: don't use fbCopyNtoNMaarten Maathuis1-4/+13
2008-12-19exa: a few cleanupsMaarten Maathuis1-8/+8
- Some warnings silenced. - Some whitespace cleanup.
2008-11-08Fix typos which caused exaCompositeRects() to use an incorrect damage region.Michel Dänzer1-3/+3
Fixes http://bugs.freedesktop.org/show_bug.cgi?id=18065 . Also, it can bail if either width or height of the bounding box is <= 0, not only if both of them are.
2008-10-15exa: restore {x,y}{Src,Dst} to their original values when !doneMaarten Maathuis1-0/+6
2008-10-03exa: remove "direct" case for exa{Trapezoids,Triangles}Maarten Maathuis1-84/+7
- By adding a small hack to the xserver i was able to easily test the performance of the normally rare direct case (using cairo). - It turned out to be 70% slower for me (large test on an otherwise idle computer), which seems enough of a reason to remove it. - AddTraps could also use a 2nd look, but since noone is using that it's a bit hard and less useful to test.
2008-10-03exa: remove some excessive whitespaceMaarten Maathuis1-8/+8
2008-08-31damage: choose less ambiguous function namesMaarten Maathuis1-7/+7
2008-08-29{damage,exa}: sanitise damageMaarten Maathuis1-23/+22
- Redo damage naming for more consistency. - Call post submission functions only where appropriate. - EXA can now live without it's odd damage workarounds.
2008-08-26exa: fix thinko from 988725f32e082aee9392a71464125157a83d1e67Maarten Maathuis1-3/+3
- the drawable of the pixmap is not the same as the original drawable (possibly a DRAWABLE_WINDOW)
2008-08-26exa: report damage manually for exa{Trapezoids,Triangles} when neededMaarten Maathuis1-6/+16
- Plus a micro cleanup of unused variables.
2008-08-26exa: move destination damage for internal calls to a special functionMaarten Maathuis1-32/+11
- This should improve clarity for someone who isn't familiar with the code.
2008-08-08EXA: Make sure damage tracking code is inactive if the driver manages pixmaps.Michel Dänzer1-83/+93
It was always supposed to be like that... It was only recently pointed out (in a rather convoluted way) that it was not in fact the case.
2008-05-01EXA: Fall back in CompositeRects if the driver can't accelerate Composite.Michel Dänzer1-0/+3
Fixes http://bugs.freedesktop.org/show_bug.cgi?id=15780 .
2008-04-28EXA: Add exaCompositeRects()Owen Taylor1-0/+222
Add a function to composite multiple independent rectangles from the same source to the same destination in a single operation: this is useful for building a glyph mask.
2008-04-14EXA: Teach exaCompositeFallbackPictDesc() about x8r8g8b8.Tilman Sauerbeck1-0/+3
2008-04-07EXA: Fix TS origin computation when implementing RenderComposite with tiling.Owen W. Taylor1-4/+6
2008-02-27EXA: Let the driver decide what repeat/extend types are supported.Maarten Maathuis1-2/+0
2008-02-20EXA: Fix Render acceleration in copy and tiling cases.Eric Anholt1-6/+10
Code shuffling in a634c9b03494ba80aeec28be19662ac96657cc23 broke this by leaving pSrcPixmap = NULL.
2007-11-04Add CreatePixmap allocation hints.Aaron Plattner1-1/+1
These hints allow an acceleration architecture to optimize allocation of certain types of pixmaps, such as pixmaps that will serve as backing pixmaps for redirected windows.
2007-10-19Replace calls to Glyphs screen hook with CompositeGlyphs and remove dead code.Eric Anholt1-258/+0
Not all of the DDX/miext Glyphs hook implementations have been removed, but they should be.
2007-10-19Merge branch 'master' into glyph-pixmapsEric Anholt1-2/+15
Conflicts: configure.ac
2007-10-18EXA: Skip empty glyphs.Michel Dänzer1-0/+1
2007-10-18EXA: Don't attempt to move in pixmaps that can't be accelerated.Michel Dänzer1-2/+14
Fixes https://bugs.freedesktop.org/show_bug.cgi?id=12815 .
2007-10-02Merge branch 'glyph-pixmaps'Eric Anholt1-99/+4
Conflicts: configure.ac exa/exa_render.c
2007-09-26EXA: Removed duplicated exaGetDrawablePixmap() calls.Tilman Sauerbeck1-3/+2
2007-09-25EXA: Added pitch limitations.Tilman Sauerbeck1-10/+14
Drivers can now specify the max pitches that the accelerator supports.
2007-09-07EXA: Use exaShmPutImage for pushing glyphs to scratch pixmap in exaGlyphs.Michel Dänzer1-0/+9
2007-09-07EXA: RENDER improvements.Michel Dänzer1-84/+43
Exclude bits that will be overwritten from migration. Use exaGlyphs even when Composite can't be accelerated, to avoid PolyFillRect roundtrip via offscreen memory. Initialize mask pixmap in exaGlyphs in FB in addition to system if the driver provides Composite hooks to avoid migration overhead. Remove manual damage tracking where superfluous.
2007-09-07EXA: Improvements for trapezoids and triangles.Michel Dänzer1-43/+130
Only migrate once in exaTrapezoids/Triangles instead of every time in exaRasterizeTrapezoid/AddTriangles. Adapt manual damage tracking to new infrastructure. Also move definition of NeedsComponent() closer to where it's used.
2007-09-07EXA: Support partial migration of pixmap contents between Sys and FB.Michel Dänzer1-1/+9
The initiator of migration can pass in a region that defines the relevant area of each source pixmap or the irrelevant area of the destination pixmap. By default, the pending damage region is assumed relevant for the destination pixmap, and everything for source pixmaps. Thanks to Jarno Manninen for reassuring me that my own ideas for this were feasible and for providing additional ideas.
2007-09-07EXA: Migrate out pixmap in exaPrepareAccess.Michel Dänzer1-17/+6
Also fix exaFinishAccessGC not to use the same index for tile and stipple.
2007-08-16EXA: Wrap Trapezoids to prevent excessive migration of the alpha pixmap.Fredrik Höglund1-0/+126
miTrapezoids creates an alpha pixmap and initializes the contents using PolyFillRect, which causes the pixmap to be moved in for acceleration. The subsequent call to RasterizeTrapezoid won't be accelerated by EXA, which causing the pixmap to be moved back out again. By wrapping Trapezoids and using ExaCheckPolyFillRect instead of PolyFillRect to initialize the pixmap, we avoid this roundtrip.
2007-08-02Create a Picture as well as a Pixmap at the time of AllocateGlyphCarl Worth1-14/+2
This avoids some inefficiency in creating a temporary Picture for every glyph at rendering time. My measurements with an i965 showed the previous patch causing a 10-15% slowdown for NoAccel and XAA cases, (while providing an 18% speedup for EXA). With this change, the NoAccel and XAA performance regression is eliminated, and the overall EXA speedup, (before any of the glyphs-as-pixmaps work), is now 32%.
2007-08-02Use per-screen Pixmaps for glyphsCarl Worth1-86/+13
Instead of system-memory data which prevents accelerated compositing of glyphs, (at least without forcing an upload of the glyph data before compositing).
2007-04-29EXA: Remove DrawableDirty.Michel Dänzer1-4/+10
Convert the remaining callers to PixmapDirty.
2007-04-29EXA: Defer to FillRegionTiled in Composite when possible.Michel Dänzer1-0/+39
Committed separately as this case is hard to hit and has only been tested lightly.
2007-04-29EXA: Composite improvements.Michel Dänzer1-35/+44
* Defer to simpler hooks in more cases (inspired by XAA behaviour). * Move damage tracking from lower to higher level functions. * Always migrate for fallbacks.
2007-04-29EXA: Glyphs improvements.Michel Dänzer1-10/+32
* Don't waste effort on invisible glyphs. * Add damage tracking where necessary. * Always migrate for fallbacks.
2007-04-29Fix a couple of picture repeat fields incorrectly compared to RepeatNormal.Michel Dänzer1-2/+2
2007-02-14Add missing dirty marking in a couple of fallback cases in the exaGlyphs path.Eric Anholt1-3/+7
2007-02-14Mark sync when UploadToScreen succeeds in exaGlyphs().Eric Anholt1-3/+5
2006-12-19EXA: Lots of damage tracking fixes.exa-damagetrackMichel Dänzer1-18/+18
Mostly due to exaDrawableDirty() now calculating the backing pixmap coordinates internally, for cases where they aren't trivially known. There's a new exaPixmapDirty() function for the other cases.
2006-12-19exaGlyphs: mark dirty for software path also.George Sapountzis1-3/+3
This affects drivers with no UploadToScreen or UploadToScreen failures.
2006-12-19Merge branch 'master' into exa-damagetrackMichel Dänzer1-26/+97
Conflicts: exa/exa_accel.c exa/exa_migration.c
2006-12-19EXA: Compare backing pixmaps instead of drawables against driver limits.Michel Dänzer1-6/+11
The driver operations are always contained within the backing pixmaps, it doesn't matter if the drawables are bigger.