5#include "testing/testing.h"
31 if (
ssbo ==
nullptr) {
34 data.resize(num_floats);
40 if (
ssbo !=
nullptr) {
49 vec2_in =
float2(vector_mul * 2.0, vector_mul * 2.0 + scalar_mul);
51 vector_mul * 3.0, vector_mul * 3.0 + scalar_mul, vector_mul * 3.0 + scalar_mul * 2.0);
53 vector_mul * 4.0 + scalar_mul,
54 vector_mul * 4.0 + scalar_mul * 2.0,
55 vector_mul * 4.0 + scalar_mul * 3.0);
101 EXPECT_NE(
shader,
nullptr);
140 shader.init_shader(info_name);
142 for (
const int call_index :
IndexRange(num_calls_simultaneously)) {
147 shader.update_push_constants(call_data);
152 for (
const int call_index :
IndexRange(num_calls_simultaneously)) {
201GPU_TEST(push_constants_multiple_128bytes)
207GPU_TEST(push_constants_multiple_256bytes)
213GPU_TEST(push_constants_multiple_512bytes)
219GPU_TEST(push_constants_multiple_8192bytes)
EXPECT_EQ(BLI_expr_pylike_eval(expr, nullptr, 0, &result), EXPR_PYLIKE_INVALID)
void GPU_compute_dispatch(blender::gpu::Shader *shader, uint groups_x_len, uint groups_y_len, uint groups_z_len, const blender::gpu::shader::SpecializationConstants *constants_state=nullptr)
void GPU_shader_uniform_1f(blender::gpu::Shader *sh, const char *name, float value)
void GPU_shader_free(blender::gpu::Shader *shader)
void GPU_shader_uniform_4fv(blender::gpu::Shader *sh, const char *name, const float data[4])
void GPU_shader_uniform_3fv(blender::gpu::Shader *sh, const char *name, const float data[3])
void GPU_shader_bind(blender::gpu::Shader *shader, const blender::gpu::shader::SpecializationConstants *constants_state=nullptr)
int GPU_shader_get_ssbo_binding(blender::gpu::Shader *shader, const char *name)
blender::gpu::Shader * GPU_shader_create_from_info_name(const char *info_name)
void GPU_shader_uniform_2fv(blender::gpu::Shader *sh, const char *name, const float data[2])
@ GPU_BARRIER_SHADER_STORAGE
void GPU_memory_barrier(GPUBarrier barrier)
void GPU_storagebuf_free(blender::gpu::StorageBuf *ssbo)
blender::gpu::StorageBuf * GPU_storagebuf_create_ex(size_t size, const void *data, GPUUsageType usage, const char *name)
void GPU_storagebuf_bind(blender::gpu::StorageBuf *ssbo, int slot)
void GPU_storagebuf_read(blender::gpu::StorageBuf *ssbo, void *data)
#define GPU_TEST(test_name)
static void test_push_constants_8192bytes()
static void test_push_constants_128bytes()
static void test_push_constants_multiple_8192bytes()
static void test_push_constants_multiple()
static void test_push_constants()
static void test_push_constants_256bytes()
static void test_push_constants_multiple_128bytes()
static void test_push_constants_multiple_256bytes()
static void test_push_constants_multiple_512bytes()
static void do_push_constants_test(const char *info_name, const int num_calls_simultaneously=1)
static void test_push_constants_512bytes()
VecBase< float, 4 > float4
VecBase< float, 2 > float2
VecBase< float, 3 > float3
void generate_test_data(const float vector_mul, const float scalar_mul)
void init_ssbo(size_t num_floats)
void update_push_constants(const CallData &call_data)
Vector< CallData > call_datas
void bind(CallData &call_data)
void init_shader(const char *info_name)