KMS Tests

KMS Tests — Tests for kernel mode setting

Programs

kms_3d  
kms_addfb_basic  
kms_async_flips  
kms_atomic  
kms_atomic_interruptible  
kms_atomic_transition  
kms_big_fb  
kms_busy  
kms_bw  
kms_ccs  
kms_cdclk  
kms_chamelium_audio  
kms_chamelium_color  
kms_chamelium_edid  
kms_chamelium_frames  
kms_chamelium_hpd  
kms_color  
kms_concurrent  
kms_content_protection  
kms_cursor_crc  
kms_cursor_edge_walk  
kms_cursor_legacy  
kms_dirtyfb  
kms_display_modes  
kms_dither  
kms_dp_aux_dev  
kms_dp_linktrain_fallback  
kms_draw_crc  
kms_dsc  
kms_fb_coherency  
kms_fbcon_fbt  
kms_feature_discovery  
kms_fence_pin_leak  
kms_flip  
kms_flip_event_leak  
kms_flip_scaled_crc  
kms_flip_tiling  
kms_force_connector_basic  
kms_frontbuffer_tracking  
kms_getfb  
kms_hdmi_inject  
kms_hdr  
kms_invalid_mode  
kms_joiner  
kms_lease  
kms_legacy_colorkey  
kms_mmap_write_crc  
kms_multipipe_modeset  
kms_panel_fitting  
kms_pipe_b_c_ivb  
kms_pipe_crc_basic  
kms_plane  
kms_plane_alpha_blend  
kms_plane_cursor  
kms_plane_lowres  
kms_plane_multiple  
kms_plane_scaling  
kms_pm_backlight  
kms_pm_dc  
kms_pm_lpsp  
kms_pm_rpm  
kms_prime  
kms_prop_blob  
kms_properties  
kms_psr  
kms_psr2_sf  
kms_psr2_su  
kms_psr_stress_test  
kms_pwrite_crc  
kms_rmfb  
kms_rotation_crc  
kms_scaling_modes  
kms_selftest  
kms_sequence  
kms_setmode  
kms_sysfs_edid_timing  
kms_tiled_display  
kms_tv_load_detect  
kms_universal_plane  
kms_vblank  
kms_vrr  
kms_writeback  

Description

kms_3d

Tests 3D mode setting.


kms_addfb_basic

unused-handle

Test that addfb2 call fails correctly for unused handle

unused-pitches

Test that addfb2 call fails correctly for unused pitches

unused-offsets

Test that addfb2 call fails correctly for unused offset

unused-modifier

Test that addfb2 call fails correctly for unused modifier

clobberred-modifier

Check if addfb2 call works for clobbered modifier

invalid-smem-bo-on-discrete

Check if addfb2 with a system memory gem object fails correctly if device requires local memory framebuffers

legacy-format

Check if addfb2 call works for legacy formats

no-handle

Test that addfb2 call fails correctly without handle

basic

Check if addfb2 call works with given handle

bad-pitch-0

Test that addfb2 call fails correctly for bad-pitches

bad-pitch-32

NO DOCUMENTATION!

bad-pitch-63

NO DOCUMENTATION!

bad-pitch-128

NO DOCUMENTATION!

bad-pitch-256

NO DOCUMENTATION!

bad-pitch-1024

NO DOCUMENTATION!

bad-pitch-999

NO DOCUMENTATION!

bad-pitch-65536

NO DOCUMENTATION!

invalid-get-prop-any

Test that get-properties ioctl call fails correctly for invalid object type

invalid-get-prop

Test that get-properties ioctl call fails correctly for fb mode object

invalid-set-prop-any

Test that set-properties ioctl call fails correctly for invalid object type

invalid-set-prop

Test that get-properties ioctl call fails correctly for fb mode object

master-rmfb

Check that only master can rmfb

addfb25-modifier-no-flag

Test that addfb2 call fails correctly for x-tiling with given modifier

addfb25-bad-modifier

Test that addfb2 call fails correctly for irrelevant modifier

addfb25-x-tiled-mismatch-legacy

Test that addfb2 call fails correctly for irrelevant x-tiling

addfb25-x-tiled-legacy

Check if addfb2 call works for x-tiling

addfb25-framebuffer-vs-set-tiling

Check if addfb2 call works for relevant combination of tiling and fbs

basic-x-tiled-legacy

Check if addfb2 and rmfb call works for basic x-tiling test

framebuffer-vs-set-tiling

Check if addfb2 call works for x and y tiling

tile-pitch-mismatch

Test that addfb2 call fails correctly for pitches mismatch

basic-y-tiled-legacy

Test that addfb2 call fails correctly for basic y-tiling test

size-max

Check if addfb2 call works with max size of buffer object

too-wide

Test that addfb2 call fails correctly with increased width of fb

too-high

Test that addfb2 call fails correctly with increased height of fb

bo-too-small

Test that addfb2 call fails correctly with small size of buffer object

small-bo

Check if addfb2 call works for given height

bo-too-small-due-to-tiling

Test that addfb2 call fails correctly with small buffer object after changing tile

addfb25-y-tiled-legacy

Check if addfb2 call works for y-tiling

addfb25-yf-tiled-legacy

Check if addfb2 call works for yf-tiling

addfb25-y-tiled-small-legacy

Test that addfb2 call fails correctly for y-tiling with given height and modifier

addfb25-4-tiled

Check if addfb2 call works for tiling-4


kms_async_flips

Test asynchronous page flips.

async-flip-with-page-flip-events

Verify the async flip functionality and the fps during async flips Wait for page flip events in between successive asynchronous flips

alternate-sync-async-flip

Verify the async flip functionality and the fps during async flips Alternate between sync and async flips

test-time-stamp

Verify the async flip functionality and the fps during async flips Verify that the async flip timestamp does not coincide with either previous or next vblank

test-cursor

Verify that the DRM_IOCTL_MODE_CURSOR passes after async flip

invalid-async-flip

Negative case to verify if changes in fb are rejected from kernel as expected

crc

Use CRC to verify async flip scans out the correct framebuffer

async-flip-suspend-resume

Verify the async flip functionality after suspend and resume cycle


kms_atomic

Test atomic modesetting API

plane-overlay-legacy

Test for KMS atomic modesetting on overlay plane and ensure coherency between the legacy and atomic interfaces.

plane-primary-legacy

Test for KMS atomic modesetting on primary plane and ensure coherency between the legacy and atomic interfaces.

plane-primary-overlay-mutable-zpos

Verify that the overlay plane can cover the primary one (and vice versa) by changing their zpos property.

plane-immutable-zpos

Verify the reported zpos property of planes by making sure only higher zpos planes cover the lower zpos ones.

test-only

Test to ensure that DRM_MODE_ATOMIC_TEST_ONLY really only touches the free-standing state objects and nothing else.

plane-cursor-legacy

Test for KMS atomic modesetting on cursor plane and ensure coherency between legacy and atomic interfaces.

plane-invalid-params

Test error handling when invalid plane parameters are passed

plane-invalid-params-fence

Test error handling when invalid plane fence parameters are passed

crtc-invalid-params

Test error handling when invalid crtc parameters are passed

crtc-invalid-params-fence

Test error handling when invalid crtc fence parameters are passed

atomic-invalid-params

Test abuse the atomic ioctl directly in order to test various invalid conditions which the libdrm wrapper won't allow us to create.

atomic-plane-damage

Simple test cases to use FB_DAMAGE_CLIPS plane property


kms_atomic_interruptible

Tests that interrupt various atomic ioctls.

legacy-setmode

Tests the interrupt properties of legacy modeset

atomic-setmode

Tests the interrupt properties of atomic modeset

legacy-dpms

Tests the interrupt properties for DPMS

legacy-pageflip

Tests the interrupt properties for pageflip

legacy-cursor

Tests the interrupt properties for cursor

universal-setplane-primary

Tests the interrupt properties for primary plane

universal-setplane-cursor

Tests the interrupt properties for cursor plane


kms_atomic_transition

plane-primary-toggle-with-vblank-wait

Check toggling of primary plane with vblank

plane-all-transition

Transition test for all plane combinations

plane-all-transition-fencing

Transition test for all plane combinations with fencing commit

plane-all-transition-nonblocking

Transition test for all plane combinations with nonblocking commit

plane-all-transition-nonblocking-fencing

Transition test for all plane combinations with nonblocking and fencing commit

plane-use-after-nonblocking-unbind

Transition test with non blocking commit and make sure commit of disabled plane has to complete before atomic commit on that plane

plane-use-after-nonblocking-unbind-fencing

Transition test with non blocking and fencing commit and make sure commit of disabled plane has to complete before atomic commit on that plane

plane-all-modeset-transition

Modeset test for all plane combinations

plane-all-modeset-transition-fencing

Modeset test for all plane combinations with fencing commit

plane-all-modeset-transition-internal-panels

Modeset test for all plane combinations on internal panels

plane-all-modeset-transition-fencing-internal-panels

Modeset test for all plane combinations on internal panels with fencing commit

plane-toggle-modeset-transition

Check toggling and modeset transition on plane

modeset-transition

Modeset transition tests for combinations of crtc enabled

modeset-transition-fencing

Modeset transition tests for combinations of crtc enabled with fencing commit

modeset-transition-nonblocking

Modeset transition tests for combinations of crtc enabled with nonblocking commit

modeset-transition-nonblocking-fencing

Modeset transition tests for combinations of crtc enabled with nonblocking and fencing commit


kms_bw

More than 100 subtests, skipping listing


kms_color

Test Color Features at Pipe level

degamma

Verify that degamma LUT transformation works correctly

gamma

Verify that gamma LUT transformation works correctly

legacy-gamma

Verify that legacy gamma LUT transformation works correctly

legacy-gamma-reset

Verify that setting the legacy gamma LUT resets the gamma LUT set through GAMMA_LUT property

ctm-red-to-blue

Check the color transformation from red to blue

ctm-green-to-red

Check the color transformation from green to red

ctm-blue-to-red

Check the color transformation from blue to red

ctm-max

Check the color transformation for maximum transparency

ctm-negative

Check the color transformation for negative transparency

ctm-0-25

Check the color transformation for 0.25 transparency

ctm-0-50

Check the color transformation for 0.5 transparency

ctm-0-75

Check the color transformation for 0.75 transparency

ctm-signed

Check the color transformation for correct signed handling

deep-color

Verify that deep color works correctly

invalid-gamma-lut-sizes

Negative check for invalid gamma lut sizes

invalid-degamma-lut-sizes

Negative check for invalid degamma lut sizes

invalid-ctm-matrix-sizes

Negative check for color tranformation matrix sizes


kms_concurrent

Test atomic mode setting concurrently with multiple planes and screen resolution

multi-plane-atomic-lowres

Test atomic mode setting concurrently with multiple planes and screen resolution.


kms_content_protection

Test content protection (HDCP)

legacy

Test content protection with legacy style commit.

atomic

Test content protection with atomic modesetting

atomic-dpms

Test content protection with DPMS ON/OFF during atomic modesetting.

lic-type-0

Test for the integrity of link with type 0 content.

lic-type-1

Test for the integrity of link with type 1 content

type1

Test content protection with content type 1 that can be handled only through HDCP2.2.

mei-interface

Test the teardown and rebuild of the interface between Intel and mei hdcp.

content-type-change

Test the content type change when the content protection already enabled

uevent

Test to detect the HDCP status change when we are reading the uevent sent with the corresponding connector id and property id.

srm

This test writes the facsimile SRM into the /lib/firmware/ and check the kernel parsing of it by invoking the hdcp authentication.

dp-mst-type-0

Test Content protection(Type 0) over DP MST.

dp-mst-lic-type-0

Test Content protection(Type 0) over DP MST with LIC.

dp-mst-type-1

Test Content protection(Type 1) over DP MST.

dp-mst-lic-type-1

Test Content protection(Type 1) over DP MST with LIC.


kms_cursor_crc

Use the display CRC support to validate cursor plane functionality. The test will position thecursor plane either fully onscreen, partially onscreen, or fully offscreen, using either afully opaque or fully transparent surface. In each case, it enables the cursor plane and thenreads the PF CRC (hardware test) and compares it with the CRC value obtained when the cursorplane was disabled and its drawing is directly inserted on the PF by software.

cursor-size-change

Create a maximum size cursor, then change the size in flight to smaller ones to see that the size is applied correctly.

cursor-alpha-opaque

Validates the composition of a fully opaque cursor plane, i.e., alpha channel equal to 1.0.

cursor-alpha-transparent

