[PATCH 21/36] dix: pixmap sharing infrastructure (v2)

Dave Airlie airlied at gmail.com
Mon Jul 2 12:32:21 PDT 2012


On Mon, Jul 2, 2012 at 8:20 PM, Keith Packard <keithp at keithp.com> wrote:
> Dave Airlie <airlied at gmail.com> writes:
>
>> 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.
>>
>> 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 6a22167..5b9f245 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, int *);
>
> Not sure 'int' is the best type for this; I know it's sufficient for
> current usage, but one wonders if 64-bit identifiers, or something even
> more complicated will happen in the future. (void *) instead?

Well using fd's makes the most sense since we've implemented that in
the one true kernel, and I don't want something I'd have to malloc and
keep lifetimes on.

though a void * that just cases an fd is probably okay.

Dave.


More information about the xorg-devel mailing list