mirror of
https://gitlab.freedesktop.org/xorg/proto/xcbproto.git
synced 2026-05-07 04:58:00 +02:00
randr: Add provider object support (RandR v1.4)
With RandR 1.4 provider objects have been introduced. "A provider object
represents a GPU or virtual device providing services to the X server."
To handle provider objects the following requests have been added:
- GetProviders
- GetProviderInfo
- SetProviderOffloadSink
- SetProviderOutputSource
- ListProviderProperties
- QueryProviderProperty
- ConfigureProviderProperty
- ChangeProviderProperty
- DeleteProviderProperty
- GetProviderProperty
And the Notify event got 3 new subcodes:
- ProviderChange
- ProviderProperty
- ResourceChange
v2:
- add missing name field to GetProviderInfo
v3:
- changed ProviderCapability enum
o replaced <value> with <bit>
o removed None
- replaced "alignment pad list" with commented out <pad align="4"/> to
be prepared for future enhancements
- add brief description to commit msg about additions
Signed-off-by: Daniel Martin <consume.noise@gmail.com>
Signed-off-by: Peter Harris <pharris@opentext.com>
This commit is contained in:
parent
5f1fb6ab6b
commit
45d8361e59
1 changed files with 216 additions and 15 deletions
231
src/randr.xml
231
src/randr.xml
|
|
@ -27,7 +27,7 @@ authorization from the authors.
|
|||
-->
|
||||
|
||||
<xcb header="randr" extension-xname="RANDR" extension-name="RandR"
|
||||
major-version="1" minor-version="3">
|
||||
major-version="1" minor-version="4">
|
||||
|
||||
<import>xproto</import>
|
||||
<import>render</import>
|
||||
|
|
@ -36,12 +36,14 @@ authorization from the authors.
|
|||
<xidtype name="MODE" />
|
||||
<xidtype name="CRTC" />
|
||||
<xidtype name="OUTPUT" />
|
||||
<xidtype name="PROVIDER" />
|
||||
|
||||
<!-- Errors -->
|
||||
|
||||
<error name="BadOutput" number="0" />
|
||||
<error name="BadCrtc" number="1" />
|
||||
<error name="BadMode" number="2" />
|
||||
<error name="BadOutput" number="0" />
|
||||
<error name="BadCrtc" number="1" />
|
||||
<error name="BadMode" number="2" />
|
||||
<error name="BadProvider" number="3" />
|
||||
|
||||
<!-- Requests -->
|
||||
|
||||
|
|
@ -113,11 +115,15 @@ authorization from the authors.
|
|||
<!-- opcode 3 is obsolete -->
|
||||
|
||||
<enum name="NotifyMask" >
|
||||
<item name="ScreenChange"> <bit>0</bit></item>
|
||||
<!-- new in 1.2 -->
|
||||
<item name="CrtcChange"> <bit>1</bit></item>
|
||||
<item name="OutputChange"> <bit>2</bit></item>
|
||||
<item name="OutputProperty"><bit>3</bit></item>
|
||||
<item name="ScreenChange"> <bit>0</bit></item>
|
||||
<!-- New in version 1.2 -->
|
||||
<item name="CrtcChange"> <bit>1</bit></item>
|
||||
<item name="OutputChange"> <bit>2</bit></item>
|
||||
<item name="OutputProperty"> <bit>3</bit></item>
|
||||
<!-- New in version 1.4 -->
|
||||
<item name="ProviderChange"> <bit>4</bit></item>
|
||||
<item name="ProviderProperty"><bit>5</bit></item>
|
||||
<item name="ResourceChange"> <bit>6</bit></item>
|
||||
</enum>
|
||||
|
||||
<request name="SelectInput" opcode="4">
|
||||
|
|
@ -506,6 +512,14 @@ authorization from the authors.
|
|||
</reply>
|
||||
</request>
|
||||
|
||||
<enum name="Transform">
|
||||
<!-- Introduced in version 1.3, but not referenced. -->
|
||||
<item name="Unit"> <bit>0</bit></item>
|
||||
<item name="ScaleUp"> <bit>1</bit></item>
|
||||
<item name="ScaleDown"> <bit>2</bit></item>
|
||||
<item name="Projective"> <bit>3</bit></item>
|
||||
</enum>
|
||||
|
||||
<request name="SetCrtcTransform" opcode="26">
|
||||
<field type="CRTC" name="crtc" />
|
||||
<field type="TRANSFORM" name="transform" />
|
||||
|
|
@ -599,6 +613,163 @@ authorization from the authors.
|
|||
</reply>
|
||||
</request>
|
||||
|
||||
<!-- New in version 1.4 -->
|
||||
|
||||
<request name="GetProviders" opcode="32">
|
||||
<field type="WINDOW" name="window" />
|
||||
<reply>
|
||||
<pad bytes="1" />
|
||||
<field type="TIMESTAMP" name="timestamp" />
|
||||
<field type="CARD16" name="num_providers" />
|
||||
<pad bytes="18" />
|
||||
<list type="PROVIDER" name="providers">
|
||||
<fieldref>num_providers</fieldref>
|
||||
</list>
|
||||
</reply>
|
||||
</request>
|
||||
|
||||
<enum name="ProviderCapability">
|
||||
<item name="SourceOutput"> <bit>0</bit></item>
|
||||
<item name="SinkOutput"> <bit>1</bit></item>
|
||||
<item name="SourceOffload"> <bit>2</bit></item>
|
||||
<item name="SinkOffload"> <bit>3</bit></item>
|
||||
</enum>
|
||||
|
||||
<request name="GetProviderInfo" opcode="33">
|
||||
<field type="PROVIDER" name="provider" />
|
||||
<field type="TIMESTAMP" name="config_timestamp" />
|
||||
<reply>
|
||||
<field type="CARD8" name="status" />
|
||||
<field type="TIMESTAMP" name="timestamp" />
|
||||
<field type="CARD32" name="capabilities" mask="ProviderCapability" />
|
||||
<field type="CARD16" name="num_crtcs" />
|
||||
<field type="CARD16" name="num_outputs" />
|
||||
<field type="CARD16" name="num_associated_providers" />
|
||||
<field type="CARD16" name="name_len" />
|
||||
<pad bytes="8" />
|
||||
<list type="CRTC" name="crtcs">
|
||||
<fieldref>num_crtcs</fieldref>
|
||||
</list>
|
||||
<list type="OUTPUT" name="outputs">
|
||||
<fieldref>num_outputs</fieldref>
|
||||
</list>
|
||||
<list type="PROVIDER" name="associated_providers">
|
||||
<fieldref>num_associated_providers</fieldref>
|
||||
</list>
|
||||
<list type="CARD32" name="associated_capability">
|
||||
<fieldref>num_associated_providers</fieldref>
|
||||
</list>
|
||||
<list type="char" name="name">
|
||||
<fieldref>name_len</fieldref>
|
||||
</list>
|
||||
<!-- XXX: Prepared for the future. Until xcbgen supports
|
||||
the align attribute in <pad>, we ignore the
|
||||
trailing pad bytes here.
|
||||
<pad align="4" />
|
||||
-->
|
||||
</reply>
|
||||
</request>
|
||||
|
||||
<request name="SetProviderOffloadSink" opcode="34">
|
||||
<field type="PROVIDER" name="provider" />
|
||||
<field type="PROVIDER" name="sink_provider" />
|
||||
<field type="TIMESTAMP" name="config_timestamp" />
|
||||
</request>
|
||||
|
||||
<request name="SetProviderOutputSource" opcode="35">
|
||||
<field type="PROVIDER" name="provider" />
|
||||
<field type="PROVIDER" name="source_provider" />
|
||||
<field type="TIMESTAMP" name="config_timestamp" />
|
||||
</request>
|
||||
|
||||
<request name="ListProviderProperties" opcode="36">
|
||||
<field type="PROVIDER" name="provider" />
|
||||
<reply>
|
||||
<pad bytes="1" />
|
||||
<field type="CARD16" name="num_atoms" />
|
||||
<pad bytes="22" />
|
||||
<list type="ATOM" name="atoms">
|
||||
<fieldref>num_atoms</fieldref>
|
||||
</list>
|
||||
</reply>
|
||||
</request>
|
||||
|
||||
<request name="QueryProviderProperty" opcode="37">
|
||||
<field type="PROVIDER" name="provider" />
|
||||
<field type="ATOM" name="property" />
|
||||
<reply>
|
||||
<pad bytes="1" />
|
||||
<field type="BOOL" name="pending" />
|
||||
<field type="BOOL" name="range" />
|
||||
<field type="BOOL" name="immutable" />
|
||||
<pad bytes="21" />
|
||||
<list type="INT32" name="valid_values">
|
||||
<fieldref>length</fieldref>
|
||||
</list>
|
||||
</reply>
|
||||
</request>
|
||||
|
||||
<request name="ConfigureProviderProperty" opcode="38">
|
||||
<field type="PROVIDER" name="provider" />
|
||||
<field type="ATOM" name="property" />
|
||||
<field type="BOOL" name="pending" />
|
||||
<field type="BOOL" name="range" />
|
||||
<pad bytes="2" />
|
||||
<list type="INT32" name="values" />
|
||||
</request>
|
||||
|
||||
<request name="ChangeProviderProperty" opcode="39">
|
||||
<field type="PROVIDER" name="provider" />
|
||||
<field type="ATOM" name="property" />
|
||||
<field type="ATOM" name="type" />
|
||||
<field type="CARD8" name="format" />
|
||||
<field type="CARD8" name="mode" />
|
||||
<pad bytes="2" />
|
||||
<field type="CARD32" name="num_items" />
|
||||
<list type="void" name="data">
|
||||
<op op="*">
|
||||
<fieldref>num_items</fieldref>
|
||||
<op op="/">
|
||||
<fieldref>format</fieldref>
|
||||
<value>8</value>
|
||||
</op>
|
||||
</op>
|
||||
</list>
|
||||
</request>
|
||||
|
||||
<request name="DeleteProviderProperty" opcode="40">
|
||||
<field type="PROVIDER" name="provider" />
|
||||
<field type="ATOM" name="property" />
|
||||
</request>
|
||||
|
||||
<request name="GetProviderProperty" opcode="41">
|
||||
<field type="PROVIDER" name="provider" />
|
||||
<field type="ATOM" name="property" />
|
||||
<field type="ATOM" name="type" /> <!-- AnyProperty -->
|
||||
<field type="CARD32" name="long_offset" />
|
||||
<field type="CARD32" name="long_length" />
|
||||
<field type="BOOL" name="delete" />
|
||||
<field type="BOOL" name="pending" />
|
||||
<pad bytes="2" />
|
||||
<reply>
|
||||
<pad bytes="1" />
|
||||
<field type="CARD8" name="format" />
|
||||
<field type="ATOM" name="type" /> <!-- None -->
|
||||
<field type="CARD32" name="bytes_after" />
|
||||
<field type="CARD16" name="num_items" />
|
||||
<pad bytes="12" />
|
||||
<list type="void" name="data">
|
||||
<op op="*">
|
||||
<fieldref>num_items</fieldref>
|
||||
<op op="/">
|
||||
<fieldref>format</fieldref>
|
||||
<value>8</value>
|
||||
</op>
|
||||
</op>
|
||||
</list>
|
||||
</reply>
|
||||
</request>
|
||||
|
||||
<!-- Events -->
|
||||
|
||||
<event name="ScreenChangeNotify" number="0">
|
||||
|
|
@ -619,9 +790,12 @@ authorization from the authors.
|
|||
|
||||
<!-- subcode -->
|
||||
<enum name="Notify" >
|
||||
<item name="CrtcChange"> <value>0</value></item>
|
||||
<item name="OutputChange"> <value>1</value></item>
|
||||
<item name="OutputProperty"><value>2</value></item>
|
||||
<item name="CrtcChange"> <value>0</value></item>
|
||||
<item name="OutputChange"> <value>1</value></item>
|
||||
<item name="OutputProperty"> <value>2</value></item>
|
||||
<item name="ProviderChange"> <value>3</value></item>
|
||||
<item name="ProviderProperty"><value>4</value></item>
|
||||
<item name="ResourceChange"> <value>5</value></item>
|
||||
</enum>
|
||||
|
||||
<struct name="CrtcChange">
|
||||
|
|
@ -658,10 +832,37 @@ authorization from the authors.
|
|||
<pad bytes="11" />
|
||||
</struct>
|
||||
|
||||
<!-- New in version 1.4 -->
|
||||
|
||||
<struct name="ProviderChange">
|
||||
<field type="TIMESTAMP" name="timestamp" />
|
||||
<field type="WINDOW" name="window" />
|
||||
<field type="PROVIDER" name="provider" />
|
||||
<pad bytes="16" />
|
||||
</struct>
|
||||
|
||||
<struct name="ProviderProperty">
|
||||
<field type="WINDOW" name="window" />
|
||||
<field type="PROVIDER" name="provider" />
|
||||
<field type="ATOM" name="atom" />
|
||||
<field type="TIMESTAMP" name="timestamp" />
|
||||
<field type="CARD8" name="state" />
|
||||
<pad bytes="11" />
|
||||
</struct>
|
||||
|
||||
<struct name="ResourceChange">
|
||||
<field type="TIMESTAMP" name="timestamp" />
|
||||
<field type="WINDOW" name="window" />
|
||||
<pad bytes="20" />
|
||||
</struct>
|
||||
|
||||
<union name="NotifyData">
|
||||
<field type="CrtcChange" name="cc" />
|
||||
<field type="OutputChange" name="oc" />
|
||||
<field type="OutputProperty" name="op" />
|
||||
<field type="CrtcChange" name="cc" />
|
||||
<field type="OutputChange" name="oc" />
|
||||
<field type="OutputProperty" name="op" />
|
||||
<field type="ProviderChange" name="pc" />
|
||||
<field type="ProviderProperty" name="pp" />
|
||||
<field type="ResourceChange" name="rc" />
|
||||
</union>
|
||||
|
||||
<event name="Notify" number="1">
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue