[PATCH] exa: add EXA_MIXED_PREFER_UTS
Maarten Maathuis
madman2003 at gmail.com
Mon Nov 30 09:56:28 PST 2009
- Drivers using wfb don't like unneeded cpu fallbacks, allow them to signal this.
Signed-off-by: Maarten Maathuis <madman2003 at gmail.com>
---
exa/exa.h | 6 ++++++
exa/exa_accel.c | 6 ++++--
2 files changed, 10 insertions(+), 2 deletions(-)
diff --git a/exa/exa.h b/exa/exa.h
index 8c93d15..46552c7 100644
--- a/exa/exa.h
+++ b/exa/exa.h
@@ -769,6 +769,12 @@ typedef struct _ExaDriver {
*/
#define EXA_MIXED_PIXMAPS (1 << 6)
+/**
+ * EXA_MIXED_PREFER_UTS indicates that cpu access is more costly than DFS,
+ * which might follow UTS.
+ */
+#define EXA_MIXED_PREFER_UTS (1 << 7)
+
/** @} */
/* in exa.c */
diff --git a/exa/exa_accel.c b/exa/exa_accel.c
index 1d88acb..b438b1a 100644
--- a/exa/exa_accel.c
+++ b/exa/exa_accel.c
@@ -508,9 +508,11 @@ exaHWCopyNtoN (DrawablePtr pSrcDrawable,
*
* Not taking this path for mixed pixmaps: It could only save one CPU
* copy between cached memory and risks causing a more expensive
- * DownloadFromScreen later on.
+ * DownloadFromScreen later on. Some drivers may prefer a potential
+ * DFS to a cpu fallback.
*/
- } else if (!(pExaScr->info->flags & EXA_MIXED_PIXMAPS)) {
+ } else if (!(pExaScr->info->flags & EXA_MIXED_PIXMAPS) ||
+ (pExaScr->info->flags & EXA_MIXED_PREFER_UTS)) {
int bpp = pSrcDrawable->bitsPerPixel;
int src_stride = exaGetPixmapPitch(pSrcPixmap);
CARD8 *src = NULL;
--
1.6.5.3
More information about the xorg-devel
mailing list