summaryrefslogtreecommitdiff
path: root/exa/exa.h
diff options
context:
space:
mode:
authorMichel Dänzer <daenzer@vmware.com>2009-02-27 16:37:28 +0100
committerMichel Dänzer <daenzer@vmware.com>2009-02-27 16:37:28 +0100
commit4cfb36f6ad2df01215028fec48d99239a0e4496b (patch)
treeea547b39c0e7ab0248bed546e689c7bbd478b429 /exa/exa.h
parent4bf707f01822abe99286909fd561da7e7a4211d6 (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.h14
1 files changed, 14 insertions, 0 deletions
diff --git a/exa/exa.h b/exa/exa.h
index 21a0f1abf..12959e127 100644
--- a/exa/exa.h
+++ b/exa/exa.h
@@ -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 */