Age | Commit message (Collapse) | Author | Files | Lines |
|
|
|
|
|
This adds a revised pixmap hook for driver pixmaps, which is
required to support tiling on various chips.
Signed-off-by: Dave Airlie <airlied@redhat.com>
|
|
|
|
- Some image viewers (eog, gqview) trigger the CopyArea path of Xext/shm.c
- I'm not aware of any code path that wouldn't like UTS and trigger this code.
- miDoCopy should handle src coordinate clipping.
- Overlapping blits are obviously not an issue (both would have to be offscreen or not).
|
|
Signed-off-by: Michel Dänzer <daenzer@vmware.com>
|
|
|
|
|
|
|
|
- exaModifyPixmapHeader would save sys_ptr if needed, but it would be NULL'ed afterwards.
- This is needed to support pixmaps that are not offscreen.
|
|
things)
- fbChangeWindowAttributes can create pixmaps (and access them) without use preparing access.
- Also handle the destroyed pixmaps by finishing them first.
- Switch to DEST indices again in exaCreatePixmapWithPrepare, because they are obviously being rendered to.
- Also avoid calling FinishAccess on pixmaps that are destroyed (and their memory potentially invalid).
|
|
- And make some fatal for a debug build.
|
|
- Cleanup wrapping too.
|
|
|
|
|
|
- This includes properly handling the framebuffer.
|
|
- In a previous patch i forgot to add a FALSE somewhere it seems.
- Rename AUX indices so the driver (think of driver managed pixmaps) can do optimisations based upon them.
- Fix one abuse of DEST index now that we have the AUX indices (same reason as above).
|
|
|
|
- Do the right thing based on prepare access.
|
|
- This should fix subtle coordinate bugs and make the code a bit cleaner to read.
|
|
Since commit f07f18231a921d3ae9dd9b75881c9e58e9e2e235 ('EXA: Allow using
exaCompositeRects also when we can't use a mask in exaGlyphs.') we were
checking the wrong set of coordinates in the buffer where glyphs to be rendered
are accumulated when no mask is used in exaGlyphs.
This fixes occasional glyph corruption which can be corrected with redraws, in
particular with Qt4.
Thanks to Maarten Maathuis for asking the right question: 'where do we protect
against evicting glyphs that are still needed?'
Signed-off-by: Michel Dänzer <daenzer@vmware.com>
|
|
See http://bugs.freedesktop.org/show_bug.cgi?id=20213 .
Signed-off-by: Michel Dänzer <daenzer@vmware.com>
|
|
Preserve the EXA ABI by introducing a new driver flag EXA_SUPPORTS_PREPARE_AUX.
If the driver doesn't set this flag, we have to assume any Prepare/FinishAccess
driver hooks can't handle the EXA_PREPARE_AUX* indices, so we move out such
pixmaps at PrepareAccess time.
Fixes https://bugs.freedesktop.org/show_bug.cgi?id=18710 .
Signed-off-by: Michel Dänzer <daenzer@vmware.com>
|
|
This reverts commit 170cf1270dff38d3cce7f5ba5b940d1c0d70eff5.
Conflicts:
exa/exa_render.c
|
|
This should give the full benefits of the glyph cache even when we can't use a
mask.
This also means we no longer need to scan the glyphs to see if they overlap,
we can just use a mask or not as the client asks.
Signed-off-by: Michel Dänzer <daenzer@vmware.com>
|
|
Signed-off-by: Michel Dänzer <daenzer@vmware.com>
|
|
Fixes https://bugs.freedesktop.org/show_bug.cgi?id=18710 .
As this can't work without new EXA_PREPARE_AUX* indices, this requires a major
version bump, so we can also drop the UploadToScratch driver hook and
ExaOffscreenSwap*(). So this also fixes
http://bugs.freedesktop.org/show_bug.cgi?id=20213 .
Moreover, introduce EXA_DRIVER_KNOWN_MAJOR to break compilation of drivers
which may not be able to handle EXA_PREPARE_AUX*, giving instructions how to
make them build again in the #error message.
Signed-off-by: Michel Dänzer <daenzer@vmware.com>
|
|
that of the pending damage."
This reverts commit 97c1cbc70216366e92b9371de608ce94e60aa874.
- Sorry for the thinko, pending damage is often not fragmentated.
- Should the dst region become fragmentated, you actually want to copy more to unfragmentate it.
|
|
- Otherwise other users will not be notified of damage.
|
|
pending damage.
- Since the default has been changed from nothing to everything.
|
|
- I got some feedback on gtkperf line test regression.
- The increased threshold should ensure the destination optimisation is dominant.
|
|
- The src optimisation is more aggressive and possibly harmful in light of the new initial state of pixmaps.
- There is now actually a performance improvement by almost always keeping the number of rects low.
|
|
This helps contain region management overhead in some pathological cases, see
e.g. http://bugs.freedesktop.org/show_bug.cgi?id=16647 .
Signed-off-by: Michel Dänzer <daenzer@vmware.com>
|
|
|
|
- use DEST in the createPixmap wrapper, because stipple already takes MASK (in case someone uses swappers).
- Anticipate some of the less common situations when fbValidateDrawable will access tile related pixmaps.
|
|
- I did some testing with full fallbacks forced by the driver.
- I ran rendercheck, expedite and the (full) x11perf test suite.
- Thanks to ajax for pointing out this should be unneeded.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- It serves no obvious purpose, yet it directly accesses many fb
symbols.
|
|
|
|
This is probably required, but apparently not sufficient, for making migration
heuristics other than "always" work correctly again. Not that I really care
about them...
|
|
It isn't very useful yet while the damage layer calls us for empty operations,
mostly confuses users.
|
|
Without this, rendering component-alpha glyphs may break without a mask.
Fixes http://bugs.freedesktop.org/show_bug.cgi?id=19233 .
|
|
|