| Message ID | 20160831085605.5351-1-michel@daenzer.net |
|---|---|
| State | Accepted |
| Commit | bd8ecd9be1568b59258b6d2f78530ede345b7c7a |
| Headers | show |
| Series |
"Add SyncSharedPixmap ScreenRec hook"
( rev:
1
)
in
X.org (DEPRECATED - USE GITLAB) |
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;
On 31/08/16 05:56 PM, Michel Dänzer wrote: > From: Michel Dänzer <michel.daenzer@amd.com> > > Signed-off-by: Michel Dänzer <michel.daenzer@amd.com> > --- > 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/
On Wed, Aug 31, 2016 at 4:56 AM, Michel Dänzer <michel@daenzer.net> wrote: > From: Michel Dänzer <michel.daenzer@amd.com> > > Signed-off-by: Michel Dänzer <michel.daenzer@amd.com> Reviewed-by: Alex Deucher <alexander.deucher@amd.com> > --- > 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
On 01/09/16 12:27 AM, Alex Deucher wrote: > On Wed, Aug 31, 2016 at 4:56 AM, Michel Dänzer <michel@daenzer.net> wrote: >> From: Michel Dänzer <michel.daenzer@amd.com> >> >> Signed-off-by: Michel Dänzer <michel.daenzer@amd.com> > > Reviewed-by: Alex Deucher <alexander.deucher@amd.com> Thanks, Alex. If there are no objections, I'll push this change next week.
>> Signed-off-by: Michel Dänzer <michel.daenzer@amd.com> > > Reviewed-by: Alex Deucher <alexander.deucher@amd.com> Merged. 7f6fa4e..bd8ecd9 master -> master