Re: [PATCH xserver] Add SyncSharedPixmap ScreenRec hook

2016-09-16 Thread Keith Packard

>> Signed-off-by: Michel Dänzer 
>
> Reviewed-by: Alex Deucher 

Merged.
   7f6fa4e..bd8ecd9  master -> master

-- 
-keith


signature.asc
Description: PGP signature
___
xorg-devel@lists.x.org: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: https://lists.x.org/mailman/listinfo/xorg-devel

Re: [PATCH xserver] Add SyncSharedPixmap ScreenRec hook

2016-09-08 Thread Michel Dänzer
On 01/09/16 12:27 AM, Alex Deucher wrote:
> On Wed, Aug 31, 2016 at 4:56 AM, Michel Dänzer  wrote:
>> From: Michel Dänzer 
>>
>> Signed-off-by: Michel Dänzer 
> 
> Reviewed-by: Alex Deucher 

Thanks, Alex.

If there are no objections, I'll push this change next week.


-- 
Earthling Michel Dänzer   |   http://www.amd.com
Libre software enthusiast | Mesa and X developer
___
xorg-devel@lists.x.org: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: https://lists.x.org/mailman/listinfo/xorg-devel

Re: [PATCH xserver] Add SyncSharedPixmap ScreenRec hook

2016-08-31 Thread Alex Deucher
On Wed, Aug 31, 2016 at 4:56 AM, Michel Dänzer  wrote:
> From: Michel Dänzer 
>
> Signed-off-by: Michel Dänzer 

Reviewed-by: Alex Deucher 

