KMS Tests

KMS Tests — Tests for kernel mode setting

Programs

Description

kms_3d

Tests 3D mode setting.


kms_addfb_basic

Subtests

unused-handle
unused-pitches
unused-offsets
unused-modifier
clobberred-modifier
legacy-format
no-handle
basic
bad-pitch-0
bad-pitch-32
bad-pitch-63
bad-pitch-128
bad-pitch-256
bad-pitch-1024
bad-pitch-999
bad-pitch-65536
size-max
too-wide
too-high
bo-too-small
small-bo
bo-too-small-due-to-tiling
addfb25-modifier-no-flag
addfb25-bad-modifier
addfb25-X-tiled-mismatch
addfb25-X-tiled
addfb25-framebuffer-vs-set-tiling
addfb25-Y-tiled
addfb25-Yf-tiled
addfb25-Y-tiled-small
basic-X-tiled
framebuffer-vs-set-tiling
tile-pitch-mismatch
basic-Y-tiled
invalid-get-prop-any
invalid-get-prop
invalid-set-prop-any
invalid-set-prop
master-rmfb

kms_atomic

Test atomic modesetting API

Subtests

plane_overlay_legacy
plane_primary_legacy
plane_primary_overlay_zpos
test_only
plane_cursor_legacy
plane_invalid_params
plane_invalid_params_fence
crtc_invalid_params
crtc_invalid_params_fence
atomic_invalid_params

kms_atomic_interruptible

Tests that interrupt various atomic ioctls.

Subtests

legacy-setmode
atomic-setmode
legacy-dpms
legacy-pageflip
legacy-cursor
universal-setplane-primary
universal-setplane-cursor

kms_atomic_transition

Subtests

plane-primary-toggle-with-vblank-wait
plane-all-transition
plane-all-transition-fencing
plane-all-transition-nonblocking
plane-all-transition-nonblocking-fencing
plane-use-after-nonblocking-unbind
plane-use-after-nonblocking-unbind-fencing
plane-all-modeset-transition
plane-all-modeset-transition-fencing
plane-all-modeset-transition-internal-panels
plane-all-modeset-transition-fencing-internal-panels
plane-toggle-modeset-transition
1x-modeset-transitions
1x-modeset-transitions-nonblocking
1x-modeset-transitions-fencing
1x-modeset-transitions-nonblocking-fencing
2x-modeset-transitions
2x-modeset-transitions-nonblocking
2x-modeset-transitions-fencing
2x-modeset-transitions-nonblocking-fencing
3x-modeset-transitions
3x-modeset-transitions-nonblocking
3x-modeset-transitions-fencing
3x-modeset-transitions-nonblocking-fencing
4x-modeset-transitions
4x-modeset-transitions-nonblocking
4x-modeset-transitions-fencing
4x-modeset-transitions-nonblocking-fencing
5x-modeset-transitions
5x-modeset-transitions-nonblocking
5x-modeset-transitions-fencing
5x-modeset-transitions-nonblocking-fencing
6x-modeset-transitions
6x-modeset-transitions-nonblocking
6x-modeset-transitions-fencing
6x-modeset-transitions-nonblocking-fencing

kms_available_modes_crc

CRC test all different plane modes which kernel advertises.

Subtests

available_mode_test_crc

kms_busy

Basic check of KMS ABI with busy framebuffers.

Subtests

basic-flip-A
basic-modeset-A
extended-pageflip-modeset-hang-oldfb-render-A
extended-pageflip-hang-oldfb-render-A
extended-pageflip-hang-newfb-render-A
extended-modeset-hang-oldfb-render-A
extended-modeset-hang-newfb-render-A
extended-modeset-hang-oldfb-with-reset-render-A
extended-modeset-hang-newfb-with-reset-render-A
basic-flip-B
basic-modeset-B
extended-pageflip-modeset-hang-oldfb-render-B
extended-pageflip-hang-oldfb-render-B
extended-pageflip-hang-newfb-render-B
extended-modeset-hang-oldfb-render-B
extended-modeset-hang-newfb-render-B
extended-modeset-hang-oldfb-with-reset-render-B
extended-modeset-hang-newfb-with-reset-render-B
basic-flip-C
basic-modeset-C
extended-pageflip-modeset-hang-oldfb-render-C
extended-pageflip-hang-oldfb-render-C
extended-pageflip-hang-newfb-render-C
extended-modeset-hang-oldfb-render-C
extended-modeset-hang-newfb-render-C
extended-modeset-hang-oldfb-with-reset-render-C
extended-modeset-hang-newfb-with-reset-render-C
basic-flip-D
basic-modeset-D
extended-pageflip-modeset-hang-oldfb-render-D
extended-pageflip-hang-oldfb-render-D
extended-pageflip-hang-newfb-render-D
extended-modeset-hang-oldfb-render-D
extended-modeset-hang-newfb-render-D
extended-modeset-hang-oldfb-with-reset-render-D
extended-modeset-hang-newfb-with-reset-render-D
basic-flip-E
basic-modeset-E
extended-pageflip-modeset-hang-oldfb-render-E
extended-pageflip-hang-oldfb-render-E
extended-pageflip-hang-newfb-render-E
extended-modeset-hang-oldfb-render-E
extended-modeset-hang-newfb-render-E
extended-modeset-hang-oldfb-with-reset-render-E
extended-modeset-hang-newfb-with-reset-render-E
basic-flip-F
basic-modeset-F
extended-pageflip-modeset-hang-oldfb-render-F
extended-pageflip-hang-oldfb-render-F
extended-pageflip-hang-newfb-render-F
extended-modeset-hang-oldfb-render-F
extended-modeset-hang-newfb-render-F
extended-modeset-hang-oldfb-with-reset-render-F
extended-modeset-hang-newfb-with-reset-render-F