Validates the composition of a fully transparent cursor plane, i.e., alpha channel equal to 0.0.

cursor-dpms

Check random placement of a cursor with DPMS.

cursor-suspend

Check random placement of a cursor with suspend.

cursor-size-hints

Check that sizes declared in SIZE_HINTS are accepted.

cursor-onscreen-32x32

Check if a given-size cursor is well-positioned inside the screen.

cursor-offscreen-32x32

Check if a given-size cursor is well-positioned outside the screen.

cursor-sliding-32x32

Check the smooth and pixel-by-pixel given-size cursor movements on horizontal, vertical and diagonal.

cursor-random-32x32

Check random placement of a cursor with given size.

cursor-rapid-movement-32x32

Check the rapid update of given-size cursor movements.

cursor-onscreen-32x10

Check if a given-size cursor is well-positioned inside the screen.

cursor-offscreen-32x10

Check if a given-size cursor is well-positioned outside the screen.

cursor-sliding-32x10

Check the smooth and pixel-by-pixel given-size cursor movements on horizontal, vertical and diagonal.

cursor-random-32x10

Check random placement of a cursor with given size.

cursor-rapid-movement-32x10

Check the rapid update of given-size cursor movements.

cursor-onscreen-64x64

Check if a given-size cursor is well-positioned inside the screen.

cursor-offscreen-64x64

Check if a given-size cursor is well-positioned outside the screen.

cursor-sliding-64x64

Check the smooth and pixel-by-pixel given-size cursor movements on horizontal, vertical and diagonal.

cursor-random-64x64

Check random placement of a cursor with given size.

cursor-rapid-movement-64x64

Check the rapid update of given-size cursor movements.

cursor-onscreen-64x21

Check if a given-size cursor is well-positioned inside the screen.

cursor-offscreen-64x21

Check if a given-size cursor is well-positioned outside the screen.

cursor-sliding-64x21

Check the smooth and pixel-by-pixel given-size cursor movements on horizontal, vertical and diagonal.

cursor-random-64x21

Check random placement of a cursor with given size.

cursor-rapid-movement-64x21

Check the rapid update of given-size cursor movements.

cursor-onscreen-128x128

Check if a given-size cursor is well-positioned inside the screen.

cursor-offscreen-128x128

Check if a given-size cursor is well-positioned outside the screen.

cursor-sliding-128x128

Check the smooth and pixel-by-pixel given-size cursor movements on horizontal, vertical and diagonal.

cursor-random-128x128

Check random placement of a cursor with given size.

cursor-rapid-movement-128x128

Check the rapid update of given-size cursor movements.

cursor-onscreen-128x42

Check if a given-size cursor is well-positioned inside the screen.

cursor-offscreen-128x42

Check if a given-size cursor is well-positioned outside the screen.

cursor-sliding-128x42

Check the smooth and pixel-by-pixel given-size cursor movements on horizontal, vertical and diagonal.

cursor-random-128x42

Check random placement of a cursor with given size.

cursor-rapid-movement-128x42

Check the rapid update of given-size cursor movements.

cursor-onscreen-256x256

Check if a given-size cursor is well-positioned inside the screen.

cursor-offscreen-256x256

Check if a given-size cursor is well-positioned outside the screen.

cursor-sliding-256x256

Check the smooth and pixel-by-pixel given-size cursor movements on horizontal, vertical and diagonal.

cursor-random-256x256

Check random placement of a cursor with given size.

cursor-rapid-movement-256x256

Check the rapid update of given-size cursor movements.

cursor-onscreen-256x85

Check if a given-size cursor is well-positioned inside the screen.

cursor-offscreen-256x85

Check if a given-size cursor is well-positioned outside the screen.

cursor-sliding-256x85

Check the smooth and pixel-by-pixel given-size cursor movements on horizontal, vertical and diagonal.

cursor-random-256x85

Check random placement of a cursor with given size.

cursor-rapid-movement-256x85

Check the rapid update of given-size cursor movements.

cursor-onscreen-512x512

Check if a given-size cursor is well-positioned inside the screen.

cursor-offscreen-512x512

Check if a given-size cursor is well-positioned outside the screen.

cursor-sliding-512x512

Check the smooth and pixel-by-pixel given-size cursor movements on horizontal, vertical and diagonal.

cursor-random-512x512

Check random placement of a cursor with given size.

cursor-rapid-movement-512x512

Check the rapid update of given-size cursor movements.

cursor-onscreen-512x170

Check if a given-size cursor is well-positioned inside the screen.

cursor-offscreen-512x170

Check if a given-size cursor is well-positioned outside the screen.

cursor-sliding-512x170

Check the smooth and pixel-by-pixel given-size cursor movements on horizontal, vertical and diagonal.

cursor-random-512x170

Check random placement of a cursor with given size.

cursor-rapid-movement-512x170

Check the rapid update of given-size cursor movements.

cursor-onscreen-max-size

Check if a given-size cursor is well-positioned inside the screen.

cursor-offscreen-max-size

Check if a given-size cursor is well-positioned outside the screen.

cursor-sliding-max-size

Check the smooth and pixel-by-pixel given-size cursor movements on horizontal, vertical and diagonal.

cursor-random-max-size

Check random placement of a cursor with given size.

cursor-rapid-movement-max-size

Check the rapid update of given-size cursor movements.


kms_cursor_edge_walk

Exercise CHV pipe C cursor fail

64x64-left-edge

Checking cursor size 64x64 by walking left-edge of screen

128x128-left-edge

Checking cursor size 128x128 by walking left-edge of screen

256x256-left-edge

Checking cursor size 256x256 by walking left-edge of screen

64x64-right-edge

Checking cursor size 64x64 by walking right-edge of screen

128x128-right-edge

Checking cursor size 128x128 by walking right-edge of screen

256x256-right-edge

Checking cursor size 256x256 by walking right-edge of screen

64x64-top-edge

Checking cursor size 64x64 by walking top-edge of screen

128x128-top-edge

Checking cursor size 128x128 by walking top-edge of screen

256x256-top-edge

Checking cursor size 256x256 by walking top-edge of screen

64x64-top-bottom

Checking cursor size 64x64 by walking top-bottom of screen

128x128-top-bottom

Checking cursor size 128x128 by walking top-bottom of screen

256x256-top-bottom

Checking cursor size 256x256 by walking top-bottom of screen


kms_cursor_legacy

Stress legacy cursor ioctl

single-bo

Test checks how many cursor updates we can fit between vblanks on single/all pipes with different modes, priority and number of processes

single-move

Test checks how many cursor updates we can fit between vblanks on single/all pipes with different modes, priority and number of processes

forked-bo

Test checks how many cursor updates we can fit between vblanks on single/all pipes with different modes, priority and number of processes

forked-move

Test checks how many cursor updates we can fit between vblanks on single/all pipes with different modes, priority and number of processes

torture-bo

Test checks how many cursor updates we can fit between vblanks on single/all pipes with different modes, priority and number of processes

torture-move

Test checks how many cursor updates we can fit between vblanks on single/all pipes with different modes, priority and number of processes

nonblocking-modeset-vs-cursor-atomic

Test checks how many cursor updates we can fit between vblanks on all pipes with different modes, priority and number of processes

long-nonblocking-modeset-vs-cursor-atomic

Test checks how many cursor updates we can fit between vblanks on all pipes with different modes, priority and number of processes

modeset-atomic-cursor-hotspot

Test changes the cursor hotspot and checks that the property is updated accordignly

2x-flip-vs-cursor-legacy

This test executes flips on both CRTCs while running cursor updates in parallel

2x-flip-vs-cursor-atomic

This test executes flips on both CRTCs while running cursor updates in parallel

2x-long-flip-vs-cursor-legacy

This test executes flips on both CRTCs while running cursor updates in parallel

2x-long-flip-vs-cursor-atomic

This test executes flips on both CRTCs while running cursor updates in parallel

2x-nonblocking-modeset-vs-cursor-atomic

This test executes flips on both CRTCs while running cursor updates in parallel

2x-long-nonblocking-modeset-vs-cursor-atomic

This test executes flips on both CRTCs while running cursor updates in parallel

2x-cursor-vs-flip-legacy

This test executes flips on both CRTCs while running cursor updates in parallel

2x-long-cursor-vs-flip-legacy

This test executes flips on both CRTCs while running cursor updates in parallel

2x-cursor-vs-flip-atomic

This test executes flips on both CRTCs while running cursor updates in parallel

2x-long-cursor-vs-flip-atomic

This test executes flips on both CRTCs while running cursor updates in parallel

flip-vs-cursor-crc-legacy

Test will first does a page flip and then cursor update

flip-vs-cursor-crc-atomic

Test will first does a page flip and then cursor update

flip-vs-cursor-busy-crc-legacy

this test perform a busy bo update followed by a cursor update

flip-vs-cursor-busy-crc-atomic

this test perform a busy bo update followed by a cursor update

basic-flip-before-cursor-legacy

Adds variety of tests:* varying-size: change the size of cursor b/w 64*64 to maxw x maxh.* atomic-transition: alternates between a full screen sprite plane and full screen primary plane.* toggle: which toggles cursor visibility and make sure cursor moves between updates.

basic-busy-flip-before-cursor-legacy

Adds variety of tests:* varying-size: change the size of cursor b/w 64*64 to maxw x maxh.* atomic-transition: alternates between a full screen sprite plane and full screen primary plane.* toggle: which toggles cursor visibility and make sure cursor moves between updates.

basic-flip-after-cursor-legacy

Adds variety of tests:* varying-size: change the size of cursor b/w 64*64 to maxw x maxh.* atomic-transition: alternates between a full screen sprite plane and full screen primary plane.* toggle: which toggles cursor visibility and make sure cursor moves between updates.

basic-flip-before-cursor-varying-size

Adds variety of tests:* varying-size: change the size of cursor b/w 64*64 to maxw x maxh.* atomic-transition: alternates between a full screen sprite plane and full screen primary plane.* toggle: which toggles cursor visibility and make sure cursor moves between updates.

basic-busy-flip-before-cursor-varying-size

Adds variety of tests:* varying-size: change the size of cursor b/w 64*64 to maxw x maxh.* atomic-transition: alternates between a full screen sprite plane and full screen primary plane.* toggle: which toggles cursor visibility and make sure cursor moves between updates.

basic-flip-after-cursor-varying-size

Adds variety of tests:* varying-size: change the size of cursor b/w 64*64 to maxw x maxh.* atomic-transition: alternates between a full screen sprite plane and full screen primary plane.* toggle: which toggles cursor visibility and make sure cursor moves between updates.

short-flip-before-cursor-toggle

Adds variety of tests:* varying-size: change the size of cursor b/w 64*64 to maxw x maxh.* atomic-transition: alternates between a full screen sprite plane and full screen primary plane.* toggle: which toggles cursor visibility and make sure cursor moves between updates.

short-busy-flip-before-cursor-toggle

Adds variety of tests:* varying-size: change the size of cursor b/w 64*64 to maxw x maxh.* atomic-transition: alternates between a full screen sprite plane and full screen primary plane.* toggle: which toggles cursor visibility and make sure cursor moves between updates.

short-flip-after-cursor-toggle

Adds variety of tests:* varying-size: change the size of cursor b/w 64*64 to maxw x maxh.* atomic-transition: alternates between a full screen sprite plane and full screen primary plane.* toggle: which toggles cursor visibility and make sure cursor moves between updates.

basic-flip-before-cursor-atomic

Adds variety of tests:* varying-size: change the size of cursor b/w 64*64 to maxw x maxh.* atomic-transition: alternates between a full screen sprite plane and full screen primary plane.* toggle: which toggles cursor visibility and make sure cursor moves between updates.

basic-busy-flip-before-cursor-atomic

Adds variety of tests:* varying-size: change the size of cursor b/w 64*64 to maxw x maxh.* atomic-transition: alternates between a full screen sprite plane and full screen primary plane.* toggle: which toggles cursor visibility and make sure cursor moves between updates.

basic-flip-after-cursor-atomic

Adds variety of tests:* varying-size: change the size of cursor b/w 64*64 to maxw x maxh.* atomic-transition: alternates between a full screen sprite plane and full screen primary plane.* toggle: which toggles cursor visibility and make sure cursor moves between updates.

short-flip-before-cursor-atomic-transitions

Adds variety of tests:* varying-size: change the size of cursor b/w 64*64 to maxw x maxh.* atomic-transition: alternates between a full screen sprite plane and full screen primary plane.* toggle: which toggles cursor visibility and make sure cursor moves between updates.

