non-desktop devices are those to which the normal desktop environment
should not be extended. Examples are Head-mounted displays and the
Apple Touch Bar.
How an output device is set to non-desktop is not part of this
proposal; it is expected that the underlying operating system will
provide this information and have it reflected to X applications
through this extension.
v2: fix puncutation and duplicated 'the'.
v3: switch to 32-bit property named non-desktop to match Linux
Signed-off-by: Keith Packard <keithp@keithp.com>
A "lease" is a set of crtc and output resources granted to another
application for use outside of X. These will not be usable through the
X protocol until the lease terminates. Leased outputs will be seen as
disconnected, leased CRTCs will be seen as not usable with any output.
v2:
Delete output grabs
Add LeaseNotify events
Add FreeLease with option to terminate
v3:
Clarify a couple of lease behaviors:
* You can lease an in-use object, it makes the X server stop
using it, you don't get an error back.
* There's no explicit 'Disabled' state for a crtc, when a crtc
is disabled, it just has a set of reported values for
GetCrtcInfo.
v4:
Integrate into merged xorgproto repo
Signed-off-by: Keith Packard <keithp@keithp.com>
This just makes a note that randr won't make outputs disappear
dynamically.
Reviewed-by: Aaron Plattner <aplattner@nvidia.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
v2: [airlied] add get_active to monitor get
interface, to allow normal vs configuration
clients to see active vs all monitors. (r-b by keithp)
Reviewed-by: Dave Airlie <airlied@redhat.com>
Signed-off-by: Keith Packard <keithp@keithp.com>
The correct names for these are RRCrtcChangeNotifyMask and
RROutputChangeNotifyMask, respectively.
v2: "when a the configuration" is also not a thing.
Signed-off-by: Aaron Plattner <aplattner@nvidia.com>
Reviewed-by: Alan Coopersmith <alan.coopersmith@oracle.com>
I pushed commit 19fc4c5a72 before I remembered
that xrandr-1.4.0 has already been released. Move it to a new 1.4.1 section.
Signed-off-by: Aaron Plattner <aplattner@nvidia.com>
Reviewed-by: Alan Coopersmith <alan.coopersmith@oracle.com>
This property represents the globally-unique identifier of the connected
display, if one is available.
Signed-off-by: Aaron Plattner <aplattner@nvidia.com>
Reviewed-by: Andy Ritger <aritger@nvidia.com>
Make listed lengths match data shown & values in header for
RRSetProviderOffloadSink & RRSetProviderOutputSource
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
Present in header & encoding section, just not in the descriptions of
RRSetProviderOffloadSink & RRSetProviderOutputSource
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
The encoding is missing the 8 bytes of padding at the end of the
base reply struct before the variable length lists begin.
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
The description section matches randrproto.h - neither of which have
the "maximum masters" or "flags" members, but do have padding before
the providers list starts.
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
The encoding section matches randrproto.h - neither of which have the
config-timestamp, root, or crtc members.
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
These values match the RRNotify_* definitions in randrproto.h and
don't overlap with the RROutput*Notify codes from RandR 1.2.
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
Reviewed-by: Dave Airlie <airlied@redhat.com>
The padding for RRGetCrtcGamma & RRSetCrtcGamma is a variable p,
not a fixed 2 bytes, since it depends on how many values are
included in the lists.
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
Make definitions more consistent about use of {} for enums, [] for structs
Reflect the incorporation of more types from the Render spec in 1.3
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
(1 + 1 + 2 + 4 + 32) / 4 is 10 words, not 12
10 also matches the sz_xRRCreateModeReq value of 40 in randrproto.h
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Dave Airlie <airlied@gmail.com>
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Dave Airlie <airlied@gmail.com>
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Dave Airlie <airlied@gmail.com>
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>
This patch reverts:
Revert "Make SetCrtcConfigs take flags bits to allow partial configuration changes"
This reverts commit 105a161a3f.
Revert "Define new semantics for scanout pixmap destruction."
This reverts commit 0d32bb0780.
Revert "Fix spelling errors, add description of SCANOUTPIXMAPINFO fields."
This reverts commit 3e28d3098f.
Revert "Add some informative text about the reasons for the PCP and ST bits"
This reverts commit ebab32deea.
Revert "RandR version 1.4 additions"
This reverts commit dd14a22755.
None of this was ever used in the X server and I think it should
probably be addressed in smaller pieces later.
Acked-by: Keith Packard <keithp@keithp.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
RandR output properties are X properties, which have a type atom, a
"format" (i.e. an element size) and a number of items. Be explicit
about these fields when describing properties in the protocol
document. E.g., instead of specifying "int32 [2 * n] / Atom pairs,"
say "Type: INTEGER / Format: 32 / Num. items: 2*n."
Signed-off-by: Aaron Plattner <aplattner@nvidia.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Instead of requiring a complete new configuration to be computed,
allow the client to send a partial configuration with only the changed
values included. This simplifies clients so that they need not change
things they don't understand.
This also removes the 'CurrentScanoutPixmap' hack as that is no longer
necessary.
Signed-off-by: Keith Packard <keithp@keithp.com>
This adds the specification and protocol header definitions for the
RandR 1.4 protocol changes, including
* Per crtc pixmaps and pixmap origins
* Sprite position and image transforms
* SetCrtcConfigs request
Signed-off-by: Keith Packard <keithp@keithp.com>