kms_ccs

Test render compression (RC), in which the main surface is complemented by a color control surface (CCS) that the display uses to interpret the compressed data.

Subtests

pipe-A-bad-pixel-format
pipe-A-bad-rotation-90
pipe-A-crc-primary-basic
pipe-A-crc-primary-rotation-180
pipe-A-crc-sprite-planes-basic
pipe-A-missing-ccs-buffer
pipe-A-ccs-on-another-bo
pipe-A-bad-aux-stride
pipe-B-bad-pixel-format
pipe-B-bad-rotation-90
pipe-B-crc-primary-basic
pipe-B-crc-primary-rotation-180
pipe-B-crc-sprite-planes-basic
pipe-B-missing-ccs-buffer
pipe-B-ccs-on-another-bo
pipe-B-bad-aux-stride
pipe-C-bad-pixel-format
pipe-C-bad-rotation-90
pipe-C-crc-primary-basic
pipe-C-crc-primary-rotation-180
pipe-C-crc-sprite-planes-basic
pipe-C-missing-ccs-buffer
pipe-C-ccs-on-another-bo
pipe-C-bad-aux-stride
pipe-D-bad-pixel-format
pipe-D-bad-rotation-90
pipe-D-crc-primary-basic
pipe-D-crc-primary-rotation-180
pipe-D-crc-sprite-planes-basic
pipe-D-missing-ccs-buffer
pipe-D-ccs-on-another-bo
pipe-D-bad-aux-stride
pipe-E-bad-pixel-format
pipe-E-bad-rotation-90
pipe-E-crc-primary-basic
pipe-E-crc-primary-rotation-180
pipe-E-crc-sprite-planes-basic
pipe-E-missing-ccs-buffer
pipe-E-ccs-on-another-bo
pipe-E-bad-aux-stride
pipe-F-bad-pixel-format
pipe-F-bad-rotation-90
pipe-F-crc-primary-basic
pipe-F-crc-primary-rotation-180
pipe-F-crc-sprite-planes-basic
pipe-F-missing-ccs-buffer
pipe-F-ccs-on-another-bo
pipe-F-bad-aux-stride

kms_chamelium

Subtests

dp-hpd
dp-hpd-fast
dp-edid-read
dp-hpd-after-suspend
dp-hpd-after-hibernate
dp-hpd-storm
dp-hpd-storm-disable
dp-edid-change-during-suspend
dp-edid-change-during-hibernate
dp-crc-single
dp-crc-fast
dp-crc-multiple
dp-frame-dump
hdmi-hpd
hdmi-hpd-fast
hdmi-edid-read
hdmi-hpd-after-suspend
hdmi-hpd-after-hibernate
hdmi-hpd-storm
hdmi-hpd-storm-disable
hdmi-edid-change-during-suspend
hdmi-edid-change-during-hibernate
hdmi-crc-single
hdmi-crc-fast
hdmi-crc-multiple
hdmi-crc-argb8888
hdmi-crc-abgr8888
hdmi-crc-xrgb8888
hdmi-crc-xbgr8888
hdmi-crc-rgb888
hdmi-crc-bgr888
hdmi-crc-rgb565
hdmi-crc-bgr565
hdmi-crc-argb1555
hdmi-crc-xrgb1555
hdmi-crc-planes-random
hdmi-cmp-nv12
hdmi-cmp-nv16
hdmi-cmp-nv21
hdmi-cmp-nv61
hdmi-cmp-yu12
hdmi-cmp-yu16
hdmi-cmp-yv12
hdmi-cmp-yv16
hdmi-cmp-planes-random
hdmi-frame-dump
vga-hpd
vga-hpd-fast
vga-edid-read
vga-hpd-after-suspend
vga-hpd-after-hibernate
vga-hpd-without-ddc
vga-frame-dump
common-hpd-after-suspend
common-hpd-after-hibernate

kms_color

Test Color Features at Pipe level

Subtests

