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:name
match all devices that use a driver
name
.devnode:path
match 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:nvidia
skip:driver:ast
skip:driver:simple-framebuffer
disable-kms-probe:driver:virtio_gpu
disable-kms-probe:driver:vc4-drm
disable-kms-probe:driver:v3d
gbm-surface-has-free-buffers:driver:nvidia:skip