Age | Commit message (Collapse) | Author | Files | Lines |
|
This does a precursor check to make sure the copies are required before
entering the prepare/done code.
|
|
Simple fix for now, I'm sure damage shouldn't be calling us with nbox = 0.
|
|
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.
|
|
This fine (and unused) function wasn't ever wrapped which made it not work
under exa.
(cherry picked from commit 06e7e1d0486e8c516a9b3219a2c86026f88825fc)
|
|
|
|
|
|
|
|
We can get a case with gnome-terminal + links, where we get two arrays
of glyphs all with 0 width and 0 heights in them. If this happens
we manage to get to this case without any buffer setup and segfault.
|
|
- 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.
|
|
|
|
|
|
They got re-enabled in ee7c684f21d220d5e046bab31ae617a7d64d60f6
("Reimplement ShmPutImage.")
|
|
this doesn't seem to be needed, at least I can't see any warning without it.
I'd like to build EXA into a driver and cw.h isn't exported
|
|
|
|
- Redo damage naming for more consistency.
- Call post submission functions only where appropriate.
- EXA can now live without it's odd damage workarounds.
|
|
TODO: static indices can be made just an int; some indices
can be combined.
|
|
There's no reason to not just dispatch this straight into the GC. As a
bonus, if you do so, damage wraps correctly, and thus swcursor works.
The side effect is it's no longer possible to override ShmPutImage with
ShmRegisterFuncs().
Also remove the (broken) damage tracking for same from EXA, since it didn't
work right, and is now superfluous.
|
|
- the drawable of the pixmap is not the same as the original drawable (possibly a DRAWABLE_WINDOW)
|
|
- Fix compile warning
- Order exa.h by source file that exports the function.
- Move the function i created earlier to private headers.
|
|
- Plus a micro cleanup of unused variables.
|
|
- This should improve clarity for someone who isn't familiar with the code.
|
|
|
|
|
|
Also check the requested mask in addition to the GC state before doing work.
|
|
It's buggy without Composite acceleration (leading to cropped glyphs) and not
really useful in that case anyway. The bug probably still needs to be found and
fixed for drivers that provide a PrepareComposite hook but can't accelerate
text rendering though.
|
|
- I guess failing PrepareAccess is rare, since this a 3 year old bug.
|
|
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.
|
|
There wasn't actually any font code here, so no problem.
|
|
Thanks to Stuart Bennett for pointing out the problem on IRC.
|
|
Fixes http://bugs.freedesktop.org/show_bug.cgi?id=16908 .
|
|
Also only call REGION_TRANSLATE() when necessary.
|
|
|
|
|
|
If it's NULL anyway, we bail, if not, it lets
ModifyPixmapHeader know about the private.
|
|
Fixes http://bugs.freedesktop.org/show_bug.cgi?id=16243
|
|
Recording damage from other operations (e.g. creating a client damage record)
may confuse the migration code resulting in corruption.
Option "EXAOptimizeMigration" appears safe now, so enable it by default. Also
remove it from the manpage, as it should only be necessary on request in the
course of bug report diagnostics anymore.
|
|
exaPrepareAccess already handles migration.
|
|
Leave the decision to the compiler toolchain.
|
|
Avoids excessive migration overhead in some pathological cases. See
http://bugs.freedesktop.org/show_bug.cgi?id=15845 .
|
|
Fixes http://bugs.freedesktop.org/show_bug.cgi?id=15780 .
|
|
Treat 1 bit glyphs and masks as PICT_a8 in the glyph cache. We're not able to
accelerate them otherwise.
|
|
|
|
Track damage after using UploadToScreen directly.
Don't waste any effort on empty glyphs.
|
|
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.
|
|
|
|
Allocate each cache at a different vertical position in the
per-format pixmap. Fix width/height confusion when choosing
the cache for a glyph.
|
|
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.
|
|
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.
|
|
|
|
exaModifyPixmapHeader now also only evaluates arguments that have a
meaningful value.
|