mirror of
https://gitlab.freedesktop.org/monado/monado.git
synced 2025-01-01 04:36:07 +00:00
t/common: Integrate null compositor
This commit is contained in:
parent
c976c54008
commit
7e45fc7dd9
|
@ -237,7 +237,7 @@ option(XRT_FEATURE_COLOR_LOG "Enable logging in color on supported platforms" ON
|
||||||
option_with_deps(XRT_FEATURE_COMPOSITOR_MAIN "Build main compositor host functionality" DEPENDS XRT_HAVE_VULKAN "XRT_HAVE_WAYLAND OR XRT_HAVE_XCB OR ANDROID OR WIN32")
|
option_with_deps(XRT_FEATURE_COMPOSITOR_MAIN "Build main compositor host functionality" DEPENDS XRT_HAVE_VULKAN "XRT_HAVE_WAYLAND OR XRT_HAVE_XCB OR ANDROID OR WIN32")
|
||||||
option_with_deps(XRT_FEATURE_COMPOSITOR_NULL "Build testing null compositor" DEPENDS XRT_HAVE_VULKAN)
|
option_with_deps(XRT_FEATURE_COMPOSITOR_NULL "Build testing null compositor" DEPENDS XRT_HAVE_VULKAN)
|
||||||
option_with_deps(XRT_FEATURE_IPC "Enable the build of the IPC layer" DEPENDS "NOT WIN32")
|
option_with_deps(XRT_FEATURE_IPC "Enable the build of the IPC layer" DEPENDS "NOT WIN32")
|
||||||
option_with_deps(XRT_FEATURE_OPENXR "Build OpenXR runtime target" DEPENDS XRT_FEATURE_COMPOSITOR_MAIN)
|
option_with_deps(XRT_FEATURE_OPENXR "Build OpenXR runtime target" DEPENDS "XRT_FEATURE_COMPOSITOR_MAIN OR XRT_FEATURE_COMPOSITOR_NULL")
|
||||||
option_with_deps(XRT_FEATURE_RENDERDOC "Enable RenderDoc API" DEPENDS "RT_LIBRARY OR WIN32")
|
option_with_deps(XRT_FEATURE_RENDERDOC "Enable RenderDoc API" DEPENDS "RT_LIBRARY OR WIN32")
|
||||||
option_with_deps(XRT_FEATURE_SERVICE "Enable separate service module for OpenXR runtime" DEPENDS XRT_FEATURE_IPC XRT_FEATURE_OPENXR)
|
option_with_deps(XRT_FEATURE_SERVICE "Enable separate service module for OpenXR runtime" DEPENDS XRT_FEATURE_IPC XRT_FEATURE_OPENXR)
|
||||||
option_with_deps(XRT_FEATURE_SERVICE_SYSTEMD "Enable systemd socket activation of the service" DEPENDS XRT_HAVE_SYSTEMD XRT_FEATURE_SERVICE)
|
option_with_deps(XRT_FEATURE_SERVICE_SYSTEMD "Enable systemd socket activation of the service" DEPENDS XRT_HAVE_SYSTEMD XRT_FEATURE_SERVICE)
|
||||||
|
|
|
@ -123,7 +123,7 @@ endif()
|
||||||
####
|
####
|
||||||
# Instance
|
# Instance
|
||||||
#
|
#
|
||||||
if(XRT_FEATURE_COMPOSITOR_MAIN)
|
if(XRT_FEATURE_COMPOSITOR_MAIN OR XRT_FEATURE_COMPOSITOR_NULL)
|
||||||
add_library(target_instance STATIC target_instance.c)
|
add_library(target_instance STATIC target_instance.c)
|
||||||
target_link_libraries(
|
target_link_libraries(
|
||||||
target_instance
|
target_instance
|
||||||
|
@ -132,10 +132,17 @@ if(XRT_FEATURE_COMPOSITOR_MAIN)
|
||||||
aux_util
|
aux_util
|
||||||
st_prober
|
st_prober
|
||||||
target_lists
|
target_lists
|
||||||
comp_main
|
|
||||||
drv_includes
|
drv_includes
|
||||||
)
|
)
|
||||||
target_include_directories(target_instance PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
|
target_include_directories(target_instance PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
|
||||||
|
|
||||||
|
if(XRT_FEATURE_COMPOSITOR_MAIN)
|
||||||
|
target_link_libraries(target_instance PRIVATE comp_main)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(XRT_FEATURE_COMPOSITOR_NULL)
|
||||||
|
target_link_libraries(target_instance PRIVATE comp_null)
|
||||||
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
####
|
####
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
// Copyright 2020, Collabora, Ltd.
|
// Copyright 2020-2022, Collabora, Ltd.
|
||||||
// SPDX-License-Identifier: BSL-1.0
|
// SPDX-License-Identifier: BSL-1.0
|
||||||
/*!
|
/*!
|
||||||
* @file
|
* @file
|
||||||
|
@ -9,6 +9,7 @@
|
||||||
#include "xrt/xrt_gfx_native.h"
|
#include "xrt/xrt_gfx_native.h"
|
||||||
#include "xrt/xrt_system.h"
|
#include "xrt/xrt_system.h"
|
||||||
|
|
||||||
|
#include "util/u_debug.h"
|
||||||
#include "util/u_trace_marker.h"
|
#include "util/u_trace_marker.h"
|
||||||
#include "util/u_system_helpers.h"
|
#include "util/u_system_helpers.h"
|
||||||
|
|
||||||
|
@ -17,6 +18,19 @@
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef XRT_FEATURE_COMPOSITOR_MAIN
|
||||||
|
#define USE_NULL_DEFAULT (false)
|
||||||
|
#else
|
||||||
|
#define USE_NULL_DEFAULT (true)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
DEBUG_GET_ONCE_BOOL_OPTION(use_null, "XRT_COMPOSITOR_NULL", USE_NULL_DEFAULT)
|
||||||
|
|
||||||
|
xrt_result_t
|
||||||
|
null_compositor_create_system(struct xrt_device *xdev, struct xrt_system_compositor **out_xsysc);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* Internal functions.
|
* Internal functions.
|
||||||
|
@ -49,7 +63,30 @@ t_instance_create_system(struct xrt_instance *xinst,
|
||||||
|
|
||||||
struct xrt_device *head = xsysd->roles.head;
|
struct xrt_device *head = xsysd->roles.head;
|
||||||
|
|
||||||
xret = xrt_gfx_provider_create_system(head, &xsysc);
|
bool use_null = debug_get_bool_option_use_null();
|
||||||
|
|
||||||
|
#ifdef XRT_FEATURE_COMPOSITOR_NULL
|
||||||
|
if (use_null) {
|
||||||
|
xret = null_compositor_create_system(head, &xsysc);
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
if (use_null) {
|
||||||
|
U_LOG_E("The null compositor is not compiled in!");
|
||||||
|
xret = XRT_ERROR_VULKAN;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef XRT_FEATURE_COMPOSITOR_MAIN
|
||||||
|
if (xret == XRT_SUCCESS && xsysc == NULL) {
|
||||||
|
xret = xrt_gfx_provider_create_system(head, &xsysc);
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
if (!use_null) {
|
||||||
|
U_LOG_E("Explicitly didn't request the null compositor, but the main compositor hasn't been built!");
|
||||||
|
xret = XRT_ERROR_VULKAN;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
if (xret != XRT_SUCCESS) {
|
if (xret != XRT_SUCCESS) {
|
||||||
xrt_system_devices_destroy(&xsysd);
|
xrt_system_devices_destroy(&xsysd);
|
||||||
return xret;
|
return xret;
|
||||||
|
|
Loading…
Reference in a new issue