Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'source/blender/gpu/tests/gpu_uniform_buffer_struct_test.cc')
-rw-r--r--source/blender/gpu/tests/gpu_uniform_buffer_struct_test.cc53
1 files changed, 52 insertions, 1 deletions
diff --git a/source/blender/gpu/tests/gpu_uniform_buffer_struct_test.cc b/source/blender/gpu/tests/gpu_uniform_buffer_struct_test.cc
index 8468bb1c66a..c03e1438509 100644
--- a/source/blender/gpu/tests/gpu_uniform_buffer_struct_test.cc
+++ b/source/blender/gpu/tests/gpu_uniform_buffer_struct_test.cc
@@ -1,5 +1,8 @@
-#include "testing/testing.h"
+#include "gpu_testing.hh"
+#include "GPU_capabilities.h"
+#include "GPU_compute.h"
+#include "GPU_shader.h"
#include "GPU_uniform_buffer_types.h"
#include "gpu_uniform_buffer_private.hh"
@@ -94,4 +97,52 @@ TEST(GPUUniformStruct, struct1)
}
}
+static void test_custom_shader_with_uniform_builtin_struct()
+{
+ if (!GPU_compute_shader_support()) {
+ /* We can't test as a the platform does not support compute shaders. */
+ std::cout << "Skipping compute shader test: platform not supported";
+ return;
+ }
+
+ /* Build compute shader. */
+ const char *compute_glsl = R"(
+
+layout(local_size_x = 1, local_size_y = 1) in;
+layout(rgba32f, binding = 0) uniform image2D img_output;
+
+layout(std140) uniform shaderBlock {
+ mat4 ModelMatrix;
+ mat4 ModelViewProjectionMatrix;
+ vec4 color;
+ vec4 WorldClipPlanes[6];
+ bool SrgbTransform;
+};
+
+void main() {
+}
+
+)";
+
+ GPUShader *shader = GPU_shader_create_ex(nullptr,
+ nullptr,
+ nullptr,
+ compute_glsl,
+ nullptr,
+ nullptr,
+ GPU_SHADER_TFB_NONE,
+ nullptr,
+ 0,
+ GPU_UNIFORM_STRUCT_1,
+ __func__);
+ EXPECT_NE(shader, nullptr);
+
+ float color[4] = {1.0f, 0.0f, 1.0f, 1.0f};
+ GPU_shader_uniform_4fv(shader, "color", color);
+
+ GPU_shader_free(shader);
+}
+
+GPU_TEST(custom_shader_with_uniform_builtin_struct)
+
} // namespace blender::gpu::tests \ No newline at end of file