This PR enabled the draw manager test cases when compiling with `WITH_VULKAN_BACKEND=On`. Currently they should pass all the tests in draw_pass_test.cc that also pass for OpenGL. The draw_visibility test seems to be faulty (also for OpenGL). The vulkan backend doesn't have all the features implemented to pass the Eevee testcases and are expected to fail. Pull Request: https://projects.blender.org/blender/blender/pulls/110994
61 lines
1.3 KiB
C++
61 lines
1.3 KiB
C++
/* SPDX-FileCopyrightText: 2023 Blender Foundation
|
|
*
|
|
* SPDX-License-Identifier: Apache-2.0 */
|
|
|
|
#include "gpu_testing.hh"
|
|
|
|
namespace blender::draw {
|
|
|
|
/* Base class for draw test cases. It will setup and tear down the GPU part around each test. */
|
|
#ifdef WITH_OPENGL_BACKEND
|
|
class DrawOpenGLTest : public blender::gpu::GPUOpenGLTest {
|
|
public:
|
|
void SetUp() override;
|
|
};
|
|
|
|
# define DRAW_OPENGL_TEST(test_name) \
|
|
TEST_F(DrawOpenGLTest, test_name) \
|
|
{ \
|
|
test_##test_name(); \
|
|
}
|
|
#else
|
|
# define DRAW_OPENGL_TEST(test_name)
|
|
#endif
|
|
|
|
#ifdef WITH_METAL_BACKEND
|
|
class DrawMetalTest : public blender::gpu::GPUMetalTest {
|
|
public:
|
|
void SetUp() override;
|
|
};
|
|
|
|
# define DRAW_METAL_TEST(test_name) \
|
|
TEST_F(DrawMetalTest, test_name) \
|
|
{ \
|
|
test_##test_name(); \
|
|
}
|
|
#else
|
|
# define DRAW_METAL_TEST(test_name)
|
|
#endif
|
|
|
|
#ifdef WITH_VULKAN_BACKEND
|
|
class DrawVulkanTest : public blender::gpu::GPUVulkanTest {
|
|
public:
|
|
void SetUp() override;
|
|
};
|
|
|
|
# define DRAW_VULKAN_TEST(test_name) \
|
|
TEST_F(DrawVulkanTest, test_name) \
|
|
{ \
|
|
test_##test_name(); \
|
|
}
|
|
#else
|
|
# define DRAW_VULKAN_TEST(test_name)
|
|
#endif
|
|
|
|
#define DRAW_TEST(test_name) \
|
|
DRAW_OPENGL_TEST(test_name) \
|
|
DRAW_METAL_TEST(test_name) \
|
|
DRAW_VULKAN_TEST(test_name)
|
|
|
|
} // namespace blender::draw
|