KMS Tests

KMS Tests — Mode setting tests

Programs

Description

kms_3d

Tests 3D mode setting.


kms_addfb_basic

Subtests

unused-handle
unused-pitches
unused-offsets
unused-modifier
clobberred-modifier
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

kms_atomic

Test atomic modesetting API

Subtests

plane_overlay_legacy
plane_primary_legacy
plane_cursor_legacy
plane_invalid_params
crtc_invalid_params
atomic_invalid_params

kms_atomic_transition

Subtests

plane-all-transition
plane-all-transition-nonblocking
plane-all-modeset-transition
plane-toggle-modeset-transition
1x-modeset-transitions
1x-modeset-transitions-nonblocking
2x-modeset-transitions
2x-modeset-transitions-nonblocking
3x-modeset-transitions
3x-modeset-transitions-nonblocking

kms_busy

Basic check of KMS ABI with busy framebuffers.

Subtests

basic-flip-default-A
flip-render-A
flip-bsd-A
flip-bsd1-A
flip-bsd2-A
flip-blt-A
flip-vebox-A
basic-flip-default-B
flip-render-B
flip-bsd-B
flip-bsd1-B
flip-bsd2-B
flip-blt-B
flip-vebox-B
basic-flip-default-C
flip-render-C
flip-bsd-C
flip-bsd1-C
flip-bsd2-C
flip-blt-C
flip-vebox-C

kms_chv_cursor_fail

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-B-64x64-left-edge
pipe-B-64x64-right-edge
pipe-B-64x64-top-edge
pipe-B-64x64-bottom-edge
pipe-C-64x64-left-edge
pipe-C-64x64-right-edge
pipe-C-64x64-top-edge
pipe-C-64x64-bottom-edge
pipe-A-128x128-left-edge
pipe-A-128x128-right-edge
pipe-A-128x128-top-edge
pipe-A-128x128-bottom-edge
pipe-B-128x128-left-edge
pipe-B-128x128-right-edge
pipe-B-128x128-top-edge
pipe-B-128x128-bottom-edge
pipe-C-128x128-left-edge
pipe-C-128x128-right-edge
pipe-C-128x128-top-edge
pipe-C-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-256x256-left-edge
pipe-B-256x256-right-edge
pipe-B-256x256-top-edge
pipe-B-256x256-bottom-edge
pipe-C-256x256-left-edge
pipe-C-256x256-right-edge
pipe-C-256x256-top-edge
pipe-C-256x256-bottom-edge

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-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_legacy

Stress legacy cursor ioctl

Subtests

pipe-A-single-bo
pipe-A-single-move
pipe-A-forked-bo
pipe-A-forked-move
pipe-A-torture-bo
pipe-A-torture-move
pipe-B-single-bo
pipe-B-single-move
pipe-B-forked-bo
pipe-B-forked-move
pipe-B-torture-bo
pipe-B-torture-move
pipe-C-single-bo
pipe-C-single-move
pipe-C-forked-bo
pipe-C-forked-move
pipe-C-torture-bo
pipe-C-torture-move
all-pipes-single-bo
all-pipes-single-move
all-pipes-forked-bo
all-pipes-forked-move
all-pipes-torture-bo
all-pipes-torture-move
nonblocking-modeset-vs-cursor-atomic
long-nonblocking-modeset-vs-cursor-atomic
2x-flip-vs-cursor-legacy
2x-cursor-vs-flip-legacy
2x-long-flip-vs-cursor-legacy
2x-long-cursor-vs-flip-legacy
2x-nonblocking-modeset-vs-cursor-atomic
2x-cursor-vs-nonblocking-modeset-atomic
2x-long-nonblocking-modeset-vs-cursor-atomic
2x-long-cursor-vs-nonblocking-modeset-atomic
flip-vs-cursor-crc-legacy
flip-vs-cursor-crc-atomic
flip-vs-cursor-busy-crc-legacy
flip-vs-cursor-busy-crc-atomic
basic-flip-before-cursor-legacy
basic-busy-flip-before-cursor-legacy
basic-flip-after-cursor-legacy
flip-vs-cursor-legacy
cursor-vs-flip-legacy
cursorA-vs-flipA-legacy
cursorA-vs-flipB-legacy
cursorB-vs-flipA-legacy
cursorB-vs-flipB-legacy
basic-flip-before-cursor-varying-size
basic-busy-flip-before-cursor-varying-size
basic-flip-after-cursor-varying-size
flip-vs-cursor-varying-size
cursor-vs-flip-varying-size
cursorA-vs-flipA-varying-size
cursorA-vs-flipB-varying-size
cursorB-vs-flipA-varying-size
cursorB-vs-flipB-varying-size
short-flip-before-cursor-toggle
short-busy-flip-before-cursor-toggle
short-flip-after-cursor-toggle
flip-vs-cursor-toggle
cursor-vs-flip-toggle
cursorA-vs-flipA-toggle
cursorA-vs-flipB-toggle
cursorB-vs-flipA-toggle
cursorB-vs-flipB-toggle
basic-flip-before-cursor-atomic
basic-busy-flip-before-cursor-atomic
basic-flip-after-cursor-atomic
flip-vs-cursor-atomic
cursor-vs-flip-atomic
cursorA-vs-flipA-atomic
cursorA-vs-flipB-atomic
cursorB-vs-flipA-atomic
cursorB-vs-flipB-atomic
short-flip-before-cursor-atomic-transitions
short-busy-flip-before-cursor-atomic-transitions
short-flip-after-cursor-atomic-transitions
flip-vs-cursor-atomic-transitions
cursor-vs-flip-atomic-transitions
cursorA-vs-flipA-atomic-transitions
cursorA-vs-flipB-atomic-transitions
cursorB-vs-flipA-atomic-transitions
cursorB-vs-flipB-atomic-transitions
short-flip-before-cursor-atomic-transitions-varying-size
short-busy-flip-before-cursor-atomic-transitions-varying-size
short-flip-after-cursor-atomic-transitions-varying-size
flip-vs-cursor-atomic-transitions-varying-size
cursor-vs-flip-atomic-transitions-varying-size
cursorA-vs-flipA-atomic-transitions-varying-size
cursorA-vs-flipB-atomic-transitions-varying-size
cursorB-vs-flipA-atomic-transitions-varying-size
cursorB-vs-flipB-atomic-transitions-varying-size

