2018-08-16 17:22:14 +03:00
|
|
|
.TH WESTON-DRM 7 "2012-11-27" "Weston @version@"
|
2012-11-27 18:54:08 +04:00
|
|
|
.SH NAME
|
|
|
|
weston-drm \- the DRM backend for Weston
|
|
|
|
.SH SYNOPSIS
|
2022-12-05 19:28:23 +03:00
|
|
|
.B weston --backend=drm
|
2012-11-27 18:54:08 +04:00
|
|
|
.
|
|
|
|
.\" ***************************************************************
|
|
|
|
.SH DESCRIPTION
|
|
|
|
The DRM backend is the native Weston backend for systems that support
|
|
|
|
the Linux kernel DRM, kernel mode setting (KMS), and evdev input devices.
|
|
|
|
It is the recommended backend for desktop PCs, and aims to provide
|
|
|
|
the full Wayland experience with the "every frame is perfect" concept.
|
|
|
|
It also relies on the Mesa GBM interface.
|
|
|
|
|
|
|
|
With the DRM backend,
|
|
|
|
.B weston
|
|
|
|
runs without any underlying windowing system. The backend uses the
|
|
|
|
Linux KMS API to detect connected monitors. Monitor hot-plugging is
|
|
|
|
supported. Input devices are found automatically by
|
|
|
|
.BR udev (7).
|
|
|
|
Compositing happens mainly in GL\ ES\ 2, initialized through EGL. It
|
|
|
|
is also possible to take advantage of hardware cursors and overlays,
|
|
|
|
when they exist and are functional. Full-screen surfaces will be
|
|
|
|
scanned out directly without compositing, when possible.
|
|
|
|
Hardware accelerated clients are supported via EGL.
|
|
|
|
|
|
|
|
The backend chooses the DRM graphics device first based on seat id.
|
|
|
|
If seat identifiers are not set, it looks for the graphics device
|
|
|
|
that was used in boot. If that is not found, it finally chooses
|
|
|
|
the first DRM device returned by
|
|
|
|
.BR udev (7).
|
2020-04-05 23:19:49 +03:00
|
|
|
Combining multiple graphics devices is not supported yet.
|
2012-11-27 18:54:08 +04:00
|
|
|
|
2018-01-24 11:08:02 +03:00
|
|
|
The DRM backend also supports virtual outputs that are transmitted over
|
|
|
|
an RTP session as a series of JPEG images (RTP payload type 26) to a remote
|
|
|
|
client. Virtual outputs are configured in the
|
|
|
|
.BR remote-output
|
|
|
|
section of
|
|
|
|
.BR weston.ini.
|
2012-11-27 18:54:08 +04:00
|
|
|
.
|
|
|
|
.\" ***************************************************************
|
|
|
|
.SH CONFIGURATION
|
|
|
|
.
|
|
|
|
The DRM backend uses the following entries from
|
|
|
|
.BR weston.ini .
|
2022-03-11 12:23:01 +03:00
|
|
|
.SS Section core
|
|
|
|
.TP
|
|
|
|
\fBgbm-format\fR=\fIformat\fR
|
2022-03-11 12:40:44 +03:00
|
|
|
Sets the default pixel format for DRM KMS framebuffers.
|
|
|
|
.IR Format " can be"
|
|
|
|
.BR xrgb8888 ", " xrgb2101010 ", " rgb565
|
|
|
|
or others. Weston recognizes the names of most pixel formats defined by
|
|
|
|
the kernel DRM subsystem in
|
|
|
|
.B drm_fourcc.h
|
|
|
|
header without the DRM_FORMAT_ prefix.
|
|
|
|
The actually supported pixel formats depend on the DRM driver and hardware,
|
2023-01-27 19:15:43 +03:00
|
|
|
and the renderer used. Using Pixman-renderer, DRM-backend supports
|
|
|
|
.BR xrgb8888 ", " xrgb2101010 ", " rgb565
|
|
|
|
and some of their permutations.
|
2022-03-11 12:40:44 +03:00
|
|
|
The formats supported with GL-renderer depend on the EGL and OpenGL ES 2 or 3
|
2022-03-04 18:08:52 +03:00
|
|
|
implementations. The names are case-insensitive. This setting applies only to
|
|
|
|
.RB "outputs in SDR mode, see " eotf-mode " in " weston.ini (5).
|
2022-03-11 12:40:44 +03:00
|
|
|
|
2022-03-11 13:02:03 +03:00
|
|
|
.RB "If not specified, " xrgb8888 " is used. See also " gbm-format " in"
|
|
|
|
.BR output " section."
|
2022-03-11 12:23:01 +03:00
|
|
|
.TP
|
|
|
|
\fBpageflip-timeout\fR=\fImilliseconds\fR
|
|
|
|
sets Weston's pageflip timeout in milliseconds. This sets a timer to exit
|
|
|
|
gracefully with a log message and an exit code of 1 in case the DRM driver is
|
|
|
|
non-responsive. Setting it to 0 disables this feature.
|
2022-03-11 12:23:01 +03:00
|
|
|
|
2012-11-27 18:54:08 +04:00
|
|
|
.SS Section output
|
|
|
|
.TP
|
|
|
|
\fBname\fR=\fIconnector\fR
|
|
|
|
The KMS connector name identifying the output, for instance
|
|
|
|
.IR LVDS1 .
|
|
|
|
.TP
|
|
|
|
\fBmode\fR=\fImode\fR
|
|
|
|
Specify the video mode for the output. The argument
|
|
|
|
.I mode
|
|
|
|
can be one of the words
|
|
|
|
.BR off " to turn the output off, "
|
|
|
|
.BR preferred " to use the monitor's preferred video mode, or "
|
|
|
|
.BR current " to use the current video mode and avoid a mode switch."
|
man: add description for specifying modes with aspect-ratio in weston.ini
This patch adds information about the new resolution-format that can
be specified by a user in weston.ini to select a CEA mode. CEA defines
timing of a video mode, which is considered as a standard for
HDMI certification and compliance testing. It defines each and every
parameter, of a video mode, like h/vactive,h/vfront h/vback etc.,
including aspect-ratio information. The drm layer, specifies the
aspect-ratio information in user-mode flag bits 19-22. For the non-CEA
modes a value of 0 is given in the aspect-ratio flag bits. Each
CEA-mode is identified by a unique, Video Identification Code (VIC).
For example, VIC=4 is 1280x720@60 aspect-ratio 16:9.
This mode will be different than a non-CEA mode 1280x720@60 0:0.
The new mode-format helps to differentiate between the CEA and
non-CEA modes, by letting user specify aspect-ratio along with other
paremeters: mode=widthxheight@rr ratio.
This helps when certification testing is done, in tests like 7-27,
the HDMI analyzer applies a particular CEA mode, and expects the
applied mode to be with exactly same timings, including the
aspect-ratio and VIC field.
Signed-off-by: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
2097-03-18 21:54:56 +03:00
|
|
|
It can also be a resolution as:
|
|
|
|
.TP
|
|
|
|
\fBmode\fR=\fIwidth\fBx\fIheight\fR
|
|
|
|
.TP
|
|
|
|
\fBmode\fR=\fIwidth\fBx\fIheight\fB@\fIrefresh_rate\fR
|
|
|
|
Specify a mode with a given refresh-rate measured in Hz.
|
|
|
|
.TP
|
|
|
|
\fBmode\fR=\fIwidth\fBx\fIheight\fB@\fIrefresh_rate ratio\fR
|
|
|
|
Here \fIratio\fR is Picture Aspect-Ratio which can have values as 4:3, 16:9,
|
|
|
|
64:27, and 256:135. This resolution-format helps to select a CEA mode, if such a
|
|
|
|
video mode is present in the mode-list of the output.
|
|
|
|
|
|
|
|
CEA defines the timing of a video mode, which is considered as a standard for
|
|
|
|
HDMI spcification and compliance testing. It defines each and every parameter of
|
|
|
|
a video mode, like hactive, vactive, vfront, vback etc., including aspect-ratio
|
|
|
|
information. For CEA modes, the drm layer, stores this aspect-ratio information
|
|
|
|
in user-mode (drmModeModeInfo) flag bits 19-22. For the non-CEA modes a value of
|
|
|
|
0 is stored in the aspect-ratio flag bits.
|
|
|
|
|
|
|
|
Each CEA-mode is identified by a unique, Video Identification Code (VIC).
|
|
|
|
For example, VIC=4 is 1280x720@60 aspect-ratio 16:9. This mode will be
|
|
|
|
different than a non-CEA mode 1280x720@60 0:0. When the video mode
|
2019-02-20 18:33:32 +03:00
|
|
|
1280x720@60 0:0 is applied, since its timing doesn't exactly match with the CEA
|
man: add description for specifying modes with aspect-ratio in weston.ini
This patch adds information about the new resolution-format that can
be specified by a user in weston.ini to select a CEA mode. CEA defines
timing of a video mode, which is considered as a standard for
HDMI certification and compliance testing. It defines each and every
parameter, of a video mode, like h/vactive,h/vfront h/vback etc.,
including aspect-ratio information. The drm layer, specifies the
aspect-ratio information in user-mode flag bits 19-22. For the non-CEA
modes a value of 0 is given in the aspect-ratio flag bits. Each
CEA-mode is identified by a unique, Video Identification Code (VIC).
For example, VIC=4 is 1280x720@60 aspect-ratio 16:9.
This mode will be different than a non-CEA mode 1280x720@60 0:0.
The new mode-format helps to differentiate between the CEA and
non-CEA modes, by letting user specify aspect-ratio along with other
paremeters: mode=widthxheight@rr ratio.
This helps when certification testing is done, in tests like 7-27,
the HDMI analyzer applies a particular CEA mode, and expects the
applied mode to be with exactly same timings, including the
aspect-ratio and VIC field.
Signed-off-by: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
2097-03-18 21:54:56 +03:00
|
|
|
information for VIC=4, it would be treated as a non-CEA mode. Also, while setting
|
|
|
|
the HDMI-AVI-Inforframe, VIC parameter will be given as '0'. If video mode
|
|
|
|
1280x720@60 16:9 is applied, its CEA timimgs matches with that of video mode with
|
|
|
|
VIC=4, so the VIC parameter in HDMI-AVI-Infoframe will be set to 4.
|
|
|
|
|
|
|
|
Many a times, an output may have both CEA and non-CEA modes, which are similar
|
|
|
|
in all resepct, differing only in the aspect-ratio. A user can select a CEA mode
|
|
|
|
by giving the aspect-ratio, along with the other arguments for the mode.
|
|
|
|
By omitting the aspect-ratio, user can specify the non-CEA modes.
|
|
|
|
This helps when certification testing is done, in tests like 7-27, the
|
|
|
|
HDMI-analyzer applies a particular CEA mode, and expects the applied mode to be
|
|
|
|
with exactly same timings, including the aspect-ratio and VIC field.
|
|
|
|
|
|
|
|
The resolution can also be a detailed mode line as below.
|
2012-11-27 18:54:08 +04:00
|
|
|
.TP
|
|
|
|
\fBmode\fR=\fIdotclock hdisp hsyncstart hsyncend htotal \
|
|
|
|
vdisp vsyncstart vsyncend vtotal hflag vflag\fR
|
|
|
|
Use the given detailed mode line as the video mode for this output.
|
|
|
|
The definition is the same as in
|
|
|
|
.BR xorg.conf "(5), and " cvt (1)
|
|
|
|
can generate detailed mode lines.
|
|
|
|
.TP
|
|
|
|
\fBtransform\fR=\fItransform\fR
|
|
|
|
Transform for the output, which can be rotated in 90-degree steps
|
|
|
|
and possibly flipped. Possible values are
|
Redefine output rotations
It was discovered in issue #99 that the implementations of the 90 and 270
degree rotations were actually the inverse of what the Wayland specification
spelled out. This patch fixes the libweston implementation to follow the
specification.
As a result, the behaviour of the the weston.ini transform key also changes. To
force all users to re-think their configuration, the transform key values are
also changed. Since Weston and libweston change their behaviour, the handling
of clients' buffer transform changes too.
All the functions had their 90/270 cases simply swapped, probably due to
confusion of whether WL_OUTPUT_TRANSFORM_* refers to rotating the monitor or
the content.
Hint: a key to understanding weston_matrix_rotate_xy(m, c, s) is that the
rotation matrix is formed as
c -s
s c
that is, it's column-major. This fooled me at first.
Fixing window.c fixes weston-terminal and weston-transformed.
In simple-damage, window_get_transformed_ball() is fixed to follow the proper
transform definitions, but the fix to the viewport path in redraw() is purely
mechanical. The viewport path looks broken to me in the presence of any
transform, but it is not this patch's job to fix it.
Screen-share fix just repeats the general code fix pattern, I did not even try
to understand that bit.
https://gitlab.freedesktop.org/wayland/weston/issues/99
Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.com>
2020-02-06 16:27:54 +03:00
|
|
|
.BR normal ", " rotate-90 ", " rotate-180 ", " rotate-270 ", "
|
|
|
|
.BR flipped ", " flipped-rotate-90 ", " flipped-rotate-180 ", and "
|
|
|
|
.BR flipped-rotate-270 .
|
2018-04-23 12:44:59 +03:00
|
|
|
.TP
|
2022-03-11 13:02:03 +03:00
|
|
|
\fBgbm-format\fR=\fIformat\fR
|
|
|
|
Set the DRM KMS framebuffer format for this specific output. If not set,
|
2022-03-04 18:08:52 +03:00
|
|
|
.RB "the value from " gbm-format " option in " core " section is used"
|
|
|
|
.RB "for SDR mode outputs and " xrgb2101010 " for other modes."
|
2022-03-11 13:02:03 +03:00
|
|
|
.RI "For the possible values for " format " see "
|
|
|
|
.BR gbm-format " option in " core " section."
|
2022-03-04 18:08:52 +03:00
|
|
|
.RB "For SDR mode, see " eotf-mode " in " weston.ini (7).
|
2022-03-11 13:02:03 +03:00
|
|
|
.TP
|
2018-04-23 12:44:59 +03:00
|
|
|
\fBpixman-shadow\fR=\fIboolean\fR
|
|
|
|
If using the Pixman-renderer, use shadow framebuffers. Defaults to
|
|
|
|
.BR true .
|
2017-11-03 10:56:05 +03:00
|
|
|
.TP
|
|
|
|
\fBsame-as\fR=\fIname\fR
|
|
|
|
Make this output (connector) a clone of another. The argument
|
|
|
|
.IR name " is the "
|
|
|
|
.BR name " value of another output section. The
|
|
|
|
referred to output section must exist. When this key is present in an
|
|
|
|
output section, all other keys have no effect on the configuration.
|
|
|
|
|
|
|
|
NOTE: cms-colord plugin does not work correctly with this option. The plugin
|
|
|
|
chooses an arbitrary monitor to load the color profile for, but the
|
|
|
|
profile is applied equally to all cloned monitors regardless of their
|
|
|
|
properties.
|
2018-05-23 14:34:36 +03:00
|
|
|
.TP
|
|
|
|
\fBforce-on\fR=\fItrue\fR
|
|
|
|
Force the output to be enabled even if the connector is disconnected.
|
|
|
|
Defaults to false. Note that
|
|
|
|
.BR mode=off " will override " force-on=true .
|
|
|
|
When a connector is disconnected, there is no EDID information to provide
|
|
|
|
a list of video modes. Therefore a forced output should also have a
|
|
|
|
detailed mode line specified.
|
2022-06-07 15:02:55 +03:00
|
|
|
.TP
|
|
|
|
\fBmax-bpc\fR=\fIN\fR
|
|
|
|
.RB "Set \(dq" "max bpc" "\(dq KMS property to value"
|
|
|
|
.IR N ,
|
|
|
|
silenty clamped to the hardware driver supported range. This artificially
|
|
|
|
limits the driver chosen link bits-per-channel which may be useful for working
|
|
|
|
around sink hardware (e.g. monitor) limitations. The default is 16 which is
|
|
|
|
practically unlimited. If you need to work around hardware issues, try a lower
|
2022-09-07 18:34:17 +03:00
|
|
|
value like 8. A value of 0 means that the current max bpc will be reprogrammed.
|
2018-01-24 11:08:02 +03:00
|
|
|
|
|
|
|
.SS Section remote-output
|
|
|
|
.TP
|
|
|
|
\fBname\fR=\fIname\fR
|
|
|
|
Specify unique name for the output.
|
|
|
|
.TP
|
|
|
|
\fBmode\fR=\fImode\fR
|
|
|
|
Specify the video mode for the output. The argument
|
|
|
|
.I mode
|
|
|
|
is a resolution setting, such as:
|
|
|
|
.TP
|
|
|
|
\fBmode\fR=\fIwidthxheight\fR
|
|
|
|
.TP
|
|
|
|
\fBmode\fR=\fIwidthxheight@refresh_rate
|
|
|
|
If refresh_rate is not specified it will default to a 60Hz.
|
|
|
|
.TP
|
|
|
|
\fBhost\fR=\fIhost\fR
|
|
|
|
Specify the host name or IP Address that the remote output will be
|
|
|
|
transmitted to.
|
|
|
|
.TP
|
|
|
|
\fBport\fR=\fIport\fR
|
|
|
|
Specify the port number to transmit the remote output to. Usable port range
|
|
|
|
is 1-65533.
|
2019-05-22 06:21:32 +03:00
|
|
|
.TP
|
|
|
|
\fBgst-pipeline\fR=\fIpipeline\fR
|
|
|
|
Specify the gstreamer pipeline. It is necessary that source is appsrc,
|
|
|
|
its name is "src", and sink name is "sink" in
|
|
|
|
.I pipeline\fR.
|
|
|
|
Ignore port and host configuration if the gst-pipeline is specified.
|
2018-01-24 11:08:02 +03:00
|
|
|
|
2012-11-27 18:54:08 +04:00
|
|
|
.
|
|
|
|
.\" ***************************************************************
|
|
|
|
.SH OPTIONS
|
|
|
|
.
|
|
|
|
When the DRM backend is loaded,
|
|
|
|
.B weston
|
|
|
|
will understand the following additional command line options.
|
|
|
|
.TP
|
|
|
|
.B \-\-current\-mode
|
|
|
|
By default, use the current video mode of all outputs, instead of
|
|
|
|
switching to the monitor preferred mode.
|
|
|
|
.TP
|
2017-03-28 18:14:37 +03:00
|
|
|
\fB\-\-drm\-device\fR=\fIcardN\fR
|
|
|
|
Use the DRM device
|
|
|
|
.I cardN
|
|
|
|
instead of the default heuristics based on seat assignments and boot VGA
|
|
|
|
status. For example, use
|
|
|
|
.BR card0 .
|
|
|
|
.TP
|
2012-11-27 18:54:08 +04:00
|
|
|
\fB\-\-seat\fR=\fIseatid\fR
|
|
|
|
Use graphics and input devices designated for seat
|
|
|
|
.I seatid
|
2018-06-29 15:17:46 +03:00
|
|
|
instead of the seat defined in the environment variable
|
2019-02-20 18:33:32 +03:00
|
|
|
.BR XDG_SEAT ". If neither is specified, seat0 will be assumed."
|
2012-11-27 18:54:08 +04:00
|
|
|
.TP
|
2020-05-07 00:10:19 +03:00
|
|
|
.B \-\-continue\-without\-input
|
|
|
|
Allow Weston to start without input devices. Used for testing purposes.
|
2012-11-27 18:54:08 +04:00
|
|
|
.
|
|
|
|
.\" ***************************************************************
|
|
|
|
.SH ENVIRONMENT
|
|
|
|
.
|
|
|
|
.TP
|
2018-02-05 17:20:51 +03:00
|
|
|
.B WESTON_LIBINPUT_LOG_PRIORITY
|
|
|
|
The minimum libinput verbosity level to be printed to Weston's log.
|
|
|
|
Valid values are
|
|
|
|
.BR debug ", " info ", and " error ". Default is " info .
|
|
|
|
.TP
|
2018-06-29 15:17:46 +03:00
|
|
|
.B XDG_SEAT
|
|
|
|
The seat Weston will start on, unless overridden on the command line.
|
2012-11-27 18:54:08 +04:00
|
|
|
.
|
|
|
|
.\" ***************************************************************
|
|
|
|
.SH "SEE ALSO"
|
|
|
|
.BR weston (1)
|
|
|
|
.\".BR weston.ini (5)
|