Age | Commit message (Collapse) | Author | Files | Lines |
|
It doesn't make sense for windows.
Also double-check that the data pointer is valid.
Fixes http://bugs.freedesktop.org/show_bug.cgi?id=23461 (not sure that could
happen on master even without this, but just in case)
|
|
Add support for solid pictures in exaTryDriverSolidFill(), but otherwise just
pass solid and gradient pictures to the driver Composite hook.
While we're at it, clean up the logic to detect Composite operations which are
effectively solid fills or copies. This should also fix some false negatives
and positives.
|
|
Otherwise we may incorrectly clobber it to NULL on repeated PrepareAccess
calls.
|
|
|
|
This adds a pitch return so that the driver can align the pitch to any
value it wishes and not just the one it gave to EXA at startup.
|
|
|
|
|
|
- Replace it with something wfb friendly while i'm at it.
|
|
|
|
- Always free sys_ptr before setting the pixmap to pinned.
|
|
|
|
- This can be used to force creation of driver pixmap.
- Not for 1 or 4 bpp.
- Driver can still fail (driver) pixmap creation.
|
|
|
|
- Based on driver pixmaps with some changes (completely transparent to driver).
- It helps with the problem of known software fallbacks, such as trapezoids.
- exaDoMigration is now called for all cases that provide a do_migration hook.
- exa_migration.c is renamed to exa_migration_classic.c
|
|
- Create a few seperate functions and a few private function pointers.
- Replace a few if conditions with a check for pExaPix->pDamage instead.
- This is in preperation of a third scheme that lies somewhere in between.
- Code clarity would have suffered (i started working on it and didn't like the mess).
|
|
|
|
|
|
Use reference counting and do nothing unless the reference count transitions
to/from 0.
Fixes https://bugs.freedesktop.org/show_bug.cgi?id=22822 .
As a bonus, this avoids calling the driver Prepare/FinishAccess hooks more than
once per pixmap and operation.
Also update the Doxygen documentation for the PrepareAccess driver hook to
better match current reality.
|
|
* Check all pixmaps involved for damage records, fixes visual corruption due to
the screen pixmap never having one.
* Fix an array size and remove a now superfluous assignment.
|
|
Also remove dead code associated with access_prepared local variable.
|
|
|
|
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Acked-by: Michel Dänzer <michel@daenzer.net>
|
|
Fixes http://bugs.freedesktop.org/show_bug.cgi?id=22642 .
|
|
|
|
This way we don't always need to scan over previously allocated areas when
looking for an available one, and there might be less fragmentation.
Signed-off-by: Michel Dänzer <daenzer@vmware.com>
|
|
At most once per second, under the following circumstances:
* We can't satisfy an offscreen memory allocation, but there seems to be enough
offscreen memory available in total.
or
* The server has been idle for at least 100ms, and there is more than one
available offscreen area.
Signed-off-by: Michel Dänzer <daenzer@vmware.com>
|
|
Signed-off-by: Michel Dänzer <daenzer@vmware.com>
|
|
Fixes http://bugs.freedesktop.org/show_bug.cgi?id=18950 .
Signed-off-by: Michel Dänzer <daenzer@vmware.com>
|
|
|
|
|
|
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>
|