mirror of
https://github.com/brl/mutter.git
synced 2025-04-12 21:29:38 +00:00

This adds a minimalistic fullscreen direct scanout test case, that runs on vkms. It doesn't use EGL, and it uses uninitialized memory, thus it lacks any kind of implicit synchronization, but it does test that the scanout selection paths are working. What is tested is: * DMA buffer allocated using gbm on top of VKMS * Buffer passes a mode setting TEST_ONLY check * Paint is omitted * Correct buffer active in KMS after presentation What isn't yet tested: * Implicit synchronization related behavior * Presented pixel content Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2417>
105 lines
2.0 KiB
Meson
105 lines
2.0 KiB
Meson
wayland_test_client_installed_tests_libexecdir = join_paths(
|
|
mutter_installed_tests_libexecdir,
|
|
'wayland-test-clients',
|
|
)
|
|
|
|
test_driver_server_header = custom_target(
|
|
'test-driver server header',
|
|
input: 'test-driver.xml',
|
|
output: 'test-driver-server-protocol.h',
|
|
command: [
|
|
wayland_scanner,
|
|
'server-header',
|
|
'@INPUT@', '@OUTPUT@',
|
|
]
|
|
)
|
|
|
|
test_driver_client_header = custom_target(
|
|
'test-driver client header',
|
|
input: 'test-driver.xml',
|
|
output: 'test-driver-client-protocol.h',
|
|
command: [
|
|
wayland_scanner,
|
|
'client-header',
|
|
'@INPUT@', '@OUTPUT@',
|
|
]
|
|
)
|
|
|
|
test_driver_protocol_code = custom_target(
|
|
'test-driver source',
|
|
input: 'test-driver.xml',
|
|
output: 'test-driver-protocol.c',
|
|
command: [
|
|
wayland_scanner,
|
|
'private-code',
|
|
'@INPUT@', '@OUTPUT@',
|
|
]
|
|
)
|
|
|
|
common_sources = [
|
|
'wayland-test-client-utils.c',
|
|
'wayland-test-client-utils.h',
|
|
wayland_protocol_client_headers,
|
|
wayland_protocol_sources,
|
|
test_driver_client_header,
|
|
test_driver_protocol_code,
|
|
]
|
|
|
|
wayland_test_clients = [
|
|
{
|
|
'name': 'subsurface-remap-toplevel',
|
|
},
|
|
{
|
|
'name': 'subsurface-reparenting',
|
|
},
|
|
{
|
|
'name': 'subsurface-parent-unmapped',
|
|
},
|
|
{
|
|
'name': 'invalid-subsurfaces',
|
|
},
|
|
{
|
|
'name': 'invalid-xdg-shell-actions',
|
|
},
|
|
{
|
|
'name': 'xdg-apply-limits',
|
|
},
|
|
{
|
|
'name': 'xdg-activation',
|
|
},
|
|
{
|
|
'name': 'xdg-toplevel-bounds',
|
|
},
|
|
{
|
|
'name': 'dma-buf-scanout',
|
|
'extra_deps': [
|
|
libdrm_dep,
|
|
libgbm_dep,
|
|
],
|
|
},
|
|
]
|
|
|
|
foreach test : wayland_test_clients
|
|
test_name = test['name']
|
|
deps = [
|
|
glib_dep,
|
|
gobject_dep,
|
|
wayland_client_dep,
|
|
]
|
|
if test.has_key('extra_deps')
|
|
deps += test['extra_deps']
|
|
endif
|
|
|
|
executable(test_name,
|
|
sources: [
|
|
'@0@.c'.format(test_name),
|
|
common_sources,
|
|
],
|
|
include_directories: tests_includes,
|
|
c_args: tests_c_args,
|
|
dependencies: deps,
|
|
install: have_installed_tests,
|
|
install_dir: wayland_test_client_installed_tests_libexecdir,
|
|
)
|
|
endforeach
|