[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