summaryrefslogtreecommitdiff
path: root/exa
AgeCommit message (Collapse)AuthorFilesLines
2006-07-21exa: only disable cw when COMPOSITE is builtDaniel Stone1-0/+2
2006-07-18get rid of XFree86LOADER, XFree86Server, XFree86Module, and IN_MODULEDaniel Stone1-1/+1
Get rid of almost all uses of these definitions. They're still defined for delinquent out-of-tree drivers, and also for the Mesa build. As well as for miinitext.c. But largely gone.
2006-07-03Fix bugs in support for new repeatTypes in XAA and EXA.Eric Anholt1-1/+4
EXA now won't pass pictures with new repeatTypes to drivers. We can add a flag for them to support it at a later time.
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-26Move EXA_PM_IS_SOLID() to the public API, since drivers will want it frequently.Eric Anholt2-8/+9
2006-06-24Bug #6911: Check return value of exaGetPixelFromRGBA().George Fufutos1-2/+6
2006-06-24Bug #6818: Avoid infinite loop in exaLog2() with negative arguments.Michel Dänzer1-1/+1
2006-06-19Don't forget to step the rows when verifying the equivalence of fb/sys areas.Eric Anholt1-0/+2
This is only used by fakexa, but we would have missed some errors without this fix.
2006-06-18Add options to disable EXA acceleration for Composite/UTS/DFS, and always printEric Anholt2-5/+20
out how much memory EXA is managing for offscreen pixmaps.
2006-05-02Fix Solaris build with Sun compilers to work when exa is built beforeAlan Coopersmith1-0/+4
hw/xfree86/os-support/solaris (as it is by default now).
2006-04-30Remove NEED_LINEHELPER BC cruft for pre-R6 DDXes.Adam Jackson1-3/+0
2006-04-28Add Polylines and PolyPoint acceleration as well. This is primarily toEric Anholt1-3/+95
clean up fallback debugging output, so I can focus on more imporant cases. Performance is comparable but without hardware stalls, and passes Xlib9.
2006-04-28Correct some bugs causing performance issues in the "Smart" scheme.Eric Anholt1-3/+8
2006-04-27Improve EXA fallback debugging output to include the locations of pixmaps.Eric Anholt4-31/+56
This is being used in tracking down recent compositing performance regressions.
2006-04-27Add trivial PolySegment acceleration for 0-width horizontal/vertical lines,Eric Anholt2-3/+53
which still happen somewhat frequently and were cluttering up my fallback debugging output. x11perf says it's a major performance win in those cases (though probably irrelevant), and it passes Xlib9.
2006-04-27In drawing glyphs, shortcut our way to exaComposite instead of goingEric Anholt1-59/+56
through the whole CompositePicture stack and doing things like computing damage over again. This is a sizeable win for text drawing with a compmgr. Also avoid calling down into the server for dealing with the scratch pixmap when we are able to do UploadToScreen successfully and never need it.
2006-04-26Add a helper for the Component Alpha Over case, which breaks the operationEric Anholt1-13/+62
down into an OutReverse and an Add. Turn off the fallback to software glyphs when component alpha, now that we expect all (new) drivers to be able to support it. Also, make Xephyr fall back in the CA Over case to exercise this code. This speeds up my rgb24text and ls -lR in gnome-terminal by a factor of 5.
2006-04-26Improve the migration debugging output.Eric Anholt1-12/+14
2006-04-26Fix a bug in the intersection computation that could concievably causeEric Anholt1-1/+4
incorrect results to be returned (but would probably usually be over-conservative).
2006-04-25Bug #4668: Check if the lists of glyphs don't have any intersecting glyphs,Eric Anholt1-1/+94
and if they all have a maskFormat matching the format of the actual glyphs If so, we can avoid the temporary pixmap for accumulating glyphs, which reduces the number of operations done, and makes it easier on the migration system. This fixes some significant performance issues, particularly with subpixel antialiasing. Note that it does increase the amount of damage computation which is done, so is not always a win with a compositing manager running.
2006-04-25Add an option to verify at the point of migration that pixmaps which aren'tEric Anholt2-0/+44
marked dirty are in fact not dirty. This will hopefully help catch issues like the previous commit. Leave it on in fakexa.
2006-04-25Don't forget to mark the drawable as dirty in exaPutImage(). FixesEric Anholt1-0/+1
corruption with drivers that have UTS. (Michel Dänzer)
2006-04-18Add a new migration scheme, called "Smart" for lack of a better name. ThisEric Anholt3-3/+63
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.
2006-04-18Fix exaGetPixmapFirstPixel to migrate as unaccelerated. Also adds a bit ofEric Anholt1-2/+3
fallback debugging info to PolyGlyphBlt.
2006-04-17Wrap a couple more SDK headers in if XORG, as per Dave Airlie's commit onDonnie Berkholz1-0/+2
2006-01-18.
2006-04-01Clean up warnings and a debug printf.Eric Anholt1-1/+0
2006-04-01Pull out fb's tile handling during fbValidateGC so we can do the necessaryEric Anholt1-1/+55
exaPrepare/FinishAccess()es. Revealed by xtest with fakexa.
2006-04-01Export exaPrepare/FinishGC to the rest of EXA, and use it in the ImageGlyphEric Anholt3-4/+13
implementation to avoid unprepared access to the tile. Also, relocate the fbGetDrawable to avoid using a stale dest pointer after exaSolidBoxClipped() may have migrated it. Revealed by xtest.
2006-04-01Use fb's depth-to-planemask computation, which doesn't suffer from gettingEric Anholt1-2/+2
a 1 planemask at depth 32. Fixes Get/PutImage xtest tests.
2006-03-31Don't attempt to Prepare/FinishAccess NULL pDrawables. Exposed by newEric Anholt1-4/+6
gradient testing in rendercheck.
2006-03-31Add an option to EXA for the DDX to request that EXA hide the pixmap'sEric Anholt6-54/+151
devPrivate.ptr when pointing at offscreen memory, outside of exaPrepare/FinishAccess(). This was used with fakexa to find (by NULL dereference) many instances of un-Prepared CPU access to the framebuffer: - GC tiles used in several ops when fillStyle == FillTiled were never Prepared. - Migration could lead to un-Prepared access to mask data in render's Trapezoids and Triangles - PutImage's UploadToScreen failure fallback failed to Prepare.
2006-03-31Revert mistaken commit to exa_unaccel.c. Should have been toEric Anholt2-43/+37
exa_offscreen.c: Correct a typo in debug-only offscreen validation code. (Wang Zhenyu)
2006-03-31Correct a typo in debug-only offscreen validation code. (Wang Zhenyu)Eric Anholt1-36/+42
2006-03-30Remove the exaAsyncPixmapGCOps mostly-unaccelerated ops vector, and alwaysEric Anholt3-49/+4
plug in the accelerated one, even if the destination pixmap is currently offscreen. This was a leftover from when kaa originally got accelerated offscreen pixmap support, and its only concievable use was to avoid a little overhead on ops to in-system pixmaps that weren't going to get migrated. At this point, we probably care more about just getting everything accelerated that we easily can, which should happen with the new migration support.
2006-03-30Don't do an extra fallback path for CopyWindow while swappedOut, sinceEric Anholt1-7/+0
exaCopyNtoN takes care of the fallback anyway, and we don't care about the performance of this path.
2006-03-30Bug #2986: Add PutImage acceleration for the ZPixmap, planeMask ~=Eric Anholt1-2/+99
FB_ALLONES, bitsPerPixel >= 8, GXcopy cases. With the radeon driver on my machine, this gives about 10% speedup in PutImage 10x10 and 500x500, and 40% speedup for 10x10 ShmPutImage, up to 65% improvement in 500x500 ShmPutImage. Also fixes a crasher in GetImage that slipped in at the last minute.
2006-03-29Bug #2986: Add acceleration of GetImage using DownloadFromScreen for theEric Anholt2-2/+53
ZPixmap, planeMask ~= FB_ALLONES, bitsPerPixel >= 8 case. I'm pretty convinced that this is the only case that we care about at all. Tested with xwd -root and xwd on a gnome-terminal, in a composited environment or not.
2006-03-16Change EXA so that exaMoveOutPixmap() retains the framebuffer copy of theEric Anholt3-167/+262
pixmap, and damage is tracked so that a later exaMoveInPixmap won't result in an upload if no upload is necessary. This will likely improve the performance of the "Always" migration scheme significantly, and is a step in the path to more exact damage tracking between framebuffer and system memory.
2006-03-15Don't let pinned pixmaps get migrated in when using the "Always" migrationEric Anholt1-0/+3
scheme. This notably keeps the visible screen from getting migrated in to a new location in framebuffer. Reported by: Michel Dänzer.
2006-03-15Add a new migration scheme, "always", which will move pixmaps to theirEric Anholt3-27/+78
desired location always (unless they don't fit in FB, in which case they all get moved out for software rendering). The default remains as before, but can be controlled by the MigrationHeuristic xorg.conf option (which is intentionally not documented, as it may be short-lived). This is part of the exa-damagetrack work, which appears stable in testing with fakexa, unlike the work as a whole.
2006-03-15Add more doxygen documentation, including notes on WaitMarker() andEric Anholt2-0/+73
MarkSync() that I noticed were needed while reading the VIA driver.
2006-03-14Move migration logic to a new function, exaDoMigration(). This is largely aEric Anholt6-87/+298
manual conversion to allow for different migration schemes to be implemented reasonably, but does include some minor improvements such as accounting for pinned pixmaps not being acceleratable, and for our current GetImage and GetSpans not being accelerated.
2006-03-14Pull code for getting the (0,0) pixel from a pixmap out to a separateEric Anholt4-37/+36
function, since it gets repeated (with bad error handling, in one case).
2006-03-12Improve doxygen formatting, and attempt to clarify the 1:1 ratio ofEric Anholt1-81/+85
successful PrepareCopy()s to DoneCopy()s.
2006-03-12Make exaCopyNtoNTwoDir() call DoneCopy() at the end of each string ofEric Anholt1-1/+10
consecutive Copy() calls (rather than exactly once at the end of the function). Reviewed by: jbarnes
2006-03-10Move the exaDrawableDirty in exaPrepareAccess to exaFinishAccess, which isEric Anholt1-2/+3
after the drawing is done. Previously, a failed PrepareAccess could have migrated and cleared the dirty flag before the damage was ever done.
2006-03-10Document the restriction on PrepareAccess() failure, from discussion withEric Anholt1-5/+8
benh.
2006-03-09Coverity #349: Fall back to software early if pSrc->pDrawable is NULL, orEric Anholt1-7/+10
pMask is non-NULL but pMask->pDrawable is NULL. This prevents NULL dereferences on gradients and other Pictures which have no pDrawable.
2006-03-09Do a first pass of doxygen documentation of EXA. This removes theEric Anholt4-54/+618
corresponding pieces of exa-driver.txt, which were becoming stale. Hopefully the documentation will stay much more up-to-date this way. Many thanks to jbarnes for writing exa-driver.txt which was used a lot in writing this documentation.
2006-03-09Rearrange EXA driver structures so that there's a hope of maintaining ABIEric Anholt6-257/+249
when extending the driver interface. The card and accel structures are merged into the ExaDriverRec, which is to be allocated using exaDriverAlloc(). The driver structure also grows exa_major and exa_minor, which drivers fill in and have checked by EXA (double-checking that the driver really did check that the EXA version was correct). Removes exaInitCard(), which is replaced by the driver filling in the rec by hand, and the exaGetVersion() and related EXA_*VERSION which are replaced by always using the XFree86 loadable module versioning.