Age | Commit message (Collapse) | Author | Files | Lines |
|
|
|
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.
|
|
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.
|
|
Move variable declarations to start of blocks as required by c89
|
|
|
|
|
|
|
|
This is only used by fakexa, but we would have missed some errors without this
fix.
|
|
out how much memory EXA is managing for offscreen pixmaps.
|
|
hw/xfree86/os-support/solaris (as it is by default now).
|
|
|
|
clean up fallback debugging output, so I can focus on more imporant
cases. Performance is comparable but without hardware stalls, and
passes Xlib9.
|
|
|
|
This is being used in tracking down recent compositing performance
regressions.
|
|
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.
|
|
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.
|
|
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.
|
|
|
|
incorrect results to be returned (but would probably usually be
over-conservative).
|
|
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.
|
|
marked dirty are in fact not dirty. This will hopefully help catch
issues like the previous commit. Leave it on in fakexa.
|
|
corruption with drivers that have UTS. (Michel Dänzer)
|
|
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.
|
|
fallback debugging info to PolyGlyphBlt.
|
|
2006-01-18.
|
|
|
|
exaPrepare/FinishAccess()es. Revealed by xtest with fakexa.
|
|
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.
|
|
a 1 planemask at depth 32. Fixes Get/PutImage xtest tests.
|
|
gradient testing in rendercheck.
|
|
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.
|
|
exa_offscreen.c: Correct a typo in debug-only offscreen validation
code. (Wang Zhenyu)
|
|
|
|
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.
|
|
exaCopyNtoN takes care of the fallback anyway, and we don't care about
the performance of this path.
|
|
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.
|
|
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.
|
|
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.
|
|
scheme. This notably keeps the visible screen from getting migrated in
to a new location in framebuffer.
Reported by: Michel Dänzer.
|
|
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.
|
|
MarkSync() that I noticed were needed while reading the VIA driver.
|
|
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.
|
|
function, since it gets repeated (with bad error handling, in one
case).
|
|
successful PrepareCopy()s to DoneCopy()s.
|
|
consecutive Copy() calls (rather than exactly once at the end of the
function).
Reviewed by: jbarnes
|
|
after the drawing is done. Previously, a failed PrepareAccess could
have migrated and cleared the dirty flag before the damage was ever
done.
|
|
benh.
|
|
pMask is non-NULL but pMask->pDrawable is NULL. This prevents NULL
dereferences on gradients and other Pictures which have no pDrawable.
|
|
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.
|
|
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.
|