1WESTON-DRM(7) Miscellaneous Information Manual WESTON-DRM(7)
2
3
4
6 weston-drm - the DRM backend for Weston
7
9 weston --backend=drm
10
12 The DRM backend is the native Weston backend for systems that support
13 the Linux kernel DRM, kernel mode setting (KMS), and evdev input de‐
14 vices. It is the recommended backend for desktop PCs, and aims to pro‐
15 vide the full Wayland experience with the "every frame is perfect" con‐
16 cept. It also relies on the Mesa GBM interface.
17
18 With the DRM backend, weston runs without any underlying windowing sys‐
19 tem. The backend uses the Linux KMS API to detect connected monitors.
20 Monitor hot-plugging is supported. Input devices are found automati‐
21 cally by udev(7). Compositing happens mainly in GL ES 2, initialized
22 through EGL. It is also possible to take advantage of hardware cursors
23 and overlays, when they exist and are functional. Full-screen surfaces
24 will be scanned out directly without compositing, when possible. Hard‐
25 ware accelerated clients are supported via EGL.
26
27 The backend chooses the DRM graphics device first based on seat id. If
28 seat identifiers are not set, it looks for the graphics device that was
29 used in boot. If that is not found, it finally chooses the first DRM
30 device returned by udev(7). Combining multiple graphics devices is not
31 supported yet.
32
33 The DRM backend also supports virtual outputs that are transmitted over
34 an RTP session as a series of JPEG images (RTP payload type 26) to a
35 remote client. Virtual outputs are configured in the remote-output sec‐
36 tion of weston.ini.
37
39 The DRM backend uses the following entries from weston.ini.
40
41 Section core
42 gbm-format=format
43 Sets the default pixel format for DRM KMS framebuffers. Format
44 can be xrgb8888, xrgb2101010, rgb565 or others. Weston recog‐
45 nizes the names of most pixel formats defined by the kernel DRM
46 subsystem in drm_fourcc.h header without the DRM_FORMAT_ prefix.
47 The actually supported pixel formats depend on the DRM driver
48 and hardware, and the renderer used. Using Pixman-renderer, DRM-
49 backend supports xrgb8888, xrgb2101010, rgb565 and some of their
50 permutations. The formats supported with GL-renderer depend on
51 the EGL and OpenGL ES 2 or 3 implementations. The names are
52 case-insensitive. This setting applies only to outputs in SDR
53 mode, see eotf-mode in weston.ini(5).
54
55 If not specified, xrgb8888 is used. See also gbm-format in out‐
56 put section.
57
58 pageflip-timeout=milliseconds
59 sets Weston's pageflip timeout in milliseconds. This sets a
60 timer to exit gracefully with a log message and an exit code of
61 1 in case the DRM driver is non-responsive. Setting it to 0
62 disables this feature.
63
64
65 Section output
66 name=connector
67 The KMS connector name identifying the output, for instance
68 LVDS1.
69
70 mode=mode
71 Specify the video mode for the output. The argument mode can be
72 one of the words off to turn the output off, preferred to use
73 the monitor's preferred video mode, or current to use the cur‐
74 rent video mode and avoid a mode switch. It can also be a reso‐
75 lution as:
76
77 mode=widthxheight
78
79 mode=widthxheight@refresh_rate
80 Specify a mode with a given refresh-rate measured in Hz.
81
82 mode=widthxheight@refresh_rate ratio
83 Here ratio is Picture Aspect-Ratio which can have values as 4:3,
84 16:9, 64:27, and 256:135. This resolution-format helps to select
85 a CEA mode, if such a video mode is present in the mode-list of
86 the output.
87
88 CEA defines the timing of a video mode, which is considered as a
89 standard for HDMI spcification and compliance testing. It de‐
90 fines each and every parameter of a video mode, like hactive,
91 vactive, vfront, vback etc., including aspect-ratio information.
92 For CEA modes, the drm layer, stores this aspect-ratio informa‐
93 tion in user-mode (drmModeModeInfo) flag bits 19-22. For the
94 non-CEA modes a value of 0 is stored in the aspect-ratio flag
95 bits.
96
97 Each CEA-mode is identified by a unique, Video Identification
98 Code (VIC). For example, VIC=4 is 1280x720@60 aspect-ratio
99 16:9. This mode will be different than a non-CEA mode
100 1280x720@60 0:0. When the video mode 1280x720@60 0:0 is applied,
101 since its timing doesn't exactly match with the CEA information
102 for VIC=4, it would be treated as a non-CEA mode. Also, while
103 setting the HDMI-AVI-Inforframe, VIC parameter will be given as
104 '0'. If video mode 1280x720@60 16:9 is applied, its CEA timimgs
105 matches with that of video mode with VIC=4, so the VIC parameter
106 in HDMI-AVI-Infoframe will be set to 4.
107
108 Many a times, an output may have both CEA and non-CEA modes,
109 which are similar in all resepct, differing only in the aspect-
110 ratio. A user can select a CEA mode by giving the aspect-ratio,
111 along with the other arguments for the mode. By omitting the
112 aspect-ratio, user can specify the non-CEA modes. This helps
113 when certification testing is done, in tests like 7-27, the
114 HDMI-analyzer applies a particular CEA mode, and expects the ap‐
115 plied mode to be with exactly same timings, including the as‐
116 pect-ratio and VIC field.
117
118 The resolution can also be a detailed mode line as below.
119
120 mode=dotclock hdisp hsyncstart hsyncend htotal vdisp vsyncstart vsyn‐
121 cend vtotal hflag vflag
122 Use the given detailed mode line as the video mode for this out‐
123 put. The definition is the same as in xorg.conf(5), and cvt(1)
124 can generate detailed mode lines.
125
126 transform=transform
127 Transform for the output, which can be rotated in 90-degree
128 steps and possibly flipped. Possible values are normal, ro‐
129 tate-90, rotate-180, rotate-270, flipped, flipped-rotate-90,
130 flipped-rotate-180, and flipped-rotate-270.
131
132 gbm-format=format
133 Set the DRM KMS framebuffer format for this specific output. If
134 not set, the value from gbm-format option in core section is
135 used for SDR mode outputs and xrgb2101010 for other modes. For
136 the possible values for format see gbm-format option in core
137 section. For SDR mode, see eotf-mode in weston.ini(7).
138
139 pixman-shadow=boolean
140 If using the Pixman-renderer, use shadow framebuffers. Defaults
141 to true.
142
143 same-as=name
144 Make this output (connector) a clone of another. The argument
145 name is the name value of another output section. The referred
146 to output section must exist. When this key is present in an
147 output section, all other keys have no effect on the configura‐
148 tion.
149
150 NOTE: cms-colord plugin does not work correctly with this op‐
151 tion. The plugin chooses an arbitrary monitor to load the color
152 profile for, but the profile is applied equally to all cloned
153 monitors regardless of their properties.
154
155 force-on=true
156 Force the output to be enabled even if the connector is discon‐
157 nected. Defaults to false. Note that mode=off will override
158 force-on=true. When a connector is disconnected, there is no
159 EDID information to provide a list of video modes. Therefore a
160 forced output should also have a detailed mode line specified.
161
162 max-bpc=N
163 Set "max bpc" KMS property to value N, silenty clamped to the
164 hardware driver supported range. This artificially limits the
165 driver chosen link bits-per-channel which may be useful for
166 working around sink hardware (e.g. monitor) limitations. The de‐
167 fault is 16 which is practically unlimited. If you need to work
168 around hardware issues, try a lower value like 8. A value of 0
169 means that the current max bpc will be reprogrammed.
170
171
172 Section remote-output
173 name=name
174 Specify unique name for the output.
175
176 mode=mode
177 Specify the video mode for the output. The argument mode is a
178 resolution setting, such as:
179
180 mode=widthxheight
181
182 mode=widthxheight@refresh_rate
183 If refresh_rate is not specified it will default to a 60Hz.
184
185 host=host
186 Specify the host name or IP Address that the remote output will
187 be transmitted to.
188
189 port=port
190 Specify the port number to transmit the remote output to. Usable
191 port range is 1-65533.
192
193 gst-pipeline=pipeline
194 Specify the gstreamer pipeline. It is necessary that source is
195 appsrc, its name is "src", and sink name is "sink" in pipeline.
196 Ignore port and host configuration if the gst-pipeline is speci‐
197 fied.
198
199
201 When the DRM backend is loaded, weston will understand the following
202 additional command line options.
203
204 --current-mode
205 By default, use the current video mode of all outputs, instead
206 of switching to the monitor preferred mode.
207
208 --drm-device=cardN
209 Use the DRM device cardN instead of the default heuristics based
210 on seat assignments and boot VGA status. For example, use card0.
211
212 --seat=seatid
213 Use graphics and input devices designated for seat seatid in‐
214 stead of the seat defined in the environment variable XDG_SEAT.
215 If neither is specified, seat0 will be assumed.
216
217 --continue-without-input
218 Allow Weston to start without input devices. Used for testing
219 purposes.
220
222 WESTON_LIBINPUT_LOG_PRIORITY
223 The minimum libinput verbosity level to be printed to Weston's
224 log. Valid values are debug, info, and error. Default is info.
225
226 XDG_SEAT
227 The seat Weston will start on, unless overridden on the command
228 line.
229
231 weston(1)
232
233
234
235Weston 12.0.2 2012-11-27 WESTON-DRM(7)