[PATCH 18/36] dix: pixmap sharing infrastructure (v3)
Dave Airlie
airlied at gmail.com
Thu Jul 5 08:21:19 PDT 2012
From: Dave Airlie <airlied at redhat.com>
This is a hooks for pixmap sharing and tracking.
The pixmap sharing ones get an integer handle for the pixmap
and use a handle to be the backing for a pixmap.
The tracker interface is to be used when a GPU needs to
track pixmaps to be updated for another GPU.
v2: pass slave to sharing so it can use it to work out driver.
v3: use void * as per keithp's suggestion.
Reviewed-by: Keith Packard <keithp at keithp.com>
Signed-off-by: Dave Airlie <airlied at redhat.com>
---
include/scrnintstr.h | 17 +++++++++++++++++
1 file changed, 17 insertions(+)
diff --git a/include/scrnintstr.h b/include/scrnintstr.h
index 7efc5c3..3a738d3 100644
--- a/include/scrnintstr.h
+++ b/include/scrnintstr.h
@@ -179,6 +179,8 @@ typedef void (*ClipNotifyProcPtr) (WindowPtr /*pWindow */ ,
#define CREATE_PIXMAP_USAGE_BACKING_PIXMAP 2
/* pixmap will contain a glyph */
#define CREATE_PIXMAP_USAGE_GLYPH_PICTURE 3
+/* pixmap will be shared */
+#define CREATE_PIXMAP_USAGE_SHARED 4
typedef PixmapPtr (*CreatePixmapProcPtr) (ScreenPtr /*pScreen */ ,
int /*width */ ,
@@ -339,6 +341,16 @@ typedef void (*DeviceCursorCleanupProcPtr) (DeviceIntPtr /* pDev */ ,
typedef void (*ConstrainCursorHarderProcPtr) (DeviceIntPtr, ScreenPtr, int,
int *, int *);
+
+typedef Bool (*SharePixmapBackingProcPtr)(PixmapPtr, ScreenPtr, void **);
+
+typedef Bool (*SetSharedPixmapBackingProcPtr)(PixmapPtr, void *);
+
+typedef Bool (*StartPixmapTrackingProcPtr)(PixmapPtr, PixmapPtr,
+ int x, int y);
+
+typedef Bool (*StopPixmapTrackingProcPtr)(PixmapPtr, PixmapPtr);
+
typedef struct _Screen {
int myNum; /* index of this instance in Screens[] */
ATOM id;
@@ -488,6 +500,11 @@ typedef struct _Screen {
struct xorg_list output_slave_list;
struct xorg_list output_head;
+ SharePixmapBackingProcPtr SharePixmapBacking;
+ SetSharedPixmapBackingProcPtr SetSharedPixmapBacking;
+
+ StartPixmapTrackingProcPtr StartPixmapTracking;
+ StopPixmapTrackingProcPtr StopPixmapTracking;
} ScreenRec;
static inline RegionPtr
--
1.7.10.2
More information about the xorg-devel
mailing list