summaryrefslogtreecommitdiff
path: root/exa/exa.c
AgeCommit message (Collapse)AuthorFilesLines
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-05Merge branch 'master' into XACE-SELINUXEamon Walsh1-3/+4
Conflicts: dix/dispatch.c dix/property.c hw/xfree86/common/xf86VidMode.c include/xkbsrv.h render/glyph.c xkb/xkbActions.c
2007-11-04Add CreatePixmap allocation hints.Aaron Plattner1-3/+4
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 Walsh1-5/+3
Conflicts: GL/glx/glxscreens.c hw/xnest/Screen.c render/glyph.c render/glyphstr.h render/render.c
2007-10-19Replace calls to Glyphs screen hook with CompositeGlyphs and remove dead code.Eric Anholt1-5/+3
Not all of the DDX/miext Glyphs hook implementations have been removed, but they should be.
2007-10-17Merge branch 'master' into XACE-SELINUXEamon Walsh1-82/+136
Conflicts: os/access.c
2007-10-08EXA: dude, don't validation driver hooks twice !Dodji Seketeli1-48/+0
2007-10-03Merge Xephyr-XV/GL stuff into masterDodji Seketeli1-0/+48
2007-10-03exa: add new flags to denote driver handles all pixmap migration/hidingDave Airlie1-4/+3
2007-10-03exa: make sure we set fb_ptr to NULLDave Airlie1-2/+3
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: 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 Airlie1-27/+84
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 Airlie1-0/+8
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-26Merge branch 'master' into XACE-SELINUXEamon Walsh1-7/+60
Conflicts: dix/devices.c
2007-09-25EXA: Added pitch limitations.Tilman Sauerbeck1-0/+53
Drivers can now specify the max pitches that the accelerator supports.
2007-09-22EXA: Check ABI compatibility earlier.Tilman Sauerbeck1-11/+11
If the driver isn't compatible to the server, all bets are off anyway wrt the contents of the fields that we're validating, which can lead to bogus error messages.
2007-09-19Merge branch 'master' into XACE-SELINUXEamon Walsh1-62/+152
Conflicts: afb/afbpntwin.c afb/afbscrinit.c afb/afbwindow.c cfb/cfb.h cfb/cfballpriv.c cfb/cfbscrinit.c cfb/cfbwindow.c configure.ac fb/wfbrename.h hw/xfree86/xf4bpp/ppcIO.c hw/xfree86/xf4bpp/ppcPntWin.c hw/xfree86/xf4bpp/ppcWindow.c hw/xfree86/xf8_32bpp/cfbscrinit.c mfb/mfb.h mfb/mfbpntwin.c mfb/mfbscrinit.c mfb/mfbwindow.c mi/miexpose.c Note: conflicts caused by devPrivates rework vs. paintwindow changes.
2007-09-13Remove the PaintWindow optimization.Eric Anholt1-8/+0
This was an attempt to avoid scratch gc creation and validation for paintwin because that was expensive. This is not the case in current servers, and the danger of failure to implement it correctly (as seen in all previous implementations) is high enough to justify removing it. No performance difference detected with x11perf -create -move -resize -circulate on Xvfb. Leave the screen hooks for PaintWindow* in for now to avoid ABI change.
2007-09-07EXA: RENDER improvements.Michel Dänzer1-2/+6
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-5/+2
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: Hide pixmap pointer outside of exaPrepare/FinishAccess whenever possible.Michel Dänzer1-37/+62
We finally want to catch all cases where the pixmap pointer is dereferenced outside of exaPrepare/FinishAccess. Also fix a couple of such cases exposed by this change.
2007-09-07EXA: Support partial migration of pixmap contents between Sys and FB.Michel Dänzer1-7/+14
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: Track valid bits in Sys and FB separately.Michel Dänzer1-2/+4
Also consolidate exaCopyDirtyToFb/Sys.
2007-09-07EXA: Migrate out pixmap in exaPrepareAccess.Michel Dänzer1-8/+22
Also fix exaFinishAccessGC not to use the same index for tile and stipple.
2007-09-07EXA: Add a couple of missing exaPrepare/FinishAccess calls.Dave Airlie1-4/+53
2007-08-28devPrivates rework: since API is already broken, switch everythingEamon Walsh1-16/+4
over to new system. Need to update documentation and address some remaining vestiges of old system such as CursorRec structure, fb "offman" structure, and FontRec privates.
2007-08-25Implement core protocol backing store exclusively in terms of Composite.Adam Jackson1-2/+0
Composite's automatic redirection is a more general mechanism than the ad-hoc BS machinery, so it's much prettier to implement the one in terms of the other. Composite now wraps ChangeWindowAttributes and activates automatic redirection for windows with backing store requested. The old backing store infrastructure is completely gutted: ABI-visible structures retain the function pointers, but they never get called, and all the open-coded conditionals throughout the DIX layer to implement BS are gone. Note that this is still not a strictly complete implementation of backing store, since Composite will throw the bits away on unmap and therefore WhenMapped and Always hints are equivalent.
2007-08-24EXA: Improve ShmPutImage.Michel Dänzer1-5/+1
Share as much code with exaPutImage as possible, and fall back to fbShmPutImage when that fails.
2007-08-22Fix overly-restrictive integer overflow check in EXA pixmap creation.Eric Anholt1-1/+1
The result was that at 32bpp, pixmaps of width 8192 or greater couldn't be created, due to treating a pitch value as a width.
2007-08-16EXA: Wrap Trapezoids to prevent excessive migration of the alpha pixmap.Fredrik Höglund1-0/+4
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-07-17exaDriverInit: Fail if pScreenInfo or a member of it is invalid.Dodji Seketeli1-0/+39
EXA may attempt to use the invalid value and crash otherwise.
2007-04-29EXA: Remove DrawableDirty.Michel Dänzer1-23/+0
Convert the remaining callers to PixmapDirty.
2007-04-29EXA: FillRegion{Solid,Tiled} improvements.Michel Dänzer1-1/+1
* Support planemasks, different ALUs and arbitrary tile origin. * Leave damage tracking and non-trivial fallbacks to callers. * Always migrate for fallbacks. This is in preparation for using these from more other functions.
2007-04-04Add an EXA driver callback to determine whether a pixmap isThomas Hellstrom1-0/+3
"offscreen" in exa terms, which means accessible to the GPU. Bump exa minor. The change is backwards-compatible.
2007-03-27Move libcw setup to the only renderer requiring it (XAA).Eric Anholt1-4/+0
Additionally, protect libcw setup behind checks for Render, to avoid segfaulting if Render isn't available (xnest). The previous setup was an ABI-preserving dance, which is better nuked now. Now, anything that needs libcw must explicitly initialize it, and miDisableCompositeWrapper (previously only called by EXA and presumably binary drivers) is gone.
2006-12-28Switch the default migration heuristic for EXA to "always".Eric Anholt1-1/+1
This has been what has been used the most successfully post-damagetrack. The current thinking is that: 1) We should be able to accelerate basically everything. So we don't need to try to migrate trees of pixmaps permanently out of framebuffer to speed CPU drawing up. 2) Migration is cheaper in the thrashing case, so we don't want to go to a lot of effort to try (and fail badly) to find a working set.
2006-12-19EXA: Lots of damage tracking fixes.Michel Dänzer1-32/+64
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-19Merge branch 'master' into exa-damagetrackMichel Dänzer1-2/+38
Conflicts: exa/exa_accel.c exa/exa_migration.c
2006-12-19EXA: Disable SHM pixmaps.Eric Anholt1-0/+11
See https://bugs.freedesktop.org/show_bug.cgi?id=6772 .
2006-10-15exaDrawableDirty: Fix initialization of BoxRec.Michel Dänzer1-1/+2
This will hopefully fix the partial window corruption experienced by some people.
2006-07-21exa: only disable cw when COMPOSITE is builtDaniel Stone1-0/+2
2006-06-30Bug 7145: fix build with gcc 2.95 & other c89 compilersJens Granseuer1-1/+4
Move variable declarations to start of blocks as required by c89
2006-06-24Bug #6818: Avoid infinite loop in exaLog2() with negative arguments.Michel Dänzer1-1/+1
2006-06-18Add options to disable EXA acceleration for Composite/UTS/DFS, and always printEric Anholt1-0/+20
out how much memory EXA is managing for offscreen pixmaps.
2006-06-12Track per-drawable damage to minimize UTS and DFS transfers.Michel Dänzer1-12/+37
Based on work by Eric Anholt.
2006-04-18Add a new migration scheme, called "Smart" for lack of a better name. ThisEric Anholt1-1/+1
one behaves somewhat between Greedy and Always. It moves in if we can accelerate, unless the destination is clean and shouldn't be kept in framebuffer according to the score, in which case we migrate out (and force-migrate anything where migration is free). This should help fix lack of acceleration for drivers without UTS since removing exaAsyncPixmapGCOps, and has removed one performance trap with Radeon I'd noticed. It is the new default.