short-busy-flip-before-cursor-atomic-transitions

Adds variety of tests:* varying-size: change the size of cursor b/w 64*64 to maxw x maxh.* atomic-transition: alternates between a full screen sprite plane and full screen primary plane.* toggle: which toggles cursor visibility and make sure cursor moves between updates.

short-flip-after-cursor-atomic-transitions

Adds variety of tests:* varying-size: change the size of cursor b/w 64*64 to maxw x maxh.* atomic-transition: alternates between a full screen sprite plane and full screen primary plane.* toggle: which toggles cursor visibility and make sure cursor moves between updates.

short-flip-before-cursor-atomic-transitions-varying-size

Adds variety of tests:* varying-size: change the size of cursor b/w 64*64 to maxw x maxh.* atomic-transition: alternates between a full screen sprite plane and full screen primary plane.* toggle: which toggles cursor visibility and make sure cursor moves between updates.

short-busy-flip-before-cursor-atomic-transitions-varying-size

Adds variety of tests:* varying-size: change the size of cursor b/w 64*64 to maxw x maxh.* atomic-transition: alternates between a full screen sprite plane and full screen primary plane.* toggle: which toggles cursor visibility and make sure cursor moves between updates.

short-flip-after-cursor-atomic-transitions-varying-size

Adds variety of tests:* varying-size: change the size of cursor b/w 64*64 to maxw x maxh.* atomic-transition: alternates between a full screen sprite plane and full screen primary plane.* toggle: which toggles cursor visibility and make sure cursor moves between updates.

cursor-vs-flip-legacy

The essence of the basic test is that neither the cursor nor the nonblocking flip stall the application of the next

flip-vs-cursor-legacy

The essence of the basic test is that neither the cursor nor the nonblocking flip stall the application of the next

cursorA-vs-flipA-legacy

The essence of the basic test is that neither the cursor nor the nonblocking flip stall the application of the next

cursorA-vs-flipB-legacy

The essence of the basic test is that neither the cursor nor the nonblocking flip stall the application of the next

cursorB-vs-flipA-legacy

The essence of the basic test is that neither the cursor nor the nonblocking flip stall the application of the next

cursorB-vs-flipB-legacy

The essence of the basic test is that neither the cursor nor the nonblocking flip stall the application of the next

cursor-vs-flip-varying-size

The essence of the basic test is that neither the cursor nor the nonblocking flip stall the application of the next

flip-vs-cursor-varying-size

The essence of the basic test is that neither the cursor nor the nonblocking flip stall the application of the next

cursorA-vs-flipA-varying-size

The essence of the basic test is that neither the cursor nor the nonblocking flip stall the application of the next

cursorA-vs-flipB-varying-size

The essence of the basic test is that neither the cursor nor the nonblocking flip stall the application of the next

cursorB-vs-flipA-varying-size

The essence of the basic test is that neither the cursor nor the nonblocking flip stall the application of the next

cursorB-vs-flipB-varying-size

The essence of the basic test is that neither the cursor nor the nonblocking flip stall the application of the next

cursor-vs-flip-toggle

The essence of the basic test is that neither the cursor nor the nonblocking flip stall the application of the next

flip-vs-cursor-toggle

The essence of the basic test is that neither the cursor nor the nonblocking flip stall the application of the next

cursorA-vs-flipA-toggle

The essence of the basic test is that neither the cursor nor the nonblocking flip stall the application of the next

cursorA-vs-flipB-toggle

The essence of the basic test is that neither the cursor nor the nonblocking flip stall the application of the next

cursorB-vs-flipA-toggle

The essence of the basic test is that neither the cursor nor the nonblocking flip stall the application of the next

cursorB-vs-flipB-toggle

The essence of the basic test is that neither the cursor nor the nonblocking flip stall the application of the next

cursor-vs-flip-atomic

The essence of the basic test is that neither the cursor nor the nonblocking flip stall the application of the next

flip-vs-cursor-atomic

The essence of the basic test is that neither the cursor nor the nonblocking flip stall the application of the next

cursorA-vs-flipA-atomic

The essence of the basic test is that neither the cursor nor the nonblocking flip stall the application of the next

cursorA-vs-flipB-atomic

The essence of the basic test is that neither the cursor nor the nonblocking flip stall the application of the next

cursorB-vs-flipA-atomic

The essence of the basic test is that neither the cursor nor the nonblocking flip stall the application of the next

cursorB-vs-flipB-atomic

The essence of the basic test is that neither the cursor nor the nonblocking flip stall the application of the next

cursor-vs-flip-atomic-transitions

The essence of the basic test is that neither the cursor nor the nonblocking flip stall the application of the next

flip-vs-cursor-atomic-transitions

The essence of the basic test is that neither the cursor nor the nonblocking flip stall the application of the next

cursorA-vs-flipA-atomic-transitions

The essence of the basic test is that neither the cursor nor the nonblocking flip stall the application of the next

cursorA-vs-flipB-atomic-transitions

The essence of the basic test is that neither the cursor nor the nonblocking flip stall the application of the next

cursorB-vs-flipA-atomic-transitions

The essence of the basic test is that neither the cursor nor the nonblocking flip stall the application of the next

cursorB-vs-flipB-atomic-transitions

The essence of the basic test is that neither the cursor nor the nonblocking flip stall the application of the next

cursor-vs-flip-atomic-transitions-varying-size

The essence of the basic test is that neither the cursor nor the nonblocking flip stall the application of the next

flip-vs-cursor-atomic-transitions-varying-size

The essence of the basic test is that neither the cursor nor the nonblocking flip stall the application of the next

cursorA-vs-flipA-atomic-transitions-varying-size

The essence of the basic test is that neither the cursor nor the nonblocking flip stall the application of the next

cursorA-vs-flipB-atomic-transitions-varying-size

The essence of the basic test is that neither the cursor nor the nonblocking flip stall the application of the next

cursorB-vs-flipA-atomic-transitions-varying-size

The essence of the basic test is that neither the cursor nor the nonblocking flip stall the application of the next

cursorB-vs-flipB-atomic-transitions-varying-size

The essence of the basic test is that neither the cursor nor the nonblocking flip stall the application of the next


kms_dither

Test Dithering block status

fb-8bpc-vs-panel-6bpc

Framebuffer BPC:8, Panel BPC:6, Expected Dither:Enable

fb-8bpc-vs-panel-8bpc

Framebuffer BPC:8, Panel BPC:8, Expected Dither:Disable


kms_display_modes

Test Display Modes

extended-mode-basic

Test for validating display extended mode with a pair of connected displays

mst-extended-mode-negative

Negative test for validating display extended mode with a pair of connected 2k-4k or 4k-4k displays


kms_dp_aux_dev

Test that /dev/drm_dp_aux reads work


kms_feature_discovery

A metatest that checks for "features" presence. The subtests here should only skip or pass,anything else means we have a serious problem.

display

Make sure that we have display support.

display-1x

Make sure that we can use at least 1 output at the same time.

display-2x

Make sure that we can use at least 2 outputs at the same time.

display-3x

Make sure that we can use at least 3 outputs at the same time.

display-4x

Make sure that we can use at least 4 outputs at the same time.

chamelium

Make sure that Chamelium is configured and reachable.

psr1

Make sure that we have eDP panel with PSR1 support.

psr2

Make sure that we have eDP panel with PSR2 support.

dp-mst

Make sure that we have DP-MST configuration.


kms_flip

nonblocking-read

Tests that nonblocking reading fails correctly

wf_vblank-ts-check

Basic test for validating modeset, dpms and pageflips

2x-wf_vblank-ts-check

Test for validating modeset, dpms and pageflips with a pair of connected displays

blocking-wf_vblank

Basic test for validating modeset, dpms and pageflips

2x-blocking-wf_vblank

Test for validating modeset, dpms and pageflips with a pair of connected displays

absolute-wf_vblank

Basic test for validating modeset, dpms and pageflips

2x-absolute-wf_vblank

Test for validating modeset, dpms and pageflips with a pair of connected displays

blocking-absolute-wf_vblank

Basic test for validating modeset, dpms and pageflips

2x-blocking-absolute-wf_vblank

Test for validating modeset, dpms and pageflips with a pair of connected displays

basic-plain-flip

Basic test for validating modeset, dpms and pageflips

2x-plain-flip

Test for validating modeset, dpms and pageflips with a pair of connected displays

busy-flip

Basic test for validating modeset, dpms and pageflips

2x-busy-flip

Test for validating modeset, dpms and pageflips with a pair of connected displays

flip-vs-fences

Basic test for validating modeset, dpms and pageflips

2x-flip-vs-fences

Test for validating modeset, dpms and pageflips with a pair of connected displays

plain-flip-ts-check

Basic test for validating modeset, dpms and pageflips

2x-plain-flip-ts-check

Test for validating modeset, dpms and pageflips with a pair of connected displays

plain-flip-fb-recreate

Basic test for validating modeset, dpms and pageflips

2x-plain-flip-fb-recreate

Test for validating modeset, dpms and pageflips with a pair of connected displays

flip-vs-rmfb

Basic test for validating modeset, dpms and pageflips

2x-flip-vs-rmfb

Test for validating modeset, dpms and pageflips with a pair of connected displays

basic-flip-vs-dpms

Basic test for validating modeset, dpms and pageflips

2x-flip-vs-dpms

Test for validating modeset, dpms and pageflips with a pair of connected displays

flip-vs-panning

Basic test for validating modeset, dpms and pageflips

2x-flip-vs-panning

Test for validating modeset, dpms and pageflips with a pair of connected displays

basic-flip-vs-modeset

Basic test for validating modeset, dpms and pageflips

2x-flip-vs-modeset

Test for validating modeset, dpms and pageflips with a pair of connected displays

flip-vs-expired-vblank

Basic test for validating modeset, dpms and pageflips

2x-flip-vs-expired-vblank

Test for validating modeset, dpms and pageflips with a pair of connected displays

flip-vs-absolute-wf_vblank

Basic test for validating modeset, dpms and pageflips

2x-flip-vs-absolute-wf_vblank

Test for validating modeset, dpms and pageflips with a pair of connected displays

basic-flip-vs-wf_vblank

Basic test for validating modeset, dpms and pageflips

2x-flip-vs-wf_vblank

Test for validating modeset, dpms and pageflips with a pair of connected displays

flip-vs-blocking-wf-vblank

Basic test for validating modeset, dpms and pageflips

2x-flip-vs-blocking-wf-vblank

Test for validating modeset, dpms and pageflips with a pair of connected displays

flip-vs-modeset-vs-hang

Basic test for validating modeset, dpms and pageflips

2x-flip-vs-modeset-vs-hang

Test for validating modeset, dpms and pageflips with a pair of connected displays

flip-vs-panning-vs-hang

Basic test for validating modeset, dpms and pageflips

2x-flip-vs-panning-vs-hang

Test for validating modeset, dpms and pageflips with a pair of connected displays

flip-vs-dpms-off-vs-modeset

Basic test for validating modeset, dpms and pageflips

2x-flip-vs-dpms-off-vs-modeset

Test for validating modeset, dpms and pageflips with a pair of connected displays

single-buffer-flip-vs-dpms-off-vs-modeset

Basic test for validating modeset, dpms and pageflips

2x-single-buffer-flip-vs-dpms-off-vs-modeset

Test for validating modeset, dpms and pageflips with a pair of connected displays

dpms-off-confusion

Basic test for validating modeset, dpms and pageflips

nonexisting-fb

Basic test for validating modeset, dpms and pageflips

2x-nonexisting-fb

Test for validating modeset, dpms and pageflips with a pair of connected displays

dpms-vs-vblank-race

Basic test for validating modeset, dpms and pageflips

2x-dpms-vs-vblank-race

Test for validating modeset, dpms and pageflips with a pair of connected displays

modeset-vs-vblank-race

Basic test for validating modeset, dpms and pageflips

2x-modeset-vs-vblank-race

Test for validating modeset, dpms and pageflips with a pair of connected displays

bo-too-big

Basic test for validating modeset, dpms and pageflips

flip-vs-suspend

Basic test for validating modeset, dpms and pageflips

2x-flip-vs-suspend

Test for validating modeset, dpms and pageflips with a pair of connected displays

wf_vblank-ts-check-interruptible

Interrupt test for validating modeset, dpms and pageflips

2x-wf_vblank-ts-check-interruptible

Interrupt test for validating modeset, dpms and pageflips with pair of connected displays

absolute-wf_vblank-interruptible

Interrupt test for validating modeset, dpms and pageflips