pipe-A-ctm-red-to-blue
pipe-A-ctm-green-to-red
pipe-A-ctm-blue-to-red
pipe-A-ctm-0-25
pipe-A-ctm-0-5
pipe-A-ctm-0-75
pipe-A-ctm-max
pipe-A-ctm-negative
pipe-A-degamma
pipe-A-gamma
pipe-A-legacy-gamma
pipe-A-legacy-gamma-reset
pipe-B-ctm-red-to-blue
pipe-B-ctm-green-to-red
pipe-B-ctm-blue-to-red
pipe-B-ctm-0-25
pipe-B-ctm-0-5
pipe-B-ctm-0-75
pipe-B-ctm-max
pipe-B-ctm-negative
pipe-B-degamma
pipe-B-gamma
pipe-B-legacy-gamma
pipe-B-legacy-gamma-reset
pipe-C-ctm-red-to-blue
pipe-C-ctm-green-to-red
pipe-C-ctm-blue-to-red
pipe-C-ctm-0-25
pipe-C-ctm-0-5
pipe-C-ctm-0-75
pipe-C-ctm-max
pipe-C-ctm-negative
pipe-C-degamma
pipe-C-gamma
pipe-C-legacy-gamma
pipe-C-legacy-gamma-reset
pipe-D-ctm-red-to-blue
pipe-D-ctm-green-to-red
pipe-D-ctm-blue-to-red
pipe-D-ctm-0-25
pipe-D-ctm-0-5
pipe-D-ctm-0-75
pipe-D-ctm-max
pipe-D-ctm-negative
pipe-D-degamma
pipe-D-gamma
pipe-D-legacy-gamma
pipe-D-legacy-gamma-reset
pipe-E-ctm-red-to-blue
pipe-E-ctm-green-to-red
pipe-E-ctm-blue-to-red
pipe-E-ctm-0-25
pipe-E-ctm-0-5
pipe-E-ctm-0-75
pipe-E-ctm-max
pipe-E-ctm-negative
pipe-E-degamma
pipe-E-gamma
pipe-E-legacy-gamma
pipe-E-legacy-gamma-reset
pipe-F-ctm-red-to-blue
pipe-F-ctm-green-to-red
pipe-F-ctm-blue-to-red
pipe-F-ctm-0-25
pipe-F-ctm-0-5
pipe-F-ctm-0-75
pipe-F-ctm-max
pipe-F-ctm-negative
pipe-F-degamma
pipe-F-gamma
pipe-F-legacy-gamma
pipe-F-legacy-gamma-reset
pipe-invalid-gamma-lut-sizes
pipe-invalid-degamma-lut-sizes
pipe-invalid-ctm-matrix-sizes

kms_concurrent

Test atomic mode setting concurrently with multiple planes and screen resolution

Subtests

pipe-A
pipe-B
pipe-C
pipe-D
pipe-E
pipe-F

kms_content_protection

Test content protection (HDCP)

Subtests

legacy
atomic
atomic-dpms

kms_crtc_background_color

Test crtc background color feature


kms_cursor_crc

Use the display CRC support to validate cursor plane functionality. The test will position the cursor plane either fully onscreen, partially onscreen, or fully offscreen, using either a fully opaque or fully transparent surface. In each case it then reads the PF CRC and compares it with the CRC value obtained when the cursor plane was disabled.

Subtests

cursor-size-change
cursor-alpha-opaque
cursor-alpha-transparent
cursor-64x64-onscreen
cursor-64x64-offscreen
cursor-64x64-sliding
cursor-64x64-random
cursor-64x64-dpms
cursor-64x64-suspend
cursor-64x64-rapid-movement
cursor-64x21-onscreen
cursor-64x21-offscreen
cursor-64x21-sliding
cursor-64x21-random
cursor-128x128-onscreen
cursor-128x128-offscreen
cursor-128x128-sliding
cursor-128x128-random
cursor-128x128-dpms
cursor-128x128-suspend
cursor-128x128-rapid-movement
cursor-128x42-onscreen
cursor-128x42-offscreen
cursor-128x42-sliding
cursor-128x42-random
cursor-256x256-onscreen
cursor-256x256-offscreen
cursor-256x256-sliding
cursor-256x256-random
cursor-256x256-dpms
cursor-256x256-suspend
cursor-256x256-rapid-movement
cursor-256x85-onscreen
cursor-256x85-offscreen
cursor-256x85-sliding
cursor-256x85-random
cursor-512x512-onscreen
cursor-512x512-offscreen
cursor-512x512-sliding
cursor-512x512-random
cursor-512x512-dpms
cursor-512x512-suspend
cursor-512x512-rapid-movement
cursor-512x170-onscreen
cursor-512x170-offscreen
cursor-512x170-sliding
cursor-512x170-random

kms_cursor_edge_walk

Exercise CHV pipe C cursor fail

Subtests

pipe-A-64x64-left-edge
pipe-A-64x64-right-edge
pipe-A-64x64-top-edge
pipe-A-64x64-bottom-edge
pipe-A-128x128-left-edge
pipe-A-128x128-right-edge
pipe-A-128x128-top-edge
pipe-A-128x128-bottom-edge
pipe-A-256x256-left-edge
pipe-A-256x256-right-edge
pipe-A-256x256-top-edge
pipe-A-256x256-bottom-edge
pipe-B-64x64-left-edge
pipe-B-64x64-right-edge
pipe-B-64x64-top-edge
pipe-B-64x64-bottom-edge
pipe-B-128x128-left-edge
pipe-B-128x128-right-edge
pipe-B-128x128-top-edge
pipe-B-128x128-bottom-edge
pipe-B-256x256-left-edge
pipe-B-256x256-right-edge
pipe-B-256x256-top-edge
pipe-B-256x256-bottom-edge
pipe-C-64x64-left-edge
pipe-C-64x64-right-edge
pipe-C-64x64-top-edge
pipe-C-64x64-bottom-edge
pipe-C-128x128-left-edge
pipe-C-128x128-right-edge
pipe-C-128x128-top-edge
pipe-C-128x128-bottom-edge
pipe-C-256x256-left-edge
pipe-C-256x256-right-edge
pipe-C-256x256-top-edge
pipe-C-256x256-bottom-edge
pipe-D-64x64-left-edge
pipe-D-64x64-right-edge
pipe-D-64x64-top-edge
pipe-D-64x64-bottom-edge
pipe-D-128x128-left-edge
pipe-D-128x128-right-edge
pipe-D-128x128-top-edge
pipe-D-128x128-bottom-edge
pipe-D-256x256-left-edge
pipe-D-256x256-right-edge
pipe-D-256x256-top-edge
pipe-D-256x256-bottom-edge
pipe-E-64x64-left-edge
pipe-E-64x64-right-edge
pipe-E-64x64-top-edge
pipe-E-64x64-bottom-edge
pipe-E-128x128-left-edge
pipe-E-128x128-right-edge
pipe-E-128x128-top-edge
pipe-E-128x128-bottom-edge
pipe-E-256x256-left-edge
pipe-E-256x256-right-edge
pipe-E-256x256-top-edge
pipe-E-256x256-bottom-edge
pipe-F-64x64-left-edge
pipe-F-64x64-right-edge
pipe-F-64x64-top-edge
pipe-F-64x64-bottom-edge
pipe-F-128x128-left-edge
pipe-F-128x128-right-edge
pipe-F-128x128-top-edge
pipe-F-128x128-bottom-edge
pipe-F-256x256-left-edge
pipe-F-256x256-right-edge
pipe-F-256x256-top-edge
pipe-F-256x256-bottom-edge

