Re: [PATCH xserver] Add SyncSharedPixmap ScreenRec hook
>> 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
On 01/09/16 12:27 AM, Alex Deucher wrote: > On Wed, Aug 31, 2016 at 4:56 AM, Michel Dänzerwrote: >> 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
On Wed, Aug 31, 2016 at 4:56 AM, Michel Dänzerwrote: > 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
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
From: Michel DänzerSigned-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