mirror of https://github.com/xemu-project/xemu.git
34 lines
926 B
GLSL
34 lines
926 B
GLSL
#version 460 core
|
|
#extension GL_EXT_buffer_reference : require
|
|
#extension GL_EXT_shader_explicit_arithmetic_types_float32 : require
|
|
#extension GL_EXT_shader_explicit_arithmetic_types_int64 : require
|
|
#extension GL_EXT_shader_explicit_arithmetic_types_int32 : require
|
|
|
|
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
|
|
|
|
layout(buffer_reference, buffer_reference_align = 4) readonly buffer ReadVecf
|
|
{
|
|
float32_t values[];
|
|
};
|
|
|
|
layout(buffer_reference, buffer_reference_align = 4) writeonly buffer WriteVecf
|
|
{
|
|
float32_t values[];
|
|
};
|
|
|
|
layout(push_constant, std430) uniform Parameters
|
|
{
|
|
ReadVecf a;
|
|
ReadVecf b;
|
|
WriteVecf c;
|
|
uint64_t n;
|
|
} params;
|
|
|
|
void main()
|
|
{
|
|
uint32_t idx = gl_GlobalInvocationID.x;
|
|
uint32_t stride = gl_NumWorkGroups.x * gl_WorkGroupSize.x;
|
|
for (; idx < params.n; idx += stride) {
|
|
params.c.values[idx] = params.a.values[idx] + params.b.values[idx];
|
|
}
|
|
} |