[Bf-blender-cvs] [87a923fdb67] master: GPU: Add SSBO binding test to new structure.

Jeroen Bakker noreply at git.blender.org
Mon Jan 30 19:09:00 CET 2023


Commit: 87a923fdb671f1d5278ac91511c82ac1f55292b4
Author: Jeroen Bakker
Date:   Mon Jan 30 19:07:33 2023 +0100
Branches: master
https://developer.blender.org/rB87a923fdb671f1d5278ac91511c82ac1f55292b4

GPU: Add SSBO binding test to new structure.

This test was added to test the shader info structure binding
information for SSBOs. It still used the legacy GLSL structure.

===================================================================

M	source/blender/gpu/CMakeLists.txt
M	source/blender/gpu/shaders/infos/gpu_shader_test_info.hh
M	source/blender/gpu/tests/gpu_shader_test.cc
A	source/blender/gpu/tests/shaders/gpu_compute_dummy_test.glsl

===================================================================

diff --git a/source/blender/gpu/CMakeLists.txt b/source/blender/gpu/CMakeLists.txt
index 30a525af6cd..6804c63d4e4 100644
--- a/source/blender/gpu/CMakeLists.txt
+++ b/source/blender/gpu/CMakeLists.txt
@@ -505,6 +505,7 @@ set(GLSL_SRC_TEST
   tests/shaders/gpu_compute_2d_test.glsl
   tests/shaders/gpu_compute_ibo_test.glsl
   tests/shaders/gpu_compute_vbo_test.glsl
+  tests/shaders/gpu_compute_dummy_test.glsl
 )
 
 set(MTL_BACKEND_GLSL_SRC
diff --git a/source/blender/gpu/shaders/infos/gpu_shader_test_info.hh b/source/blender/gpu/shaders/infos/gpu_shader_test_info.hh
index 432fa56b95f..bf4de62415d 100644
--- a/source/blender/gpu/shaders/infos/gpu_shader_test_info.hh
+++ b/source/blender/gpu/shaders/infos/gpu_shader_test_info.hh
@@ -41,3 +41,10 @@ GPU_SHADER_CREATE_INFO(gpu_compute_vbo_test)
     .storage_buf(0, Qualifier::WRITE, "vec4", "out_positions[]")
     .compute_source("gpu_compute_vbo_test.glsl")
     .do_static_compilation(true);
+
+GPU_SHADER_CREATE_INFO(gpu_compute_ssbo_binding_test)
+    .local_group_size(1)
+    .storage_buf(0, Qualifier::WRITE, "int", "data0[]")
+    .storage_buf(1, Qualifier::WRITE, "int", "data1[]")
+    .compute_source("gpu_compute_dummy_test.glsl")
+    .do_static_compilation(true);
diff --git a/source/blender/gpu/tests/gpu_shader_test.cc b/source/blender/gpu/tests/gpu_shader_test.cc
index 8a5b70a9b1d..9bb0d1504b3 100644
--- a/source/blender/gpu/tests/gpu_shader_test.cc
+++ b/source/blender/gpu/tests/gpu_shader_test.cc
@@ -218,30 +218,12 @@ static void test_gpu_shader_ssbo_binding()
   }
 
   /* Build compute shader. */
-  const char *compute_glsl = R"(
-
-layout(local_size_x = 1) in;
-
-layout(std430, binding = 0) buffer ssboBinding0
-{
-  int data0[];
-};
-layout(std430, binding = 1) buffer ssboBinding1
-{
-  int data1[];
-};
-
-void main() {
-}
-
-)";
-
-  GPUShader *shader = GPU_shader_create_compute(compute_glsl, nullptr, nullptr, "gpu_shader_ssbo");
+  GPUShader *shader = GPU_shader_create_from_info_name("gpu_compute_ssbo_binding_test");
   EXPECT_NE(shader, nullptr);
   GPU_shader_bind(shader);
 
-  EXPECT_EQ(0, GPU_shader_get_ssbo(shader, "ssboBinding0"));
-  EXPECT_EQ(1, GPU_shader_get_ssbo(shader, "ssboBinding1"));
+  EXPECT_EQ(0, GPU_shader_get_ssbo(shader, "data0"));
+  EXPECT_EQ(1, GPU_shader_get_ssbo(shader, "data1"));
 
   /* Cleanup. */
   GPU_shader_unbind();
diff --git a/source/blender/gpu/tests/shaders/gpu_compute_dummy_test.glsl b/source/blender/gpu/tests/shaders/gpu_compute_dummy_test.glsl
new file mode 100644
index 00000000000..c08e5bcfebe
--- /dev/null
+++ b/source/blender/gpu/tests/shaders/gpu_compute_dummy_test.glsl
@@ -0,0 +1,2 @@
+void main () {
+}
\ No newline at end of file



More information about the Bf-blender-cvs mailing list