5#include "testing/testing.h"
24 GHOST_SystemHandle ghost_system;
25 GHOST_ContextHandle ghost_context;
35 : draw_context_type(draw_context_type),
36 gpu_backend_type(gpu_backend_type),
37 g_debug_flags_(g_debug_flags)
41 void SetUp()
override;
45#ifdef WITH_OPENGL_BACKEND
46class GPUOpenGLTest :
public GPUTest {
49 : GPUTest(GHOST_kDrawingContextTypeOpenGL,
56class GPUOpenGLWorkaroundsTest :
public GPUTest {
58 GPUOpenGLWorkaroundsTest()
59 : GPUTest(GHOST_kDrawingContextTypeOpenGL,
65# define GPU_OPENGL_TEST(test_name) \
66 TEST_F(GPUOpenGLTest, test_name) \
70 TEST_F(GPUOpenGLWorkaroundsTest, test_name) \
75# define GPU_OPENGL_TEST(test_name)
78#ifdef WITH_METAL_BACKEND
79class GPUMetalTest :
public GPUTest {
84class GPUMetalWorkaroundsTest :
public GPUTest {
86 GPUMetalWorkaroundsTest()
87 : GPUTest(GHOST_kDrawingContextTypeMetal,
93# define GPU_METAL_TEST(test_name) \
94 TEST_F(GPUMetalTest, test_name) \
98 TEST_F(GPUMetalWorkaroundsTest, test_name) \
100 test_##test_name(); \
103# define GPU_METAL_TEST(test_name)
106#ifdef WITH_VULKAN_BACKEND
107class GPUVulkanTest :
public GPUTest {
110 : GPUTest(GHOST_kDrawingContextTypeVulkan,
117class GPUVulkanWorkaroundsTest :
public GPUTest {
119 GPUVulkanWorkaroundsTest()
120 : GPUTest(GHOST_kDrawingContextTypeVulkan,
126# define GPU_VULKAN_TEST(test_name) \
127 TEST_F(GPUVulkanTest, test_name) \
129 test_##test_name(); \
131 TEST_F(GPUVulkanWorkaroundsTest, test_name) \
133 test_##test_name(); \
136# define GPU_VULKAN_TEST(test_name)
139#define GPU_TEST(test_name) \
140 GPU_OPENGL_TEST(test_name) \
141 GPU_METAL_TEST(test_name) \
142 GPU_VULKAN_TEST(test_name)
@ G_DEBUG_GPU_FORCE_WORKAROUNDS
GHOST C-API function and type declarations.
GHOST_TDrawingContextType
@ GHOST_kDrawingContextTypeNone
struct GPUContext GPUContext
GPUTest(GHOST_TDrawingContextType draw_context_type, eGPUBackendType gpu_backend_type, int32_t g_debug_flags)