xemu/subprojects/SPIRV-Reflect/tests/spec_constants/convert.comp

34 lines
880 B
Plaintext

#version 450
#extension GL_EXT_shader_explicit_arithmetic_types_int64: enable
layout(local_size_x = 1) in;
layout(constant_id = 0) const int64_t SONE = 1;
layout(constant_id = 1) const uint64_t UONE = 1;
layout(constant_id = 2) const float F_ONE = 1.0;
layout(constant_id = 3) const double D_ONE = 1.0;
const uint U_SONE = uint(SONE);
const uint U_UONE = uint(UONE);
const int S_SONE = int(SONE);
const int S_UONE = int(UONE);
const float F_ONE2 = float(D_ONE);
const double D_ONE2 = double(F_ONE);
#define DUMMY_SSBO(name, bind, size) layout(std430, set = 0, binding = bind) buffer SSBO_##name { float val[size]; float dummy; } name
DUMMY_SSBO(U_Sone, 0, U_SONE);
DUMMY_SSBO(U_Uone, 1, U_UONE);
DUMMY_SSBO(S_Sone, 2, S_SONE);
DUMMY_SSBO(S_Uone, 3, S_UONE);
void main()
{
U_Sone.val[0] = F_ONE;
U_Uone.val[0] = F_ONE;
S_Sone.val[0] = F_ONE2;
S_Uone.val[0] = F_ONE2;
}