kms_draw_crc

Subtests

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

kms_fbc_crc

Performs various write operations to the scanout buffer while FBC is enabled. CRC checks will be used to make sure the modifications to scanout buffer are detected.

Subtests

page_flip
mmap_cpu
mmap_gtt
blt
render
context
page_flip_and_mmap_cpu
page_flip_and_mmap_gtt
page_flip_and_blt
page_flip_and_render
page_flip_and_context

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

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


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 and PSR

Subtests

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


kms_invalid_dotclock

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


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.


kms_mmio_vs_cs_flip

Subtests

setplane_vs_cs_flip
setcrtc_vs_cs_flip

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_color

Test Color Features at Pipe level

Subtests

ctm-red-to-blue-pipe0
ctm-green-to-red-pipe0
ctm-blue-to-red-pipe0
ctm-0-25-pipe0
ctm-0-5-pipe0
ctm-0-75-pipe0
ctm-max-pipe0
ctm-negative-pipe0
degamma-pipe0
gamma-pipe0
legacy-gamma-pipe0
legacy-gamma-reset-pipe0
ctm-red-to-blue-pipe1
ctm-green-to-red-pipe1
ctm-blue-to-red-pipe1
ctm-0-25-pipe1
ctm-0-5-pipe1
ctm-0-75-pipe1
ctm-max-pipe1
ctm-negative-pipe1
degamma-pipe1
gamma-pipe1
legacy-gamma-pipe1
legacy-gamma-reset-pipe1
ctm-red-to-blue-pipe2
ctm-green-to-red-pipe2
ctm-blue-to-red-pipe2
ctm-0-25-pipe2
ctm-0-5-pipe2
ctm-0-75-pipe2
ctm-max-pipe2
ctm-negative-pipe2
degamma-pipe2
gamma-pipe2
legacy-gamma-pipe2
legacy-gamma-reset-pipe2
invalid-lut-sizes
invalid-ctm-matrix-sizes

kms_pipe_crc_basic

Subtests

bad-pipe
bad-source
bad-nb-words-1
bad-nb-words-3
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

kms_plane

Subtests

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


kms_plane_multiple

Test atomic mode setting with multiple planes

Subtests

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


kms_plane_scaling

Test display plane scaling


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

kms_psr_sink_crc

Subtests

psr_basic
primary_page_flip
primary_mmap_gtt
primary_mmap_gtt_waiting
primary_mmap_cpu
primary_blt
primary_render
sprite_mmap_gtt
sprite_mmap_gtt_waiting
sprite_mmap_cpu
sprite_blt
sprite_render
sprite_plane_move
sprite_plane_onoff
cursor_mmap_gtt
cursor_mmap_gtt_waiting
cursor_mmap_cpu
cursor_blt
cursor_render
cursor_plane_move
cursor_plane_onoff
dpms_off_psr_active
dpms_off_psr_exit
suspend_psr_active
suspend_psr_exit

kms_pwrite_crc

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


kms_render

Subtests

direct-render
gpu-blit

kms_rmfb

Subtests

rmfb-ioctl
close-fd

kms_rotation_crc

Subtests

primary-rotation-180
sprite-rotation-180
cursor-rotation-180
primary-rotation-90
primary-rotation-270
sprite-rotation-90
sprite-rotation-270
sprite-rotation-90-pos-100-0
bad-pixel-format
bad-tiling
primary-rotation-90-flip-stress
primary-rotation-90-Y-tiled
exhaust-fences

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_sink_crc_basic


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_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

kms_vblank

Test speed of WaitVblank.

Subtests

accuracy
query-idle
query-busy
wait-idle
wait-busy