GPU: Enabled Metal test cases.

This commit enabled the metal gpu backend test cases. These test cases
will currently fail, but are by default disabled.
This commit is contained in:
Jeroen Bakker 2022-11-15 13:12:05 +01:00
parent d2728868c0
commit f0ce95b7b9
2 changed files with 28 additions and 3 deletions

View File

@ -14,7 +14,9 @@ namespace blender::gpu {
void GPUTest::SetUp()
{
GPU_backend_type_selection_set(gpu_backend_type);
GHOST_GLSettings glSettings = {0};
glSettings.context_type = draw_context_type;
CLG_init();
ghost_system = GHOST_CreateSystem();
ghost_context = GHOST_CreateOpenGLContext(ghost_system, glSettings);

View File

@ -3,6 +3,7 @@
#include "testing/testing.h"
#include "GHOST_C-api.h"
#include "GPU_platform.h"
struct GPUContext;
@ -18,12 +19,14 @@ namespace blender::gpu {
class GPUTest : public ::testing::Test {
private:
GHOST_TDrawingContextType draw_context_type = GHOST_kDrawingContextTypeNone;
eGPUBackendType gpu_backend_type;
GHOST_SystemHandle ghost_system;
GHOST_ContextHandle ghost_context;
struct GPUContext *context;
protected:
GPUTest(GHOST_TDrawingContextType draw_context_type) : draw_context_type(draw_context_type)
GPUTest(GHOST_TDrawingContextType draw_context_type, eGPUBackendType gpu_backend_type)
: draw_context_type(draw_context_type), gpu_backend_type(gpu_backend_type)
{
}
@ -33,15 +36,35 @@ class GPUTest : public ::testing::Test {
class GPUOpenGLTest : public GPUTest {
public:
GPUOpenGLTest() : GPUTest(GHOST_kDrawingContextTypeOpenGL)
GPUOpenGLTest() : GPUTest(GHOST_kDrawingContextTypeOpenGL, GPU_BACKEND_OPENGL)
{
}
};
#define GPU_TEST(test_name) \
#define GPU_OPENGL_TEST(test_name) \
TEST_F(GPUOpenGLTest, test_name) \
{ \
test_##test_name(); \
}
#ifdef WITH_METAL_BACKEND
class GPUMetalTest : public GPUTest {
public:
GPUMetalTest() : GPUTest(GHOST_kDrawingContextTypeMetal, GPU_BACKEND_METAL)
{
}
};
# define GPU_METAL_TEST(test_name) \
TEST_F(GPUMetalTest, test_name) \
{ \
test_##test_name(); \
}
#else
# define GPU_METAL_TEST(test_name)
#endif
#define GPU_TEST(test_name) \
GPU_OPENGL_TEST(test_name) \
GPU_METAL_TEST(test_name)
} // namespace blender::gpu