diff options
author | Dave Airlie <airlied@redhat.com> | 2012-01-20 17:38:16 +0000 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2012-07-05 21:08:55 +0100 |
commit | ef99bda581449d6c8dab7233e287c7bfd578730c (patch) | |
tree | 614f0ba8e581a2cfc789b1c215265a41302bd893 /randr.h | |
parent | e0c94fa3a9e9f237c65c35e42aaa673994e55b7e (diff) | |
download | xorg-proto-randrproto-ef99bda581449d6c8dab7233e287c7bfd578730c.tar.gz |
randr: add provider object (v8)
A provider object represents a GPU or virtual device that provides
rendering or output services to the X server. This protocol
allow controlling provider objects for output and offload slave devices.
v1.1: fix typo add missing define
v2: rename nProperties back to nAtoms, makes server simpler to c-n-p,
add missing Get request/reply
v3: bring back configure property, no point in diverging from the
output property code without good reason.
also fix typo pointed out on irc by rei4dan.
v3.1: drop cut-n-paste, increase RRNumberRequests
v4: reviewed by Aaron, address comments:
Fix provider error code
add missing notify, remove dri2 references, fix c-n-p issues.
v5: add provider change notify event with current role.
v5.1: fix cut-n-paste
v6:
document flags, fix whitespace, add better errors for SetProviderRoles,
add new events, fix pending language.
v6.1: add missing change notify event struct + missing padding
v7: fix a bunch more tab/spaces, add appendix sections for requests, events
and errors, remove multimaster flag in favour of max master counter,
move some members around to follow other events.
v7.1 fix maxMaster + wrong comment, one whitespace
v7.2 bump to being randr 1.4, fix some too generic names.
v7.3 remove dynamic flag, fix some language
v8 overhaul complete protocol, remove set provider roles, add specific
methods for setting offload sinks and output sources, add a list
of associated providers into the get provider info struct.
Earlier-review-by: Aaron Plattner <aplattner@nvidia.com>
Reviewed-by: Keith Packard <keithp@keithp.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Diffstat (limited to 'randr.h')
-rw-r--r-- | randr.h | 34 |
1 files changed, 30 insertions, 4 deletions
@@ -40,11 +40,11 @@ typedef unsigned long XRandrModeFlags; #define RANDR_NAME "RANDR" #define RANDR_MAJOR 1 -#define RANDR_MINOR 3 +#define RANDR_MINOR 4 -#define RRNumberErrors 3 +#define RRNumberErrors 4 #define RRNumberEvents 2 -#define RRNumberRequests 32 +#define RRNumberRequests 42 #define X_RRQueryVersion 0 /* we skip 1 to make old clients fail pretty immediately */ @@ -92,12 +92,28 @@ typedef unsigned long XRandrModeFlags; #define RRTransformScaleDown (1L << 2) #define RRTransformProjective (1L << 3) +/* v1.4 */ +#define X_RRGetProviders 32 +#define X_RRGetProviderInfo 33 +#define X_RRSetProviderOffloadSink 34 +#define X_RRSetProviderOutputSource 35 +#define X_RRListProviderProperties 36 +#define X_RRQueryProviderProperty 37 +#define X_RRConfigureProviderProperty 38 +#define X_RRChangeProviderProperty 39 +#define X_RRDeleteProviderProperty 40 +#define X_RRGetProviderProperty 41 + /* Event selection bits */ #define RRScreenChangeNotifyMask (1L << 0) /* V1.2 additions */ #define RRCrtcChangeNotifyMask (1L << 1) #define RROutputChangeNotifyMask (1L << 2) #define RROutputPropertyNotifyMask (1L << 3) +/* V1.4 additions */ +#define RRProviderChangeNotifyMask (1L << 4) +#define RRProviderPropertyNotifyMask (1L << 5) +#define RRResourceChangeNotifyMask (1L << 6) /* Event codes */ #define RRScreenChangeNotify 0 @@ -107,7 +123,9 @@ typedef unsigned long XRandrModeFlags; #define RRNotify_CrtcChange 0 #define RRNotify_OutputChange 1 #define RRNotify_OutputProperty 2 - +#define RRNotify_ProviderChange 3 +#define RRNotify_ProviderProperty 4 +#define RRNotify_ResourceChange 5 /* used in the rotation field; rotation and reflection in 0.1 proto. */ #define RR_Rotate_0 1 #define RR_Rotate_90 2 @@ -148,6 +166,7 @@ typedef unsigned long XRandrModeFlags; #define BadRROutput 0 #define BadRRCrtc 1 #define BadRRMode 2 +#define BadRRProvider 3 /* Conventional RandR output properties */ @@ -162,4 +181,11 @@ typedef unsigned long XRandrModeFlags; #define RR_PROPERTY_BORDER "Border" #define RR_PROPERTY_BORDER_DIMENSIONS "BorderDimensions" +/* roles this device can carry out */ +#define RR_Capability_None 0 +#define RR_Capability_SourceOutput 1 +#define RR_Capability_SinkOutput 2 +#define RR_Capability_SourceOffload 4 +#define RR_Capability_SinkOffload 8 + #endif /* _RANDR_H_ */ |