2x-absolute-wf_vblank-interruptible

Interrupt test for validating modeset, dpms and pageflips with pair of connected displays

blocking-absolute-wf_vblank-interruptible

Interrupt test for validating modeset, dpms and pageflips

2x-blocking-absolute-wf_vblank-interruptible

Interrupt test for validating modeset, dpms and pageflips with pair of connected displays

plain-flip-interruptible

Interrupt test for validating modeset, dpms and pageflips

2x-plain-flip-interruptible

Interrupt test for validating modeset, dpms and pageflips with pair of connected displays

flip-vs-fences-interruptible

Interrupt test for validating modeset, dpms and pageflips

2x-flip-vs-fences-interruptible

Interrupt test for validating modeset, dpms and pageflips with pair of connected displays

plain-flip-ts-check-interruptible

Interrupt test for validating modeset, dpms and pageflips

2x-plain-flip-ts-check-interruptible

Interrupt test for validating modeset, dpms and pageflips with pair of connected displays

plain-flip-fb-recreate-interruptible

Interrupt test for validating modeset, dpms and pageflips

2x-plain-flip-fb-recreate-interruptible

Interrupt test for validating modeset, dpms and pageflips with pair of connected displays

flip-vs-rmfb-interruptible

Interrupt test for validating modeset, dpms and pageflips

2x-flip-vs-rmfb-interruptible

Interrupt test for validating modeset, dpms and pageflips with pair of connected displays

flip-vs-panning-interruptible

Interrupt test for validating modeset, dpms and pageflips

2x-flip-vs-panning-interruptible

Interrupt test for validating modeset, dpms and pageflips with pair of connected displays

flip-vs-expired-vblank-interruptible

Interrupt test for validating modeset, dpms and pageflips

2x-flip-vs-expired-vblank-interruptible

Interrupt test for validating modeset, dpms and pageflips with pair of connected displays

flip-vs-absolute-wf_vblank-interruptible

Interrupt test for validating modeset, dpms and pageflips

2x-flip-vs-absolute-wf_vblank-interruptible

Interrupt test for validating modeset, dpms and pageflips with pair of connected displays

flip-vs-wf_vblank-interruptible

Interrupt test for validating modeset, dpms and pageflips

2x-flip-vs-wf_vblank-interruptible

Interrupt test for validating modeset, dpms and pageflips with pair of connected displays

flip-vs-dpms-off-vs-modeset-interruptible

Interrupt test for validating modeset, dpms and pageflips

2x-flip-vs-dpms-off-vs-modeset-interruptible

Interrupt test for validating modeset, dpms and pageflips with pair of connected displays

single-buffer-flip-vs-dpms-off-vs-modeset-interruptible

Interrupt test for validating modeset, dpms and pageflips

2x-single-buffer-flip-vs-dpms-off-vs-modeset-interruptible

Interrupt test for validating modeset, dpms and pageflips with pair of connected displays

dpms-off-confusion-interruptible

Interrupt test for validating modeset, dpms and pageflips

nonexisting-fb-interruptible

Interrupt test for validating modeset, dpms and pageflips

2x-nonexisting-fb-interruptible

Interrupt test for validating modeset, dpms and pageflips with pair of connected displays

dpms-vs-vblank-race-interruptible

Interrupt test for validating modeset, dpms and pageflips

2x-dpms-vs-vblank-race-interruptible

Interrupt test for validating modeset, dpms and pageflips with pair of connected displays

modeset-vs-vblank-race-interruptible

Interrupt test for validating modeset, dpms and pageflips

2x-modeset-vs-vblank-race-interruptible

Interrupt test for validating modeset, dpms and pageflips with pair of connected displays

bo-too-big-interruptible

Interrupt test for validating modeset, dpms and pageflips

flip-vs-suspend-interruptible

Interrupt test for validating modeset, dpms and pageflips

2x-flip-vs-suspend-interruptible

Interrupt test for validating modeset, dpms and pageflips with pair of connected displays


kms_flip_event_leak

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

basic

NO DOCUMENTATION!


kms_force_connector_basic

Check the debugfs force connector/edid features work correctly.

force-load-detect

Test to detect forced load.

force-connector-state

Test to check the forced connector state.

force-edid

Test to check the values after forcing edid.

prune-stale-modes

Tests pruning of stale modes.


kms_getfb

Tests GETFB and GETFB2 ioctls.

getfb-handle-zero

Tests error handling for a zero'd input.

getfb-handle-valid

Tests error handling when passing an valid handle.

getfb-handle-closed

Tests error handling when passing a handle that has been closed.

getfb-handle-not-fb

Tests error handling when passing an invalid handle.

getfb-addfb-different-handles

Tests error handling while requesting for two different handles from same fd.

getfb-repeated-different-handles

Tests error handling while requesting for two different handles from different fd.

getfb-reject-ccs

Tests error handling while requesting CCS buffers it should refuse because getfb supports returning a single buffer handle.

getfb2-handle-zero

Tests error handling for a zero'd input.

getfb2-handle-closed

Tests error handling when passing a handle that has been closed.

getfb2-handle-not-fb

Tests error handling when passing an invalid handle.

getfb2-accept-ccs

Tests outputs are correct when retrieving a CCS framebuffer.

getfb2-into-addfb2

Output check by passing the output of GETFB2 into ADDFB2.

getfb-handle-protection

Make sure GETFB doesn't return handles if caller is non-root or non-master.

getfb2-handle-protection

Make sure GETFB2 doesn't return handles if caller is non-root or non-master.


kms_hdmi_inject

Test that in-kernel EDID parsing is producing expected results by forcing a HDMI connectorwith a known EDID and checking that the metadata exposed to user space matches.

inject-4k

Make sure that 4K modes exposed by DRM match the forced EDID and modesetting using it succeed.

inject-audio

Make sure that audio information exposed by ALSA match the forced EDID.


kms_hdr

Test HDR metadata interfaces and bpc switch

bpc-switch

Tests switching between different display output bpc modes

bpc-switch-dpms

Tests bpc switch with dpms

bpc-switch-suspend

Tests bpc switch with suspend

static-toggle

Tests entering and exiting HDR mode

static-toggle-dpms

Tests static toggle with dpms

static-toggle-suspend

Tests static toggle with suspend

brightness-with-hdr

Tests brightness while in HDR mode

static-swap

Tests swapping static HDR metadata

invalid-metadata-sizes

Tests invalid HDR metadata sizes

invalid-hdr

Test to ensure HDR is not enabled on non-HDR panel


kms_invalid_mode

Make sure all modesets are rejected when the requested mode is invalid

clock-too-high

Make sure all modesets are rejected when the requested mode is invalid

zero-clock

NO DOCUMENTATION!

int-max-clock

NO DOCUMENTATION!

uint-max-clock

NO DOCUMENTATION!

zero-hdisplay

NO DOCUMENTATION!

zero-vdisplay

NO DOCUMENTATION!

bad-hsync-start

NO DOCUMENTATION!

bad-vsync-start

NO DOCUMENTATION!

bad-hsync-end

NO DOCUMENTATION!

bad-vsync-end

NO DOCUMENTATION!

bad-htotal

NO DOCUMENTATION!

bad-vtotal

NO DOCUMENTATION!


kms_lease

Test of CreateLease.

simple-lease

Check if create lease ioctl call works

empty-lease

Check that creating an empty lease works

lessee-list

Check if listed lease is same as created one

lease-get

Tests getting the required contents of a lease

lease-unleased-connector

Negative test by trying to use an unleased connector

lease-unleased-crtc

Negative test by trying to use an unleased crtc

lease-revoke

Tests revocation of lease

lease-again

Tests leasing objects more than once

lease-invalid-connector

Tests leasing an invalid connector

lease-invalid-crtc

Tests leasing an invalid crtc

lease-invalid-plane

Tests leasing an invalid plane

page-flip-implicit-plane

Negative test by using a non-primary plane with the page flip ioctl

setcrtc-implicit-plane

Negative test by using a non-primary plane with the setcrtc ioctl

cursor-implicit-plane

Negative test by using a non-primary plane with setcursor ioctl

atomic-implicit-crtc

Negative test by using a different crtc with atomic ioctl

invalid-create-leases

Tests error handling while creating invalid corner-cases for create-lease ioctl

possible-crtcs-filtering

Tests that possible_crtcs logically match between master and lease, and that the values are correctly renumbered on the lease side.

master-vs-lease

Tests the drop/set_master interactions.

multimaster-lease

Tests that the 2nd master can only create leases while being active master, and that leases on the first master don't prevent lease creation for the 2nd master.

implicit-plane-lease

Tests the implicitly added planes.

lease-uevent

Tests all the uevent cases


kms_multipipe_modeset

Test simultaneous modeset on all the supported pipes

basic-max-pipe-crc-check

Verify if simultaneous modesets on all the supported pipes is successful. Validate using CRC verification


kms_panel_fitting

Test display panel fitting

legacy

Tests panel fitting usages with legacy style commit.

atomic-fastset

Tests panel fitting usages with atomic fastset.


kms_pipe_crc_basic

bad-source

Tests error handling when the bad source is set.

read-crc

Test for pipe CRC reads.

read-crc-frame-sequence

Tests the pipe CRC read and ensure frame sequence.

nonblocking-crc

Test for O_NONBLOCK CRC reads.

nonblocking-crc-frame-sequence

Test for O_NONBLOCK CRC reads and ensure frame sequence.

suspend-read-crc

Suspend test for pipe CRC reads.

hang-read-crc

Hang test for pipe CRC read.

disable-crc-after-crtc

Check that disabling CRCs on a CRTC after having disabled the CRTC does not cause issues.

compare-crc-sanitycheck-xr24

Basic sanity check for CRC mismatches with XR24 format

compare-crc-sanitycheck-nv12

Basic sanity check for CRC mismatches with NV12 format


kms_plane

pixel-format

verify the pixel formats for given plane and pipe

pixel-format-source-clamping

verify the pixel formats for given plane and pipe with source clamping

plane-position-covered

verify plane position using two planes to create a fully covered screen

plane-position-hole

verify plane position using two planes to create a partially covered screen

plane-position-hole-dpms

verify plane position using two planes to create a partially covered screen andcheck for DPMS

plane-panning-top-left

verify plane panning at top-left position using primary plane

plane-panning-bottom-right

verify plane panning at bottom-right position using primary plane

plane-panning-bottom-right-suspend

verify plane panning at bottom-right position using primary plane and executes systemsuspend cycles

planar-pixel-format-settings

verify planar settings for pixel format are accepted or rejected correctly


kms_plane_alpha_blend

Test plane alpha and blending mode properties

alpha-basic

Tests basic plane alpha properties.

alpha-7efc

Uses alpha values 0x7e and 0xfc to validate fg.alpha and plane_alpha are swappable on pre-multiplied blend mode.

coverage-7efc

Uses alpha values 0x7e and 0xfc to validate fg.alpha and plane_alpha are swappable on coverage blend mode.

coverage-vs-premult-vs-constant

Tests pipe coverage blending properties.

alpha-transparent-fb

Tests the alpha property with transparent fb.

alpha-opaque-fb

Tests alpha properties with opaque fb.

constant-alpha-min

Tests plane alpha and blending properties with minimum alpha value.

constant-alpha-mid

Tests plane alpha and blending properties with medium alpha value.

constant-alpha-max

Tests plane alpha and blending properties with maximum alpha value.


kms_plane_cursor

primary

Tests atomic cursor positioning on primary plane

overlay

Tests atomic cursor positioning on primary plane and overlay plane

viewport

Tests atomic cursor positioning on primary plane and overlay plane with buffer larger than viewport used for display


kms_plane_lowres

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

tiling-none

Tests the visibility of the planes when switching between high and low resolution with tiling-none

tiling-x

Tests the visibility of the planes when switching between high and low resolution with tiling-x

tiling-y

Tests the visibility of the planes when switching between high and low resolution with tiling-y

tiling-yf

Tests the visibility of the planes when switching between high and low resolution with tiling-yf

tiling-4

Tests the visibility of the planes when switching between high and low resolution with tiling-4


kms_plane_multiple

Test atomic mode setting with multiple planes.

tiling-none

Check that the kernel handles atomic updates of multiple planes correctly by changing their geometry and making sure the changes are reflected immediately after each commit.

tiling-x

Check that the kernel handles atomic updates of multiple planes correctly by changing their geometry and making sure the changes are reflected immediately after each commit.

tiling-y

Check that the kernel handles atomic updates of multiple planes correctly by changing their geometry and making sure the changes are reflected immediately after each commit.

