Fixed shaders to be SPIR-V compatible, added a script that converts
authorEleni Maria Stea <estea@igalia.com>
Thu, 15 Mar 2018 11:30:46 +0000 (13:30 +0200)
committerEleni Maria Stea <estea@igalia.com>
Thu, 15 Mar 2018 11:30:46 +0000 (13:30 +0200)
GLSL to SPIRV

compile_spirv.sh [new file with mode: 0755]
shaders/default.f.glsl
shaders/morphing.f.glsl
shaders/sky.f.glsl
shaders/sky.v.glsl

diff --git a/compile_spirv.sh b/compile_spirv.sh
new file mode 100755 (executable)
index 0000000..b191c9d
--- /dev/null
@@ -0,0 +1,8 @@
+#!/bin/bash
+
+glslangValidator -V -S vert shaders/default.v.glsl -o shaders/spirv/default.v.spv
+glslangValidator -V -S frag shaders/default.f.glsl -o shaders/spirv/default.f.spv
+glslangValidator -V -S vert shaders/morphing.v.glsl -o shaders/spirv/morphing.v.spv
+glslangValidator -V -S frag shaders/morphing.f.glsl -o shaders/spirv/morphing.f.spv
+glslangValidator -V -S vert shaders/sky.v.glsl -o shaders/spirv/sky.v.spv
+glslangValidator -V -S frag shaders/sky.f.glsl -o shaders/spirv/sky.f.spv
index fe78fbc..a38c3f0 100644 (file)
@@ -24,12 +24,12 @@ layout(location = 0) out vec4 color;
 
 void main()
 {
-       vec4 itexel = textureCube(dstex, normalize(world_normal));
+       vec4 itexel = texture(dstex, normalize(world_normal));
 
        float dist = -pos.z;
        float fog = clamp(exp(-s.fog_density * dist), 0.0, 1.0);
 
-       vec4 texel = texture2D(tex, tex_coord);
+       vec4 texel = texture(tex, tex_coord);
 
        // vec3 object_color = (diffuse.xyz * cdiff * texel.xyz + specular.xyz * cspec) * itexel.xyz;
        vec3 object_color = s.diffuse.xyz * texel.xyz * itexel.xyz;
index de6dda9..24f37aa 100644 (file)
@@ -23,8 +23,8 @@ const vec3 sky_color = vec3(0.35, 0.5, 0.65);
 
 void main()
 {
-       vec4 itexel = textureCube(dstex, normalize(world_normal));
-       vec4 texel = texture2D(tex, tex_coord);
+       vec4 itexel = texture(dstex, normalize(world_normal));
+       vec4 texel = texture(tex, tex_coord);
        vec3 object_color = s.diffuse.xyz * texel.xyz * itexel.xyz;
        float dist = -pos.z;
        float fog = clamp(exp(-s.fog_density * dist), 0.0, 1.0);
index 688da43..4ebe72a 100644 (file)
@@ -2,12 +2,12 @@
 
 layout(binding = 0) uniform samplerCube stex;
 
-in vec3 normal;
-out vec4 color;
+layout(location = 0) in vec3 normal;
+layout(location = 0) out vec4 color;
 
 void main()
 {
-       vec4 texel = textureCube(stex, normalize(normal));
+       vec4 texel = texture(stex, normalize(normal));
 
        color.rgb = texel.rgb;
        color.a = 1.0;
index f5ba24f..debf579 100644 (file)
@@ -10,7 +10,7 @@ layout(std140, binding = SKY_MATRIX_UNIFORMS) uniform svu {
 layout(location = 1) in vec3 attr_pos;
 layout(location = 2) in vec3 attr_normal;
 
-out vec3 normal;
+layout(location = 0) out vec3 normal;
 
 void main()
 {