mirror of
https://github.com/RPCS3/glslang.git
synced 2024-12-01 07:01:12 +00:00
d82c906378
Note: This required adding a new test mode to see the AST for vulkan tests. This also required reworking some deeper parts of type creation, regarding when storage qualification and constness is deduced bottom-up or dictated top-down.
43 lines
1.1 KiB
GLSL
43 lines
1.1 KiB
GLSL
#version 450
|
|
|
|
layout(constant_id = 200) const float scf1 = 1.0;
|
|
layout(constant_id = 201) const bool scbt = true;
|
|
layout(constant_id = 202) const int sci2 = 2;
|
|
|
|
void main()
|
|
{
|
|
bool(scf1); // not a spec-const
|
|
bool(scbt); // spec-const
|
|
bool(sci2); // spec-const
|
|
|
|
float(scf1); // not a spec-const
|
|
float(scbt); // not a spec-const
|
|
float(sci2); // not a spec-const
|
|
|
|
int(scf1); // not a spec-const
|
|
int(scbt); // spec-const
|
|
int(sci2); // spec-const
|
|
|
|
scf1 * scf1; // not a spec-const
|
|
scbt || scbt; // spec-const
|
|
sci2 * sci2; // spec-const
|
|
scf1 + sci2; // implicit conversion not a spec-const
|
|
|
|
-scf1; // not a spec-const
|
|
!scbt; // spec-const
|
|
-sci2; // spec-const
|
|
|
|
scf1 > scf1; // not a spec-const
|
|
sci2 > sci2; // spec-const
|
|
|
|
scf1 != scf1; // not a spec-const
|
|
scbt != scbt; // spec-const
|
|
sci2 != sci2; // spec-const
|
|
|
|
ivec2(sci2, sci2); // spec-const
|
|
ivec2[2](ivec2(sci2, sci2), ivec2(sci2, sci2)); // not a spec-const
|
|
|
|
vec2(scf1, scf1); // not spec-const
|
|
vec2[2](vec2(scf1, scf1), vec2(scf1, scf1)); // not a spec-const
|
|
}
|