kms_cursor_legacy

Stress legacy cursor ioctl

Subtests

This test has over 100 subtests. Run kms_cursor_legacy --list-subtests to list them.


kms_dp_dsc

Subtests

basic-dsc-enable-eDP
basic-dsc-enable-DP

kms_draw_crc

Subtests

draw-method-xrgb8888-mmap-cpu-untiled
draw-method-xrgb8888-mmap-cpu-xtiled
draw-method-xrgb8888-mmap-cpu-ytiled
draw-method-xrgb8888-mmap-gtt-untiled
draw-method-xrgb8888-mmap-gtt-xtiled
draw-method-xrgb8888-mmap-gtt-ytiled
draw-method-xrgb8888-mmap-wc-untiled
draw-method-xrgb8888-mmap-wc-xtiled
draw-method-xrgb8888-mmap-wc-ytiled
draw-method-xrgb8888-pwrite-untiled
draw-method-xrgb8888-pwrite-xtiled
draw-method-xrgb8888-pwrite-ytiled
draw-method-xrgb8888-blt-untiled
draw-method-xrgb8888-blt-xtiled
draw-method-xrgb8888-blt-ytiled
draw-method-xrgb8888-render-untiled
draw-method-xrgb8888-render-xtiled
draw-method-xrgb8888-render-ytiled
draw-method-rgb565-mmap-cpu-untiled
draw-method-rgb565-mmap-cpu-xtiled
draw-method-rgb565-mmap-cpu-ytiled
draw-method-rgb565-mmap-gtt-untiled
draw-method-rgb565-mmap-gtt-xtiled
draw-method-rgb565-mmap-gtt-ytiled
draw-method-rgb565-mmap-wc-untiled
draw-method-rgb565-mmap-wc-xtiled
draw-method-rgb565-mmap-wc-ytiled
draw-method-rgb565-pwrite-untiled
draw-method-rgb565-pwrite-xtiled
draw-method-rgb565-pwrite-ytiled
draw-method-rgb565-blt-untiled
draw-method-rgb565-blt-xtiled
draw-method-rgb565-blt-ytiled
draw-method-rgb565-render-untiled
draw-method-rgb565-render-xtiled
draw-method-rgb565-render-ytiled
draw-method-xrgb2101010-mmap-cpu-untiled
draw-method-xrgb2101010-mmap-cpu-xtiled
draw-method-xrgb2101010-mmap-cpu-ytiled
draw-method-xrgb2101010-mmap-gtt-untiled
draw-method-xrgb2101010-mmap-gtt-xtiled
draw-method-xrgb2101010-mmap-gtt-ytiled
draw-method-xrgb2101010-mmap-wc-untiled
draw-method-xrgb2101010-mmap-wc-xtiled
draw-method-xrgb2101010-mmap-wc-ytiled
draw-method-xrgb2101010-pwrite-untiled
draw-method-xrgb2101010-pwrite-xtiled
draw-method-xrgb2101010-pwrite-ytiled
draw-method-xrgb2101010-blt-untiled
draw-method-xrgb2101010-blt-xtiled
draw-method-xrgb2101010-blt-ytiled
draw-method-xrgb2101010-render-untiled
draw-method-xrgb2101010-render-xtiled
draw-method-xrgb2101010-render-ytiled
fill-fb

kms_fbcon_fbt

Test the relationship between fbcon and the frontbuffer tracking infrastructure.

Subtests

fbc
psr
fbc-suspend
psr-suspend

kms_fence_pin_leak

Exercises full ppgtt fence pin_count leak in the kernel.


kms_flip

Subtests