tiling-yf

Check that the kernel handles atomic updates of multiple planes correctly by changing their geometry and making sure the changes are reflected immediately after each commit.

tiling-4

Check that the kernel handles atomic updates of multiple planes correctly by changing their geometry and making sure the changes are reflected immediately after each commit.


kms_plane_scaling

Test display plane scaling

plane-upscale-20x20-with-pixel-format

Tests upscaling with pixel formats, from 20x20 fb.

plane-upscale-factor-0-25-with-pixel-format

Tests upscaling with pixel formats for 0.25 scaling factor.

plane-downscale-factor-0-25-with-pixel-format

Tests downscaling with pixel formats for 0.25 scaling factor.

plane-downscale-factor-0-5-with-pixel-format

Tests downscaling with pixel formats for 0.5 scaling factor.

plane-downscale-factor-0-75-with-pixel-format

Tests downscaling with pixel formats for 0.75 scaling factor.

plane-scaler-unity-scaling-with-pixel-format

Tests scaling with pixel formats, unity scaling.

plane-upscale-20x20-with-rotation

Tests upscaling with rotation, from 20x20 fb.

plane-upscale-factor-0-25-with-rotation

Tests upscaling with rotation for 0.25 scaling factor.

plane-downscale-factor-0-25-with-rotation

Tests downscaling with rotation for 0.25 scaling factor.

plane-downscale-factor-0-5-with-rotation

Tests downscaling with rotation for 0.5 scaling factor.

plane-downscale-factor-0-75-with-rotation

Tests downscaling with rotation for 0.75 scaling factor.

plane-scaler-unity-scaling-with-rotation

Tests scaling with rotation, unity scaling.

plane-upscale-20x20-with-modifiers

Tests upscaling with modifiers, from 20x20 fb.

plane-upscale-factor-0-25-with-modifiers

Tests upscaling with modifiers for 0.25 scaling factor.

plane-downscale-factor-0-25-with-modifiers

Tests downscaling with modifiers for 0.25 scaling factor.

plane-downscale-factor-0-5-with-modifiers

Tests downscaling with modifiers for 0.5 scaling factor.

plane-downscale-factor-0-75-with-modifiers

Tests downscaling with modifiers for 0.75 scaling factor.

plane-scaler-unity-scaling-with-modifiers

Tests scaling with modifiers, unity scaling.

plane-scaler-with-clipping-clamping-pixel-formats

Tests scaling with clipping and clamping, pixel formats.

plane-scaler-with-clipping-clamping-rotation

Tests scaling with clipping and clamping, rotation.

plane-scaler-with-clipping-clamping-modifiers

Tests scaling with clipping and clamping, modifiers.

planes-upscale-20x20

Tests upscaling of 2 planes, from 20x20 fb.

planes-upscale-factor-0-25

Tests upscaling of 2 planes for 0.25 scaling factor.

planes-scaler-unity-scaling

Tests scaling of 2 planes, unity scaling.

planes-downscale-factor-0-25

Tests downscaling of 2 planes for 0.25 scaling factor.

planes-downscale-factor-0-5

Tests downscaling of 2 planes for 0.5 scaling factor.

planes-downscale-factor-0-75

Tests downscaling of 2 planes for 0.75 scaling factor.

planes-upscale-20x20-downscale-factor-0-25

Tests upscaling (20x20) and downscaling (scaling factor 0.25) of 2 planes.

planes-upscale-20x20-downscale-factor-0-5

Tests upscaling (20x20) and downscaling (scaling factor 0.5) of 2 planes.

planes-upscale-20x20-downscale-factor-0-75

Tests upscaling (20x20) and downscaling (scaling factor 0.75) of 2 planes.

planes-upscale-factor-0-25-downscale-factor-0-25

Tests upscaling (scaling factor 0.25) and downscaling (scaling factor 0.25) of 2 planes.

planes-upscale-factor-0-25-downscale-factor-0-5

Tests upscaling (scaling factor 0.25) and downscaling (scaling factor 0.5) of 2 planes.

planes-upscale-factor-0-25-downscale-factor-0-75

Tests upscaling (scaling factor 0.25) and downscaling (scaling factor 0.75) of 2 planes.

planes-unity-scaling-downscale-factor-0-25

Tests scaling (unity) and downscaling (scaling factor 0.25) of 2 planes.

planes-unity-scaling-downscale-factor-0-5

Tests scaling (unity) and downscaling (scaling factor 0.5) of 2 planes.

planes-unity-scaling-downscale-factor-0-75

Tests scaling (unity) and downscaling (scaling factor 0.75) of 2 planes.

planes-downscale-factor-0-25-upscale-20x20

Tests downscaling (scaling factor 0.25) and upscaling (20x20) of 2 planes.

planes-downscale-factor-0-25-upscale-factor-0-25

Tests downscaling (scaling factor 0.25) and upscaling (scaling factor 0.25) of 2 planes.

planes-downscale-factor-0-25-unity-scaling

Tests downscaling (scaling factor 0.25) and scaling (unity) of 2 planes.

planes-downscale-factor-0-5-upscale-20x20

Tests downscaling (scaling factor 0.5) and upscaling (20x20) of 2 planes.

planes-downscale-factor-0-5-upscale-factor-0-25

Tests downscaling (scaling factor 0.5) and upscaling (scaling factor 0.25) of 2 planes.

planes-downscale-factor-0-5-unity-scaling

Tests downscaling (scaling factor 0.5) and scaling (unity) of 2 planes.

planes-downscale-factor-0-75-upscale-20x20

Tests downscaling (scaling factor 0.75) and upscaling (20x20) of 2 planes.

planes-downscale-factor-0-75-upscale-factor-0-25

Tests downscaling (scaling factor 0.75) and upscaling (scaling factor 0.25) of 2 planes.

planes-downscale-factor-0-75-unity-scaling

Tests downscaling (scaling factor 0.75) and scaling (unity) of 2 planes.

intel-max-src-size

Test for validating max source size.

invalid-num-scalers

Negative test for number of scalers per pipe.

invalid-parameters

test parameters which should not be accepted

2x-scaler-multi-pipe

Tests scaling with multi-pipe.


kms_prime

Prime tests, focusing on KMS side

basic-crc-hybrid

Hybrid GPU subtests Hybrid GPU: Make a dumb color buffer, export to another device and compare the CRCs with a buffer native to that device

basic-modeset-hybrid

Hybrid GPU subtests Basic modeset on the one device when the other device is active

D3hot

Hybrid GPU subtests Validate pci state of dGPU when dGPU is idle and scanout is on iGPU

basic-crc-vgem

VGEM subtests Make a dumb color buffer, export to another device and compare the CRCs with a buffer native to that device


kms_prop_blob

Tests behaviour of mass-data 'blob' properties.

basic

Test to ensure property support exists.

blob-prop-core

Tests error handling when invalid property IDs are passed.

blob-prop-validate

Tests error handling when incorrect blob size is passed.

blob-prop-lifetime

Tests validates the lifetime of the properties created.

blob-multiple

Test validates destroying multiple properties explicitly works as needed.

invalid-get-prop-any

Tests error handling when invalid properties are fetched with object of any type.

invalid-get-prop

Tests error handling when invalid properties are fetched with blob object type.

invalid-set-prop-any

Tests error handling when invalid properties are set with object of any type.

invalid-set-prop

Tests error handling when invalid properties are set with blob object type.


kms_properties

plane-properties-legacy

Tests plane properties with legacy commit

plane-properties-atomic

Tests plane properties with atomic commit

crtc-properties-legacy

Tests crtc properties with legacy commit

crtc-properties-atomic

Tests crtc properties with atomic commit

connector-properties-legacy

Tests connector properties with legacy commit

connector-properties-atomic

Tests connector properties with atomic commit

invalid-properties-legacy

Checks each property of any type with combination of mode object with legacy commit and make sure only valid properties are set to mode object else return with relevant error

invalid-properties-atomic

Checks each property of any type with combination of mode object with atomic commit and make sure only valid properties are set to mode object else return with relevant error

get_properties-sanity-non-atomic

Test validates the properties of all planes, crtc and connectors with legacy commit

get_properties-sanity-atomic

Test validates the properties of all planes, crtc and connectors with atomic commit


kms_rmfb

This tests rmfb and close-fd behavior. In these cases the framebuffers should be removed fromthe crtc.

rmfb-ioctl

Kernel driver is supposed to free the framebuffers from any and all planes when DRM_IOCTL_MODE_RMFB ioctl is called. Ensure that is the case.

close-fd

Kernel driver is supposed to free the framebuffers from any and all planes when the fd is closed. Ensure that is the case by closing and re-opening it


kms_rotation_crc

primary-rotation-90

Rotation test with 90/270 degree for primary and sprite planes of gen9+

primary-rotation-180

NO DOCUMENTATION!

primary-rotation-270

NO DOCUMENTATION!

sprite-rotation-90

NO DOCUMENTATION!

sprite-rotation-180

NO DOCUMENTATION!

sprite-rotation-270

NO DOCUMENTATION!

cursor-rotation-180

NO DOCUMENTATION!

sprite-rotation-90-pos-100-0

Rotation test with 90 degree for a plane of gen9+ with given position

bad-pixel-format

Checking unsupported pixel format for gen9+ with 90 degree of rotation

bad-tiling

Checking unsupported tiling for gen9+ with 90 degree of rotation

primary-x-tiled-reflect-x-0

Tiling and Rotation test for gen 10+ for primary plane

primary-x-tiled-reflect-x-180

NO DOCUMENTATION!

primary-y-tiled-reflect-x-0

NO DOCUMENTATION!

primary-y-tiled-reflect-x-90

NO DOCUMENTATION!

primary-y-tiled-reflect-x-180

NO DOCUMENTATION!

primary-y-tiled-reflect-x-270

NO DOCUMENTATION!

primary-yf-tiled-reflect-x-0

NO DOCUMENTATION!

primary-yf-tiled-reflect-x-90

NO DOCUMENTATION!

primary-yf-tiled-reflect-x-180

NO DOCUMENTATION!

primary-yf-tiled-reflect-x-270

NO DOCUMENTATION!

primary-4-tiled-reflect-x-0

NO DOCUMENTATION!

primary-4-tiled-reflect-x-180

NO DOCUMENTATION!

multiplane-rotation

Rotation test on both planes by making them fully visible

multiplane-rotation-cropping-top

Rotation test on both planes by cropping left/top corner of primary plane andright/top corner of sprite plane

multiplane-rotation-cropping-bottom

Rotation test on both planes by cropping left/bottom corner of primary planeand right/bottom corner of sprite plane

exhaust-fences

This test intends to check for fence leaks exhaustively


kms_scaling_modes

Test display scaling modes

scaling-mode-full

Tests full display scaling mode

scaling-mode-center

Tests center display scaling mode

scaling-mode-full-aspect

Tests full aspect display scaling mode

scaling-mode-none

Tests none display scaling mode (no scaling)


kms_selftest

Basic sanity check of KMS selftests.

drm_cmdline_parser

NO DOCUMENTATION!

drm_damage_helper

NO DOCUMENTATION!

drm_dp_mst_helper

NO DOCUMENTATION!

drm_format_helper

NO DOCUMENTATION!

drm_format

NO DOCUMENTATION!

drm_framebuffer

NO DOCUMENTATION!

drm_plane_helper

NO DOCUMENTATION!


kms_sequence

Test CrtcGetSequence and CrtcQueueSequence.

get-idle

This is a test of drmCrtcGetSequence and drmCrtcQueueSequence

get-forked

This is a test of drmCrtcGetSequence and drmCrtcQueueSequence

get-busy

This is a test of drmCrtcGetSequence and drmCrtcQueueSequence

get-forked-busy

This is a test of drmCrtcGetSequence and drmCrtcQueueSequence

queue-idle

This is a test of drmCrtcGetSequence and drmCrtcQueueSequence

queue-busy

This is a test of drmCrtcGetSequence and drmCrtcQueueSequence


kms_setmode

basic

Tests the mode by iterating through all valid/invalid crtc/connector combinations

basic-clone-single-crtc

Tests the mode by iterating through all valid/invalid crtc/connector combinations

invalid-clone-single-crtc

Tests the mode by iterating through all valid/invalid crtc/connector combinations

invalid-clone-exclusive-crtc

Tests the mode by iterating through all valid/invalid crtc/connector combinations

clone-exclusive-crtc

Tests the mode by iterating through all valid/invalid crtc/connector combinations

invalid-clone-single-crtc-stealing