> ---
>  include/scrnintstr.h | 19 +++
>  1 file changed, 19 insertions(+)
>
> diff --git a/include/scrnintstr.h b/include/scrnintstr.h
> index 5330714..52e8382 100644
> --- a/include/scrnintstr.h
> +++ b/include/scrnintstr.h
> @@ -347,6 +347,24 @@ typedef Bool (*SharePixmapBackingProcPtr)(PixmapPtr, 
> ScreenPtr, void **);
>
>  typedef Bool (*SetSharedPixmapBackingProcPtr)(PixmapPtr, void *);
>
> +#define HAS_SYNC_SHARED_PIXMAP 1
> +/* The SyncSharedPixmap hook has two purposes:
> + *
> + * 1. If the master driver has it, the slave driver can use it to
> + * synchronize the shared pixmap contents with the screen pixmap.
> + * 2. If the slave driver has it, the master driver can expect the slave
> + * driver to call the master screen's SyncSharedPixmap hook, so the master
> + * driver doesn't have to synchronize the shared pixmap contents itself,
> + * e.g. from the BlockHandler.
> + *
> + * A driver must only set the hook if it handles both cases correctly.
> + *
> + * The argument is the slave screen's pixmap_dirty_list entry, the hook is
> + * responsible for finding the corresponding entry in the master screen's
> + * pixmap_dirty_list.
> + */
> +typedef void (*SyncSharedPixmapProcPtr)(PixmapDirtyUpdatePtr);
> +
>  typedef Bool (*StartPixmapTrackingProcPtr)(PixmapPtr, PixmapPtr,
> int x, int y,
> int dst_x, int dst_y,
> @@ -616,6 +634,7 @@ typedef struct _Screen {
>
>  StartPixmapTrackingProcPtr StartPixmapTracking;
>  StopPixmapTrackingProcPtr StopPixmapTracking;
> +SyncSharedPixmapProcPtr SyncSharedPixmap;
>
>  SharedPixmapNotifyDamageProcPtr SharedPixmapNotifyDamage;
>  RequestSharedPixmapNotifyDamageProcPtr RequestSharedPixmapNotifyDamage;
> --
> 2.9.3
>
> ___
> xorg-devel@lists.x.org: X.Org development
> Archives: http://lists.x.org/archives/xorg-devel
> Info: https://lists.x.org/mailman/listinfo/xorg-devel
___
xorg-devel@lists.x.org: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: https://lists.x.org/mailman/listinfo/xorg-devel

Re: [PATCH xserver] Add SyncSharedPixmap ScreenRec hook

2016-08-31 Thread Michel Dänzer
On 31/08/16 05:56 PM, Michel Dänzer wrote:
> From: Michel Dänzer 
> 
> Signed-off-by: Michel Dänzer 
> ---
>  include/scrnintstr.h | 19 +++
>  1 file changed, 19 insertions(+)
> 
> diff --git a/include/scrnintstr.h b/include/scrnintstr.h
> index 5330714..52e8382 100644
> --- a/include/scrnintstr.h
> +++ b/include/scrnintstr.h
> @@ -347,6 +347,24 @@ typedef Bool (*SharePixmapBackingProcPtr)(PixmapPtr, 
> ScreenPtr, void **);
>  
>  typedef Bool (*SetSharedPixmapBackingProcPtr)(PixmapPtr, void *);
>  
> +#define HAS_SYNC_SHARED_PIXMAP 1
> +/* The SyncSharedPixmap hook has two purposes:
> + *
> + * 1. If the master driver has it, the slave driver can use it to
> + * synchronize the shared pixmap contents with the screen pixmap.
> + * 2. If the slave driver has it, the master driver can expect the slave
> + * driver to call the master screen's SyncSharedPixmap hook, so the master
> + * driver doesn't have to synchronize the shared pixmap contents itself,
> + * e.g. from the BlockHandler.
> + *
> + * A driver must only set the hook if it handles both cases correctly.
> + *
> + * The argument is the slave screen's pixmap_dirty_list entry, the hook is
> + * responsible for finding the corresponding entry in the master screen's
> + * pixmap_dirty_list.
> + */
> +typedef void (*SyncSharedPixmapProcPtr)(PixmapDirtyUpdatePtr);
> +
>  typedef Bool (*StartPixmapTrackingProcPtr)(PixmapPtr, PixmapPtr,
> int x, int y,
> int dst_x, int dst_y,
> @@ -616,6 +634,7 @@ typedef struct _Screen {
>  
>  StartPixmapTrackingProcPtr StartPixmapTracking;
>  StopPixmapTrackingProcPtr StopPixmapTracking;
> +SyncSharedPixmapProcPtr SyncSharedPixmap;
>  
>  SharedPixmapNotifyDamageProcPtr SharedPixmapNotifyDamage;
>  RequestSharedPixmapNotifyDamageProcPtr RequestSharedPixmapNotifyDamage;
> 

Here's an example how this hook can be used:

https://patchwork.freedesktop.org/patch/108074/


-- 
Earthling Michel Dänzer   |   http://www.amd.com
Libre software enthusiast | Mesa and X developer
___
xorg-devel@lists.x.org: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: https://lists.x.org/mailman/listinfo/xorg-devel

[PATCH xserver] Add SyncSharedPixmap ScreenRec hook

2016-08-31 Thread Michel Dänzer
From: Michel Dänzer 

Signed-off-by: Michel Dänzer 
---
 include/scrnintstr.h | 19 +++
 1 file changed, 19 insertions(+)

diff --git a/include/scrnintstr.h b/include/scrnintstr.h
index 5330714..52e8382 100644
--- a/include/scrnintstr.h
+++ b/include/scrnintstr.h
@@ -347,6 +347,24 @@ typedef Bool (*SharePixmapBackingProcPtr)(PixmapPtr, 
ScreenPtr, void **);
 
 typedef Bool (*SetSharedPixmapBackingProcPtr)(PixmapPtr, void *);
 
+#define HAS_SYNC_SHARED_PIXMAP 1
+/* The SyncSharedPixmap hook has two purposes:
+ *
+ * 1. If the master driver has it, the slave driver can use it to
+ * synchronize the shared pixmap contents with the screen pixmap.
+ * 2. If the slave driver has it, the master driver can expect the slave
+ * driver to call the master screen's SyncSharedPixmap hook, so the master
+ * driver doesn't have to synchronize the shared pixmap contents itself,
+ * e.g. from the BlockHandler.
+ *
+ * A driver must only set the hook if it handles both cases correctly.
+ *
+ * The argument is the slave screen's pixmap_dirty_list entry, the hook is
+ * responsible for finding the corresponding entry in the master screen's
+ * pixmap_dirty_list.
+ */
+typedef void (*SyncSharedPixmapProcPtr)(PixmapDirtyUpdatePtr);
+
 typedef Bool (*StartPixmapTrackingProcPtr)(PixmapPtr, PixmapPtr,
int x, int y,
int dst_x, int dst_y,
@@ -616,6 +634,7 @@ typedef struct _Screen {
 
 StartPixmapTrackingProcPtr StartPixmapTracking;
 StopPixmapTrackingProcPtr StopPixmapTracking;
+SyncSharedPixmapProcPtr SyncSharedPixmap;
 
 SharedPixmapNotifyDamageProcPtr SharedPixmapNotifyDamage;
 RequestSharedPixmapNotifyDamageProcPtr RequestSharedPixmapNotifyDamage;
-- 
2.9.3

___
xorg-devel@lists.x.org: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: https://lists.x.org/mailman/listinfo/xorg-devel