nonblocking-read
wf_vblank-ts-check
2x-wf_vblank-ts-check
blocking-wf_vblank
2x-blocking-wf_vblank
absolute-wf_vblank
2x-absolute-wf_vblank
blocking-absolute-wf_vblank
2x-blocking-absolute-wf_vblank
basic-plain-flip
2x-plain-flip
busy-flip
2x-busy-flip
flip-vs-fences
2x-flip-vs-fences
plain-flip-ts-check
2x-plain-flip-ts-check
plain-flip-fb-recreate
2x-plain-flip-fb-recreate
flip-vs-rmfb
2x-flip-vs-rmfb
basic-flip-vs-dpms
2x-flip-vs-dpms
flip-vs-panning
2x-flip-vs-panning
basic-flip-vs-modeset
2x-flip-vs-modeset
flip-vs-expired-vblank
2x-flip-vs-expired-vblank
flip-vs-absolute-wf_vblank
2x-flip-vs-absolute-wf_vblank
basic-flip-vs-wf_vblank
2x-flip-vs-wf_vblank
flip-vs-blocking-wf-vblank
2x-flip-vs-blocking-wf-vblank
flip-vs-modeset-vs-hang
2x-flip-vs-modeset-vs-hang
flip-vs-panning-vs-hang
2x-flip-vs-panning-vs-hang
flip-vs-dpms-off-vs-modeset
2x-flip-vs-dpms-off-vs-modeset
single-buffer-flip-vs-dpms-off-vs-modeset
2x-single-buffer-flip-vs-dpms-off-vs-modeset
dpms-off-confusion
nonexisting-fb
2x-nonexisting-fb
dpms-vs-vblank-race
2x-dpms-vs-vblank-race
modeset-vs-vblank-race
2x-modeset-vs-vblank-race
bo-too-big
flip-vs-suspend
2x-flip-vs-suspend
wf_vblank-ts-check-interruptible
2x-wf_vblank-ts-check-interruptible
absolute-wf_vblank-interruptible
2x-absolute-wf_vblank-interruptible
blocking-absolute-wf_vblank-interruptible
2x-blocking-absolute-wf_vblank-interruptible
plain-flip-interruptible
2x-plain-flip-interruptible
flip-vs-fences-interruptible
2x-flip-vs-fences-interruptible
plain-flip-ts-check-interruptible
2x-plain-flip-ts-check-interruptible
plain-flip-fb-recreate-interruptible
2x-plain-flip-fb-recreate-interruptible
flip-vs-rmfb-interruptible
2x-flip-vs-rmfb-interruptible
flip-vs-dpms-interruptible
2x-flip-vs-dpms-interruptible
flip-vs-panning-interruptible
2x-flip-vs-panning-interruptible
flip-vs-modeset-interruptible
2x-flip-vs-modeset-interruptible
flip-vs-expired-vblank-interruptible
2x-flip-vs-expired-vblank-interruptible
flip-vs-absolute-wf_vblank-interruptible
2x-flip-vs-absolute-wf_vblank-interruptible
flip-vs-wf_vblank-interruptible
2x-flip-vs-wf_vblank-interruptible
flip-vs-modeset-vs-hang-interruptible
2x-flip-vs-modeset-vs-hang-interruptible
flip-vs-panning-vs-hang-interruptible
2x-flip-vs-panning-vs-hang-interruptible
flip-vs-dpms-off-vs-modeset-interruptible
2x-flip-vs-dpms-off-vs-modeset-interruptible
single-buffer-flip-vs-dpms-off-vs-modeset-interruptible
2x-single-buffer-flip-vs-dpms-off-vs-modeset-interruptible
dpms-off-confusion-interruptible
nonexisting-fb-interruptible
2x-nonexisting-fb-interruptible
dpms-vs-vblank-race-interruptible
2x-dpms-vs-vblank-race-interruptible
modeset-vs-vblank-race-interruptible
2x-modeset-vs-vblank-race-interruptible
bo-too-big-interruptible
flip-vs-suspend-interruptible
2x-flip-vs-suspend-interruptible

kms_flip_event_leak

This test tries to provoke the kernel into leaking a pending page flip event when the fd is closed before the flip has completed. The test itself won't fail even if the kernel leaks the event, but the resulting dmesg WARN will indicate a failure.


kms_flip_tiling

Test page flips and tiling scenarios

Subtests

flip-changes-tiling
flip-changes-tiling-Y
flip-changes-tiling-Yf
flip-X-tiled
flip-Y-tiled
flip-Yf-tiled
flip-to-X-tiled
flip-to-Y-tiled
flip-to-Yf-tiled

kms_force_connector_basic

Check the debugfs force connector/edid features work correctly.

Subtests

force-load-detect
force-connector-state
force-edid
prune-stale-modes

kms_frontbuffer_tracking

Test the Kernel's frontbuffer tracking mechanism and its related features: FBC, PSR and DRRS

Subtests

This test has over 100 subtests. Run kms_frontbuffer_tracking --list-subtests to list them.


kms_getfb

Subtests

getfb-handle-zero
getfb-handle-valid
getfb-handle-closed
getfb-handle-not-fb
getfb-addfb-different-handles
getfb-repeated-different-handles
getfb-reject-ccs

kms_hdmi_inject

Tests 4K and audio HDMI injection.

Subtests

inject-4k
inject-audio

kms_invalid_dotclock

Make sure all modesets are rejected when the requested dotclock is too high


kms_lease

Test of CreateLease.

Subtests

simple_lease
lessee_list
lease_get
lease_unleased_connector
lease_unleased_crtc
lease_revoke
lease_again
lease_invalid_connector
lease_invalid_crtc
lease_invalid_plane
page_flip_implicit_plane
setcrtc_implicit_plane
cursor_implicit_plane
atomic_implicit_crtc
invalid-create-leases
possible-crtcs-filtering
master-vs-lease
multimaster-lease
implicit-plane-lease
lease-uevent

kms_legacy_colorkey

Check that the legacy set colorkey ioctl only works on sprite planes.


kms_mmap_write_crc

Use the display CRC support to validate mmap write to an already uncached future scanout buffer.

Subtests

main

kms_panel_fitting

Test display panel fitting

Subtests

legacy
atomic-fastset

kms_pipe_b_c_ivb

Exercise the FDI lane bifurcation code for IVB in the kernel by settingdifferent combinations of modes for pipes B and C.

