test: add vulkan renderer scene coverage
This commit is contained in:
@@ -9,6 +9,8 @@ set(PACKAGE_DIR ${CMAKE_SOURCE_DIR}/mvs/OpenGL/package)
|
||||
|
||||
get_filename_component(PROJECT_ROOT_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../../../.. ABSOLUTE)
|
||||
|
||||
find_package(Vulkan QUIET)
|
||||
|
||||
add_executable(rendering_integration_camera_stack_scene
|
||||
main.cpp
|
||||
${CMAKE_SOURCE_DIR}/tests/RHI/integration/fixtures/RHIIntegrationFixture.cpp
|
||||
@@ -33,6 +35,11 @@ target_link_libraries(rendering_integration_camera_stack_scene PRIVATE
|
||||
GTest::gtest
|
||||
)
|
||||
|
||||
if(TARGET Vulkan::Vulkan)
|
||||
target_link_libraries(rendering_integration_camera_stack_scene PRIVATE Vulkan::Vulkan)
|
||||
target_compile_definitions(rendering_integration_camera_stack_scene PRIVATE XCENGINE_SUPPORT_VULKAN)
|
||||
endif()
|
||||
|
||||
target_compile_definitions(rendering_integration_camera_stack_scene PRIVATE
|
||||
UNICODE
|
||||
_UNICODE
|
||||
|
||||
@@ -44,6 +44,7 @@ namespace {
|
||||
|
||||
constexpr const char* kD3D12Screenshot = "camera_stack_scene_d3d12.ppm";
|
||||
constexpr const char* kOpenGLScreenshot = "camera_stack_scene_opengl.ppm";
|
||||
constexpr const char* kVulkanScreenshot = "camera_stack_scene_vulkan.ppm";
|
||||
constexpr uint32_t kFrameWidth = 1280;
|
||||
constexpr uint32_t kFrameHeight = 720;
|
||||
constexpr uint8_t kBaseLayer = 0;
|
||||
@@ -139,11 +140,19 @@ Material* CreateQuadMaterial(Texture* texture) {
|
||||
}
|
||||
|
||||
const char* GetScreenshotFilename(RHIType backendType) {
|
||||
return backendType == RHIType::D3D12 ? kD3D12Screenshot : kOpenGLScreenshot;
|
||||
switch (backendType) {
|
||||
case RHIType::D3D12:
|
||||
return kD3D12Screenshot;
|
||||
case RHIType::Vulkan:
|
||||
return kVulkanScreenshot;
|
||||
case RHIType::OpenGL:
|
||||
default:
|
||||
return kOpenGLScreenshot;
|
||||
}
|
||||
}
|
||||
|
||||
int GetComparisonThreshold(RHIType backendType) {
|
||||
return backendType == RHIType::OpenGL ? 8 : 8;
|
||||
return backendType == RHIType::D3D12 ? 8 : 8;
|
||||
}
|
||||
|
||||
class CameraStackSceneTest : public RHIIntegrationFixture {
|
||||
@@ -426,6 +435,9 @@ TEST_P(CameraStackSceneTest, RenderCameraStackScene) {
|
||||
|
||||
INSTANTIATE_TEST_SUITE_P(D3D12, CameraStackSceneTest, ::testing::Values(RHIType::D3D12));
|
||||
INSTANTIATE_TEST_SUITE_P(OpenGL, CameraStackSceneTest, ::testing::Values(RHIType::OpenGL));
|
||||
#if defined(XCENGINE_SUPPORT_VULKAN)
|
||||
INSTANTIATE_TEST_SUITE_P(Vulkan, CameraStackSceneTest, ::testing::Values(RHIType::Vulkan));
|
||||
#endif
|
||||
|
||||
GTEST_API_ int main(int argc, char** argv) {
|
||||
Logger::Get().Initialize();
|
||||
|
||||
Reference in New Issue
Block a user