xref: /dflybsd-src/share/man/man4/drm.4 (revision cf156276c2b1ae3d75dd93109dedb99baef64eb1)
195f9378dSSascha Wildner.\"	$NetBSD: drm.4,v 1.7 2009/05/12 08:16:46 wiz Exp $
295f9378dSSascha Wildner.\"
395f9378dSSascha Wildner.\" Copyright (c) 2007 Thomas Klausner
495f9378dSSascha Wildner.\" All rights reserved.
595f9378dSSascha Wildner.\"
695f9378dSSascha Wildner.\" Redistribution and use in source and binary forms, with or without
795f9378dSSascha Wildner.\" modification, are permitted provided that the following conditions
895f9378dSSascha Wildner.\" are met:
995f9378dSSascha Wildner.\" 1. Redistributions of source code must retain the above copyright
1095f9378dSSascha Wildner.\"    notice, this list of conditions and the following disclaimer.
1195f9378dSSascha Wildner.\" 2. Redistributions in binary form must reproduce the above copyright
1295f9378dSSascha Wildner.\"    notice, this list of conditions and the following disclaimer in the
1395f9378dSSascha Wildner.\"    documentation and/or other materials provided with the distribution.
1495f9378dSSascha Wildner.\"
1595f9378dSSascha Wildner.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
1695f9378dSSascha Wildner.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
1795f9378dSSascha Wildner.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
1895f9378dSSascha Wildner.\" IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
1995f9378dSSascha Wildner.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
2095f9378dSSascha Wildner.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
2195f9378dSSascha Wildner.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
2295f9378dSSascha Wildner.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
2395f9378dSSascha Wildner.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
2495f9378dSSascha Wildner.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
2595f9378dSSascha Wildner.\"
26*cf156276SSascha Wildner.Dd June 18, 2022
2795f9378dSSascha Wildner.Dt DRM 4
2895f9378dSSascha Wildner.Os
2995f9378dSSascha Wildner.Sh NAME
3095f9378dSSascha Wildner.Nm drm
3195f9378dSSascha Wildner.Nd Direct Rendering Manager (DRI kernel support)
3295f9378dSSascha Wildner.Sh DESCRIPTION
3395f9378dSSascha WildnerThe
3495f9378dSSascha Wildner.Tn Direct Rendering Manager
3595f9378dSSascha Wildneris part of the
3695f9378dSSascha Wildner.Tn Direct Rendering Infrastructure
3795f9378dSSascha Wildner(see
3895f9378dSSascha Wildner.Pa http://dri.freedesktop.org/ )
3995f9378dSSascha Wildnerfor supporting video acceleration.
4095f9378dSSascha Wildner.Pp
4195f9378dSSascha WildnerThe
4295f9378dSSascha Wildner.Nm
4395f9378dSSascha Wildnerdrivers provide support for the following chipsets:
4402ac8a8fSSascha Wildner.Bl -column -offset indent ".Pa radeon.ko" ".Sy Kernel Option" ".Sy Chipset"
458eea1c89SSascha Wildner.It Sy Module Ta Sy "Kernel option" Ta Sy Chipset
469fbad1e9SSascha Wildner.It Pa i915.ko Ta i915 Ta Intel i915, i945, i965, G3x, G4x
4702ac8a8fSSascha Wildner.It Pa radeon.ko Ta radeon Ta AMD/ATI Radeon
48*cf156276SSascha Wildner.It Pa amdgpu.ko Ta n/a Ta newer AMD chipsets
4995f9378dSSascha Wildner.El
5095f9378dSSascha Wildner.Pp
51e68f16c9SSascha WildnerIn most cases
52e68f16c9SSascha Wildner.Xr Xorg 1
53e68f16c9SSascha Wildnerwill take care of loading the appropriate modules and it is not necessary to
54e68f16c9SSascha Wildnermodify
55e68f16c9SSascha Wildner.Xr loader.conf 5
56e68f16c9SSascha Wildneror the kernel configuration to enable
57e68f16c9SSascha Wildner.Nm
58e68f16c9SSascha Wildnersupport.
5995f9378dSSascha Wildner.Pp
60e68f16c9SSascha WildnerNewer versions of
6195f9378dSSascha Wildner.Xr Xorg 1 ,
62e68f16c9SSascha Wildnerlike the one from
63e68f16c9SSascha Wildner.Xr dports 7 ,
64e68f16c9SSascha Wildnerdo a pretty good job of figuring out the right configuration on their own,
65e68f16c9SSascha Wildnerso having no
6695f9378dSSascha Wildner.Xr xorg.conf 5
67e68f16c9SSascha Wildnerfile at all is usually the best advice.
68e68f16c9SSascha WildnerIf for some reason an
69e68f16c9SSascha Wildner.Xr xorg.conf 5
70e68f16c9SSascha Wildneris preferred, DRI must be enabled:
7195f9378dSSascha Wildner.Bd -literal
7295f9378dSSascha WildnerSection "DRI"
73ad9250e9Szrj        Group "video"
7495f9378dSSascha Wildner        Mode 0660
7595f9378dSSascha WildnerEndSection
7695f9378dSSascha Wildner.Ed
7795f9378dSSascha Wildner.Pp
78e68f16c9SSascha WildnerWith KMS, DRI is always enabled since the
79e68f16c9SSascha Wildner.Nm
80e68f16c9SSascha Wildneris always required.
81ad9250e9Szrj.Pp
82ad9250e9SzrjTo access
83ad9250e9Szrj.Pa /dev/dri/cardN
84ad9250e9Szrjdevices user must be a member of the
85ad9250e9Szrj.Li video
86ad9250e9Szrjgroup.
87ad9250e9SzrjUsers can be added to the
88ad9250e9Szrj.Li video
89ad9250e9Szrjgroup with
90ad9250e9Szrj.Xr pw 8
91ad9250e9Szrjgroupmod option.
92e68f16c9SSascha Wildner.\".Pp
93e68f16c9SSascha Wildner.\"In order to use two graphics cards (an on-board and another
94e68f16c9SSascha Wildner.\"AGP/PCI/PCIe card) with DRI, a
95e68f16c9SSascha Wildner.\".Pa /dev/dri/card1
96e68f16c9SSascha Wildner.\"link to
97e68f16c9SSascha Wildner.\".Pa /dev/dri/card0
98e68f16c9SSascha Wildner.\"has to be created using
99e68f16c9SSascha Wildner.\".Xr devfsctl 8 .
10030632a10SSascha Wildner.Pp
101cea09556SSascha WildnerIf
102cea09556SSascha Wildner.Xr Xorg 1
103cea09556SSascha Wildneracceleration fails to initialize with a
104cea09556SSascha Wildner.Dq contigmalloc_map: failed size...
105cea09556SSascha Wildnererror in dmesg, the reserve of memory for DMA ran out early and should
106cea09556SSascha Wildnerbe increased to a sufficiently high value by setting the
107cea09556SSascha Wildner.Va vm.dma_reserved
108cea09556SSascha Wildnerloader tunable.
109cea09556SSascha WildnerA read only
110cea09556SSascha Wildner.Xr sysctl 8
111cea09556SSascha Wildnervariable of the same name is provided for obtaining its current value.
112819060d5Szrj.Sh LOADER TUNABLES
113819060d5SzrjTunables can be set at the
114819060d5Szrj.Xr loader 8
115819060d5Szrjprompt before booting the kernel or stored in
116819060d5Szrj.Xr loader.conf 5 .
117819060d5Szrj.Bl -tag -width "xxxxxx"
118ad9250e9Szrj.It Va drm.debug
119ad9250e9SzrjEnable internal verbose debug messages, might slow down the machine.
120ad9250e9SzrjDebug categories are enabled by setting their bits:
121ad9250e9Szrj.Bl -tag -width "xxxxx"
122ad9250e9Szrj.It 0x001
123ad9250e9SzrjCORE - generic drm code
124ad9250e9Szrj.It 0x002
125ad9250e9SzrjDRIVER - vendor specific parts of the driver
126ad9250e9Szrj.It 0x004
127ad9250e9SzrjKMS - modesetting troubleshoot
128ad9250e9Szrj.It 0x008
129ad9250e9SzrjPRIME (no prime support)
130ad9250e9Szrj.It 0x010
131ad9250e9SzrjATOMIC - atomic code used by i915
132ad9250e9Szrj.It 0x100
133ad9250e9SzrjPID - include pid number (useful in certain scenarios)
134ad9250e9Szrj.It 0x200
135ad9250e9SzrjFIOCTL - failed ioctls
136ad9250e9Szrj.It 0x400
137ad9250e9SzrjIOCTL - very spammy ioctl prints
138ad9250e9Szrj.It 0x800
139ad9250e9SzrjVBLANK - very spammy vblank prints
140ad9250e9Szrj.El
141819060d5Szrj.It Va drm.edid_firmware
142f12e2116SSascha WildnerLoad external EDID binary monitor data from a firmware module.
143f12e2116SSascha WildnerUseful if the monitor is not sending an appropriate EDID block, if there
144f12e2116SSascha Wildneris no video on the connected monitor or if there is a need to enforce
145f12e2116SSascha Wildnercustom video modes.
146f12e2116SSascha WildnerOptionally, the connector name can be specified before the firmware name
147f12e2116SSascha Wildnerfollowed by a colon.
148f12e2116SSascha WildnerFor example:
149819060d5Szrj.Pp
150819060d5Szrj.Dl drm.edid_firmware="DVI-D-1:edidfw_repaired"
151819060d5Szrj.Pp
152819060d5SzrjNotes:
153186f57a1SSascha Wildner.Nm
154819060d5Szrjand
155186f57a1SSascha Wildner.Xr Xorg 1
156819060d5Szrjuse different naming conventions for connector names.
157819060d5SzrjThis tunable only applies for KMS drivers.
158819060d5Szrj.It Va drm.video.<connector>
15917707afbSImre VadaszCan be used to set framebuffer parameters for drm(4) connector.
160819060d5SzrjMode specifier format:
161819060d5Szrj.Pp
162819060d5Szrj.Dl <xres>x<yres>[M][R][-<bpp>][@<refresh>][i][m][eDd]
163819060d5Szrj.Bl -tag -width "<refresh>"
164819060d5Szrj.It <xres>
165819060d5SzrjX resolution, e.g. 1920
166819060d5Szrj.It <yres>
167819060d5SzrjY resolution, e.g. 1080
168819060d5Szrj.It M
169819060d5Szrjcalculate timings using VESA CVT instead of table lookups
170819060d5Szrj.It R
171819060d5Szrjreduced blanking on digital monitors
172819060d5Szrj.It <bpp>
173819060d5Szrjcolor depth
174819060d5Szrj.It <refresh>
175819060d5Szrjrefresh rate
176819060d5Szrj.It i
177819060d5Szrjcalculate timings for interlaced mode
178819060d5Szrj.It m
179819060d5Szrjmargins used in calculations
180819060d5Szrj.It e
181819060d5Szrjforce enable output
182819060d5Szrj.It D
183819060d5Szrjsame as e option, but force digital output on HDMI/DVI
184819060d5Szrj.It d
185819060d5Szrjforce disable output
186819060d5Szrj.El
187819060d5Szrj.El
1882e422cf1SImre Vadász.Sh SYSCTL VARIABLES
189253b4984SSascha WildnerA number of
19095f9378dSSascha Wildner.Xr sysctl 8
191253b4984SSascha Wildnervariables are available:
192253b4984SSascha Wildner.Bl -tag -width ".Va hw.dri.vblank_offdelay"
193253b4984SSascha Wildner.It Va hw.dri.debug
194253b4984SSascha WildnerIf set, enables debugging output.
195253b4984SSascha Wildner.It Va hw.dri.vblank_offdelay
196253b4984SSascha WildnerSpecifies the delay (in milliseconds) until the vblank
1972e422cf1SImre Vadászinterrupt is disabled again when it's no longer needed.
1982e422cf1SImre Vadász(0 = never disable, negative value = disable immediately)
199d38cc35cSSascha Wildner.It Va hw.dri.%d.busid
200d38cc35cSSascha WildnerIndicates the location of the device on the PCI bus.
201d38cc35cSSascha WildnerThe format is:
202d38cc35cSSascha Wildner.Pp
203d38cc35cSSascha Wildner.Dl [0000-ffff]:[00-ff]:[00-1f].[0-7]
204d38cc35cSSascha Wildner.It Va hw.dri.%d.modesetting
205d38cc35cSSascha WildnerIndicates if kernel mode setting
206d38cc35cSSascha Wildner.Dv ( DRIVER_MODESET
207d38cc35cSSascha Wildnerfeature) is set in the device driver.
208253b4984SSascha Wildner.El
20995f9378dSSascha Wildner.Sh SEE ALSO
21095f9378dSSascha Wildner.Xr Xorg 1 ,
211*cf156276SSascha Wildner.Xr amdgpu 4 ,
212a3b3b2ebSFrançois Tigeot.Xr i915 4 ,
213a3b3b2ebSFrançois Tigeot.Xr radeon 4 ,
21495f9378dSSascha Wildner.Xr xorg.conf 5
21595f9378dSSascha Wildner.Sh HISTORY
21695f9378dSSascha WildnerDRM was first available for Linux.
21795f9378dSSascha WildnerSubsequently Eric Anholt ported the DRM kernel modules to
21895f9378dSSascha Wildner.Fx .
21995f9378dSSascha Wildner.Sh CAVEATS
22095f9378dSSascha WildnerDisable AIGLX if necessary
22195f9378dSSascha Wildner.Pq Pa xorg.conf :
22295f9378dSSascha Wildner.Bd -literal -offset indent
22395f9378dSSascha WildnerSection "ServerFlags"
22495f9378dSSascha Wildner        Option  "AIGLX" "off"
22595f9378dSSascha WildnerEndSection
226e68f16c9SSascha Wildner.\"
227e68f16c9SSascha Wildner.\"Section "Extensions"
228e68f16c9SSascha Wildner.\"        Option "Composite" "Disable"
229e68f16c9SSascha Wildner.\"EndSection
23095f9378dSSascha Wildner.Ed
23195f9378dSSascha Wildner.Pp
23295f9378dSSascha Wildner.Cd options DRM_DEBUG
23395f9378dSSascha Wildnercan slow DRI down a lot, disable it once
23495f9378dSSascha Wildner.Nm
23595f9378dSSascha Wildnerworks.
236