Subtests

pipe-B-dpms-off-modeset-pipe-C
pipe-B-double-modeset-then-modeset-pipe-C
disable-pipe-B-enable-pipe-C
from-pipe-C-to-B-with-3-lanes
enable-pipe-C-while-B-has-3-lanes

kms_pipe_crc_basic

Subtests

bad-source
read-crc-pipe-A
read-crc-pipe-A-frame-sequence
nonblocking-crc-pipe-A
nonblocking-crc-pipe-A-frame-sequence
suspend-read-crc-pipe-A
hang-read-crc-pipe-A
read-crc-pipe-B
read-crc-pipe-B-frame-sequence
nonblocking-crc-pipe-B
nonblocking-crc-pipe-B-frame-sequence
suspend-read-crc-pipe-B
hang-read-crc-pipe-B
read-crc-pipe-C
read-crc-pipe-C-frame-sequence
nonblocking-crc-pipe-C
nonblocking-crc-pipe-C-frame-sequence
suspend-read-crc-pipe-C
hang-read-crc-pipe-C
read-crc-pipe-D
read-crc-pipe-D-frame-sequence
nonblocking-crc-pipe-D
nonblocking-crc-pipe-D-frame-sequence
suspend-read-crc-pipe-D
hang-read-crc-pipe-D
read-crc-pipe-E
read-crc-pipe-E-frame-sequence
nonblocking-crc-pipe-E
nonblocking-crc-pipe-E-frame-sequence
suspend-read-crc-pipe-E
hang-read-crc-pipe-E
read-crc-pipe-F
read-crc-pipe-F-frame-sequence
nonblocking-crc-pipe-F
nonblocking-crc-pipe-F-frame-sequence
suspend-read-crc-pipe-F
hang-read-crc-pipe-F

kms_plane

Subtests

pixel-format-pipe-A-planes
pixel-format-pipe-A-planes-source-clamping
plane-position-covered-pipe-A-planes
plane-position-hole-pipe-A-planes
plane-position-hole-dpms-pipe-A-planes
plane-panning-top-left-pipe-A-planes
plane-panning-bottom-right-pipe-A-planes
plane-panning-bottom-right-suspend-pipe-A-planes
pixel-format-pipe-B-planes
pixel-format-pipe-B-planes-source-clamping
plane-position-covered-pipe-B-planes
plane-position-hole-pipe-B-planes
plane-position-hole-dpms-pipe-B-planes
plane-panning-top-left-pipe-B-planes
plane-panning-bottom-right-pipe-B-planes
plane-panning-bottom-right-suspend-pipe-B-planes
pixel-format-pipe-C-planes
pixel-format-pipe-C-planes-source-clamping
plane-position-covered-pipe-C-planes
plane-position-hole-pipe-C-planes
plane-position-hole-dpms-pipe-C-planes
plane-panning-top-left-pipe-C-planes
plane-panning-bottom-right-pipe-C-planes
plane-panning-bottom-right-suspend-pipe-C-planes
pixel-format-pipe-D-planes
pixel-format-pipe-D-planes-source-clamping
plane-position-covered-pipe-D-planes
plane-position-hole-pipe-D-planes
plane-position-hole-dpms-pipe-D-planes
plane-panning-top-left-pipe-D-planes
plane-panning-bottom-right-pipe-D-planes
plane-panning-bottom-right-suspend-pipe-D-planes
pixel-format-pipe-E-planes
pixel-format-pipe-E-planes-source-clamping
plane-position-covered-pipe-E-planes
plane-position-hole-pipe-E-planes
plane-position-hole-dpms-pipe-E-planes
plane-panning-top-left-pipe-E-planes
plane-panning-bottom-right-pipe-E-planes
plane-panning-bottom-right-suspend-pipe-E-planes
pixel-format-pipe-F-planes
pixel-format-pipe-F-planes-source-clamping
plane-position-covered-pipe-F-planes
plane-position-hole-pipe-F-planes
plane-position-hole-dpms-pipe-F-planes
plane-panning-top-left-pipe-F-planes
plane-panning-bottom-right-pipe-F-planes
plane-panning-bottom-right-suspend-pipe-F-planes

kms_plane_alpha_blend

Test plane alpha and blending mode properties

Subtests

pipe-A-alpha-basic
pipe-A-alpha-7efc
pipe-A-coverage-7efc
pipe-A-coverage-vs-premult-vs-constant
pipe-A-alpha-transparant-fb
pipe-A-alpha-opaque-fb
pipe-A-constant-alpha-min
pipe-A-constant-alpha-mid
pipe-A-constant-alpha-max
pipe-B-alpha-basic
pipe-B-alpha-7efc
pipe-B-coverage-7efc
pipe-B-coverage-vs-premult-vs-constant
pipe-B-alpha-transparant-fb
pipe-B-alpha-opaque-fb
pipe-B-constant-alpha-min
pipe-B-constant-alpha-mid
pipe-B-constant-alpha-max
pipe-C-alpha-basic
pipe-C-alpha-7efc
pipe-C-coverage-7efc
pipe-C-coverage-vs-premult-vs-constant
pipe-C-alpha-transparant-fb
pipe-C-alpha-opaque-fb
pipe-C-constant-alpha-min
pipe-C-constant-alpha-mid
pipe-C-constant-alpha-max
pipe-D-alpha-basic
pipe-D-alpha-7efc
pipe-D-coverage-7efc
pipe-D-coverage-vs-premult-vs-constant
pipe-D-alpha-transparant-fb
pipe-D-alpha-opaque-fb
pipe-D-constant-alpha-min
pipe-D-constant-alpha-mid
pipe-D-constant-alpha-max
pipe-E-alpha-basic
pipe-E-alpha-7efc
pipe-E-coverage-7efc
pipe-E-coverage-vs-premult-vs-constant
pipe-E-alpha-transparant-fb
pipe-E-alpha-opaque-fb
pipe-E-constant-alpha-min
pipe-E-constant-alpha-mid
pipe-E-constant-alpha-max
pipe-F-alpha-basic
pipe-F-alpha-7efc
pipe-F-coverage-7efc
pipe-F-coverage-vs-premult-vs-constant
pipe-F-alpha-transparant-fb
pipe-F-alpha-opaque-fb
pipe-F-constant-alpha-min
pipe-F-constant-alpha-mid
pipe-F-constant-alpha-max

