diff options
author | Michel Dänzer <daenzer@vmware.com> | 2009-02-27 16:37:28 +0100 |
---|---|---|
committer | Michel Dänzer <daenzer@vmware.com> | 2009-02-27 16:37:28 +0100 |
commit | 4cfb36f6ad2df01215028fec48d99239a0e4496b (patch) | |
tree | ea547b39c0e7ab0248bed546e689c7bbd478b429 /exa/exa.h | |
parent | 4bf707f01822abe99286909fd561da7e7a4211d6 (diff) |
EXA: Handle separate alpha maps properly in Composite fallback, take two.
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>
Diffstat (limited to 'exa/exa.h')
-rw-r--r-- | exa/exa.h | 14 |
1 files changed, 14 insertions, 0 deletions
@@ -672,6 +672,13 @@ typedef struct _ExaDriver { * from. */ #define EXA_PREPARE_MASK 2 + /** + * EXA_PREPARE_AUX* are additional indices for other purposes, e.g. + * separate alpha maps with Composite operations. + */ + #define EXA_PREPARE_AUX0 3 + #define EXA_PREPARE_AUX1 4 + #define EXA_PREPARE_AUX2 5 /** @} */ /** @@ -742,6 +749,13 @@ typedef struct _ExaDriver { */ #define EXA_HANDLES_PIXMAPS (1 << 3) +/** + * EXA_SUPPORTS_PREPARE_AUX indicates to EXA that the driver can handle the + * EXA_PREPARE_AUX* indices in the Prepare/FinishAccess hooks. If there are no + * such hooks, this flag has no effect. + */ +#define EXA_SUPPORTS_PREPARE_AUX (1 << 4) + /** @} */ /* in exa.c */ |