Tests the mode by iterating through all valid/invalid crtc/connector combinations


kms_sysfs_edid_timing

This test checks the time it takes to reprobe each connector and fails if either the time it takesfor one reprobe is too long or if the mean time it takes to reprobe one connector is too long. Additionally, make sure that the mean time for all connectors is not too long.


kms_tiled_display

Test for genlocked CRTCs with tiled displays

basic-test-pattern

Make sure the Tiled CRTCs are synchronized and we get page flips for all tiled CRTCs in one vblank.

basic-test-pattern-with-chamelium

Make sure the Tiled CRTCs are synchronized and we get page flips for all tiled CRTCs in one vblank (executes on chamelium).


kms_tv_load_detect

Check tv load detection works correctly.

load-detect

Check tv load detection works correctly.


kms_universal_plane

universal-plane-functional

Check the switching between different primary plane fbs with CRTC off

universal-plane-sanity

Test for scale-up or scale-down using universal plane API without covering CRTC

disable-primary-vs-flip

Check pageflips while primary plane is disabled before IOCTL or between IOCTL and pageflip execution

cursor-fb-leak

Check for cursor leaks after performing cursor operations

universal-plane-pageflip-windowed

Check if pageflip succeeds in windowed setting


kms_vblank

Test speed of WaitVblank.

invalid

Negative test for vblank request.

crtc-id

Check the vblank and flip events works with given crtc id.

accuracy-idle

Check if test run while hanging by introducing NOHANG flag.

query-idle

Check if test run while hanging by introducing NOHANG flag.

query-idle-hang

Check if injected hang is working properly.

query-forked

Check if test run while hanging by introducing NOHANG flag.

query-forked-hang

Check if injected hang is working properly.

query-busy

Check if test run while hanging by introducing NOHANG flag.

query-busy-hang

Check if injected hang is working properly.

query-forked-busy

Check if test run while hanging by introducing NOHANG flag.

query-forked-busy-hang

Check if injected hang is working properly.

wait-idle

Check if test run while hanging by introducing NOHANG flag.

wait-idle-hang

Check if injected hang is working properly.

wait-forked

Check if test run while hanging by introducing NOHANG flag.

wait-forked-hang

Check if injected hang is working properly.

wait-busy

Check if test run while hanging by introducing NOHANG flag.

wait-busy-hang

Check if injected hang is working properly.

wait-forked-busy

Check if test run while hanging by introducing NOHANG flag.

wait-forked-busy-hang

Check if injected hang is working properly.

ts-continuation-idle

Check if test run while hanging by introducing NOHANG flag.

ts-continuation-idle-hang

Check if injected hang is working properly.

ts-continuation-dpms-rpm

Check if test run while hanging by introducing NOHANG flag.

ts-continuation-dpms-suspend

Check if test run while hanging by introducing NOHANG flag.

ts-continuation-suspend

Check if test run while hanging by introducing NOHANG flag.

ts-continuation-modeset

Check if test run while hanging by introducing NOHANG flag.

ts-continuation-modeset-hang

Check if injected hang is working properly.

ts-continuation-modeset-rpm

Check if test run while hanging by introducing NOHANG flag.


kms_vrr

flip-basic

Tests that VRR is enabled and that the difference between flip timestamps converges to the requested rate

flip-dpms

Tests with DPMS that VRR is enabled and that the difference between flip timestamps converges to the requested rate.

flip-suspend

Tests that VRR is enabled and that the difference between flip timestamps converges to the requested rate in a suspend test

flipline

Make sure that flips happen at flipline decision boundary.

negative-basic

Make sure that VRR should not be enabled on the Non-VRR panel.

max-min

Oscillates between highest and lowest refresh each frame for manual flicker profiling

seamless-rr-switch-vrr

Test to switch RR seamlessly without modeset.

seamless-rr-switch-drrs

Test to switch RR seamlessly without modeset.

flip-basic-fastset

Tests that VRR is enabled without modeset and that the difference between flip timestamps converges to the requested rate

seamless-rr-switch-virtual

Test to switch to any custom virtual mode in VRR range without modeset.

cmrr

Test to validate the content rate exactly matches with the requested rate without any frame drops.

lobf

Test to validate the link-off between active frames in non-PSR operation.


kms_writeback

This test validates the expected behavior of the writeback connectors feature by checking ifthe target device support writeback; it validates bad and good combination, check colorformat, and check the output result by using CRC.

writeback-pixel-formats

Check the writeback format

writeback-invalid-parameters

Writeback has a couple of parameters linked together(output framebuffer and fence); this test goes throughthe combination of possible bad options

writeback-fb-id

Validate WRITEBACK_FB_ID with valid and invalid options

writeback-fb-id-XRGB2101010

Validate XRGB2101010 WRITEBACK_FB_ID with valid and invalid options

writeback-check-output

Check writeback output with CRC validation

writeback-check-output-XRGB2101010

Check XRGB2101010 writeback output with CRC validation


kms_big_fb

Test big framebuffers

More than 100 subtests, skipping listing


kms_busy

Basic check of KMS ABI with busy framebuffers.

basic

Test for basic check of KMS ABI with busy framebuffers.

basic-hang

NO DOCUMENTATION!

extended-pageflip-modeset-hang-oldfb

NO DOCUMENTATION!

extended-pageflip-hang-oldfb

NO DOCUMENTATION!

extended-pageflip-hang-newfb

NO DOCUMENTATION!

extended-modeset-hang-oldfb

NO DOCUMENTATION!

extended-modeset-hang-newfb

NO DOCUMENTATION!

extended-modeset-hang-oldfb-with-reset

NO DOCUMENTATION!

extended-modeset-hang-newfb-with-reset

NO DOCUMENTATION!


kms_ccs

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

More than 100 subtests, skipping listing


kms_cdclk

Test cdclk features : crawling and squashing

plane-scaling

Plane scaling test to validate cdclk frequency change.

mode-transition

Mode transition (low to high) test to validate cdclk frequency change.

mode-transition-all-outputs

Mode transition (low to high) test to validate cdclk frequency change by simultaneous modesets on all pipes with valid outputs.


kms_dirtyfb

Test the DIRTYFB ioctl is working properly with its related features: FBC, PSR and DRRS

default-dirtyfb-ioctl

Test dirtyFB ioctl with default

drrs-dirtyfb-ioctl

Test dirtyFB ioctl with drrs

fbc-dirtyfb-ioctl

Test dirtyFB ioctl with fbc

psr-dirtyfb-ioctl

Test dirtyFB ioctl with psr


kms_dp_linktrain_fallback

Test link training fallback

dp-fallback

NO DOCUMENTATION!


kms_draw_crc

draw-method-mmap-cpu

Verify that igt draw library works for the draw method (mmap-cpu) with different modifiers & DRM formats.

draw-method-mmap-gtt

Verify that igt draw library works for the draw method (mmap-gtt) with different modifiers & DRM formats.

draw-method-mmap-wc

Verify that igt draw library works for the draw method (mmap-wc) with different modifiers & DRM formats.

draw-method-pwrite

Verify that igt draw library works for the draw method (pwrite) with different modifiers & DRM formats.

draw-method-blt

Verify that igt draw library works for the draw method (blt) with different modifiers & DRM formats.

draw-method-render

Verify that igt draw library works for the draw method (render) with different modifiers & DRM formats.

fill-fb

This subtest verifies CRC after filling fb with x-tiling or none.


kms_dsc

Test to validate display stream compression

dsc-basic

Tests basic display stream compression functionality if supported by a connector by forcing DSC on all connectors that support it with default parameters

dsc-with-formats

Tests basic display stream compression functionality if supported by a connector by forcing DSC on all connectors that support it with default parameters and creating fb with diff formats

dsc-with-bpc

Tests basic display stream compression functionality if supported by a connector by forcing DSC on all connectors that support it with certain input BPC for the connector

dsc-with-bpc-formats

Tests basic display stream compression functionality if supported by a connector by forcing DSC on all connectors that support it with certain input BPC for the connector with diff formats

dsc-with-output-formats

Tests basic display stream compression functionality if supported by a connector by forcing DSC and output format on all connectors that support it

dsc-with-output-formats-with-bpc

Tests basic display stream compression functionality if supported by a connector by forcing DSC and output format on all connectors that support it with certain input BPC for the connector

dsc-fractional-bpp

Tests fractional compressed bpp functionality if supported by a connector by forcing fractional_bpp on all connectors that support it with default parameter. While finding the optimum compressed bpp, driver will skip over the compressed bpps with integer values. It will go ahead with DSC, iff compressed bpp is fractional, failing in which, it will fail the commit.

dsc-fractional-bpp-with-bpc

Tests fractional compressed bpp functionality if supported by a connector by forcing fractional_bpp on all connectors that support it with certain input BPC for the connector.


kms_fb_coherency

memset-crc

NO DOCUMENTATION!


kms_fbcon_fbt

Test the relationship between fbcon and the frontbuffer tracking infrastructure.

fbc

Test the relationship between fbcon and the frontbuffer tracking infrastructure with fbc enabled.

psr

Test the relationship between fbcon and the frontbuffer tracking infrastructure with psr enabled.

fbc-suspend

Suspend test to validate the relationship between fbcon and the frontbuffer tracking infrastructure with fbc enabled.

psr-suspend

Suspend test to validate the relationship between fbcon and the frontbuffer tracking infrastructure with psr enabled.


kms_fence_pin_leak

Exercises full ppgtt fence pin_count leak in the kernel.


kms_flip_scaled_crc

Test flipping between scaled/nonscaled framebuffers

flip-32bpp-ytile-to-64bpp-ytile-downscaling

Flip from 32bpp non scaled fb to 64bpp downscaled fb to stress CD clock programming

flip-32bpp-yftile-to-64bpp-yftile-downscaling

Flip from 32bpp non scaled fb to 64bpp downscaled fb to stress CD clock programming

flip-32bpp-xtile-to-64bpp-xtile-downscaling

Flip from 32bpp non scaled fb to 64bpp downscaled fb to stress CD clock programming

flip-32bpp-4tile-to-64bpp-4tile-downscaling

Flip from 32bpp non scaled fb to 64bpp downscaled fb to stress CD clock programming

flip-32bpp-linear-to-64bpp-linear-downscaling

Flip from 32bpp non scaled fb to 64bpp downscaled fb to stress CD clock programming

flip-64bpp-ytile-to-32bpp-ytile-downscaling

Flip from 64bpp non scaled fb to 32bpp downscaled fb to stress CD clock programming

flip-64bpp-yftile-to-32bpp-yftile-downscaling

Flip from 64bpp non scaled fb to 32bpp downscaled fb to stress CD clock programming

flip-64bpp-xtile-to-32bpp-xtile-downscaling

Flip from 64bpp non scaled fb to 32bpp downscaled fb to stress CD clock programming

flip-64bpp-4tile-to-32bpp-4tile-downscaling

Flip from 64bpp non scaled fb to 32bpp downscaled fb to stress CD clock programming

flip-64bpp-linear-to-32bpp-linear-downscaling

Flip from 64bpp non scaled fb to 32bpp downscaled fb to stress CD clock programming

flip-64bpp-ytile-to-16bpp-ytile-downscaling

Flip from 64bpp non scaled fb to 16bpp downscaled fb to stress CD clock programming

flip-64bpp-yftile-to-16bpp-yftile-downscaling

Flip from 64bpp non scaled fb to 16bpp downscaled fb to stress CD clock programming

flip-64bpp-xtile-to-16bpp-xtile-downscaling

Flip from 64bpp non scaled fb to 16bpp downscaled fb to stress CD clock programming

flip-64bpp-4tile-to-16bpp-4tile-downscaling

Flip from 64bpp non scaled fb to 16bpp downscaled fb to stress CD clock programming

flip-64bpp-linear-to-16bpp-linear-downscaling

Flip from 64bpp non scaled fb to 16bpp downscaled fb to stress CD clock programming

flip-32bpp-ytileccs-to-64bpp-ytile-downscaling

Flip from 32bpp non scaled fb to 64bpp downscaled fb to stress CD clock programming

flip-32bpp-yftileccs-to-64bpp-yftile-downscaling

Flip from 32bpp non scaled fb to 64bpp downscaled fb to stress CD clock programming

flip-32bpp-ytile-to-32bpp-ytilegen12rcccs-downscaling

Flip from 32bpp non scaled fb to 32bpp downscaled fb to stress CD clock programming

flip-32bpp-4tile-to-32bpp-4tiledg2rcccs-downscaling