kms_plane_cursor

Subtests

pipe-A-overlay-size-64
pipe-A-primary-size-64
pipe-A-viewport-size-64
pipe-A-overlay-size-128
pipe-A-primary-size-128
pipe-A-viewport-size-128
pipe-A-overlay-size-256
pipe-A-primary-size-256
pipe-A-viewport-size-256
pipe-B-overlay-size-64
pipe-B-primary-size-64
pipe-B-viewport-size-64
pipe-B-overlay-size-128
pipe-B-primary-size-128
pipe-B-viewport-size-128
pipe-B-overlay-size-256
pipe-B-primary-size-256
pipe-B-viewport-size-256
pipe-C-overlay-size-64
pipe-C-primary-size-64
pipe-C-viewport-size-64
pipe-C-overlay-size-128
pipe-C-primary-size-128
pipe-C-viewport-size-128
pipe-C-overlay-size-256
pipe-C-primary-size-256
pipe-C-viewport-size-256
pipe-D-overlay-size-64
pipe-D-primary-size-64
pipe-D-viewport-size-64
pipe-D-overlay-size-128
pipe-D-primary-size-128
pipe-D-viewport-size-128
pipe-D-overlay-size-256
pipe-D-primary-size-256
pipe-D-viewport-size-256
pipe-E-overlay-size-64
pipe-E-primary-size-64
pipe-E-viewport-size-64
pipe-E-overlay-size-128
pipe-E-primary-size-128
pipe-E-viewport-size-128
pipe-E-overlay-size-256
pipe-E-primary-size-256
pipe-E-viewport-size-256
pipe-F-overlay-size-64
pipe-F-primary-size-64
pipe-F-viewport-size-64
pipe-F-overlay-size-128
pipe-F-primary-size-128
pipe-F-viewport-size-128
pipe-F-overlay-size-256
pipe-F-primary-size-256
pipe-F-viewport-size-256

kms_plane_lowres

Test atomic mode setting with a plane by switching between high and low resolutions

Subtests

pipe-A-tiling-none
pipe-A-tiling-x
pipe-A-tiling-y
pipe-A-tiling-yf
pipe-B-tiling-none
pipe-B-tiling-x
pipe-B-tiling-y
pipe-B-tiling-yf
pipe-C-tiling-none
pipe-C-tiling-x
pipe-C-tiling-y
pipe-C-tiling-yf
pipe-D-tiling-none
pipe-D-tiling-x
pipe-D-tiling-y
pipe-D-tiling-yf
pipe-E-tiling-none
pipe-E-tiling-x
pipe-E-tiling-y
pipe-E-tiling-yf
pipe-F-tiling-none
pipe-F-tiling-x
pipe-F-tiling-y
pipe-F-tiling-yf

kms_plane_multiple

Test atomic mode setting with multiple planes

Subtests

atomic-pipe-A-tiling-x
atomic-pipe-A-tiling-y
atomic-pipe-A-tiling-yf
atomic-pipe-A-tiling-none
atomic-pipe-B-tiling-x
atomic-pipe-B-tiling-y
atomic-pipe-B-tiling-yf
atomic-pipe-B-tiling-none
atomic-pipe-C-tiling-x
atomic-pipe-C-tiling-y
atomic-pipe-C-tiling-yf
atomic-pipe-C-tiling-none
atomic-pipe-D-tiling-x
atomic-pipe-D-tiling-y
atomic-pipe-D-tiling-yf
atomic-pipe-D-tiling-none
atomic-pipe-E-tiling-x
atomic-pipe-E-tiling-y
atomic-pipe-E-tiling-yf
atomic-pipe-E-tiling-none
atomic-pipe-F-tiling-x
atomic-pipe-F-tiling-y
atomic-pipe-F-tiling-yf
atomic-pipe-F-tiling-none

kms_plane_scaling

Test display plane scaling

Subtests

pipe-A-plane-scaling
pipe-A-scaler-with-pixel-format
pipe-A-scaler-with-rotation
pipe-A-scaler-with-clipping-clamping
pipe-B-plane-scaling
pipe-B-scaler-with-pixel-format
pipe-B-scaler-with-rotation
pipe-B-scaler-with-clipping-clamping
pipe-C-plane-scaling
pipe-C-scaler-with-pixel-format
pipe-C-scaler-with-rotation
pipe-C-scaler-with-clipping-clamping
pipe-D-plane-scaling
pipe-D-scaler-with-pixel-format
pipe-D-scaler-with-rotation
pipe-D-scaler-with-clipping-clamping
pipe-E-plane-scaling
pipe-E-scaler-with-pixel-format
pipe-E-scaler-with-rotation
pipe-E-scaler-with-clipping-clamping
pipe-F-plane-scaling
pipe-F-scaler-with-pixel-format
pipe-F-scaler-with-rotation
pipe-F-scaler-with-clipping-clamping
2x-scaler-multi-pipe

