[Bf-blender-cvs] [15ac6202044] tmp-vulkan: Added Vulkan test cases.
Jeroen Bakker
noreply at git.blender.org
Fri Jun 25 10:49:20 CEST 2021
Commit: 15ac6202044c6acaaa6535559a14a5ea6b106525
Author: Jeroen Bakker
Date: Fri Jun 25 10:48:07 2021 +0200
Branches: tmp-vulkan
https://developer.blender.org/rB15ac6202044c6acaaa6535559a14a5ea6b106525
Added Vulkan test cases.
Added counterparts of the shader test cases for vulkan.
Fixing an issue where the OpenGL context was created when using a vulkan
backend.
===================================================================
M source/blender/draw/tests/shaders_test.cc
M source/blender/gpu/tests/gpu_shader_compiler_test.cc
M source/blender/gpu/tests/gpu_testing.cc
===================================================================
diff --git a/source/blender/draw/tests/shaders_test.cc b/source/blender/draw/tests/shaders_test.cc
index 8ab626ed7ba..427fcbf8fad 100644
--- a/source/blender/draw/tests/shaders_test.cc
+++ b/source/blender/draw/tests/shaders_test.cc
@@ -18,7 +18,7 @@
namespace blender::draw {
/* Base class for draw test cases. It will setup and tear down the GPU part around each test. */
-class DrawTest : public blender::gpu::GPUTest {
+class DrawOpenGLTest : public blender::gpu::GPUOpenGLTest {
void SetUp() override
{
GPUTest::SetUp();
@@ -26,8 +26,21 @@ class DrawTest : public blender::gpu::GPUTest {
}
};
-TEST_F(DrawTest, workbench_glsl_shaders)
+#ifdef WITH_VULKAN
+
+class DrawVulkanTest : public blender::gpu::GPUVulkanTest {
+ void SetUp() override
+ {
+ GPUTest::SetUp();
+ DRW_draw_state_init_gtests(GPU_SHADER_CFG_DEFAULT);
+ }
+};
+
+#endif
+
+static void test_workbench_glsl_shaders()
{
+
workbench_shader_library_ensure();
DRW_draw_state_init_gtests(GPU_SHADER_CFG_DEFAULT);
@@ -161,8 +174,9 @@ TEST_F(DrawTest, workbench_glsl_shaders)
workbench_shader_free();
}
-TEST_F(DrawTest, gpencil_glsl_shaders)
+static void test_gpencil_glsl_shaders()
{
+
EXPECT_NE(GPENCIL_shader_antialiasing(0), nullptr);
EXPECT_NE(GPENCIL_shader_antialiasing(1), nullptr);
EXPECT_NE(GPENCIL_shader_antialiasing(2), nullptr);
@@ -183,8 +197,9 @@ TEST_F(DrawTest, gpencil_glsl_shaders)
GPENCIL_shader_free();
}
-TEST_F(DrawTest, image_glsl_shaders)
+static void test_image_glsl_shaders()
{
+
IMAGE_shader_library_ensure();
EXPECT_NE(IMAGE_shader_image_get(false), nullptr);
@@ -193,7 +208,7 @@ TEST_F(DrawTest, image_glsl_shaders)
IMAGE_shader_free();
}
-TEST_F(DrawTest, overlay_glsl_shaders)
+static void test_overlay_glsl_shaders()
{
OVERLAY_shader_library_ensure();
@@ -286,7 +301,7 @@ TEST_F(DrawTest, overlay_glsl_shaders)
OVERLAY_shader_free();
}
-TEST_F(DrawTest, eevee_glsl_shaders_static)
+static void test_eevee_glsl_shaders()
{
EEVEE_shaders_lightprobe_shaders_init();
EEVEE_shaders_material_shaders_init();
@@ -380,4 +395,58 @@ TEST_F(DrawTest, eevee_glsl_shaders_static)
EEVEE_shaders_free();
}
+TEST_F(DrawOpenGLTest, workbench_glsl_shaders)
+{
+ test_workbench_glsl_shaders();
+}
+
+TEST_F(DrawOpenGLTest, gpencil_glsl_shaders)
+{
+ test_gpencil_glsl_shaders();
+}
+
+TEST_F(DrawOpenGLTest, image_glsl_shaders)
+{
+ test_image_glsl_shaders();
+}
+
+TEST_F(DrawOpenGLTest, overlay_glsl_shaders)
+{
+ test_overlay_glsl_shaders();
+}
+
+TEST_F(DrawOpenGLTest, eevee_glsl_shaders_static)
+{
+ test_eevee_glsl_shaders();
+}
+
+#ifdef WITH_VULKAN
+
+TEST_F(DrawVulkanTest, workbench_glsl_shaders)
+{
+ test_workbench_glsl_shaders();
+}
+
+TEST_F(DrawVulkanTest, gpencil_glsl_shaders)
+{
+ test_gpencil_glsl_shaders();
+}
+
+TEST_F(DrawVulkanTest, image_glsl_shaders)
+{
+ test_image_glsl_shaders();
+}
+
+TEST_F(DrawVulkanTest, overlay_glsl_shaders)
+{
+ test_overlay_glsl_shaders();
+}
+
+TEST_F(DrawVulkanTest, eevee_glsl_shaders_static)
+{
+ test_eevee_glsl_shaders();
+}
+
+#endif
+
} // namespace blender::draw
diff --git a/source/blender/gpu/tests/gpu_shader_compiler_test.cc b/source/blender/gpu/tests/gpu_shader_compiler_test.cc
index f247c17876a..1418a435780 100644
--- a/source/blender/gpu/tests/gpu_shader_compiler_test.cc
+++ b/source/blender/gpu/tests/gpu_shader_compiler_test.cc
@@ -6,8 +6,7 @@
namespace blender::gpu::tests {
#ifdef WITH_VULKAN
-/* TODO(jbakker): GPUVulkanTest crashes. */
-TEST_F(GPUOpenGLTest, shader_compiler)
+TEST_F(GPUVulkanTest, shader_compiler)
{
const char *source = "#version 450\nvoid main() {}";
shader_compiler::Compiler *compiler = shader_compiler::Compiler::create_default();
diff --git a/source/blender/gpu/tests/gpu_testing.cc b/source/blender/gpu/tests/gpu_testing.cc
index 49ff403f2e3..e4c1bd3f658 100644
--- a/source/blender/gpu/tests/gpu_testing.cc
+++ b/source/blender/gpu/tests/gpu_testing.cc
@@ -2,6 +2,8 @@
#include "testing/testing.h"
+#include "BKE_global.h"
+
#include "GPU_context.h"
#include "GPU_init_exit.h"
#include "gpu_testing.hh"
@@ -12,7 +14,6 @@ namespace blender::gpu {
void GPUTest::SetUp()
{
-
GHOST_GLSettings glSettings = {0};
ghost_system = GHOST_CreateSystem();
ghost_context = GHOST_CreateOpenGLContext(ghost_system, draw_context_type, glSettings);
@@ -31,6 +32,7 @@ void GPUTest::TearDown()
GPUOpenGLTest::GPUOpenGLTest()
{
+ G.debug &= ~G_DEBUG_VK_CONTEXT;
draw_context_type = GHOST_kDrawingContextTypeOpenGL;
}
@@ -38,6 +40,7 @@ GPUOpenGLTest::GPUOpenGLTest()
GPUVulkanTest::GPUVulkanTest()
{
+ G.debug |= G_DEBUG_VK_CONTEXT;
draw_context_type = GHOST_kDrawingContextTypeVulkan;
}
More information about the Bf-blender-cvs
mailing list