Flip from 32bpp non scaled fb to 32bpp downscaled fb to stress CD clock programming

flip-32bpp-ytile-to-32bpp-ytileccs-downscaling

Flip from 32bpp non scaled fb to 32bpp downscaled fb to stress CD clock programming

flip-32bpp-yftile-to-32bpp-yftileccs-downscaling

Flip from 32bpp non scaled fb to 32bpp downscaled fb to stress CD clock programming

flip-64bpp-ytile-to-32bpp-ytilercccs-downscaling

Flip from 64bpp non scaled fb to 32bpp downscaled fb to stress CD clock programming

flip-64bpp-4tile-to-32bpp-4tiledg2rcccs-downscaling

Flip from 64bpp non scaled fb to 32bpp downscaled fb to stress CD clock programming

flip-32bpp-ytile-to-64bpp-ytile-upscaling

Flip from 32bpp non scaled fb to 64bpp upscaled fb to stress CD clock programming

flip-32bpp-yftile-to-64bpp-yftile-upscaling

Flip from 32bpp non scaled fb to 64bpp upscaled fb to stress CD clock programming

flip-32bpp-xtile-to-64bpp-xtile-upscaling

Flip from 32bpp non scaled fb to 64bpp upscaled fb to stress CD clock programming

flip-32bpp-4tile-to-64bpp-4tile-upscaling

Flip from 32bpp non scaled fb to 64bpp upscaled fb to stress CD clock programming

flip-32bpp-linear-to-64bpp-linear-upscaling

Flip from 32bpp non scaled fb to 64bpp upscaled fb to stress CD clock programming

flip-64bpp-ytile-to-32bpp-ytile-upscaling

Flip from 64bpp non scaled fb to 32bpp upscaled fb to stress CD clock programming

flip-64bpp-yftile-to-32bpp-yftile-upscaling

Flip from 64bpp non scaled fb to 32bpp upscaled fb to stress CD clock programming

flip-64bpp-xtile-to-32bpp-xtile-upscaling

Flip from 64bpp non scaled fb to 32bpp upscaled fb to stress CD clock programming

flip-64bpp-4tile-to-32bpp-4tile-upscaling

Flip from 64bpp non scaled fb to 32bpp upscaled fb to stress CD clock programming

flip-64bpp-linear-to-32bpp-linear-upscaling

Flip from 64bpp non scaled fb to 32bpp upscaled fb to stress CD clock programming

flip-64bpp-ytile-to-16bpp-ytile-upscaling

Flip from 64bpp non scaled fb to 16bpp upscaled fb to stress CD clock programming

flip-64bpp-yftile-to-16bpp-yftile-upscaling

Flip from 64bpp non scaled fb to 16bpp upscaled fb to stress CD clock programming

flip-64bpp-xtile-to-16bpp-xtile-upscaling

Flip from 64bpp non scaled fb to 16bpp upscaled fb to stress CD clock programming

flip-64bpp-4tile-to-16bpp-4tile-upscaling

Flip from 64bpp non scaled fb to 16bpp upscaled fb to stress CD clock programming

flip-64bpp-linear-to-16bpp-linear-upscaling

Flip from 64bpp non scaled fb to 16bpp upscaled fb to stress CD clock programming

flip-32bpp-ytileccs-to-64bpp-ytile-upscaling

Flip from 32bpp non scaled fb to 64bpp upscaled fb to stress CD clock programming

flip-32bpp-yftileccs-to-64bpp-yftile-upscaling

Flip from 32bpp non scaled fb to 64bpp upscaled fb to stress CD clock programming

flip-32bpp-ytile-to-32bpp-ytilegen12rcccs-upscaling

Flip from 32bpp non scaled fb to 32bpp upscaled fb to stress CD clock programming

flip-32bpp-4tile-to-32bpp-4tiledg2rcccs-upscaling

Flip from 32bpp non scaled fb to 32bpp upscaled fb to stress CD clock programming

flip-32bpp-ytile-to-32bpp-ytileccs-upscaling

Flip from 32bpp non scaled fb to 32bpp upscaled fb to stress CD clock programming

flip-32bpp-yftile-to-32bpp-yftileccs-upscaling

Flip from 32bpp non scaled fb to 32bpp upscaled fb to stress CD clock programming

flip-64bpp-ytile-to-32bpp-ytilegen12rcccs-upscaling

Flip from 64bpp non scaled fb to 32bpp upscaled fb to stress CD clock programming

flip-64bpp-4tile-to-32bpp-4tiledg2rcccs-upscaling

Flip from 64bpp non scaled fb to 32bpp upscaled fb to stress CD clock programming


kms_flip_tiling

Test page flips and tiling scenarios

flip-change-tiling

Check pageflip between modifiers


kms_frontbuffer_tracking

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

More than 100 subtests, skipping listing


kms_joiner

Test joiner / force joiner

basic-big-joiner

Verify the basic modeset on big joiner mode on all pipes

basic-ultra-joiner

Verify the basic modeset on ultra joiner mode on all pipes

invalid-modeset-big-joiner

Verify if the modeset on the adjoining pipe is rejected when the pipe is active with a big joiner modeset

invalid-modeset-ultra-joiner

Verify if the modeset on the other pipes are rejected when the pipe A is active with a ultra joiner modeset

basic-force-big-joiner

Verify the basic modeset on big joiner mode on all pipes

invalid-modeset-force-big-joiner

NO DOCUMENTATION!

basic-force-ultra-joiner

Verify the basic modeset on ultra joiner mode on all pipes

invalid-modeset-force-ultra-joiner

NO DOCUMENTATION!


kms_legacy_colorkey

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

basic

Test to check the legacy set colorkey ioctl only works for sprite planes.

invalid-plane

Check invalid plane id's, zero and outrange


kms_mmap_write_crc

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

main

Tests that caching mode has become UC/WT and flushed using mmap write


kms_pipe_b_c_ivb

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

pipe-B-dpms-off-modeset-pipe-C

Tests pipe-B and pipe-C interactions in IVB by enabling pipe-B with mode that requires 3 lanes and then enabling pipe-c with dpms off/on pipe-B.

pipe-B-double-modeset-then-modeset-pipe-C

Tests pipe-B and pipe-C interactions in IVB by enabling 2 different modes on pipe-B and then a single mode on pipe-C.

disable-pipe-B-enable-pipe-C

Tests pipe-B and pipe-C interactions in IVB by disabling pipe-B and then setting mode on pipe-C.

from-pipe-C-to-B-with-3-lanes

Tests pipe-B and pipe-C interactions in IVB by enabling pipe-B with 3 lanes from pipe-C.

enable-pipe-C-while-B-has-3-lanes

Tests pipe-B and pipe-C interactions in IVB by enabling pipe-C while pipe-B has 3-lanes


kms_pm_backlight

Basic backlight sysfs test

basic-brightness

test the basic brightness.

bad-brightness

test the bad brightness.

fade

test basic fade.

fade-with-dpms

test the fade with DPMS.

brightness-with-dpms

test brightness with dpms on and off cycle.

fade-with-suspend

test the fade with suspend.


kms_pm_dc

Tests to validate display power DC states.

dc3co-vpb-simulation

In this test we make sure that system enters DC3CO when PSR2 is active and system is in SLEEP state

dc5-psr

This test validates display engine entry to DC5 state while PSR is active

dc6-psr

This test validates display engine entry to DC6 state while PSR is active

deep-pkgc

This test validates display engine entry to PKGC10 state during extended vblank

dc5-dpms

This test validates display engine entry to DC5 state while all connectors's DPMS property set to OFF

dc5-retention-flops

This test validates display engine entry to DC5 state while PSR is active on Pipe B

dc5-dpms-negative

This test validates negative scenario of DC5 display engine entry to DC5 state while all connectors's DPMS property set to ON

dc6-dpms

This test validates display engine entry to DC6 state while all connectors's DPMS property set to OFF

dc9-dpms

This test validates display engine entry to DC9 state


kms_pm_lpsp

These tests validates display Low Power Single Pipe configurations

screens-disabled

This test validates lpsp while all crtc are disabled

kms-lpsp

This test validates lpsp on all connected outputs on low power pipes


kms_pm_rpm

basic-rte

NO DOCUMENTATION!

drm-resources-equal

NO DOCUMENTATION!

basic-pci-d3-state

NO DOCUMENTATION!

modeset-lpsp

NO DOCUMENTATION!

modeset-non-lpsp

NO DOCUMENTATION!

dpms-lpsp

NO DOCUMENTATION!

dpms-non-lpsp

NO DOCUMENTATION!

cursor

NO DOCUMENTATION!

cursor-dpms

NO DOCUMENTATION!

legacy-planes

NO DOCUMENTATION!

legacy-planes-dpms

NO DOCUMENTATION!

universal-planes

NO DOCUMENTATION!

universal-planes-dpms

NO DOCUMENTATION!

i2c

NO DOCUMENTATION!

dpms-mode-unset-lpsp

NO DOCUMENTATION!

dpms-mode-unset-non-lpsp

NO DOCUMENTATION!

fences

NO DOCUMENTATION!

fences-dpms

NO DOCUMENTATION!

pc8-residency

NO DOCUMENTATION!

modeset-lpsp-stress

NO DOCUMENTATION!

modeset-non-lpsp-stress

NO DOCUMENTATION!

modeset-lpsp-stress-no-wait

NO DOCUMENTATION!

modeset-non-lpsp-stress-no-wait

NO DOCUMENTATION!

modeset-pc8-residency-stress

NO DOCUMENTATION!

modeset-stress-extra-wait

NO DOCUMENTATION!

system-suspend-modeset

NO DOCUMENTATION!

pm-tiling

NO DOCUMENTATION!

pm-caching

NO DOCUMENTATION!


kms_psr

More than 100 subtests, skipping listing


kms_psr2_sf

Tests to verify PSR2 selective fetch by sending multiple damaged areas with and without fbc

psr2-primary-plane-update-sf-dmg-area

Test that selective fetch works on primary plane

psr2-primary-plane-update-sf-dmg-area-big-fb

Test that selective fetch works on primary plane with big fb

psr2-overlay-plane-update-sf-dmg-area

Test that selective fetch works on overlay plane

psr2-cursor-plane-update-sf

Test that selective fetch works on cursor plane

psr2-cursor-plane-move-continuous-sf

Test that selective fetch works on moving cursor plane (no update)

psr2-cursor-plane-move-continuous-exceed-sf

Test that selective fetch works on moving cursor plane exceeding partially visible area (no update)

psr2-cursor-plane-move-continuous-exceed-fully-sf

Test that selective fetch works on moving cursor plane exceeding fully visible area (no update)

psr2-plane-move-sf-dmg-area

Test that selective fetch works on moving overlay plane

psr2-overlay-plane-move-continuous-sf

Test that selective fetch works on moving overlay plane (no update)

psr2-overlay-plane-move-continuous-exceed-sf

Test that selective fetch works on moving overlay plane partially exceeding visible area (no update)

psr2-overlay-plane-move-continuous-exceed-fully-sf

Test that selective fetch works on moving overlay plane fully exceeding visible area (no update)

psr2-overlay-primary-update-sf-dmg-area

Test that selective fetch works on primary plane with blended overlay plane

psr2-overlay-plane-update-continuous-sf

Test that selective fetch works on overlay plane

pr-primary-plane-update-sf-dmg-area

Test that selective fetch works on primary plane

pr-primary-plane-update-sf-dmg-area-big-fb

Test that selective fetch works on primary plane with big fb

pr-overlay-plane-update-sf-dmg-area

Test that selective fetch works on overlay plane

pr-cursor-plane-update-sf

Test that selective fetch works on cursor plane

pr-cursor-plane-move-continuous-sf

Test that selective fetch works on moving cursor plane (no update)

pr-cursor-plane-move-continuous-exceed-sf

Test that selective fetch works on moving cursor plane exceeding partially visible area (no update)

pr-cursor-plane-move-continuous-exceed-fully-sf

Test that selective fetch works on moving cursor plane exceeding fully visible area (no update)

pr-plane-move-sf-dmg-area

Test that selective fetch works on moving overlay plane

pr-overlay-plane-move-continuous-sf

Test that selective fetch works on moving overlay plane (no update)

pr-overlay-plane-move-continuous-exceed-sf

Test that selective fetch works on moving overlay plane partially exceeding visible area (no update)

pr-overlay-plane-move-continuous-exceed-fully-sf

Test that selective fetch works on moving overlay plane fully exceeding visible area (no update)

pr-overlay-primary-update-sf-dmg-area

