Graphics Driver Quriks¶
The gbm-kms and atomic-kms graphics platform modules provide a
--driver-quirks option that can control how the module behaves.
The --driver-quirks option can be passed multiple times. The value
is a colon separated string of the form option:specifier:value. The
option part identifies the type of quirk, while the
specifier:value identifies what device the quirk applies to.
Device block list¶
The skip and allow quirks can be used to update the block list
used to ignore devices during enumeration and hotplug. This is mainly
useful for ignoring DRM devices exposed by the kernel that do not have
a working DRI driver.
The remainder of the option can take two forms
driver:namematch all devices that use a driver
name.devnode:pathmatch devices based on path.
The skip quirk will add an entry to the driver or device node block
lists, and the allow quirk will remove an entry from those lists. A
device will be skipped if it’s driver or device node appear on the
ignore lists.
Note that matching of the allow quirk is only useful for removing
items from the default block list. You can’t use it to allow a
specific device if its driver is blocked.
Examples:
--driver-quirks=skip:driver:nvidia--driver-quirks=allow:device:/dev/dri/card0
Disable probing for modesetting support¶
The disable-kms-probe quirk can be used to allow use of a device
even if it looks like a modesetting capable driver has not been
attached.
Devices can be specified using the same driver:name or
devnode:path style specifiers as allow or skip.
GBM free buffer support¶
The gbm-surface-has-free-buffers quirk is used to handle devices
where gbm_surface_has_free_buffers sometimes incorrectly indicates
that a surface has no free buffers.
The quirk takes a standard driver:name or devnode:path specifier,
but adds a final default or skip token.
If the quirk is set to default, gbm_surface_has_free_buffers will
be called as normal. If the quirk is set to skip, Mir will assume
the result is true.
At the moment, the main use of this quirk is to work around Nvidia
drivers spuriously returning false. For more information, please see
#3296.
Default quirks¶
A default set of quirks is configured by the driver that corresponds to:
skip:driver:nvidiaskip:driver:astskip:driver:simple-framebufferdisable-kms-probe:driver:virtio_gpudisable-kms-probe:driver:vc4-drmdisable-kms-probe:driver:v3dgbm-surface-has-free-buffers:driver:nvidia:skip