test_progs = [ 'core_auth', 'core_getclient', 'core_getstats', 'core_getversion', 'core_setmaster_vs_auth', 'debugfs_test', 'drm_import_export', 'drm_mm', 'drm_read', 'kms_3d', 'kms_addfb_basic', 'kms_atomic', 'kms_atomic_interruptible', 'kms_atomic_transition', 'kms_available_modes_crc', 'kms_big_fb', 'kms_busy', 'kms_ccs', 'kms_color', 'kms_concurrent', 'kms_content_protection', 'kms_crtc_background_color', 'kms_cursor_crc', 'kms_cursor_edge_walk', 'kms_cursor_legacy', 'kms_dp_dsc', 'kms_draw_crc', 'kms_fbcon_fbt', 'kms_fence_pin_leak', 'kms_flip', 'kms_flip_event_leak', 'kms_flip_tiling', 'kms_force_connector_basic', 'kms_frontbuffer_tracking', 'kms_getfb', 'kms_hdmi_inject', 'kms_invalid_dotclock', 'kms_lease', 'kms_legacy_colorkey', 'kms_mmap_write_crc', '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_prop_blob', 'kms_properties', 'kms_psr', 'kms_psr2_su', 'kms_pwrite_crc', 'kms_rmfb', 'kms_rotation_crc', 'kms_selftest', 'kms_sequence', 'kms_setmode', 'kms_sysfs_edid_timing', 'kms_tv_load_detect', 'kms_universal_plane', 'kms_vblank', 'kms_vrr', 'meta_test', 'panfrost_get_param', 'panfrost_gem_new', 'panfrost_prime', 'panfrost_submit', 'perf', 'prime_busy', 'prime_mmap', 'prime_mmap_coherency', 'prime_mmap_kms', 'prime_self_import', 'prime_udl', 'prime_vgem', 'sw_sync', 'syncobj_basic', 'syncobj_wait', 'template', 'tools_test', 'v3d_get_bo_offset', 'v3d_get_param', 'v3d_mmap', 'vc4_create_bo', 'vc4_dmabuf_poll', 'vc4_label_bo', 'vc4_lookup_fail', 'vc4_purgeable_bo', 'vc4_tiling', 'vc4_wait_bo', 'vc4_wait_seqno', 'vgem_basic', 'vgem_slow', ] i915_progs = [ 'gen3_mixed_blits', 'gen3_render_linear_blits', 'gen3_render_mixed_blits', 'gen3_render_tiledx_blits', 'gen3_render_tiledy_blits', 'gem_bad_reloc', 'gem_basic', 'gem_busy', 'gem_caching', 'gem_close', 'gem_close_race', 'gem_concurrent_blit', 'gem_cpu_reloc', 'gem_create', 'gem_cs_prefetch', 'gem_cs_tlb', 'gem_ctx_bad_destroy', 'gem_ctx_clone', 'gem_ctx_create', 'gem_ctx_engines', 'gem_ctx_exec', 'gem_ctx_isolation', 'gem_ctx_param', 'gem_ctx_shared', 'gem_ctx_switch', 'gem_ctx_thrash', 'gem_double_irq_loop', 'gem_evict_alignment', 'gem_evict_everything', 'gem_exec_alignment', 'gem_exec_async', 'gem_exec_await', 'gem_exec_bad_domains', 'gem_exec_basic', 'gem_exec_big', 'gem_exec_blt', 'gem_exec_capture', 'gem_exec_create', 'gem_exec_faulting_reloc', 'gem_exec_fence', 'gem_exec_flush', 'gem_exec_gttfill', 'gem_exec_latency', 'gem_exec_lut_handle', 'gem_exec_nop', 'gem_exec_parallel', 'gem_exec_params', 'gem_exec_parse', 'gem_exec_reloc', 'gem_exec_reuse', 'gem_exec_schedule', 'gem_exec_store', 'gem_exec_suspend', 'gem_exec_whisper', 'gem_fd_exhaustion', 'gem_fence_thrash', 'gem_fence_upload', 'gem_fenced_exec_thrash', 'gem_flink_basic', 'gem_flink_race', 'gem_gpgpu_fill', 'gem_gtt_cpu_tlb', 'gem_gtt_hog', 'gem_gtt_speed', 'gem_largeobject', 'gem_linear_blits', 'gem_lut_handle', 'gem_madvise', 'gem_media_fill', 'gem_media_vme', 'gem_mmap', 'gem_mmap_gtt', 'gem_mmap_offset_exhaustion', 'gem_mmap_wc', 'gem_partial_pwrite_pread', 'gem_persistent_relocs', 'gem_pipe_control_store_loop', 'gem_ppgtt', 'gem_pread', 'gem_pread_after_blit', 'gem_pwrite', 'gem_pwrite_pread', 'gem_pwrite_snooped', 'gem_read_read_speed', 'gem_readwrite', 'gem_reg_read', 'gem_reloc_overflow', 'gem_reloc_vs_gpu', 'gem_render_copy', 'gem_render_copy_redux', 'gem_render_linear_blits', 'gem_render_tiled_blits', 'gem_request_retire', 'gem_reset_stats', 'gem_ring_sync_copy', 'gem_ring_sync_loop', 'gem_ringfill', 'gem_set_tiling_vs_blt', 'gem_set_tiling_vs_gtt', 'gem_set_tiling_vs_pwrite', 'gem_shrink', 'gem_softpin', 'gem_spin_batch', 'gem_stolen', 'gem_storedw_batches_loop', 'gem_storedw_loop', 'gem_streaming_writes', 'gem_sync', 'gem_threaded_access_tiled', 'gem_tiled_blits', 'gem_tiled_fence_blits', 'gem_tiled_partial_pwrite_pread', 'gem_tiled_pread_basic', 'gem_tiled_pread_pwrite', 'gem_tiled_swapping', 'gem_tiled_wb', 'gem_tiled_wc', 'gem_tiling_max_stride', 'gem_unfence_active_buffers', 'gem_unref_active_buffers', 'gem_userptr_blits', 'gem_vm_create', 'gem_wait', 'gem_workarounds', 'gem_write_read_ring_switch', 'i915_fb_tiling', 'i915_getparams_basic', 'i915_hangman', 'i915_module_load', 'i915_pm_backlight', 'i915_pm_lpsp', 'i915_pm_rc6_residency', 'i915_pm_rpm', 'i915_pm_rps', 'i915_pm_sseu', 'i915_query', 'i915_selftest', 'i915_suspend', ] test_deps = [ igt_deps ] if libdrm_nouveau.found() test_progs += [ 'prime_nv_api', 'prime_nv_pcopy', 'prime_nv_test', ] test_deps += libdrm_nouveau endif if chamelium.found() test_progs += [ 'kms_chamelium', ] test_deps += chamelium endif test_executables = [] test_list = [] foreach prog : test_progs test_executables += executable(prog, prog + '.c', dependencies : test_deps, install_dir : libexecdir, install_rpath : libexecdir_rpathdir, install : true) test_list += prog endforeach foreach prog : i915_progs test_executables += executable(prog, join_paths('i915', prog + '.c'), dependencies : test_deps, install_dir : libexecdir, install_rpath : libexecdir_rpathdir, install : true) test_list += prog endforeach test_executables += executable('gem_ctx_sseu', join_paths('i915', 'gem_ctx_sseu.c'), dependencies : test_deps + [ lib_igt_perf ], install_dir : libexecdir, install_rpath : libexecdir_rpathdir, install : true) test_list += 'gem_ctx_sseu' test_executables += executable('gem_eio', join_paths('i915', 'gem_eio.c'), dependencies : test_deps + [ realtime ], install_dir : libexecdir, install_rpath : libexecdir_rpathdir, install : true) test_list += 'gem_eio' test_executables += executable('gem_exec_balancer', 'i915/gem_exec_balancer.c', dependencies : test_deps + [ lib_igt_perf ], install_dir : libexecdir, install_rpath : libexecdir_rpathdir, install : true) test_list += 'gem_exec_balancer' test_executables += executable('gem_mocs_settings', join_paths('i915', 'gem_mocs_settings.c'), dependencies : test_deps + [ lib_igt_perf ], install_dir : libexecdir, install_rpath : libexecdir_rpathdir, install : true) test_list += 'gem_mocs_settings' test_executables += executable('perf_pmu', 'perf_pmu.c', dependencies : test_deps + [ lib_igt_perf ], install_dir : libexecdir, install_rpath : libexecdir_rpathdir, install : true) test_list += 'perf_pmu' executable('testdisplay', ['testdisplay.c', 'testdisplay_hotplug.c'], dependencies : test_deps, install_dir : libexecdir, install_rpath : libexecdir_rpathdir, install : true) test_list += 'testdisplay' subdir('amdgpu') gen_testlist = find_program('generate_testlist.sh') test_list_target = custom_target('testlist', output : 'test-list.txt', command : [ gen_testlist, '@OUTPUT@', test_list ], install : true, install_dir : libexecdir) test_script = find_program('igt_command_line.sh') foreach prog : test_list test('testcase check: ' + prog, test_script, args : prog) endforeach executable('gem_stress', 'i915/gem_stress.c', install : true, install_dir : libexecdir, install_rpath : libexecdir_rpathdir, dependencies : igt_deps) # IMPORTANT: These tests here are all disabled because the result in sometime # unrecoverable gpu hangs. Don't put real testcases here. hang_progs = [ 'gem_bad_batch', 'gem_hang', 'gem_bad_blit', 'gem_bad_address', 'gem_non_secure_batch', ] foreach prog : hang_progs executable(prog, join_paths('i915', prog + '.c'), dependencies : igt_deps, install : false) endforeach image_files = [ '1080p-left.png', '1080p-right.png', 'pass.png', ] install_data(sources : image_files, install_dir : datadir) subdir('intel-ci')