Test that selective fetch works on primary plane with blended overlay plane

pr-overlay-plane-update-continuous-sf

Test that selective fetch works on overlay plane

fbc-psr2-primary-plane-update-sf-dmg-area

Test that selective fetch works on primary plane

fbc-psr2-overlay-plane-update-sf-dmg-area

Test that selective fetch works on overlay plane

fbc-psr2-cursor-plane-update-sf

Test that selective fetch works on cursor plane

fbc-psr2-cursor-plane-move-continuous-sf

Test that selective fetch works on moving cursor plane (no update)

fbc-psr2-cursor-plane-move-continuous-exceed-sf

Test that selective fetch works on moving cursor plane exceeding partially visible area (no update)

fbc-psr2-cursor-plane-move-continuous-exceed-fully-sf

Test that selective fetch works on moving cursor plane exceeding fully visible area (no update)

fbc-psr2-plane-move-sf-dmg-area

Test that selective fetch works on moving overlay plane

fbc-psr2-overlay-plane-move-continuous-sf

Test that selective fetch works on moving overlay plane (no update)

fbc-psr2-overlay-plane-move-continuous-exceed-sf

Test that selective fetch works on moving overlay plane partially exceeding visible area (no update)

fbc-psr2-overlay-plane-move-continuous-exceed-fully-sf

Test that selective fetch works on moving overlay plane fully exceeding visible area (no update)

fbc-psr2-overlay-primary-update-sf-dmg-area

Test that selective fetch works on primary plane with blended overlay plane

fbc-psr2-overlay-plane-update-continuous-sf

Test that selective fetch works on overlay plane

fbc-pr-primary-plane-update-sf-dmg-area

Test that selective fetch works on primary plane

fbc-pr-overlay-plane-update-sf-dmg-area

Test that selective fetch works on overlay plane

fbc-pr-cursor-plane-update-sf

Test that selective fetch works on cursor plane

fbc-pr-cursor-plane-move-continuous-sf

Test that selective fetch works on moving cursor plane (no update)

fbc-pr-cursor-plane-move-continuous-exceed-sf

Test that selective fetch works on moving cursor plane exceeding partially visible area (no update)

fbc-pr-cursor-plane-move-continuous-exceed-fully-sf

Test that selective fetch works on moving cursor plane exceeding fully visible area (no update)

fbc-pr-plane-move-sf-dmg-area

Test that selective fetch works on moving overlay plane

fbc-pr-overlay-plane-move-continuous-sf

Test that selective fetch works on moving overlay plane (no update)

fbc-pr-overlay-plane-move-continuous-exceed-sf

Test that selective fetch works on moving overlay plane partially exceeding visible area (no update)

fbc-pr-overlay-plane-move-continuous-exceed-fully-sf

Test that selective fetch works on moving overlay plane fully exceeding visible area (no update)

fbc-pr-overlay-primary-update-sf-dmg-area

Test that selective fetch works on primary plane with blended overlay plane

fbc-pr-overlay-plane-update-continuous-sf

Test that selective fetch works on overlay plane


kms_psr2_su

Test PSR2 selective update

page_flip-XRGB8888

Test that selective update works when screen changes

page_flip-NV12

Test that selective update works when screen changes

page_flip-P010

Test that selective update works when screen changes

frontbuffer-XRGB8888

Test that selective update works when screen changes


kms_psr_stress_test

flip-primary-invalidate-overlay

Mix page flips in primary plane and frontbuffer writes to overlay plane and check for warnings, underruns or PSR state changes

invalidate-primary-flip-overlay

Mix frontbuffer writes to the primary plane and page flips in the overlay plane and check for warnings, underruns or PSR state changes


kms_pwrite_crc

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


kms_chamelium_audio

Testing Audio with a Chamelium board

dp-audio

DisplayPort tests Playback various audio signals with various audio formats/rates, capture them and check they are correct

dp-audio-edid

DisplayPort tests Plug a connector with an EDID suitable for audio, check ALSA's EDID-Like Data reports the correct audio parameters

hdmi-audio

HDMI tests Playback various audio signals with various audio formats/rates, capture them and check they are correct

hdmi-audio-edid

HDMI tests Plug a connector with an EDID suitable for audio, check ALSA's EDID-Like Data reports the correct audio parameters


kms_chamelium_color

Test Color Features at Pipe level using Chamelium to verify instead of CRC

degamma

Verify that degamma LUT transformation works correctly

gamma

Verify that gamma LUT transformation works correctly

ctm-red-to-blue

Check the color transformation from red to blue

ctm-green-to-red

Check the color transformation from green to red

ctm-blue-to-red

Check the color transformation from blue to red

ctm-max

Check the color transformation for maximum transparency

ctm-negative

Check the color transformation for negative transparency

ctm-0-25

Check the color transformation for 0.25 transparency

ctm-0-50

Check the color transformation for 0.5 transparency

ctm-0-75

Check the color transformation for 0.75 transparency

ctm-limited-range

Compare after applying ctm matrix & identity matrix


kms_chamelium_edid

Testing EDID with a Chamelium board

dp-edid-read

DisplayPort tests Make sure the EDID exposed by KMS is the same as the screen's

dp-edid-stress-resolution-4k

DisplayPort tests Stress test the DUT by testing multiple EDIDs, one right after the other, and ensure their validity by check the real screen resolution vs the advertised mode resultion.

dp-edid-stress-resolution-non-4k

DisplayPort tests Stress test the DUT by testing multiple EDIDs, one right after the other, and ensure their validity by check the real screen resolution vs the advertised mode resultion.

dp-edid-resolution-list

DisplayPort tests Get an EDID with many modes of different configurations, set them on the screen and check the screen resolution matches the mode resolution.

dp-edid-change-during-suspend

DisplayPort tests Simulate a screen being unplugged and another screen being plugged during suspend, check that a uevent is sent and connector status is updated

dp-edid-change-during-hibernate

DisplayPort tests Simulate a screen being unplugged and another screen being plugged during suspend, check that a uevent is sent and connector status is updated

dp-mode-timings

DisplayPort tests For each mode of the IGT base EDID, perform a modeset and check the mode detected by the Chamelium receiver matches the mode we set

hdmi-edid-read

HDMI tests Make sure the EDID exposed by KMS is the same as the screen's

hdmi-edid-stress-resolution-4k

HDMI tests Stress test the DUT by testing multiple EDIDs, one right after the other, and ensure their validity by check the real screen resolution vs the advertised mode resultion.

hdmi-edid-stress-resolution-non-4k

HDMI tests Stress test the DUT by testing multiple EDIDs, one right after the other, and ensure their validity by check the real screen resolution vs the advertised mode resultion.

hdmi-edid-change-during-suspend

HDMI tests Simulate a screen being unplugged and another screen being plugged during suspend, check that a uevent is sent and connector status is updated

hdmi-edid-change-during-hibernate

HDMI tests Simulate a screen being unplugged and another screen being plugged during suspend, check that a uevent is sent and connector status is updated

hdmi-mode-timings

HDMI tests For each mode of the IGT base EDID, perform a modeset and check the mode detected by the Chamelium receiver matches the mode we set

vga-edid-read

VGA tests Make sure the EDID exposed by KMS is the same as the screen's


kms_chamelium_frames

Tests requiring a Chamelium board

dp-crc-single

DisplayPort tests For each mode of the IGT base EDID, display and capture a few frames, then check captured frames are correct

dp-crc-fast

DisplayPort tests Pick the first mode of the IGT base EDID, display and capture a few frames, then check captured frames are correct

dp-crc-multiple

DisplayPort tests For each mode of the IGT base EDID, display and capture a few frames, then check captured frames are correct

dp-frame-dump

DisplayPort tests For each mode of the IGT base EDID, display and capture a few frames, then download the captured frames and compare them bit-by-bit to the sent ones

hdmi-crc-single

HDMI tests For each mode of the IGT base EDID, display and capture a few frames, then check captured frames are correct

hdmi-crc-fast

HDMI tests Pick the first mode of the IGT base EDID, display and capture a few frames, then check captured frames are correct

hdmi-crc-multiple

HDMI tests For each mode of the IGT base EDID, display and capture a few frames, then check captured frames are correct

hdmi-crc-nonplanar-formats

HDMI tests Pick the first mode of the IGT base EDID, display and capture a few frames, then check captured frames are correct

hdmi-crc-planes-random

HDMI tests Setup a few overlay planes with random parameters, capture the frame and check it matches the expected output

hdmi-cmp-planar-formats

HDMI tests Pick the first mode of the IGT base EDID, display and capture a few frames, then check captured frames are correct

hdmi-cmp-planes-random

HDMI tests Setup a few overlay planes with random parameters, capture the frame and check it matches the expected output

hdmi-frame-dump

HDMI tests For each mode of the IGT base EDID, display and capture a few frames, then download the captured frames and compare them bit-by-bit to the sent ones

hdmi-aspect-ratio

HDMI tests Pick a mode with a picture aspect-ratio, capture AVI InfoFrames and check they include the relevant fields

vga-frame-dump

VGA tests For each mode of the IGT base EDID, display and capture a few frames, then check captured frames are correct


kms_chamelium_hpd

Testing HPD with a Chamelium board

dp-hpd

DisplayPort tests Check that we get uevents and updated connector status on hotplug and unplug

dp-hpd-fast

DisplayPort tests Check that we get uevents and updated connector status on hotplug and unplug

dp-hpd-enable-disable-mode

DisplayPort tests Check that we get uevents and updated connector status on hotplug and unplug

dp-hpd-with-enabled-mode

DisplayPort tests Check that we get uevents and updated connector status on hotplug and unplug

dp-hpd-for-each-pipe

DisplayPort tests Check that we get uevents and updated connector status on hotplug and unplug for each pipe with valid output

dp-hpd-after-suspend

DisplayPort tests Toggle HPD during suspend, check that uevents are sent and connector status is updated

dp-hpd-after-hibernate

DisplayPort tests Toggle HPD during suspend, check that uevents are sent and connector status is updated

dp-hpd-storm

DisplayPort tests Trigger a series of hotplugs in a very small timeframe to simulate abad cable, check the kernel falls back to polling to avoid a hotplug storm

dp-hpd-storm-disable

DisplayPort tests Disable HPD storm detection, trigger a storm and check the kernel doesn't detect one

hdmi-hpd

HDMI tests Check that we get uevents and updated connector status on hotplug and unplug

hdmi-hpd-fast

HDMI tests Check that we get uevents and updated connector status on hotplug and unplug

hdmi-hpd-enable-disable-mode

HDMI tests Check that we get uevents and updated connector status on hotplug and unplug

hdmi-hpd-with-enabled-mode

HDMI tests Check that we get uevents and updated connector status on hotplug and unplug

hdmi-hpd-for-each-pipe

HDMI tests Check that we get uevents and updated connector status on hotplug and unplug for each pipe with valid output

hdmi-hpd-after-suspend

HDMI tests Toggle HPD during suspend, check that uevents are sent and connector status is updated

hdmi-hpd-after-hibernate

HDMI tests Toggle HPD during suspend, check that uevents are sent and connector status is updated

hdmi-hpd-storm

HDMI tests Trigger a series of hotplugs in a very small timeframe to simulate abad cable, check the kernel falls back to polling to avoid a hotplug storm

hdmi-hpd-storm-disable

HDMI tests Disable HPD storm detection, trigger a storm and check the kernel doesn't detect one

vga-hpd

VGA tests Check that we get uevents and updated connector status on hotplug and unplug

vga-hpd-fast

VGA tests Check that we get uevents and updated connector status on hotplug and unplug

vga-hpd-enable-disable-mode

VGA tests Check that we get uevents and updated connector status on hotplug and unplug

vga-hpd-with-enabled-mode

VGA tests Check that we get uevents and updated connector status on hotplug and unplug

vga-hpd-after-suspend

VGA tests Toggle HPD during suspend, check that uevents are sent and connector status is updated

vga-hpd-after-hibernate

VGA tests Toggle HPD during suspend, check that uevents are sent and connector status is updated

vga-hpd-without-ddc

VGA tests Disable DDC on a VGA connector, check we still get a uevent on hotplug

common-hpd-after-suspend

Tests that operate on all connectors Toggle HPD during suspend on all connectors, check that uevents are sent and connector status is updated

common-hpd-after-hibernate

Tests that operate on all connectors Toggle HPD during suspend on all connectors, check that uevents are sent and connector status is updated

vga-hpd-for-each-pipe

Check that we get uevents and updated connector status on hotplug and unplug for each pipe with valid output