summaryrefslogtreecommitdiff
path: root/exa
AgeCommit message (Collapse)AuthorFilesLines
2008-04-28EXA: Accumulate glyphs whenever possible, for full benefits of the glyph cache.Michel Dänzer1-0/+96
2008-04-28EXA: Glyph cache upload tweaks.Michel Dänzer1-1/+8
Track damage after using UploadToScreen directly. Don't waste any effort on empty glyphs.
2008-04-28EXA: Use UploadToScreen() for uploads to glyph cacheOwen Taylor1-11/+66
When possible, use UploadToScreen() rather than CompositePicture() to upload glyphs onto the glyph cache pixmap. This avoids allocating offscreen memory for each glyph making management of offscreen areas much more efficient.
2008-04-28EXA: Clean up debug messagesOwen Taylor2-4/+1
2008-04-28EXA: Fix overlapping glyphs in glyph cacheOwen Taylor2-10/+18
Allocate each cache at a different vertical position in the per-format pixmap. Fix width/height confusion when choosing the cache for a glyph.
2008-04-28EXA: Add exaCompositeRects()Owen Taylor3-54/+267
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-28EXA: Use a single large glyph cache pixmapOwen Taylor4-0/+796
Add back exaGlyphs(); the new version copies the glyph images onto a single large glyph pixmap and draws from their to the destination surface. This reduces the management of small offscreen areas and will allow us to avoid texture unit setup between each glyph.
2008-04-21EXA: Set pixmap->accel_blocked on the screen pixmap, too.Tilman Sauerbeck2-0/+33
2008-04-21EXA: Update sys_pitch/fb_pitch in exaModifyPixmapHeader.Tilman Sauerbeck1-15/+28
exaModifyPixmapHeader now also only evaluates arguments that have a meaningful value.
2008-04-21EXA: Offscreen memory eviction improvements.Michel Dänzer2-15/+36
* Make sure available areas are considered to have no eviction cost. This seems to help for https://bugs.freedesktop.org/show_bug.cgi?id=15513 but I'm afraid that may just be coincidence. * Only calculate eviction cost of each area once for each eviction pass. Safeguard against potential (though unlikely) division by zero. * Cosmetic enhancements: Name eviction cost related variables 'cost' instead of 'score' to emphasize that smaller values are better, update Doxygen file comment to the way eviction works now.
2008-04-17EXA: Avoid some fallbacks in exaCopyNtoN.Tilman Sauerbeck1-6/+26
In some cases we can still do the copying in hardware even if the dimensions of the pixmaps are out of range. This is true when the boxes that we're to copy are all in the card's range.
2008-04-14EXA: Update pixmaps' accel_blocked field in ModifyPixmapHeader.Tilman Sauerbeck1-21/+32
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-03-31EXA: Optimize the eviction scanning loop in exaOffscreenAlloc.Fredrik Höglund1-48/+58
Reduce the cost of the inner loop, by keeping a set of pointers to the first and the last areas in the series, subtracting the cost of the first area from the score, and adding the cost of the last area while walking the list. This commit also moves the scanning loop from exaOffscreenAlloc into a separate function. Idea by Michel Dänzer.
2008-03-31EXA: Improve the algorithm used for tracking offscreen pixmap use.Fredrik Höglund3-23/+16
Replace the current score keeping algorithm with a rolling counter that's incremented in ExaOffscreenMarkUsed, with the previous value being stored in the area. exaOffscreenAlloc uses the difference between the counter value and the value in the area when deciding which area to evict. It now also takes the size of the areas into account, and favors evicting smaller areas. The credit for these ideas goes to Michel Dänzer.
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.
2008-01-14exa: make the prototype for exaGetPixmapFirstPixel() publicBernardo Innocenti2-3/+3
This fixes a warning in amd_drv which is using it. Signed-off-by: Bernardo Innocenti <bernie@codewiz.org>
2008-01-04Fix Line drawing with CapNotLast set in PolySegment.Alan Hourihane1-0/+8
2007-11-19Merge branch 'master' into XACE-SELINUXEamon Walsh1-0/+1
Conflicts: hw/xnest/Pixmap.c include/dix.h
2007-11-17exa: set driverPriv to NULL before it might get used later with garbageBen Skeggs1-0/+1
2007-11-14Merge branch 'master' into XACE-SELINUXEamon Walsh2-8/+26
Conflicts: Xext/xace.c Xext/xace.h
2007-11-07EXA: Disable problematic optimization of dest pixmap migration by default.Michel Dänzer2-8/+26
Also add some code comments about these optimizations.
2007-11-05Merge branch 'master' into XACE-SELINUXEamon Walsh3-13/+14
Conflicts: dix/dispatch.c dix/property.c hw/xfree86/common/xf86VidMode.c include/xkbsrv.h render/glyph.c xkb/xkbActions.c
2007-11-05EXA: Remove usage of allocaDaniel Stone1-2/+2
Replace with heap allocations.
2007-11-05EXA: Remove usage of allocaDaniel Stone1-7/+7
Replace with heap allocations.
2007-11-04Add CreatePixmap allocation hints.Aaron Plattner2-4/+5
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-25Merge branch 'master' into XACE-SELINUXEamon Walsh5-360/+25
Conflicts: GL/glx/glxscreens.c hw/xnest/Screen.c render/glyph.c render/glyphstr.h render/render.c
2007-10-23EXA: Fix off-by-one in polyline drawing.Pierre Willenbrock1-1/+1
2007-10-19Replace calls to Glyphs screen hook with CompositeGlyphs and remove dead code.Eric Anholt2-263/+3
Not all of the DDX/miext Glyphs hook implementations have been removed, but they should be.
2007-10-19Merge branch 'master' into glyph-pixmapsEric Anholt5-9/+39
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änzer3-2/+20
Fixes https://bugs.freedesktop.org/show_bug.cgi?id=12815 .
2007-10-17Merge branch 'master' into XACE-SELINUXEamon Walsh5-139/+186
Conflicts: os/access.c
2007-10-08EXA: dude, don't validation driver hooks twice !Dodji Seketeli1-48/+0
2007-10-04EXA: Disable 1x1 pixmap fill optimization for drivers that handle pixmaps.Michel Dänzer1-6/+5
This reverts commit 1365aeff5499a051375e43a9fcbf54733ac93929. It defeated the optimization for drivers that don't provide a CreatePixmap hook. The optimization makes no sense for drivers that do anyway, so disable it for them completely.
2007-10-03Merge Xephyr-XV/GL stuff into masterDodji Seketeli1-0/+48
2007-10-03exa: direct access to the pixmap sys ptr is bad if the pixmap isn't mappedDave Airlie1-3/+5
2007-10-03exa: add new flags to denote driver handles all pixmap migration/hidingDave Airlie3-4/+13
2007-10-03exa: make sure we set fb_ptr to NULLDave Airlie1-2/+3
2007-10-02Merge branch 'glyph-pixmaps'Eric Anholt2-99/+5
Conflicts: configure.ac exa/exa_render.c
2007-10-02Add basic Exa driver entry point validation.Dodji Seketeli1-0/+48
In exaDriverInit(), quickly check if the programmer forgot to set some mandadory driver hooks, in that case display a meaningful error message.
2007-10-02exa: increase minor version number for pixmap allocation hooksDave Airlie1-1/+1
2007-10-02exa: only setup offscreen allocator if driver doesn't provide CreatePixmapKristian Høgsberg1-27/+35
2007-10-02exa: add hooks for drivers to take over pixmap allocationDave Airlie2-27/+91
This adds hooks for the driver to access Create/DestroyPixmap and ModifyPixmapHe ader. It allocates a 0 sized pixmap using fb and calls the driver routine to do work of allocating the actual memory. ModifyPixmapHeader is mainly required for hooking the screen pixmap which isn't create by normal methods
2007-10-02exa: add a pixmap private pointer for drivers to retrieve.Dave Airlie3-0/+15
2007-09-27EXA: Added back the maxPitchPixels initialization code.Tilman Sauerbeck1-0/+15
This doesn't add real value yet, but it will be useful once I add code that splits large render operations into smaller parts if necessary.
2007-09-27EXA: Remove bogus pitch checks.Michel Dänzer1-34/+0
exaCreatePixmap should handle all cases correctly.
2007-09-27EXA: Punt for all fallbacks in exaFillRegion*.Michel Dänzer1-35/+13
Now that PaintWindow is gone, all callers already handle fallbacks.