From: Eleni Maria Stea Date: Thu, 15 Mar 2018 11:30:46 +0000 (+0200) Subject: Fixed shaders to be SPIR-V compatible, added a script that converts X-Git-Url: http://git.mutantstargoat.com?p=demo;a=commitdiff_plain;h=e04bbfa8eb50d10fc87c3cbd6667de5de767eaa7 Fixed shaders to be SPIR-V compatible, added a script that converts GLSL to SPIRV --- diff --git a/compile_spirv.sh b/compile_spirv.sh new file mode 100755 index 0000000..b191c9d --- /dev/null +++ b/compile_spirv.sh @@ -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 diff --git a/shaders/default.f.glsl b/shaders/default.f.glsl index fe78fbc..a38c3f0 100644 --- a/shaders/default.f.glsl +++ b/shaders/default.f.glsl @@ -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; diff --git a/shaders/morphing.f.glsl b/shaders/morphing.f.glsl index de6dda9..24f37aa 100644 --- a/shaders/morphing.f.glsl +++ b/shaders/morphing.f.glsl @@ -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); diff --git a/shaders/sky.f.glsl b/shaders/sky.f.glsl index 688da43..4ebe72a 100644 --- a/shaders/sky.f.glsl +++ b/shaders/sky.f.glsl @@ -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; diff --git a/shaders/sky.v.glsl b/shaders/sky.v.glsl index f5ba24f..debf579 100644 --- a/shaders/sky.v.glsl +++ b/shaders/sky.v.glsl @@ -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() {