kms_prop_blob

Tests behaviour of mass-data 'blob' properties.

Subtests

basic
blob-prop-core
blob-prop-validate
blob-prop-lifetime
blob-multiple
invalid-get-prop-any
invalid-get-prop
invalid-set-prop-any
invalid-set-prop

kms_properties

Subtests

plane-properties-legacy
plane-properties-atomic
crtc-properties-legacy
crtc-properties-atomic
connector-properties-legacy
connector-properties-atomic
invalid-properties-legacy
invalid-properties-atomic
get_properties-sanity-atomic
get_properties-sanity-non-atomic

kms_psr

Subtests

basic
no_drrs
primary_page_flip
primary_mmap_gtt
primary_mmap_cpu
primary_blt
primary_render
sprite_mmap_gtt
cursor_mmap_gtt
sprite_mmap_cpu
cursor_mmap_cpu
sprite_blt
cursor_blt
sprite_render
cursor_render
sprite_plane_move
cursor_plane_move
sprite_plane_onoff
cursor_plane_onoff
dpms
suspend
psr2_basic
psr2_no_drrs
psr2_primary_page_flip
psr2_primary_mmap_gtt
psr2_primary_mmap_cpu
psr2_primary_blt
psr2_primary_render
psr2_sprite_mmap_gtt
psr2_cursor_mmap_gtt
psr2_sprite_mmap_cpu
psr2_cursor_mmap_cpu
psr2_sprite_blt
psr2_cursor_blt
psr2_sprite_render
psr2_cursor_render
psr2_sprite_plane_move
psr2_cursor_plane_move
psr2_sprite_plane_onoff
psr2_cursor_plane_onoff
psr2_dpms
psr2_suspend

kms_psr2_su

Test PSR2 selective update

Subtests

page_flip
frontbuffer

kms_pwrite_crc

Use the display CRC support to validate pwrite to an already uncached future scanout buffer.


kms_rmfb

Subtests

rmfb-ioctl
close-fd

kms_rotation_crc

Subtests

primary-rotation-90
primary-rotation-180
primary-rotation-270
sprite-rotation-90
sprite-rotation-180
sprite-rotation-270
cursor-rotation-180
sprite-rotation-90-pos-100-0
bad-pixel-format
bad-tiling
primary-x-tiled-reflect-x-0
primary-x-tiled-reflect-x-180
primary-y-tiled-reflect-x-0
primary-y-tiled-reflect-x-90
primary-y-tiled-reflect-x-180
primary-y-tiled-reflect-x-270
primary-yf-tiled-reflect-x-0
primary-yf-tiled-reflect-x-90
primary-yf-tiled-reflect-x-180
primary-yf-tiled-reflect-x-270
multiplane-rotation
multiplane-rotation-cropping-top
multiplane-rotation-cropping-bottom
exhaust-fences

kms_selftest

Basic sanity check of KMS selftests.

Subtests


kms_sequence

Test CrtcGetSequence and CrtcQueueSequence.

Subtests

get-idle
get-forked
get-busy
get-forked-busy
queue-idle
queue-busy

kms_setmode

Subtests

basic
basic-clone-single-crtc
invalid-clone-single-crtc
invalid-clone-exclusive-crtc
clone-exclusive-crtc
invalid-clone-single-crtc-stealing

kms_sysfs_edid_timing

This check the time we take to read the content of all the possible connectors. Without the edid -ENXIO patch (http://permalink.gmane.org/gmane.comp.video.dri.devel/62083), we sometimes take a *really* long time. So let's just check for some reasonable timing here


kms_tv_load_detect

Check tv load detection works correctly.

Subtests

load-detect

kms_universal_plane

Subtests

universal-plane-pipe-A-functional
universal-plane-pipe-A-sanity
disable-primary-vs-flip-pipe-A
cursor-fb-leak-pipe-A
universal-plane-gen9-features-pipe-A
universal-plane-pipe-B-functional
universal-plane-pipe-B-sanity
disable-primary-vs-flip-pipe-B
cursor-fb-leak-pipe-B
universal-plane-gen9-features-pipe-B
universal-plane-pipe-C-functional
universal-plane-pipe-C-sanity
disable-primary-vs-flip-pipe-C
cursor-fb-leak-pipe-C
universal-plane-gen9-features-pipe-C
universal-plane-pipe-D-functional
universal-plane-pipe-D-sanity
disable-primary-vs-flip-pipe-D
cursor-fb-leak-pipe-D
universal-plane-gen9-features-pipe-D
universal-plane-pipe-E-functional
universal-plane-pipe-E-sanity
disable-primary-vs-flip-pipe-E
cursor-fb-leak-pipe-E
universal-plane-gen9-features-pipe-E
universal-plane-pipe-F-functional
universal-plane-pipe-F-sanity
disable-primary-vs-flip-pipe-F
cursor-fb-leak-pipe-F
universal-plane-gen9-features-pipe-F

kms_vblank

Test speed of WaitVblank.

Subtests

This test has over 100 subtests. Run kms_vblank --list-subtests to list them.


kms_vrr

Subtests

flip-basic
flip-dpms
flip-suspend