spirv: Support initializers on uniforms (#1588)

If a uniform has an initializer it will now be given as the optional
initializer operand to the OpVariable instruction.

Fixes: https://github.com/KhronosGroup/glslang/issues/1259

Signed-off-by: Neil Roberts <nroberts@igalia.com> (the code)
Signed-off-by: Alejandro Piñeiro <apinheiro@igalia.com> (the tests)
Signed-off-by: Arcady Goldmints-Orlov <agoldmints@igalia.com>

Co-authored-by: Neil Roberts <nroberts@igalia.com>
This commit is contained in:
Alejandro Piñeiro
2020-06-04 09:39:31 +02:00
committed by GitHub
parent 232ba0d848
commit ff6dcca575
8 changed files with 193 additions and 1 deletions

View File

@@ -0,0 +1,14 @@
#version 450
layout (location = 0) out vec4 color;
layout (constant_id = 1) const float opacity = 0.5;
layout (location = 0) uniform vec3 in_color = vec3(1.0, 0.5, 0);
layout (location = 4) uniform float foo = opacity;
void main()
{
color = vec4(in_color, foo);
}