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