Recent logs - God of War™: Ghost of Sparta

To see your stuff show here, enable Compatibility Server Reports in PPSSPP.

Click on a version, game, or report message to show similar entries. Hover over version to see platform info, and hover over a game title to see region and version info.

Game title Version Latest Report Message
God of War™: Ghost of Sparta v1.12.3 2022-06-27 Jump to invalid address: 0639d080
God of War™: Ghost of Sparta v1.9.4 2022-06-23 80631003=sceAtracSetAA3DataAndGetID(08c60dc0, 0001b184, 0001b184, 09fbba6c[ffffffff]): invalid ea3 magic bytes
God of War™: Ghost of Sparta v1.12.3 2022-06-20 Branch in Jump delay slot at 08a3191c in block starting at 08a31910
God of War™: Ghost of Sparta v1.12.3 2022-06-20 Jump to invalid address: 028c65e0
God of War™: Ghost of Sparta v1.12.3 2022-06-18 sceKernelLoadModule: unsupported options size=00000014, flags=08ad0000, pos=0, access=1, data=2, text=2
God of War™: Ghost of Sparta v1.12.2 2022-06-17 MIPSCompileOp: Invalid instruction 40e0fc28
God of War™: Ghost of Sparta v1.12.2 2022-06-17 MIPSCompileOp: Invalid instruction 40b86454
God of War™: Ghost of Sparta v1.12.2 2022-06-17 MIPSCompileOp: Invalid instruction 41989918
God of War™: Ghost of Sparta v1.12.2 2022-06-17 Jump to invalid address: 015bc140
God of War™: Ghost of Sparta v1.12.2 2022-06-17 Jump to invalid address: 05c9ad80
God of War™: Ghost of Sparta v1.12.2 2022-06-17 Jump to invalid address: 05258380
God of War™: Ghost of Sparta v1.12.2 2022-06-17 MIPSCompileOp: Invalid instruction 0000007c
God of War™: Ghost of Sparta v1.12.2 2022-06-17 MIPSCompileOp: Invalid instruction 0000001f
God of War™: Ghost of Sparta v1.12.2 2022-06-17 ReadFromHardware: Invalid address 00000000 near PC 00000000 LR 088e4334
God of War™: Ghost of Sparta v1.12.3 2022-06-16 80630007=sceAtracSetData(2, 08d4b180, 00015700): atracID uses different codec type than data
God of War™: Ghost of Sparta v1.12.3 2022-06-16 80630007=sceAtracSetData(2, 08d4b180, 00018700): atracID uses different codec type than data
God of War™: Ghost of Sparta v1.12.3 2022-06-16 FBO created from existing depthbuffer as color, 04110000/00000000 and 04170000/04110000
God of War™: Ghost of Sparta v1.6.3 2022-06-15 Error in shader program link: info: Link Error: Vertex shader is missing. Link Error: Fragment shader is missing. fs: 00000000:0d000002 Tex StenToAlpha StenKeep TFuncMod #version 300 es #extension GL_EXT_shader_framebuffer_fetch : require precision lowp float; uniform sampler2D tex; in vec4 v_color0; in highp vec3 v_texcoord; inout vec4 fragColor0; void main() { vec4 t = texture(tex, v_texcoord.xy); vec4 p = v_color0; vec4 v = vec4(t.rgb * p.rgb, p.a); fragColor0 = vec4(v.rgb, 0.0); } vs: 00000000:00000012 THR Tex #version 300 es precision highp float; in vec4 position; in vec2 texcoord; in lowp vec4 color0; uniform mat4 u_proj_through; out lowp vec4 v_color0; out highp vec3 v_texcoord; void main() { v_texcoord = vec3(texcoord, 1.0); v_color0 = color0; gl_Position = u_proj_through * vec4(position.xyz, 1.0); }
God of War™: Ghost of Sparta v1.6.3 2022-06-15 Error in shader program link: info: Link Error: Vertex shader is missing. Link Error: Fragment shader is missing. fs: 00000000:00400b8e Tex TexProj LM TClampST TFuncRepl #version 300 es #extension GL_EXT_shader_framebuffer_fetch : require precision lowp float; uniform sampler2D tex; uniform vec4 u_texclamp; in vec4 v_color0; in vec3 v_color1; in highp vec3 v_texcoord; inout vec4 fragColor0; float mymod(float a, float b) { return a - b * floor(a / b); } void main() { vec4 s = vec4(v_color1, 0.0); vec2 fixedcoord = vec2(clamp((v_texcoord.x / v_texcoord.z), u_texclamp.z, u_texclamp.x - u_texclamp.z), clamp((v_texcoord.y / v_texcoord.z), u_texclamp.w, u_texclamp.y - u_texclamp.w)); vec4 t = texture(tex, fixedcoord.xy); vec4 p = v_color0; vec4 v = vec4(t.rgb, p.a) + s; fragColor0 = v; } vs: 01730044:00010b59 HWX C T N LM Tex TexProjPos UVMtx Light: 0: c:0 t:1 1: c:0 t:1 2: c:0 t:0 MatUp:3 #version 300 es precision highp float; in vec3 position; in mediump vec3 normal; in vec2 texcoord; in lowp vec4 color0; uniform mat4 u_proj; uniform mat4 u_world; uniform mat4 u_view; uniform mediump mat4 u_texmtx; uniform vec4 u_uvscaleoffset; uniform vec3 u_lightpos0; uniform mediump vec3 u_lightatt0; uniform lowp vec3 u_lightambient0; uniform lowp vec3 u_lightdiffuse0; uniform vec3 u_lightpos1; uniform mediump vec3 u_lightatt1; uniform lowp vec3 u_lightambient1; uniform lowp vec3 u_lightdiffuse1; uniform vec3 u_lightpos2; uniform lowp vec3 u_lightambient2; uniform lowp vec3 u_lightdiffuse2; uniform lowp vec4 u_ambient; uniform lowp vec4 u_matspecular; uniform lowp vec3 u_matemissive; uniform lowp vec4 u_matambientalpha; out lowp vec4 v_color0; out lowp vec3 v_color1; out highp vec3 v_texcoord; void main() { vec3 worldpos = (u_world * vec4(position.xyz, 1.0)).xyz; mediump vec3 worldnormal = normalize((u_world * vec4(normal, 0.0)).xyz); vec4 viewPos = u_view * vec4(worldpos, 1.0); gl_Position = u_proj * viewPos; lowp vec4 lightSum0 = u_ambient * color0 + vec4(u_matemissive, 0.0); vec3 toLight; lowp vec3 diffuse; float distance; lowp float lightScale; mediump float ldot; toLight = u_lightpos0 - worldpos; distance = length(toLight); toLight /= distance; ldot = max(dot(toLight, worldnormal), 0.0); lightScale = clamp(1.0 / dot(u_lightatt0, vec3(1.0, distance, distance*distance)), 0.0, 1.0); diffuse = (u_lightdiffuse0 * color0.rgb) * ldot; lightSum0.rgb += (u_lightambient0 * color0.rgb + diffuse) * lightScale; toLight = u_lightpos1 - worldpos; distance = length(toLight); toLight /= distance; ldot = max(dot(toLight, worldnormal), 0.0); lightScale = clamp(1.0 / dot(u_lightatt1, vec3(1.0, distance, distance*distance)), 0.0, 1.0); diffuse = (u_lightdiffuse1 * color0.rgb) * ldot; lightSum0.rgb += (u_lightambient1 * color0.rgb + diffuse) * lightScale; toLight = u_lightpos2; ldot = max(dot(toLight, worldnormal), 0.0); diffuse = (u_lightdiffuse2 * color0.rgb) * ldot; lightSum0.rgb += (u_lightambient2 * color0.rgb + diffuse); v_color0 = clamp(lightSum0, 0.0, 1.0); v_color1 = vec3(0.0); v_texcoord = (u_texmtx * vec4(position.xyz, 1.0)).xyz * vec3(u_uvscaleoffset.xy, 1.0); }
God of War™: Ghost of Sparta v1.6.3 2022-06-15 Error in shader program link: info: Link Error: Vertex shader is missing. Link Error: Fragment shader is missing. fs: 00000000:00000002 Tex TFuncMod #version 300 es #extension GL_EXT_shader_framebuffer_fetch : require precision lowp float; uniform sampler2D tex; in vec4 v_color0; in highp vec3 v_texcoord; inout vec4 fragColor0; void main() { vec4 t = texture(tex, v_texcoord.xy); vec4 p = v_color0; vec4 v = vec4(t.rgb * p.rgb, p.a); fragColor0 = v; } vs: 00000000:00000012 THR Tex #version 300 es precision highp float; in vec4 position; in vec2 texcoord; in lowp vec4 color0; uniform mat4 u_proj_through; out lowp vec4 v_color0; out highp vec3 v_texcoord; void main() { v_texcoord = vec3(texcoord, 1.0); v_color0 = color0; gl_Position = u_proj_through * vec4(position.xyz, 1.0); }
God of War™: Ghost of Sparta v1.6.3 2022-06-15 Error in shader program link: info: Link Error: Vertex shader is missing. Link Error: Fragment shader is missing. fs: 00000000:0d000022 Tex TexAlpha StenToAlpha StenKeep TFuncMod #version 300 es #extension GL_EXT_shader_framebuffer_fetch : require precision lowp float; uniform sampler2D tex; in vec4 v_color0; in highp vec3 v_texcoord; inout vec4 fragColor0; void main() { vec4 t = texture(tex, v_texcoord.xy); vec4 p = v_color0; vec4 v = p * t; fragColor0 = vec4(v.rgb, 0.0); } vs: 00000000:00000012 THR Tex #version 300 es precision highp float; in vec4 position; in vec2 texcoord; in lowp vec4 color0; uniform mat4 u_proj_through; out lowp vec4 v_color0; out highp vec3 v_texcoord; void main() { v_texcoord = vec3(texcoord, 1.0); v_color0 = color0; gl_Position = u_proj_through * vec4(position.xyz, 1.0); }
God of War™: Ghost of Sparta v1.6.3 2022-06-15 Error in shader program link: info: Link Error: Vertex shader is missing. Link Error: Fragment shader is missing. fs: 00000000:0040080e Tex TexProj LM TFuncRepl #version 300 es #extension GL_EXT_shader_framebuffer_fetch : require precision lowp float; uniform sampler2D tex; in vec4 v_color0; in vec3 v_color1; in highp vec3 v_texcoord; inout vec4 fragColor0; void main() { vec4 s = vec4(v_color1, 0.0); vec4 t = textureProj(tex, v_texcoord); vec4 p = v_color0; vec4 v = vec4(t.rgb, p.a) + s; fragColor0 = v; } vs: 01f34044:00010b59 HWX C T N LM Tex TexProjPos UVMtx Light: 0: c:0 t:1 1: c:0 t:1 2: c:0 t:0 3: c:0 t:1 MatUp:3 #version 300 es precision highp float; in vec3 position; in mediump vec3 normal; in vec2 texcoord; in lowp vec4 color0; uniform mat4 u_proj; uniform mat4 u_world; uniform mat4 u_view; uniform mediump mat4 u_texmtx; uniform vec4 u_uvscaleoffset; uniform vec3 u_lightpos0; uniform mediump vec3 u_lightatt0; uniform lowp vec3 u_lightambient0; uniform lowp vec3 u_lightdiffuse0; uniform vec3 u_lightpos1; uniform mediump vec3 u_lightatt1; uniform lowp vec3 u_lightambient1; uniform lowp vec3 u_lightdiffuse1; uniform vec3 u_lightpos2; uniform lowp vec3 u_lightambient2; uniform lowp vec3 u_lightdiffuse2; uniform vec3 u_lightpos3; uniform mediump vec3 u_lightatt3; uniform lowp vec3 u_lightambient3; uniform lowp vec3 u_lightdiffuse3; uniform lowp vec4 u_ambient; uniform lowp vec4 u_matspecular; uniform lowp vec3 u_matemissive; uniform lowp vec4 u_matambientalpha; out lowp vec4 v_color0; out lowp vec3 v_color1; out highp vec3 v_texcoord; void main() { vec3 worldpos = (u_world * vec4(position.xyz, 1.0)).xyz; mediump vec3 worldnormal = normalize((u_world * vec4(normal, 0.0)).xyz); vec4 viewPos = u_view * vec4(worldpos, 1.0); gl_Position = u_proj * viewPos; lowp vec4 lightSum0 = u_ambient * color0 + vec4(u_matemissive, 0.0); vec3 toLight; lowp vec3 diffuse; float distance; lowp float lightScale; mediump float ldot; toLight = u_lightpos0 - worldpos; distance = length(toLight); toLight /= distance; ldot = max(dot(toLight, worldnormal), 0.0); lightScale = clamp(1.0 / dot(u_lightatt0, vec3(1.0, distance, distance*distance)), 0.0, 1.0); diffuse = (u_lightdiffuse0 * color0.rgb) * ldot; lightSum0.rgb += (u_lightambient0 * color0.rgb + diffuse) * lightScale; toLight = u_lightpos1 - worldpos; distance = length(toLight); toLight /= distance; ldot = max(dot(toLight, worldnormal), 0.0); lightScale = clamp(1.0 / dot(u_lightatt1, vec3(1.0, distance, distance*distance)), 0.0, 1.0); diffuse = (u_lightdiffuse1 * color0.rgb) * ldot; lightSum0.rgb += (u_lightambient1 * color0.rgb + diffuse) * lightScale; toLight = u_lightpos2; ldot = max(dot(toLight, worldnormal), 0.0); diffuse = (u_lightdiffuse2 * color0.rgb) * ldot; lightSum0.rgb += (u_lightambient2 * color0.rgb + diffuse); toLight = u_lightpos3 - worldpos; distance = length(toLight); toLight /= distance; ldot = max(dot(toLight, worldnormal), 0.0); lightScale = clamp(1.0 / dot(u_lightatt3, vec3(1.0, distance, distance*distance)), 0.0, 1.0); diffuse = (u_lightdiffuse3 * color0.rgb) * ldot; lightSum0.rgb += (u_lightambient3 * color0.rgb + diffuse) * lightScale; v_color0 = clamp(lightSum0, 0.0, 1.0); v_color1 = vec3(0.0); v_texcoord = (u_texmtx * vec4(position.xyz, 1.0)).xyz * vec3(u_uvscaleoffset.xy, 1.0); }
God of War™: Ghost of Sparta v1.6.3 2022-06-15 Error in shader program link: info: Link Error: Vertex shader is missing. Link Error: Fragment shader is missing. fs: 00000000:01a00802 Tex LM Fog 2x StenToAlpha StenUniform TFuncMod #version 300 es #extension GL_EXT_shader_framebuffer_fetch : require precision lowp float; uniform sampler2D tex; uniform float u_stencilReplaceValue; in vec4 v_color0; in vec3 v_color1; uniform vec3 u_fogcolor; in highp float v_fogdepth; in highp vec3 v_texcoord; inout vec4 fragColor0; void main() { vec4 s = vec4(v_color1, 0.0); vec4 t = texture(tex, v_texcoord.xy); vec4 p = v_color0; vec4 v = vec4(t.rgb * p.rgb, p.a) + s; v.rgb = v.rgb * 2.0; float fogCoef = clamp(v_fogdepth, 0.0, 1.0); v = mix(vec4(u_fogcolor, v.a), v, fogCoef); fragColor0 = vec4(v.rgb, u_stencilReplaceValue); } vs: 01f14400:00000b1d HWX C T N LM Fog Tex Light: 0: c:0 t:0 1: c:0 t:0 2: c:0 t:1 3: c:0 t:1 MatUp:1 #version 300 es precision highp float; in vec3 position; in mediump vec3 normal; in vec2 texcoord; in lowp vec4 color0; uniform mat4 u_proj; uniform mat4 u_world; uniform mat4 u_view; uniform vec4 u_uvscaleoffset; uniform vec3 u_lightpos0; uniform lowp vec3 u_lightambient0; uniform lowp vec3 u_lightdiffuse0; uniform vec3 u_lightpos1; uniform lowp vec3 u_lightambient1; uniform lowp vec3 u_lightdiffuse1; uniform vec3 u_lightpos2; uniform mediump vec3 u_lightatt2; uniform lowp vec3 u_lightambient2; uniform lowp vec3 u_lightdiffuse2; uniform vec3 u_lightpos3; uniform mediump vec3 u_lightatt3; uniform lowp vec3 u_lightambient3; uniform lowp vec3 u_lightdiffuse3; uniform lowp vec4 u_ambient; uniform lowp vec3 u_matdiffuse; uniform lowp vec4 u_matspecular; uniform lowp vec3 u_matemissive; uniform lowp vec4 u_matambientalpha; uniform highp vec2 u_fogcoef; out lowp vec4 v_color0; out lowp vec3 v_color1; out highp vec3 v_texcoord; out highp float v_fogdepth; void main() { vec3 worldpos = (u_world * vec4(position.xyz, 1.0)).xyz; mediump vec3 worldnormal = normalize((u_world * vec4(normal, 0.0)).xyz); vec4 viewPos = u_view * vec4(worldpos, 1.0); gl_Position = u_proj * viewPos; lowp vec4 lightSum0 = u_ambient * color0 + vec4(u_matemissive, 0.0); vec3 toLight; lowp vec3 diffuse; float distance; lowp float lightScale; mediump float ldot; toLight = u_lightpos0; ldot = max(dot(toLight, worldnormal), 0.0); diffuse = (u_lightdiffuse0 * u_matdiffuse) * ldot; lightSum0.rgb += (u_lightambient0 * color0.rgb + diffuse); toLight = u_lightpos1; ldot = max(dot(toLight, worldnormal), 0.0); diffuse = (u_lightdiffuse1 * u_matdiffuse) * ldot; lightSum0.rgb += (u_lightambient1 * color0.rgb + diffuse); toLight = u_lightpos2 - worldpos; distance = length(toLight); toLight /= distance; ldot = max(dot(toLight, worldnormal), 0.0); lightScale = clamp(1.0 / dot(u_lightatt2, vec3(1.0, distance, distance*distance)), 0.0, 1.0); diffuse = (u_lightdiffuse2 * u_matdiffuse) * ldot; lightSum0.rgb += (u_lightambient2 * color0.rgb + diffuse) * lightScale; toLight = u_lightpos3 - worldpos; distance = length(toLight); toLight /= distance; ldot = max(dot(toLight, worldnormal), 0.0); lightScale = clamp(1.0 / dot(u_lightatt3, vec3(1.0, distance, distance*distance)), 0.0, 1.0); diffuse = (u_lightdiffuse3 * u_matdiffuse) * ldot; lightSum0.rgb += (u_lightambient3 * color0.rgb + diffuse) * lightScale; v_color0 = clamp(lightSum0, 0.0, 1.0); v_color1 = vec3(0.0); v_texcoord = vec3(texcoord.xy * u_uvscaleoffset.xy, 0.0); v_fogdepth = (viewPos.z + u_fogcoef.x) * u_fogcoef.y; }
God of War™: Ghost of Sparta v1.6.3 2022-06-15 Error in shader program link: info: Link Error: Vertex shader is missing. Link Error: Fragment shader is missing. fs: 00000000:0040080e Tex TexProj LM TFuncRepl #version 300 es #extension GL_EXT_shader_framebuffer_fetch : require precision lowp float; uniform sampler2D tex; in vec4 v_color0; in vec3 v_color1; in highp vec3 v_texcoord; inout vec4 fragColor0; void main() { vec4 s = vec4(v_color1, 0.0); vec4 t = textureProj(tex, v_texcoord); vec4 p = v_color0; vec4 v = vec4(t.rgb, p.a) + s; fragColor0 = v; } vs: 01730111:00010b59 HWX C T N LM Tex TexProjPos UVMtx Light: 0: c:1 t:0 1: c:1 t:0 2: c:1 t:0 MatUp:3 #version 300 es precision highp float; in vec3 position; in mediump vec3 normal; in vec2 texcoord; in lowp vec4 color0; uniform mat4 u_proj; uniform mat4 u_world; uniform mat4 u_view; uniform mediump mat4 u_texmtx; uniform vec4 u_uvscaleoffset; uniform vec3 u_lightpos0; uniform lowp vec3 u_lightambient0; uniform lowp vec3 u_lightdiffuse0; uniform lowp vec3 u_lightspecular0; uniform vec3 u_lightpos1; uniform lowp vec3 u_lightambient1; uniform lowp vec3 u_lightdiffuse1; uniform lowp vec3 u_lightspecular1; uniform vec3 u_lightpos2; uniform lowp vec3 u_lightambient2; uniform lowp vec3 u_lightdiffuse2; uniform lowp vec3 u_lightspecular2; uniform lowp vec4 u_ambient; uniform lowp vec4 u_matspecular; uniform lowp vec3 u_matemissive; uniform lowp vec4 u_matambientalpha; out lowp vec4 v_color0; out lowp vec3 v_color1; out highp vec3 v_texcoord; void main() { vec3 worldpos = (u_world * vec4(position.xyz, 1.0)).xyz; mediump vec3 worldnormal = normalize((u_world * vec4(normal, 0.0)).xyz); vec4 viewPos = u_view * vec4(worldpos, 1.0); gl_Position = u_proj * viewPos; lowp vec4 lightSum0 = u_ambient * color0 + vec4(u_matemissive, 0.0); lowp vec3 lightSum1 = vec3(0.0); vec3 toLight; lowp vec3 diffuse; mediump float ldot; toLight = u_lightpos0; ldot = max(dot(toLight, worldnormal), 0.0); diffuse = (u_lightdiffuse0 * color0.rgb) * ldot; ldot = dot(normalize(toLight + vec3(0.0, 0.0, 1.0)), worldnormal); if (ldot > 0.0) lightSum1 += u_lightspecular0 * u_matspecular.rgb * (pow(ldot, u_matspecular.a) ); lightSum0.rgb += (u_lightambient0 * color0.rgb + diffuse); toLight = u_lightpos1; ldot = max(dot(toLight, worldnormal), 0.0); diffuse = (u_lightdiffuse1 * color0.rgb) * ldot; ldot = dot(normalize(toLight + vec3(0.0, 0.0, 1.0)), worldnormal); if (ldot > 0.0) lightSum1 += u_lightspecular1 * u_matspecular.rgb * (pow(ldot, u_matspecular.a) ); lightSum0.rgb += (u_lightambient1 * color0.rgb + diffuse); toLight = u_lightpos2; ldot = max(dot(toLight, worldnormal), 0.0); diffuse = (u_lightdiffuse2 * color0.rgb) * ldot; ldot = dot(normalize(toLight + vec3(0.0, 0.0, 1.0)), worldnormal); if (ldot > 0.0) lightSum1 += u_lightspecular2 * u_matspecular.rgb * (pow(ldot, u_matspecular.a) ); lightSum0.rgb += (u_lightambient2 * color0.rgb + diffuse); v_color0 = clamp(lightSum0, 0.0, 1.0); v_color1 = clamp(lightSum1, 0.0, 1.0); v_texcoord = (u_texmtx * vec4(position.xyz, 1.0)).xyz * vec3(u_uvscaleoffset.xy, 1.0); }
God of War™: Ghost of Sparta v1.6.3 2022-06-15 Error in shader program link: info: Link Error: Vertex shader is missing. Link Error: Fragment shader is missing. fs: 00000000:0040080e Tex TexProj LM TFuncRepl #version 300 es #extension GL_EXT_shader_framebuffer_fetch : require precision lowp float; uniform sampler2D tex; in vec4 v_color0; in vec3 v_color1; in highp vec3 v_texcoord; inout vec4 fragColor0; void main() { vec4 s = vec4(v_color1, 0.0); vec4 t = textureProj(tex, v_texcoord); vec4 p = v_color0; vec4 v = vec4(t.rgb, p.a) + s; fragColor0 = v; } vs: 01834000:00010b59 HWX C T N LM Tex TexProjPos UVMtx Light: 3: c:0 t:1 MatUp:3 #version 300 es precision highp float; in vec3 position; in mediump vec3 normal; in vec2 texcoord; in lowp vec4 color0; uniform mat4 u_proj; uniform mat4 u_world; uniform mat4 u_view; uniform mediump mat4 u_texmtx; uniform vec4 u_uvscaleoffset; uniform vec3 u_lightpos3; uniform mediump vec3 u_lightatt3; uniform lowp vec3 u_lightambient3; uniform lowp vec3 u_lightdiffuse3; uniform lowp vec4 u_ambient; uniform lowp vec4 u_matspecular; uniform lowp vec3 u_matemissive; uniform lowp vec4 u_matambientalpha; out lowp vec4 v_color0; out lowp vec3 v_color1; out highp vec3 v_texcoord; void main() { vec3 worldpos = (u_world * vec4(position.xyz, 1.0)).xyz; mediump vec3 worldnormal = normalize((u_world * vec4(normal, 0.0)).xyz); vec4 viewPos = u_view * vec4(worldpos, 1.0); gl_Position = u_proj * viewPos; lowp vec4 lightSum0 = u_ambient * color0 + vec4(u_matemissive, 0.0); vec3 toLight; lowp vec3 diffuse; float distance; lowp float lightScale; mediump float ldot; toLight = u_lightpos3 - worldpos; distance = length(toLight); toLight /= distance; ldot = max(dot(toLight, worldnormal), 0.0); lightScale = clamp(1.0 / dot(u_lightatt3, vec3(1.0, distance, distance*distance)), 0.0, 1.0); diffuse = (u_lightdiffuse3 * color0.rgb) * ldot; lightSum0.rgb += (u_lightambient3 * color0.rgb + diffuse) * lightScale; v_color0 = clamp(lightSum0, 0.0, 1.0); v_color1 = vec3(0.0); v_texcoord = (u_texmtx * vec4(position.xyz, 1.0)).xyz * vec3(u_uvscaleoffset.xy, 1.0); }
God of War™: Ghost of Sparta v1.6.3 2022-06-15 Error in shader program link: info: Link Error: Vertex shader is missing. Link Error: Fragment shader is missing. fs: 00000000:0040080e Tex TexProj LM TFuncRepl #version 300 es #extension GL_EXT_shader_framebuffer_fetch : require precision lowp float; uniform sampler2D tex; in vec4 v_color0; in vec3 v_color1; in highp vec3 v_texcoord; inout vec4 fragColor0; void main() { vec4 s = vec4(v_color1, 0.0); vec4 t = textureProj(tex, v_texcoord); vec4 p = v_color0; vec4 v = vec4(t.rgb, p.a) + s; fragColor0 = v; } vs: 01030000:00010b59 HWX C T N LM Tex TexProjPos UVMtx Light: MatUp:3 #version 300 es precision highp float; in vec3 position; in mediump vec3 normal; in vec2 texcoord; in lowp vec4 color0; uniform mat4 u_proj; uniform mat4 u_world; uniform mat4 u_view; uniform mediump mat4 u_texmtx; uniform vec4 u_uvscaleoffset; uniform lowp vec4 u_ambient; uniform lowp vec4 u_matspecular; uniform lowp vec3 u_matemissive; uniform lowp vec4 u_matambientalpha; out lowp vec4 v_color0; out lowp vec3 v_color1; out highp vec3 v_texcoord; void main() { vec3 worldpos = (u_world * vec4(position.xyz, 1.0)).xyz; mediump vec3 worldnormal = normalize((u_world * vec4(normal, 0.0)).xyz); vec4 viewPos = u_view * vec4(worldpos, 1.0); gl_Position = u_proj * viewPos; lowp vec4 lightSum0 = u_ambient * color0 + vec4(u_matemissive, 0.0); mediump float ldot; v_color0 = clamp(lightSum0, 0.0, 1.0); v_color1 = vec3(0.0); v_texcoord = (u_texmtx * vec4(position.xyz, 1.0)).xyz * vec3(u_uvscaleoffset.xy, 1.0); }
God of War™: Ghost of Sparta v1.6.3 2022-06-15 Error in shader program link: info: Link Error: Vertex shader is missing. Link Error: Fragment shader is missing. fs: 00000000:0040080e Tex TexProj LM TFuncRepl #version 300 es #extension GL_EXT_shader_framebuffer_fetch : require precision lowp float; uniform sampler2D tex; in vec4 v_color0; in vec3 v_color1; in highp vec3 v_texcoord; inout vec4 fragColor0; void main() { vec4 s = vec4(v_color1, 0.0); vec4 t = textureProj(tex, v_texcoord); vec4 p = v_color0; vec4 v = vec4(t.rgb, p.a) + s; fragColor0 = v; } vs: 01730044:00010b59 HWX C T N LM Tex TexProjPos UVMtx Light: 0: c:0 t:1 1: c:0 t:1 2: c:0 t:0 MatUp:3 #version 300 es precision highp float; in vec3 position; in mediump vec3 normal; in vec2 texcoord; in lowp vec4 color0; uniform mat4 u_proj; uniform mat4 u_world; uniform mat4 u_view; uniform mediump mat4 u_texmtx; uniform vec4 u_uvscaleoffset; uniform vec3 u_lightpos0; uniform mediump vec3 u_lightatt0; uniform lowp vec3 u_lightambient0; uniform lowp vec3 u_lightdiffuse0; uniform vec3 u_lightpos1; uniform mediump vec3 u_lightatt1; uniform lowp vec3 u_lightambient1; uniform lowp vec3 u_lightdiffuse1; uniform vec3 u_lightpos2; uniform lowp vec3 u_lightambient2; uniform lowp vec3 u_lightdiffuse2; uniform lowp vec4 u_ambient; uniform lowp vec4 u_matspecular; uniform lowp vec3 u_matemissive; uniform lowp vec4 u_matambientalpha; out lowp vec4 v_color0; out lowp vec3 v_color1; out highp vec3 v_texcoord; void main() { vec3 worldpos = (u_world * vec4(position.xyz, 1.0)).xyz; mediump vec3 worldnormal = normalize((u_world * vec4(normal, 0.0)).xyz); vec4 viewPos = u_view * vec4(worldpos, 1.0); gl_Position = u_proj * viewPos; lowp vec4 lightSum0 = u_ambient * color0 + vec4(u_matemissive, 0.0); vec3 toLight; lowp vec3 diffuse; float distance; lowp float lightScale; mediump float ldot; toLight = u_lightpos0 - worldpos; distance = length(toLight); toLight /= distance; ldot = max(dot(toLight, worldnormal), 0.0); lightScale = clamp(1.0 / dot(u_lightatt0, vec3(1.0, distance, distance*distance)), 0.0, 1.0); diffuse = (u_lightdiffuse0 * color0.rgb) * ldot; lightSum0.rgb += (u_lightambient0 * color0.rgb + diffuse) * lightScale; toLight = u_lightpos1 - worldpos; distance = length(toLight); toLight /= distance; ldot = max(dot(toLight, worldnormal), 0.0); lightScale = clamp(1.0 / dot(u_lightatt1, vec3(1.0, distance, distance*distance)), 0.0, 1.0); diffuse = (u_lightdiffuse1 * color0.rgb) * ldot; lightSum0.rgb += (u_lightambient1 * color0.rgb + diffuse) * lightScale; toLight = u_lightpos2; ldot = max(dot(toLight, worldnormal), 0.0); diffuse = (u_lightdiffuse2 * color0.rgb) * ldot; lightSum0.rgb += (u_lightambient2 * color0.rgb + diffuse); v_color0 = clamp(lightSum0, 0.0, 1.0); v_color1 = vec3(0.0); v_texcoord = (u_texmtx * vec4(position.xyz, 1.0)).xyz * vec3(u_uvscaleoffset.xy, 1.0); }
God of War™: Ghost of Sparta v1.6.3 2022-06-15 Error in shader program link: info: Link Error: Vertex shader is missing. Link Error: Fragment shader is missing. fs: 00000000:00a00822 Tex TexAlpha LM Fog 2x TFuncMod #version 300 es #extension GL_EXT_shader_framebuffer_fetch : require precision lowp float; uniform sampler2D tex; in vec4 v_color0; in vec3 v_color1; uniform vec3 u_fogcolor; in highp float v_fogdepth; in highp vec3 v_texcoord; inout vec4 fragColor0; void main() { vec4 s = vec4(v_color1, 0.0); vec4 t = texture(tex, v_texcoord.xy); vec4 p = v_color0; vec4 v = p * t + s; v.rgb = v.rgb * 2.0; float fogCoef = clamp(v_fogdepth, 0.0, 1.0); v = mix(vec4(u_fogcolor, v.a), v, fogCoef); fragColor0 = v; } vs: 01b34040:00000b1d HWX C T N LM Fog Tex Light: 0: c:0 t:0 1: c:0 t:1 3: c:0 t:1 MatUp:3 #version 300 es precision highp float; in vec3 position; in mediump vec3 normal; in vec2 texcoord; in lowp vec4 color0; uniform mat4 u_proj; uniform mat4 u_world; uniform mat4 u_view; uniform vec4 u_uvscaleoffset; uniform vec3 u_lightpos0; uniform lowp vec3 u_lightambient0; uniform lowp vec3 u_lightdiffuse0; uniform vec3 u_lightpos1; uniform mediump vec3 u_lightatt1; uniform lowp vec3 u_lightambient1; uniform lowp vec3 u_lightdiffuse1; uniform vec3 u_lightpos3; uniform mediump vec3 u_lightatt3; uniform lowp vec3 u_lightambient3; uniform lowp vec3 u_lightdiffuse3; uniform lowp vec4 u_ambient; uniform lowp vec4 u_matspecular; uniform lowp vec3 u_matemissive; uniform lowp vec4 u_matambientalpha; uniform highp vec2 u_fogcoef; out lowp vec4 v_color0; out lowp vec3 v_color1; out highp vec3 v_texcoord; out highp float v_fogdepth; void main() { vec3 worldpos = (u_world * vec4(position.xyz, 1.0)).xyz; mediump vec3 worldnormal = normalize((u_world * vec4(normal, 0.0)).xyz); vec4 viewPos = u_view * vec4(worldpos, 1.0); gl_Position = u_proj * viewPos; lowp vec4 lightSum0 = u_ambient * color0 + vec4(u_matemissive, 0.0); vec3 toLight; lowp vec3 diffuse; float distance; lowp float lightScale; mediump float ldot; toLight = u_lightpos0; ldot = max(dot(toLight, worldnormal), 0.0); diffuse = (u_lightdiffuse0 * color0.rgb) * ldot; lightSum0.rgb += (u_lightambient0 * color0.rgb + diffuse); toLight = u_lightpos1 - worldpos; distance = length(toLight); toLight /= distance; ldot = max(dot(toLight, worldnormal), 0.0); lightScale = clamp(1.0 / dot(u_lightatt1, vec3(1.0, distance, distance*distance)), 0.0, 1.0); diffuse = (u_lightdiffuse1 * color0.rgb) * ldot; lightSum0.rgb += (u_lightambient1 * color0.rgb + diffuse) * lightScale; toLight = u_lightpos3 - worldpos; distance = length(toLight); toLight /= distance; ldot = max(dot(toLight, worldnormal), 0.0); lightScale = clamp(1.0 / dot(u_lightatt3, vec3(1.0, distance, distance*distance)), 0.0, 1.0); diffuse = (u_lightdiffuse3 * color0.rgb) * ldot; lightSum0.rgb += (u_lightambient3 * color0.rgb + diffuse) * lightScale; v_color0 = clamp(lightSum0, 0.0, 1.0); v_color1 = vec3(0.0); v_texcoord = vec3(texcoord.xy * u_uvscaleoffset.xy, 0.0); v_fogdepth = (viewPos.z + u_fogcoef.x) * u_fogcoef.y; }
God of War™: Ghost of Sparta v1.6.3 2022-06-15 Error in shader program link: info: Link Error: Vertex shader is missing. Link Error: Fragment shader is missing. fs: 00000000:0040080e Tex TexProj LM TFuncRepl #version 300 es #extension GL_EXT_shader_framebuffer_fetch : require precision lowp float; uniform sampler2D tex; in vec4 v_color0; in vec3 v_color1; in highp vec3 v_texcoord; inout vec4 fragColor0; void main() { vec4 s = vec4(v_color1, 0.0); vec4 t = textureProj(tex, v_texcoord); vec4 p = v_color0; vec4 v = vec4(t.rgb, p.a) + s; fragColor0 = v; } vs: 01730000:00010b59 HWX C T N LM Tex TexProjPos UVMtx Light: 0: c:0 t:0 1: c:0 t:0 2: c:0 t:0 MatUp:3 #version 300 es precision highp float; in vec3 position; in mediump vec3 normal; in vec2 texcoord; in lowp vec4 color0; uniform mat4 u_proj; uniform mat4 u_world; uniform mat4 u_view; uniform mediump mat4 u_texmtx; uniform vec4 u_uvscaleoffset; uniform vec3 u_lightpos0; uniform lowp vec3 u_lightambient0; uniform lowp vec3 u_lightdiffuse0; uniform vec3 u_lightpos1; uniform lowp vec3 u_lightambient1; uniform lowp vec3 u_lightdiffuse1; uniform vec3 u_lightpos2; uniform lowp vec3 u_lightambient2; uniform lowp vec3 u_lightdiffuse2; uniform lowp vec4 u_ambient; uniform lowp vec4 u_matspecular; uniform lowp vec3 u_matemissive; uniform lowp vec4 u_matambientalpha; out lowp vec4 v_color0; out lowp vec3 v_color1; out highp vec3 v_texcoord; void main() { vec3 worldpos = (u_world * vec4(position.xyz, 1.0)).xyz; mediump vec3 worldnormal = normalize((u_world * vec4(normal, 0.0)).xyz); vec4 viewPos = u_view * vec4(worldpos, 1.0); gl_Position = u_proj * viewPos; lowp vec4 lightSum0 = u_ambient * color0 + vec4(u_matemissive, 0.0); vec3 toLight; lowp vec3 diffuse; mediump float ldot; toLight = u_lightpos0; ldot = max(dot(toLight, worldnormal), 0.0); diffuse = (u_lightdiffuse0 * color0.rgb) * ldot; lightSum0.rgb += (u_lightambient0 * color0.rgb + diffuse); toLight = u_lightpos1; ldot = max(dot(toLight, worldnormal), 0.0); diffuse = (u_lightdiffuse1 * color0.rgb) * ldot; lightSum0.rgb += (u_lightambient1 * color0.rgb + diffuse); toLight = u_lightpos2; ldot = max(dot(toLight, worldnormal), 0.0); diffuse = (u_lightdiffuse2 * color0.rgb) * ldot; lightSum0.rgb += (u_lightambient2 * color0.rgb + diffuse); v_color0 = clamp(lightSum0, 0.0, 1.0); v_color1 = vec3(0.0); v_texcoord = (u_texmtx * vec4(position.xyz, 1.0)).xyz * vec3(u_uvscaleoffset.xy, 1.0); }
God of War™: Ghost of Sparta v1.6.3 2022-06-15 Error in shader program link: info: Link Error: Vertex shader is missing. Link Error: Fragment shader is missing. fs: 00000000:00a0d822 Tex TexAlpha LM Fog 2x TFuncMod AlphaTest > #version 300 es #extension GL_EXT_shader_framebuffer_fetch : require precision lowp float; uniform sampler2D tex; uniform sampler2D testtex; in vec4 v_color0; in vec3 v_color1; uniform vec3 u_fogcolor; in highp float v_fogdepth; in highp vec3 v_texcoord; inout vec4 fragColor0; void main() { vec4 s = vec4(v_color1, 0.0); vec4 t = texture(tex, v_texcoord.xy); vec4 p = v_color0; vec4 v = p * t + s; float aResult = texture(testtex, vec2(v.a * 0.996094 + 0.001953, 0)).a; if (aResult < 0.5) discard; v.rgb = v.rgb * 2.0; float fogCoef = clamp(v_fogdepth, 0.0, 1.0); v = mix(vec4(u_fogcolor, v.a), v, fogCoef); fragColor0 = v; } vs: 01730151:00000b1d HWX C T N LM Fog Tex Light: 0: c:1 t:0 1: c:1 t:1 2: c:1 t:0 MatUp:3 #version 300 es precision highp float; in vec3 position; in mediump vec3 normal; in vec2 texcoord; in lowp vec4 color0; uniform mat4 u_proj; uniform mat4 u_world; uniform mat4 u_view; uniform vec4 u_uvscaleoffset; uniform vec3 u_lightpos0; uniform lowp vec3 u_lightambient0; uniform lowp vec3 u_lightdiffuse0; uniform lowp vec3 u_lightspecular0; uniform vec3 u_lightpos1; uniform mediump vec3 u_lightatt1; uniform lowp vec3 u_lightambient1; uniform lowp vec3 u_lightdiffuse1; uniform lowp vec3 u_lightspecular1; uniform vec3 u_lightpos2; uniform lowp vec3 u_lightambient2; uniform lowp vec3 u_lightdiffuse2; uniform lowp vec3 u_lightspecular2; uniform lowp vec4 u_ambient; uniform lowp vec4 u_matspecular; uniform lowp vec3 u_matemissive; uniform lowp vec4 u_matambientalpha; uniform highp vec2 u_fogcoef; out lowp vec4 v_color0; out lowp vec3 v_color1; out highp vec3 v_texcoord; out highp float v_fogdepth; void main() { vec3 worldpos = (u_world * vec4(position.xyz, 1.0)).xyz; mediump vec3 worldnormal = normalize((u_world * vec4(normal, 0.0)).xyz); vec4 viewPos = u_view * vec4(worldpos, 1.0); gl_Position = u_proj * viewPos; lowp vec4 lightSum0 = u_ambient * color0 + vec4(u_matemissive, 0.0); lowp vec3 lightSum1 = vec3(0.0); vec3 toLight; lowp vec3 diffuse; float distance; lowp float lightScale; mediump float ldot; toLight = u_lightpos0; ldot = max(dot(toLight, worldnormal), 0.0); diffuse = (u_lightdiffuse0 * color0.rgb) * ldot; ldot = dot(normalize(toLight + vec3(0.0, 0.0, 1.0)), worldnormal); if (ldot > 0.0) lightSum1 += u_lightspecular0 * u_matspecular.rgb * (pow(ldot, u_matspecular.a) ); lightSum0.rgb += (u_lightambient0 * color0.rgb + diffuse); toLight = u_lightpos1 - worldpos; distance = length(toLight); toLight /= distance; ldot = max(dot(toLight, worldnormal), 0.0); lightScale = clamp(1.0 / dot(u_lightatt1, vec3(1.0, distance, distance*distance)), 0.0, 1.0); diffuse = (u_lightdiffuse1 * color0.rgb) * ldot; ldot = dot(normalize(toLight + vec3(0.0, 0.0, 1.0)), worldnormal); if (ldot > 0.0) lightSum1 += u_lightspecular1 * u_matspecular.rgb * (pow(ldot, u_matspecular.a) * lightScale); lightSum0.rgb += (u_lightambient1 * color0.rgb + diffuse) * lightScale; toLight = u_lightpos2; ldot = max(dot(toLight, worldnormal), 0.0); diffuse = (u_lightdiffuse2 * color0.rgb) * ldot; ldot = dot(normalize(toLight + vec3(0.0, 0.0, 1.0)), worldnormal); if (ldot > 0.0) lightSum1 += u_lightspecular2 * u_matspecular.rgb * (pow(ldot, u_matspecular.a) ); lightSum0.rgb += (u_lightambient2 * color0.rgb + diffuse); v_color0 = clamp(lightSum0, 0.0, 1.0); v_color1 = clamp(lightSum1, 0.0, 1.0); v_texcoord = vec3(texcoord.xy * u_uvscaleoffset.xy, 0.0); v_fogdepth = (viewPos.z + u_fogcoef.x) * u_fogcoef.y; }
God of War™: Ghost of Sparta v1.6.3 2022-06-15 Error in shader program link: info: Link Error: Vertex shader is missing. Link Error: Fragment shader is missing. fs: 00000000:00400f8e Tex TexProj TexOffs LM TClampST TFuncRepl #version 300 es #extension GL_EXT_shader_framebuffer_fetch : require precision lowp float; uniform sampler2D tex; uniform vec4 u_texclamp; uniform vec2 u_texclampoff; in vec4 v_color0; in vec3 v_color1; in highp vec3 v_texcoord; inout vec4 fragColor0; float mymod(float a, float b) { return a - b * floor(a / b); } void main() { vec4 s = vec4(v_color1, 0.0); vec2 fixedcoord = vec2((clamp((v_texcoord.x / v_texcoord.z), u_texclamp.z, u_texclamp.x - u_texclamp.z) + u_texclampoff.x), (clamp((v_texcoord.y / v_texcoord.z), u_texclamp.w, u_texclamp.y - u_texclamp.w) + u_texclampoff.y)); vec4 t = texture(tex, fixedcoord.xy); vec4 p = v_color0; vec4 v = vec4(t.rgb, p.a) + s; fragColor0 = v; } vs: 01f34004:00010b59 HWX C T N LM Tex TexProjPos UVMtx Light: 0: c:0 t:1 1: c:0 t:0 2: c:0 t:0 3: c:0 t:1 MatUp:3 #version 300 es precision highp float; in vec3 position; in mediump vec3 normal; in vec2 texcoord; in lowp vec4 color0; uniform mat4 u_proj; uniform mat4 u_world; uniform mat4 u_view; uniform mediump mat4 u_texmtx; uniform vec4 u_uvscaleoffset; uniform vec3 u_lightpos0; uniform mediump vec3 u_lightatt0; uniform lowp vec3 u_lightambient0; uniform lowp vec3 u_lightdiffuse0; uniform vec3 u_lightpos1; uniform lowp vec3 u_lightambient1; uniform lowp vec3 u_lightdiffuse1; uniform vec3 u_lightpos2; uniform lowp vec3 u_lightambient2; uniform lowp vec3 u_lightdiffuse2; uniform vec3 u_lightpos3; uniform mediump vec3 u_lightatt3; uniform lowp vec3 u_lightambient3; uniform lowp vec3 u_lightdiffuse3; uniform lowp vec4 u_ambient; uniform lowp vec4 u_matspecular; uniform lowp vec3 u_matemissive; uniform lowp vec4 u_matambientalpha; out lowp vec4 v_color0; out lowp vec3 v_color1; out highp vec3 v_texcoord; void main() { vec3 worldpos = (u_world * vec4(position.xyz, 1.0)).xyz; mediump vec3 worldnormal = normalize((u_world * vec4(normal, 0.0)).xyz); vec4 viewPos = u_view * vec4(worldpos, 1.0); gl_Position = u_proj * viewPos; lowp vec4 lightSum0 = u_ambient * color0 + vec4(u_matemissive, 0.0); vec3 toLight; lowp vec3 diffuse; float distance; lowp float lightScale; mediump float ldot; toLight = u_lightpos0 - worldpos; distance = length(toLight); toLight /= distance; ldot = max(dot(toLight, worldnormal), 0.0); lightScale = clamp(1.0 / dot(u_lightatt0, vec3(1.0, distance, distance*distance)), 0.0, 1.0); diffuse = (u_lightdiffuse0 * color0.rgb) * ldot; lightSum0.rgb += (u_lightambient0 * color0.rgb + diffuse) * lightScale; toLight = u_lightpos1; ldot = max(dot(toLight, worldnormal), 0.0); diffuse = (u_lightdiffuse1 * color0.rgb) * ldot; lightSum0.rgb += (u_lightambient1 * color0.rgb + diffuse); toLight = u_lightpos2; ldot = max(dot(toLight, worldnormal), 0.0); diffuse = (u_lightdiffuse2 * color0.rgb) * ldot; lightSum0.rgb += (u_lightambient2 * color0.rgb + diffuse); toLight = u_lightpos3 - worldpos; distance = length(toLight); toLight /= distance; ldot = max(dot(toLight, worldnormal), 0.0); lightScale = clamp(1.0 / dot(u_lightatt3, vec3(1.0, distance, distance*distance)), 0.0, 1.0); diffuse = (u_lightdiffuse3 * color0.rgb) * ldot; lightSum0.rgb += (u_lightambient3 * color0.rgb + diffuse) * lightScale; v_color0 = clamp(lightSum0, 0.0, 1.0); v_color1 = vec3(0.0); v_texcoord = (u_texmtx * vec4(position.xyz, 1.0)).xyz * vec3(u_uvscaleoffset.xy, 1.0); }
God of War™: Ghost of Sparta v1.6.3 2022-06-15 Error in shader program link: info: Link Error: Vertex shader is missing. Link Error: Fragment shader is missing. fs: 00000000:00000022 Tex TexAlpha TFuncMod #version 300 es #extension GL_EXT_shader_framebuffer_fetch : require precision lowp float; uniform sampler2D tex; in vec4 v_color0; in highp vec3 v_texcoord; inout vec4 fragColor0; void main() { vec4 t = texture(tex, v_texcoord.xy); vec4 p = v_color0; vec4 v = p * t; fragColor0 = v; } vs: 00000000:00000012 THR Tex #version 300 es precision highp float; in vec4 position; in vec2 texcoord; in lowp vec4 color0; uniform mat4 u_proj_through; out lowp vec4 v_color0; out highp vec3 v_texcoord; void main() { v_texcoord = vec3(texcoord, 1.0); v_color0 = color0; gl_Position = u_proj_through * vec4(position.xyz, 1.0); }
God of War™: Ghost of Sparta v1.6.3 2022-06-15 Error in shader program link: info: Link Error: Vertex shader is missing. Link Error: Fragment shader is missing. fs: 00000000:00400b8e Tex TexProj LM TClampST TFuncRepl #version 300 es #extension GL_EXT_shader_framebuffer_fetch : require precision lowp float; uniform sampler2D tex; uniform vec4 u_texclamp; in vec4 v_color0; in vec3 v_color1; in highp vec3 v_texcoord; inout vec4 fragColor0; float mymod(float a, float b) { return a - b * floor(a / b); } void main() { vec4 s = vec4(v_color1, 0.0); vec2 fixedcoord = vec2(clamp((v_texcoord.x / v_texcoord.z), u_texclamp.z, u_texclamp.x - u_texclamp.z), clamp((v_texcoord.y / v_texcoord.z), u_texclamp.w, u_texclamp.y - u_texclamp.w)); vec4 t = texture(tex, fixedcoord.xy); vec4 p = v_color0; vec4 v = vec4(t.rgb, p.a) + s; fragColor0 = v; } vs: 01730400:00010b59 HWX C T N LM Tex TexProjPos UVMtx Light: 0: c:0 t:0 1: c:0 t:0 2: c:0 t:1 MatUp:3 #version 300 es precision highp float; in vec3 position; in mediump vec3 normal; in vec2 texcoord; in lowp vec4 color0; uniform mat4 u_proj; uniform mat4 u_world; uniform mat4 u_view; uniform mediump mat4 u_texmtx; uniform vec4 u_uvscaleoffset; uniform vec3 u_lightpos0; uniform lowp vec3 u_lightambient0; uniform lowp vec3 u_lightdiffuse0; uniform vec3 u_lightpos1; uniform lowp vec3 u_lightambient1; uniform lowp vec3 u_lightdiffuse1; uniform vec3 u_lightpos2; uniform mediump vec3 u_lightatt2; uniform lowp vec3 u_lightambient2; uniform lowp vec3 u_lightdiffuse2; uniform lowp vec4 u_ambient; uniform lowp vec4 u_matspecular; uniform lowp vec3 u_matemissive; uniform lowp vec4 u_matambientalpha; out lowp vec4 v_color0; out lowp vec3 v_color1; out highp vec3 v_texcoord; void main() { vec3 worldpos = (u_world * vec4(position.xyz, 1.0)).xyz; mediump vec3 worldnormal = normalize((u_world * vec4(normal, 0.0)).xyz); vec4 viewPos = u_view * vec4(worldpos, 1.0); gl_Position = u_proj * viewPos; lowp vec4 lightSum0 = u_ambient * color0 + vec4(u_matemissive, 0.0); vec3 toLight; lowp vec3 diffuse; float distance; lowp float lightScale; mediump float ldot; toLight = u_lightpos0; ldot = max(dot(toLight, worldnormal), 0.0); diffuse = (u_lightdiffuse0 * color0.rgb) * ldot; lightSum0.rgb += (u_lightambient0 * color0.rgb + diffuse); toLight = u_lightpos1; ldot = max(dot(toLight, worldnormal), 0.0); diffuse = (u_lightdiffuse1 * color0.rgb) * ldot; lightSum0.rgb += (u_lightambient1 * color0.rgb + diffuse); toLight = u_lightpos2 - worldpos; distance = length(toLight); toLight /= distance; ldot = max(dot(toLight, worldnormal), 0.0); lightScale = clamp(1.0 / dot(u_lightatt2, vec3(1.0, distance, distance*distance)), 0.0, 1.0); diffuse = (u_lightdiffuse2 * color0.rgb) * ldot; lightSum0.rgb += (u_lightambient2 * color0.rgb + diffuse) * lightScale; v_color0 = clamp(lightSum0, 0.0, 1.0); v_color1 = vec3(0.0); v_texcoord = (u_texmtx * vec4(position.xyz, 1.0)).xyz * vec3(u_uvscaleoffset.xy, 1.0); }
God of War™: Ghost of Sparta v1.6.3 2022-06-15 Error in shader program link: info: Link Error: Vertex shader is missing. Link Error: Fragment shader is missing. fs: 00000000:0040080e Tex TexProj LM TFuncRepl #version 300 es #extension GL_EXT_shader_framebuffer_fetch : require precision lowp float; uniform sampler2D tex; in vec4 v_color0; in vec3 v_color1; in highp vec3 v_texcoord; inout vec4 fragColor0; void main() { vec4 s = vec4(v_color1, 0.0); vec4 t = textureProj(tex, v_texcoord); vec4 p = v_color0; vec4 v = vec4(t.rgb, p.a) + s; fragColor0 = v; } vs: 01f34000:00010b59 HWX C T N LM Tex TexProjPos UVMtx Light: 0: c:0 t:0 1: c:0 t:0 2: c:0 t:0 3: c:0 t:1 MatUp:3 #version 300 es precision highp float; in vec3 position; in mediump vec3 normal; in vec2 texcoord; in lowp vec4 color0; uniform mat4 u_proj; uniform mat4 u_world; uniform mat4 u_view; uniform mediump mat4 u_texmtx; uniform vec4 u_uvscaleoffset; uniform vec3 u_lightpos0; uniform lowp vec3 u_lightambient0; uniform lowp vec3 u_lightdiffuse0; uniform vec3 u_lightpos1; uniform lowp vec3 u_lightambient1; uniform lowp vec3 u_lightdiffuse1; uniform vec3 u_lightpos2; uniform lowp vec3 u_lightambient2; uniform lowp vec3 u_lightdiffuse2; uniform vec3 u_lightpos3; uniform mediump vec3 u_lightatt3; uniform lowp vec3 u_lightambient3; uniform lowp vec3 u_lightdiffuse3; uniform lowp vec4 u_ambient; uniform lowp vec4 u_matspecular; uniform lowp vec3 u_matemissive; uniform lowp vec4 u_matambientalpha; out lowp vec4 v_color0; out lowp vec3 v_color1; out highp vec3 v_texcoord; void main() { vec3 worldpos = (u_world * vec4(position.xyz, 1.0)).xyz; mediump vec3 worldnormal = normalize((u_world * vec4(normal, 0.0)).xyz); vec4 viewPos = u_view * vec4(worldpos, 1.0); gl_Position = u_proj * viewPos; lowp vec4 lightSum0 = u_ambient * color0 + vec4(u_matemissive, 0.0); vec3 toLight; lowp vec3 diffuse; float distance; lowp float lightScale; mediump float ldot; toLight = u_lightpos0; ldot = max(dot(toLight, worldnormal), 0.0); diffuse = (u_lightdiffuse0 * color0.rgb) * ldot; lightSum0.rgb += (u_lightambient0 * color0.rgb + diffuse); toLight = u_lightpos1; ldot = max(dot(toLight, worldnormal), 0.0); diffuse = (u_lightdiffuse1 * color0.rgb) * ldot; lightSum0.rgb += (u_lightambient1 * color0.rgb + diffuse); toLight = u_lightpos2; ldot = max(dot(toLight, worldnormal), 0.0); diffuse = (u_lightdiffuse2 * color0.rgb) * ldot; lightSum0.rgb += (u_lightambient2 * color0.rgb + diffuse); toLight = u_lightpos3 - worldpos; distance = length(toLight); toLight /= distance; ldot = max(dot(toLight, worldnormal), 0.0); lightScale = clamp(1.0 / dot(u_lightatt3, vec3(1.0, distance, distance*distance)), 0.0, 1.0); diffuse = (u_lightdiffuse3 * color0.rgb) * ldot; lightSum0.rgb += (u_lightambient3 * color0.rgb + diffuse) * lightScale; v_color0 = clamp(lightSum0, 0.0, 1.0); v_color1 = vec3(0.0); v_texcoord = (u_texmtx * vec4(position.xyz, 1.0)).xyz * vec3(u_uvscaleoffset.xy, 1.0); }
God of War™: Ghost of Sparta v1.6.3 2022-06-15 Error in shader program link: info: Link Error: Vertex shader is missing. Link Error: Fragment shader is missing. fs: 00002a82:0d000002 Tex ReplaceBlend_2A:10_B:10_Eq:0 StenToAlpha StenKeep TFuncMod #version 300 es #extension GL_EXT_shader_framebuffer_fetch : require precision lowp float; uniform sampler2D tex; uniform vec3 u_blendFixA; uniform vec3 u_blendFixB; in vec4 v_color0; in highp vec3 v_texcoord; inout vec4 fragColor0; void main() { vec4 t = texture(tex, v_texcoord.xy); vec4 p = v_color0; vec4 v = vec4(t.rgb * p.rgb, p.a); v.rgb = v.rgb * u_blendFixA; fragColor0 = vec4(v.rgb, 0.0); } vs: 00000000:00000012 THR Tex #version 300 es precision highp float; in vec4 position; in vec2 texcoord; in lowp vec4 color0; uniform mat4 u_proj_through; out lowp vec4 v_color0; out highp vec3 v_texcoord; void main() { v_texcoord = vec3(texcoord, 1.0); v_color0 = color0; gl_Position = u_proj_through * vec4(position.xyz, 1.0); }
God of War™: Ghost of Sparta v1.6.3 2022-06-15 Error in shader program link: info: Link Error: Vertex shader is missing. Link Error: Fragment shader is missing. fs: 00002a82:0d000022 Tex TexAlpha ReplaceBlend_2A:10_B:10_Eq:0 StenToAlpha StenKeep TFuncMod #version 300 es #extension GL_EXT_shader_framebuffer_fetch : require precision lowp float; uniform sampler2D tex; uniform vec3 u_blendFixA; uniform vec3 u_blendFixB; in vec4 v_color0; in highp vec3 v_texcoord; inout vec4 fragColor0; void main() { vec4 t = texture(tex, v_texcoord.xy); vec4 p = v_color0; vec4 v = p * t; v.rgb = v.rgb * u_blendFixA; fragColor0 = vec4(v.rgb, 0.0); } vs: 00000000:00000012 THR Tex #version 300 es precision highp float; in vec4 position; in vec2 texcoord; in lowp vec4 color0; uniform mat4 u_proj_through; out lowp vec4 v_color0; out highp vec3 v_texcoord; void main() { v_texcoord = vec3(texcoord, 1.0); v_color0 = color0; gl_Position = u_proj_through * vec4(position.xyz, 1.0); }
God of War™: Ghost of Sparta v1.6.3 2022-06-15 Error in shader program link: info: Link Error: Vertex shader is missing. Link Error: Fragment shader is missing. fs: 00000000:00a00802 Tex LM Fog 2x TFuncMod #version 300 es #extension GL_EXT_shader_framebuffer_fetch : require precision lowp float; uniform sampler2D tex; in vec4 v_color0; in vec3 v_color1; uniform vec3 u_fogcolor; in highp float v_fogdepth; in highp vec3 v_texcoord; inout vec4 fragColor0; void main() { vec4 s = vec4(v_color1, 0.0); vec4 t = texture(tex, v_texcoord.xy); vec4 p = v_color0; vec4 v = vec4(t.rgb * p.rgb, p.a) + s; v.rgb = v.rgb * 2.0; float fogCoef = clamp(v_fogdepth, 0.0, 1.0); v = mix(vec4(u_fogcolor, v.a), v, fogCoef); fragColor0 = v; } vs: 01330004:00000b1d HWX C T N LM Fog Tex Light: 0: c:0 t:1 1: c:0 t:0 MatUp:3 #version 300 es precision highp float; in vec3 position; in mediump vec3 normal; in vec2 texcoord; in lowp vec4 color0; uniform mat4 u_proj; uniform mat4 u_world; uniform mat4 u_view; uniform vec4 u_uvscaleoffset; uniform vec3 u_lightpos0; uniform mediump vec3 u_lightatt0; uniform lowp vec3 u_lightambient0; uniform lowp vec3 u_lightdiffuse0; uniform vec3 u_lightpos1; uniform lowp vec3 u_lightambient1; uniform lowp vec3 u_lightdiffuse1; uniform lowp vec4 u_ambient; uniform lowp vec4 u_matspecular; uniform lowp vec3 u_matemissive; uniform lowp vec4 u_matambientalpha; uniform highp vec2 u_fogcoef; out lowp vec4 v_color0; out lowp vec3 v_color1; out highp vec3 v_texcoord; out highp float v_fogdepth; void main() { vec3 worldpos = (u_world * vec4(position.xyz, 1.0)).xyz; mediump vec3 worldnormal = normalize((u_world * vec4(normal, 0.0)).xyz); vec4 viewPos = u_view * vec4(worldpos, 1.0); gl_Position = u_proj * viewPos; lowp vec4 lightSum0 = u_ambient * color0 + vec4(u_matemissive, 0.0); vec3 toLight; lowp vec3 diffuse; float distance; lowp float lightScale; mediump float ldot; toLight = u_lightpos0 - worldpos; distance = length(toLight); toLight /= distance; ldot = max(dot(toLight, worldnormal), 0.0); lightScale = clamp(1.0 / dot(u_lightatt0, vec3(1.0, distance, distance*distance)), 0.0, 1.0); diffuse = (u_lightdiffuse0 * color0.rgb) * ldot; lightSum0.rgb += (u_lightambient0 * color0.rgb + diffuse) * lightScale; toLight = u_lightpos1; ldot = max(dot(toLight, worldnormal), 0.0); diffuse = (u_lightdiffuse1 * color0.rgb) * ldot; lightSum0.rgb += (u_lightambient1 * color0.rgb + diffuse); v_color0 = clamp(lightSum0, 0.0, 1.0); v_color1 = vec3(0.0); v_texcoord = vec3(texcoord.xy * u_uvscaleoffset.xy, 0.0); v_fogdepth = (viewPos.z + u_fogcoef.x) * u_fogcoef.y; }
God of War™: Ghost of Sparta v1.6.3 2022-06-15 Error in shader program link: info: Link Error: Vertex shader is missing. Link Error: Fragment shader is missing. fs: 00000000:00a0d822 Tex TexAlpha LM Fog 2x TFuncMod AlphaTest > #version 300 es #extension GL_EXT_shader_framebuffer_fetch : require precision lowp float; uniform sampler2D tex; uniform sampler2D testtex; in vec4 v_color0; in vec3 v_color1; uniform vec3 u_fogcolor; in highp float v_fogdepth; in highp vec3 v_texcoord; inout vec4 fragColor0; void main() { vec4 s = vec4(v_color1, 0.0); vec4 t = texture(tex, v_texcoord.xy); vec4 p = v_color0; vec4 v = p * t + s; float aResult = texture(testtex, vec2(v.a * 0.996094 + 0.001953, 0)).a; if (aResult < 0.5) discard; v.rgb = v.rgb * 2.0; float fogCoef = clamp(v_fogdepth, 0.0, 1.0); v = mix(vec4(u_fogcolor, v.a), v, fogCoef); fragColor0 = v; } vs: 01730000:00000b1d HWX C T N LM Fog Tex Light: 0: c:0 t:0 1: c:0 t:0 2: c:0 t:0 MatUp:3 #version 300 es precision highp float; in vec3 position; in mediump vec3 normal; in vec2 texcoord; in lowp vec4 color0; uniform mat4 u_proj; uniform mat4 u_world; uniform mat4 u_view; uniform vec4 u_uvscaleoffset; uniform vec3 u_lightpos0; uniform lowp vec3 u_lightambient0; uniform lowp vec3 u_lightdiffuse0; uniform vec3 u_lightpos1; uniform lowp vec3 u_lightambient1; uniform lowp vec3 u_lightdiffuse1; uniform vec3 u_lightpos2; uniform lowp vec3 u_lightambient2; uniform lowp vec3 u_lightdiffuse2; uniform lowp vec4 u_ambient; uniform lowp vec4 u_matspecular; uniform lowp vec3 u_matemissive; uniform lowp vec4 u_matambientalpha; uniform highp vec2 u_fogcoef; out lowp vec4 v_color0; out lowp vec3 v_color1; out highp vec3 v_texcoord; out highp float v_fogdepth; void main() { vec3 worldpos = (u_world * vec4(position.xyz, 1.0)).xyz; mediump vec3 worldnormal = normalize((u_world * vec4(normal, 0.0)).xyz); vec4 viewPos = u_view * vec4(worldpos, 1.0); gl_Position = u_proj * viewPos; lowp vec4 lightSum0 = u_ambient * color0 + vec4(u_matemissive, 0.0); vec3 toLight; lowp vec3 diffuse; mediump float ldot; toLight = u_lightpos0; ldot = max(dot(toLight, worldnormal), 0.0); diffuse = (u_lightdiffuse0 * color0.rgb) * ldot; lightSum0.rgb += (u_lightambient0 * color0.rgb + diffuse); toLight = u_lightpos1; ldot = max(dot(toLight, worldnormal), 0.0); diffuse = (u_lightdiffuse1 * color0.rgb) * ldot; lightSum0.rgb += (u_lightambient1 * color0.rgb + diffuse); toLight = u_lightpos2; ldot = max(dot(toLight, worldnormal), 0.0); diffuse = (u_lightdiffuse2 * color0.rgb) * ldot; lightSum0.rgb += (u_lightambient2 * color0.rgb + diffuse); v_color0 = clamp(lightSum0, 0.0, 1.0); v_color1 = vec3(0.0); v_texcoord = vec3(texcoord.xy * u_uvscaleoffset.xy, 0.0); v_fogdepth = (viewPos.z + u_fogcoef.x) * u_fogcoef.y; }
God of War™: Ghost of Sparta v1.6.3 2022-06-15 Error in shader program link: info: Link Error: Vertex shader is missing. Link Error: Fragment shader is missing. fs: 00000000:00400b8e Tex TexProj LM TClampST TFuncRepl #version 300 es #extension GL_EXT_shader_framebuffer_fetch : require precision lowp float; uniform sampler2D tex; uniform vec4 u_texclamp; in vec4 v_color0; in vec3 v_color1; in highp vec3 v_texcoord; inout vec4 fragColor0; float mymod(float a, float b) { return a - b * floor(a / b); } void main() { vec4 s = vec4(v_color1, 0.0); vec2 fixedcoord = vec2(clamp((v_texcoord.x / v_texcoord.z), u_texclamp.z, u_texclamp.x - u_texclamp.z), clamp((v_texcoord.y / v_texcoord.z), u_texclamp.w, u_texclamp.y - u_texclamp.w)); vec4 t = texture(tex, fixedcoord.xy); vec4 p = v_color0; vec4 v = vec4(t.rgb, p.a) + s; fragColor0 = v; } vs: 01f34004:00010b59 HWX C T N LM Tex TexProjPos UVMtx Light: 0: c:0 t:1 1: c:0 t:0 2: c:0 t:0 3: c:0 t:1 MatUp:3 #version 300 es precision highp float; in vec3 position; in mediump vec3 normal; in vec2 texcoord; in lowp vec4 color0; uniform mat4 u_proj; uniform mat4 u_world; uniform mat4 u_view; uniform mediump mat4 u_texmtx; uniform vec4 u_uvscaleoffset; uniform vec3 u_lightpos0; uniform mediump vec3 u_lightatt0; uniform lowp vec3 u_lightambient0; uniform lowp vec3 u_lightdiffuse0; uniform vec3 u_lightpos1; uniform lowp vec3 u_lightambient1; uniform lowp vec3 u_lightdiffuse1; uniform vec3 u_lightpos2; uniform lowp vec3 u_lightambient2; uniform lowp vec3 u_lightdiffuse2; uniform vec3 u_lightpos3; uniform mediump vec3 u_lightatt3; uniform lowp vec3 u_lightambient3; uniform lowp vec3 u_lightdiffuse3; uniform lowp vec4 u_ambient; uniform lowp vec4 u_matspecular; uniform lowp vec3 u_matemissive; uniform lowp vec4 u_matambientalpha; out lowp vec4 v_color0; out lowp vec3 v_color1; out highp vec3 v_texcoord; void main() { vec3 worldpos = (u_world * vec4(position.xyz, 1.0)).xyz; mediump vec3 worldnormal = normalize((u_world * vec4(normal, 0.0)).xyz); vec4 viewPos = u_view * vec4(worldpos, 1.0); gl_Position = u_proj * viewPos; lowp vec4 lightSum0 = u_ambient * color0 + vec4(u_matemissive, 0.0); vec3 toLight; lowp vec3 diffuse; float distance; lowp float lightScale; mediump float ldot; toLight = u_lightpos0 - worldpos; distance = length(toLight); toLight /= distance; ldot = max(dot(toLight, worldnormal), 0.0); lightScale = clamp(1.0 / dot(u_lightatt0, vec3(1.0, distance, distance*distance)), 0.0, 1.0); diffuse = (u_lightdiffuse0 * color0.rgb) * ldot; lightSum0.rgb += (u_lightambient0 * color0.rgb + diffuse) * lightScale; toLight = u_lightpos1; ldot = max(dot(toLight, worldnormal), 0.0); diffuse = (u_lightdiffuse1 * color0.rgb) * ldot; lightSum0.rgb += (u_lightambient1 * color0.rgb + diffuse); toLight = u_lightpos2; ldot = max(dot(toLight, worldnormal), 0.0); diffuse = (u_lightdiffuse2 * color0.rgb) * ldot; lightSum0.rgb += (u_lightambient2 * color0.rgb + diffuse); toLight = u_lightpos3 - worldpos; distance = length(toLight); toLight /= distance; ldot = max(dot(toLight, worldnormal), 0.0); lightScale = clamp(1.0 / dot(u_lightatt3, vec3(1.0, distance, distance*distance)), 0.0, 1.0); diffuse = (u_lightdiffuse3 * color0.rgb) * ldot; lightSum0.rgb += (u_lightambient3 * color0.rgb + diffuse) * lightScale; v_color0 = clamp(lightSum0, 0.0, 1.0); v_color1 = vec3(0.0); v_texcoord = (u_texmtx * vec4(position.xyz, 1.0)).xyz * vec3(u_uvscaleoffset.xy, 1.0); }
God of War™: Ghost of Sparta v1.6.3 2022-06-15 Error in shader program link: info: Link Error: Vertex shader is missing. Link Error: Fragment shader is missing. fs: 00000000:00a00802 Tex LM Fog 2x TFuncMod #version 300 es #extension GL_EXT_shader_framebuffer_fetch : require precision lowp float; uniform sampler2D tex; in vec4 v_color0; in vec3 v_color1; uniform vec3 u_fogcolor; in highp float v_fogdepth; in highp vec3 v_texcoord; inout vec4 fragColor0; void main() { vec4 s = vec4(v_color1, 0.0); vec4 t = texture(tex, v_texcoord.xy); vec4 p = v_color0; vec4 v = vec4(t.rgb * p.rgb, p.a) + s; v.rgb = v.rgb * 2.0; float fogCoef = clamp(v_fogdepth, 0.0, 1.0); v = mix(vec4(u_fogcolor, v.a), v, fogCoef); fragColor0 = v; } vs: 01330040:00000b1d HWX C T N LM Fog Tex Light: 0: c:0 t:0 1: c:0 t:1 MatUp:3 #version 300 es precision highp float; in vec3 position; in mediump vec3 normal; in vec2 texcoord; in lowp vec4 color0; uniform mat4 u_proj; uniform mat4 u_world; uniform mat4 u_view; uniform vec4 u_uvscaleoffset; uniform vec3 u_lightpos0; uniform lowp vec3 u_lightambient0; uniform lowp vec3 u_lightdiffuse0; uniform vec3 u_lightpos1; uniform mediump vec3 u_lightatt1; uniform lowp vec3 u_lightambient1; uniform lowp vec3 u_lightdiffuse1; uniform lowp vec4 u_ambient; uniform lowp vec4 u_matspecular; uniform lowp vec3 u_matemissive; uniform lowp vec4 u_matambientalpha; uniform highp vec2 u_fogcoef; out lowp vec4 v_color0; out lowp vec3 v_color1; out highp vec3 v_texcoord; out highp float v_fogdepth; void main() { vec3 worldpos = (u_world * vec4(position.xyz, 1.0)).xyz; mediump vec3 worldnormal = normalize((u_world * vec4(normal, 0.0)).xyz); vec4 viewPos = u_view * vec4(worldpos, 1.0); gl_Position = u_proj * viewPos; lowp vec4 lightSum0 = u_ambient * color0 + vec4(u_matemissive, 0.0); vec3 toLight; lowp vec3 diffuse; float distance; lowp float lightScale; mediump float ldot; toLight = u_lightpos0; ldot = max(dot(toLight, worldnormal), 0.0); diffuse = (u_lightdiffuse0 * color0.rgb) * ldot; lightSum0.rgb += (u_lightambient0 * color0.rgb + diffuse); toLight = u_lightpos1 - worldpos; distance = length(toLight); toLight /= distance; ldot = max(dot(toLight, worldnormal), 0.0); lightScale = clamp(1.0 / dot(u_lightatt1, vec3(1.0, distance, distance*distance)), 0.0, 1.0); diffuse = (u_lightdiffuse1 * color0.rgb) * ldot; lightSum0.rgb += (u_lightambient1 * color0.rgb + diffuse) * lightScale; v_color0 = clamp(lightSum0, 0.0, 1.0); v_color1 = vec3(0.0); v_texcoord = vec3(texcoord.xy * u_uvscaleoffset.xy, 0.0); v_fogdepth = (viewPos.z + u_fogcoef.x) * u_fogcoef.y; }
God of War™: Ghost of Sparta v1.6.3 2022-06-15 Error in shader program link: info: Link Error: Vertex shader is missing. Link Error: Fragment shader is missing. fs: 00000000:00400f8e Tex TexProj TexOffs LM TClampST TFuncRepl #version 300 es #extension GL_EXT_shader_framebuffer_fetch : require precision lowp float; uniform sampler2D tex; uniform vec4 u_texclamp; uniform vec2 u_texclampoff; in vec4 v_color0; in vec3 v_color1; in highp vec3 v_texcoord; inout vec4 fragColor0; float mymod(float a, float b) { return a - b * floor(a / b); } void main() { vec4 s = vec4(v_color1, 0.0); vec2 fixedcoord = vec2((clamp((v_texcoord.x / v_texcoord.z), u_texclamp.z, u_texclamp.x - u_texclamp.z) + u_texclampoff.x), (clamp((v_texcoord.y / v_texcoord.z), u_texclamp.w, u_texclamp.y - u_texclamp.w) + u_texclampoff.y)); vec4 t = texture(tex, fixedcoord.xy); vec4 p = v_color0; vec4 v = vec4(t.rgb, p.a) + s; fragColor0 = v; } vs: 01730400:00010b59 HWX C T N LM Tex TexProjPos UVMtx Light: 0: c:0 t:0 1: c:0 t:0 2: c:0 t:1 MatUp:3 #version 300 es precision highp float; in vec3 position; in mediump vec3 normal; in vec2 texcoord; in lowp vec4 color0; uniform mat4 u_proj; uniform mat4 u_world; uniform mat4 u_view; uniform mediump mat4 u_texmtx; uniform vec4 u_uvscaleoffset; uniform vec3 u_lightpos0; uniform lowp vec3 u_lightambient0; uniform lowp vec3 u_lightdiffuse0; uniform vec3 u_lightpos1; uniform lowp vec3 u_lightambient1; uniform lowp vec3 u_lightdiffuse1; uniform vec3 u_lightpos2; uniform mediump vec3 u_lightatt2; uniform lowp vec3 u_lightambient2; uniform lowp vec3 u_lightdiffuse2; uniform lowp vec4 u_ambient; uniform lowp vec4 u_matspecular; uniform lowp vec3 u_matemissive; uniform lowp vec4 u_matambientalpha; out lowp vec4 v_color0; out lowp vec3 v_color1; out highp vec3 v_texcoord; void main() { vec3 worldpos = (u_world * vec4(position.xyz, 1.0)).xyz; mediump vec3 worldnormal = normalize((u_world * vec4(normal, 0.0)).xyz); vec4 viewPos = u_view * vec4(worldpos, 1.0); gl_Position = u_proj * viewPos; lowp vec4 lightSum0 = u_ambient * color0 + vec4(u_matemissive, 0.0); vec3 toLight; lowp vec3 diffuse; float distance; lowp float lightScale; mediump float ldot; toLight = u_lightpos0; ldot = max(dot(toLight, worldnormal), 0.0); diffuse = (u_lightdiffuse0 * color0.rgb) * ldot; lightSum0.rgb += (u_lightambient0 * color0.rgb + diffuse); toLight = u_lightpos1; ldot = max(dot(toLight, worldnormal), 0.0); diffuse = (u_lightdiffuse1 * color0.rgb) * ldot; lightSum0.rgb += (u_lightambient1 * color0.rgb + diffuse); toLight = u_lightpos2 - worldpos; distance = length(toLight); toLight /= distance; ldot = max(dot(toLight, worldnormal), 0.0); lightScale = clamp(1.0 / dot(u_lightatt2, vec3(1.0, distance, distance*distance)), 0.0, 1.0); diffuse = (u_lightdiffuse2 * color0.rgb) * ldot; lightSum0.rgb += (u_lightambient2 * color0.rgb + diffuse) * lightScale; v_color0 = clamp(lightSum0, 0.0, 1.0); v_color1 = vec3(0.0); v_texcoord = (u_texmtx * vec4(position.xyz, 1.0)).xyz * vec3(u_uvscaleoffset.xy, 1.0); }
God of War™: Ghost of Sparta v1.6.3 2022-06-15 Error in shader program link: info: Link Error: Vertex shader is missing. Link Error: Fragment shader is missing. fs: 00000000:01a00802 Tex LM Fog 2x StenToAlpha StenUniform TFuncMod #version 300 es #extension GL_EXT_shader_framebuffer_fetch : require precision lowp float; uniform sampler2D tex; uniform float u_stencilReplaceValue; in vec4 v_color0; in vec3 v_color1; uniform vec3 u_fogcolor; in highp float v_fogdepth; in highp vec3 v_texcoord; inout vec4 fragColor0; void main() { vec4 s = vec4(v_color1, 0.0); vec4 t = texture(tex, v_texcoord.xy); vec4 p = v_color0; vec4 v = vec4(t.rgb * p.rgb, p.a) + s; v.rgb = v.rgb * 2.0; float fogCoef = clamp(v_fogdepth, 0.0, 1.0); v = mix(vec4(u_fogcolor, v.a), v, fogCoef); fragColor0 = vec4(v.rgb, u_stencilReplaceValue); } vs: 01110000:00000b1d HWX C T N LM Fog Tex Light: 0: c:0 t:0 MatUp:1 #version 300 es precision highp float; in vec3 position; in mediump vec3 normal; in vec2 texcoord; in lowp vec4 color0; uniform mat4 u_proj; uniform mat4 u_world; uniform mat4 u_view; uniform vec4 u_uvscaleoffset; uniform vec3 u_lightpos0; uniform lowp vec3 u_lightambient0; uniform lowp vec3 u_lightdiffuse0; uniform lowp vec4 u_ambient; uniform lowp vec3 u_matdiffuse; uniform lowp vec4 u_matspecular; uniform lowp vec3 u_matemissive; uniform lowp vec4 u_matambientalpha; uniform highp vec2 u_fogcoef; out lowp vec4 v_color0; out lowp vec3 v_color1; out highp vec3 v_texcoord; out highp float v_fogdepth; void main() { vec3 worldpos = (u_world * vec4(position.xyz, 1.0)).xyz; mediump vec3 worldnormal = normalize((u_world * vec4(normal, 0.0)).xyz); vec4 viewPos = u_view * vec4(worldpos, 1.0); gl_Position = u_proj * viewPos; lowp vec4 lightSum0 = u_ambient * color0 + vec4(u_matemissive, 0.0); vec3 toLight; lowp vec3 diffuse; mediump float ldot; toLight = u_lightpos0; ldot = max(dot(toLight, worldnormal), 0.0); diffuse = (u_lightdiffuse0 * u_matdiffuse) * ldot; lightSum0.rgb += (u_lightambient0 * color0.rgb + diffuse); v_color0 = clamp(lightSum0, 0.0, 1.0); v_color1 = vec3(0.0); v_texcoord = vec3(texcoord.xy * u_uvscaleoffset.xy, 0.0); v_fogdepth = (viewPos.z + u_fogcoef.x) * u_fogcoef.y; }
God of War™: Ghost of Sparta v1.6.3 2022-06-15 Error in shader program link: info: Link Error: Vertex shader is missing. Link Error: Fragment shader is missing. fs: 00000000:01a00802 Tex LM Fog 2x StenToAlpha StenUniform TFuncMod #version 300 es #extension GL_EXT_shader_framebuffer_fetch : require precision lowp float; uniform sampler2D tex; uniform float u_stencilReplaceValue; in vec4 v_color0; in vec3 v_color1; uniform vec3 u_fogcolor; in highp float v_fogdepth; in highp vec3 v_texcoord; inout vec4 fragColor0; void main() { vec4 s = vec4(v_color1, 0.0); vec4 t = texture(tex, v_texcoord.xy); vec4 p = v_color0; vec4 v = vec4(t.rgb * p.rgb, p.a) + s; v.rgb = v.rgb * 2.0; float fogCoef = clamp(v_fogdepth, 0.0, 1.0); v = mix(vec4(u_fogcolor, v.a), v, fogCoef); fragColor0 = vec4(v.rgb, u_stencilReplaceValue); } vs: 01934000:00000b1d HWX C T N LM Fog Tex Light: 0: c:0 t:0 3: c:0 t:1 MatUp:3 #version 300 es precision highp float; in vec3 position; in mediump vec3 normal; in vec2 texcoord; in lowp vec4 color0; uniform mat4 u_proj; uniform mat4 u_world; uniform mat4 u_view; uniform vec4 u_uvscaleoffset; uniform vec3 u_lightpos0; uniform lowp vec3 u_lightambient0; uniform lowp vec3 u_lightdiffuse0; uniform vec3 u_lightpos3; uniform mediump vec3 u_lightatt3; uniform lowp vec3 u_lightambient3; uniform lowp vec3 u_lightdiffuse3; uniform lowp vec4 u_ambient; uniform lowp vec4 u_matspecular; uniform lowp vec3 u_matemissive; uniform lowp vec4 u_matambientalpha; uniform highp vec2 u_fogcoef; out lowp vec4 v_color0; out lowp vec3 v_color1; out highp vec3 v_texcoord; out highp float v_fogdepth; void main() { vec3 worldpos = (u_world * vec4(position.xyz, 1.0)).xyz; mediump vec3 worldnormal = normalize((u_world * vec4(normal, 0.0)).xyz); vec4 viewPos = u_view * vec4(worldpos, 1.0); gl_Position = u_proj * viewPos; lowp vec4 lightSum0 = u_ambient * color0 + vec4(u_matemissive, 0.0); vec3 toLight; lowp vec3 diffuse; float distance; lowp float lightScale; mediump float ldot; toLight = u_lightpos0; ldot = max(dot(toLight, worldnormal), 0.0); diffuse = (u_lightdiffuse0 * color0.rgb) * ldot; lightSum0.rgb += (u_lightambient0 * color0.rgb + diffuse); toLight = u_lightpos3 - worldpos; distance = length(toLight); toLight /= distance; ldot = max(dot(toLight, worldnormal), 0.0); lightScale = clamp(1.0 / dot(u_lightatt3, vec3(1.0, distance, distance*distance)), 0.0, 1.0); diffuse = (u_lightdiffuse3 * color0.rgb) * ldot; lightSum0.rgb += (u_lightambient3 * color0.rgb + diffuse) * lightScale; v_color0 = clamp(lightSum0, 0.0, 1.0); v_color1 = vec3(0.0); v_texcoord = vec3(texcoord.xy * u_uvscaleoffset.xy, 0.0); v_fogdepth = (viewPos.z + u_fogcoef.x) * u_fogcoef.y; }
God of War™: Ghost of Sparta v1.6.3 2022-06-15 Error in shader program link: info: Link Error: Vertex shader is missing. Link Error: Fragment shader is missing. fs: 00000000:00a0d822 Tex TexAlpha LM Fog 2x TFuncMod AlphaTest > #version 300 es #extension GL_EXT_shader_framebuffer_fetch : require precision lowp float; uniform sampler2D tex; uniform sampler2D testtex; in vec4 v_color0; in vec3 v_color1; uniform vec3 u_fogcolor; in highp float v_fogdepth; in highp vec3 v_texcoord; inout vec4 fragColor0; void main() { vec4 s = vec4(v_color1, 0.0); vec4 t = texture(tex, v_texcoord.xy); vec4 p = v_color0; vec4 v = p * t + s; float aResult = texture(testtex, vec2(v.a * 0.996094 + 0.001953, 0)).a; if (aResult < 0.5) discard; v.rgb = v.rgb * 2.0; float fogCoef = clamp(v_fogdepth, 0.0, 1.0); v = mix(vec4(u_fogcolor, v.a), v, fogCoef); fragColor0 = v; } vs: 01f34000:00000b1d HWX C T N LM Fog Tex Light: 0: c:0 t:0 1: c:0 t:0 2: c:0 t:0 3: c:0 t:1 MatUp:3 #version 300 es precision highp float; in vec3 position; in mediump vec3 normal; in vec2 texcoord; in lowp vec4 color0; uniform mat4 u_proj; uniform mat4 u_world; uniform mat4 u_view; uniform vec4 u_uvscaleoffset; uniform vec3 u_lightpos0; uniform lowp vec3 u_lightambient0; uniform lowp vec3 u_lightdiffuse0; uniform vec3 u_lightpos1; uniform lowp vec3 u_lightambient1; uniform lowp vec3 u_lightdiffuse1; uniform vec3 u_lightpos2; uniform lowp vec3 u_lightambient2; uniform lowp vec3 u_lightdiffuse2; uniform vec3 u_lightpos3; uniform mediump vec3 u_lightatt3; uniform lowp vec3 u_lightambient3; uniform lowp vec3 u_lightdiffuse3; uniform lowp vec4 u_ambient; uniform lowp vec4 u_matspecular; uniform lowp vec3 u_matemissive; uniform lowp vec4 u_matambientalpha; uniform highp vec2 u_fogcoef; out lowp vec4 v_color0; out lowp vec3 v_color1; out highp vec3 v_texcoord; out highp float v_fogdepth; void main() { vec3 worldpos = (u_world * vec4(position.xyz, 1.0)).xyz; mediump vec3 worldnormal = normalize((u_world * vec4(normal, 0.0)).xyz); vec4 viewPos = u_view * vec4(worldpos, 1.0); gl_Position = u_proj * viewPos; lowp vec4 lightSum0 = u_ambient * color0 + vec4(u_matemissive, 0.0); vec3 toLight; lowp vec3 diffuse; float distance; lowp float lightScale; mediump float ldot; toLight = u_lightpos0; ldot = max(dot(toLight, worldnormal), 0.0); diffuse = (u_lightdiffuse0 * color0.rgb) * ldot; lightSum0.rgb += (u_lightambient0 * color0.rgb + diffuse); toLight = u_lightpos1; ldot = max(dot(toLight, worldnormal), 0.0); diffuse = (u_lightdiffuse1 * color0.rgb) * ldot; lightSum0.rgb += (u_lightambient1 * color0.rgb + diffuse); toLight = u_lightpos2; ldot = max(dot(toLight, worldnormal), 0.0); diffuse = (u_lightdiffuse2 * color0.rgb) * ldot; lightSum0.rgb += (u_lightambient2 * color0.rgb + diffuse); toLight = u_lightpos3 - worldpos; distance = length(toLight); toLight /= distance; ldot = max(dot(toLight, worldnormal), 0.0); lightScale = clamp(1.0 / dot(u_lightatt3, vec3(1.0, distance, distance*distance)), 0.0, 1.0); diffuse = (u_lightdiffuse3 * color0.rgb) * ldot; lightSum0.rgb += (u_lightambient3 * color0.rgb + diffuse) * lightScale; v_color0 = clamp(lightSum0, 0.0, 1.0); v_color1 = vec3(0.0); v_texcoord = vec3(texcoord.xy * u_uvscaleoffset.xy, 0.0); v_fogdepth = (viewPos.z + u_fogcoef.x) * u_fogcoef.y; }
God of War™: Ghost of Sparta v1.6.3 2022-06-15 Error in shader program link: info: Link Error: Vertex shader is missing. Link Error: Fragment shader is missing. fs: 00000000:00400f8e Tex TexProj TexOffs LM TClampST TFuncRepl #version 300 es #extension GL_EXT_shader_framebuffer_fetch : require precision lowp float; uniform sampler2D tex; uniform vec4 u_texclamp; uniform vec2 u_texclampoff; in vec4 v_color0; in vec3 v_color1; in highp vec3 v_texcoord; inout vec4 fragColor0; float mymod(float a, float b) { return a - b * floor(a / b); } void main() { vec4 s = vec4(v_color1, 0.0); vec2 fixedcoord = vec2((clamp((v_texcoord.x / v_texcoord.z), u_texclamp.z, u_texclamp.x - u_texclamp.z) + u_texclampoff.x), (clamp((v_texcoord.y / v_texcoord.z), u_texclamp.w, u_texclamp.y - u_texclamp.w) + u_texclampoff.y)); vec4 t = texture(tex, fixedcoord.xy); vec4 p = v_color0; vec4 v = vec4(t.rgb, p.a) + s; fragColor0 = v; } vs: 01730004:00010b59 HWX C T N LM Tex TexProjPos UVMtx Light: 0: c:0 t:1 1: c:0 t:0 2: c:0 t:0 MatUp:3 #version 300 es precision highp float; in vec3 position; in mediump vec3 normal; in vec2 texcoord; in lowp vec4 color0; uniform mat4 u_proj; uniform mat4 u_world; uniform mat4 u_view; uniform mediump mat4 u_texmtx; uniform vec4 u_uvscaleoffset; uniform vec3 u_lightpos0; uniform mediump vec3 u_lightatt0; uniform lowp vec3 u_lightambient0; uniform lowp vec3 u_lightdiffuse0; uniform vec3 u_lightpos1; uniform lowp vec3 u_lightambient1; uniform lowp vec3 u_lightdiffuse1; uniform vec3 u_lightpos2; uniform lowp vec3 u_lightambient2; uniform lowp vec3 u_lightdiffuse2; uniform lowp vec4 u_ambient; uniform lowp vec4 u_matspecular; uniform lowp vec3 u_matemissive; uniform lowp vec4 u_matambientalpha; out lowp vec4 v_color0; out lowp vec3 v_color1; out highp vec3 v_texcoord; void main() { vec3 worldpos = (u_world * vec4(position.xyz, 1.0)).xyz; mediump vec3 worldnormal = normalize((u_world * vec4(normal, 0.0)).xyz); vec4 viewPos = u_view * vec4(worldpos, 1.0); gl_Position = u_proj * viewPos; lowp vec4 lightSum0 = u_ambient * color0 + vec4(u_matemissive, 0.0); vec3 toLight; lowp vec3 diffuse; float distance; lowp float lightScale; mediump float ldot; toLight = u_lightpos0 - worldpos; distance = length(toLight); toLight /= distance; ldot = max(dot(toLight, worldnormal), 0.0); lightScale = clamp(1.0 / dot(u_lightatt0, vec3(1.0, distance, distance*distance)), 0.0, 1.0); diffuse = (u_lightdiffuse0 * color0.rgb) * ldot; lightSum0.rgb += (u_lightambient0 * color0.rgb + diffuse) * lightScale; toLight = u_lightpos1; ldot = max(dot(toLight, worldnormal), 0.0); diffuse = (u_lightdiffuse1 * color0.rgb) * ldot; lightSum0.rgb += (u_lightambient1 * color0.rgb + diffuse); toLight = u_lightpos2; ldot = max(dot(toLight, worldnormal), 0.0); diffuse = (u_lightdiffuse2 * color0.rgb) * ldot; lightSum0.rgb += (u_lightambient2 * color0.rgb + diffuse); v_color0 = clamp(lightSum0, 0.0, 1.0); v_color1 = vec3(0.0); v_texcoord = (u_texmtx * vec4(position.xyz, 1.0)).xyz * vec3(u_uvscaleoffset.xy, 1.0); }
God of War™: Ghost of Sparta v1.6.3 2022-06-15 Error in shader program link: info: Link Error: Vertex shader is missing. Link Error: Fragment shader is missing. fs: 00000000:00a00802 Tex LM Fog 2x TFuncMod #version 300 es #extension GL_EXT_shader_framebuffer_fetch : require precision lowp float; uniform sampler2D tex; in vec4 v_color0; in vec3 v_color1; uniform vec3 u_fogcolor; in highp float v_fogdepth; in highp vec3 v_texcoord; inout vec4 fragColor0; void main() { vec4 s = vec4(v_color1, 0.0); vec4 t = texture(tex, v_texcoord.xy); vec4 p = v_color0; vec4 v = vec4(t.rgb * p.rgb, p.a) + s; v.rgb = v.rgb * 2.0; float fogCoef = clamp(v_fogdepth, 0.0, 1.0); v = mix(vec4(u_fogcolor, v.a), v, fogCoef); fragColor0 = v; } vs: 01310000:00000b1d HWX C T N LM Fog Tex Light: 0: c:0 t:0 1: c:0 t:0 MatUp:1 #version 300 es precision highp float; in vec3 position; in mediump vec3 normal; in vec2 texcoord; in lowp vec4 color0; uniform mat4 u_proj; uniform mat4 u_world; uniform mat4 u_view; uniform vec4 u_uvscaleoffset; uniform vec3 u_lightpos0; uniform lowp vec3 u_lightambient0; uniform lowp vec3 u_lightdiffuse0; uniform vec3 u_lightpos1; uniform lowp vec3 u_lightambient1; uniform lowp vec3 u_lightdiffuse1; uniform lowp vec4 u_ambient; uniform lowp vec3 u_matdiffuse; uniform lowp vec4 u_matspecular; uniform lowp vec3 u_matemissive; uniform lowp vec4 u_matambientalpha; uniform highp vec2 u_fogcoef; out lowp vec4 v_color0; out lowp vec3 v_color1; out highp vec3 v_texcoord; out highp float v_fogdepth; void main() { vec3 worldpos = (u_world * vec4(position.xyz, 1.0)).xyz; mediump vec3 worldnormal = normalize((u_world * vec4(normal, 0.0)).xyz); vec4 viewPos = u_view * vec4(worldpos, 1.0); gl_Position = u_proj * viewPos; lowp vec4 lightSum0 = u_ambient * color0 + vec4(u_matemissive, 0.0); vec3 toLight; lowp vec3 diffuse; mediump float ldot; toLight = u_lightpos0; ldot = max(dot(toLight, worldnormal), 0.0); diffuse = (u_lightdiffuse0 * u_matdiffuse) * ldot; lightSum0.rgb += (u_lightambient0 * color0.rgb + diffuse); toLight = u_lightpos1; ldot = max(dot(toLight, worldnormal), 0.0); diffuse = (u_lightdiffuse1 * u_matdiffuse) * ldot; lightSum0.rgb += (u_lightambient1 * color0.rgb + diffuse); v_color0 = clamp(lightSum0, 0.0, 1.0); v_color1 = vec3(0.0); v_texcoord = vec3(texcoord.xy * u_uvscaleoffset.xy, 0.0); v_fogdepth = (viewPos.z + u_fogcoef.x) * u_fogcoef.y; }
God of War™: Ghost of Sparta v1.6.3 2022-06-15 Error in shader program link: info: Link Error: Vertex shader is missing. Link Error: Fragment shader is missing. fs: 00000000:00a00802 Tex LM Fog 2x TFuncMod #version 300 es #extension GL_EXT_shader_framebuffer_fetch : require precision lowp float; uniform sampler2D tex; in vec4 v_color0; in vec3 v_color1; uniform vec3 u_fogcolor; in highp float v_fogdepth; in highp vec3 v_texcoord; inout vec4 fragColor0; void main() { vec4 s = vec4(v_color1, 0.0); vec4 t = texture(tex, v_texcoord.xy); vec4 p = v_color0; vec4 v = vec4(t.rgb * p.rgb, p.a) + s; v.rgb = v.rgb * 2.0; float fogCoef = clamp(v_fogdepth, 0.0, 1.0); v = mix(vec4(u_fogcolor, v.a), v, fogCoef); fragColor0 = v; } vs: 01b34040:00000b1d HWX C T N LM Fog Tex Light: 0: c:0 t:0 1: c:0 t:1 3: c:0 t:1 MatUp:3 #version 300 es precision highp float; in vec3 position; in mediump vec3 normal; in vec2 texcoord; in lowp vec4 color0; uniform mat4 u_proj; uniform mat4 u_world; uniform mat4 u_view; uniform vec4 u_uvscaleoffset; uniform vec3 u_lightpos0; uniform lowp vec3 u_lightambient0; uniform lowp vec3 u_lightdiffuse0; uniform vec3 u_lightpos1; uniform mediump vec3 u_lightatt1; uniform lowp vec3 u_lightambient1; uniform lowp vec3 u_lightdiffuse1; uniform vec3 u_lightpos3; uniform mediump vec3 u_lightatt3; uniform lowp vec3 u_lightambient3; uniform lowp vec3 u_lightdiffuse3; uniform lowp vec4 u_ambient; uniform lowp vec4 u_matspecular; uniform lowp vec3 u_matemissive; uniform lowp vec4 u_matambientalpha; uniform highp vec2 u_fogcoef; out lowp vec4 v_color0; out lowp vec3 v_color1; out highp vec3 v_texcoord; out highp float v_fogdepth; void main() { vec3 worldpos = (u_world * vec4(position.xyz, 1.0)).xyz; mediump vec3 worldnormal = normalize((u_world * vec4(normal, 0.0)).xyz); vec4 viewPos = u_view * vec4(worldpos, 1.0); gl_Position = u_proj * viewPos; lowp vec4 lightSum0 = u_ambient * color0 + vec4(u_matemissive, 0.0); vec3 toLight; lowp vec3 diffuse; float distance; lowp float lightScale; mediump float ldot; toLight = u_lightpos0; ldot = max(dot(toLight, worldnormal), 0.0); diffuse = (u_lightdiffuse0 * color0.rgb) * ldot; lightSum0.rgb += (u_lightambient0 * color0.rgb + diffuse); toLight = u_lightpos1 - worldpos; distance = length(toLight); toLight /= distance; ldot = max(dot(toLight, worldnormal), 0.0); lightScale = clamp(1.0 / dot(u_lightatt1, vec3(1.0, distance, distance*distance)), 0.0, 1.0); diffuse = (u_lightdiffuse1 * color0.rgb) * ldot; lightSum0.rgb += (u_lightambient1 * color0.rgb + diffuse) * lightScale; toLight = u_lightpos3 - worldpos; distance = length(toLight); toLight /= distance; ldot = max(dot(toLight, worldnormal), 0.0); lightScale = clamp(1.0 / dot(u_lightatt3, vec3(1.0, distance, distance*distance)), 0.0, 1.0); diffuse = (u_lightdiffuse3 * color0.rgb) * ldot; lightSum0.rgb += (u_lightambient3 * color0.rgb + diffuse) * lightScale; v_color0 = clamp(lightSum0, 0.0, 1.0); v_color1 = vec3(0.0); v_texcoord = vec3(texcoord.xy * u_uvscaleoffset.xy, 0.0); v_fogdepth = (viewPos.z + u_fogcoef.x) * u_fogcoef.y; }
God of War™: Ghost of Sparta v1.6.3 2022-06-15 Error in shader program link: info: Link Error: Vertex shader is missing. Link Error: Fragment shader is missing. fs: 00000000:01a00802 Tex LM Fog 2x StenToAlpha StenUniform TFuncMod #version 300 es #extension GL_EXT_shader_framebuffer_fetch : require precision lowp float; uniform sampler2D tex; uniform float u_stencilReplaceValue; in vec4 v_color0; in vec3 v_color1; uniform vec3 u_fogcolor; in highp float v_fogdepth; in highp vec3 v_texcoord; inout vec4 fragColor0; void main() { vec4 s = vec4(v_color1, 0.0); vec4 t = texture(tex, v_texcoord.xy); vec4 p = v_color0; vec4 v = vec4(t.rgb * p.rgb, p.a) + s; v.rgb = v.rgb * 2.0; float fogCoef = clamp(v_fogdepth, 0.0, 1.0); v = mix(vec4(u_fogcolor, v.a), v, fogCoef); fragColor0 = vec4(v.rgb, u_stencilReplaceValue); } vs: 01b14000:00000b1d HWX C T N LM Fog Tex Light: 0: c:0 t:0 1: c:0 t:0 3: c:0 t:1 MatUp:1 #version 300 es precision highp float; in vec3 position; in mediump vec3 normal; in vec2 texcoord; in lowp vec4 color0; uniform mat4 u_proj; uniform mat4 u_world; uniform mat4 u_view; uniform vec4 u_uvscaleoffset; uniform vec3 u_lightpos0; uniform lowp vec3 u_lightambient0; uniform lowp vec3 u_lightdiffuse0; uniform vec3 u_lightpos1; uniform lowp vec3 u_lightambient1; uniform lowp vec3 u_lightdiffuse1; uniform vec3 u_lightpos3; uniform mediump vec3 u_lightatt3; uniform lowp vec3 u_lightambient3; uniform lowp vec3 u_lightdiffuse3; uniform lowp vec4 u_ambient; uniform lowp vec3 u_matdiffuse; uniform lowp vec4 u_matspecular; uniform lowp vec3 u_matemissive; uniform lowp vec4 u_matambientalpha; uniform highp vec2 u_fogcoef; out lowp vec4 v_color0; out lowp vec3 v_color1; out highp vec3 v_texcoord; out highp float v_fogdepth; void main() { vec3 worldpos = (u_world * vec4(position.xyz, 1.0)).xyz; mediump vec3 worldnormal = normalize((u_world * vec4(normal, 0.0)).xyz); vec4 viewPos = u_view * vec4(worldpos, 1.0); gl_Position = u_proj * viewPos; lowp vec4 lightSum0 = u_ambient * color0 + vec4(u_matemissive, 0.0); vec3 toLight; lowp vec3 diffuse; float distance; lowp float lightScale; mediump float ldot; toLight = u_lightpos0; ldot = max(dot(toLight, worldnormal), 0.0); diffuse = (u_lightdiffuse0 * u_matdiffuse) * ldot; lightSum0.rgb += (u_lightambient0 * color0.rgb + diffuse); toLight = u_lightpos1; ldot = max(dot(toLight, worldnormal), 0.0); diffuse = (u_lightdiffuse1 * u_matdiffuse) * ldot; lightSum0.rgb += (u_lightambient1 * color0.rgb + diffuse); toLight = u_lightpos3 - worldpos; distance = length(toLight); toLight /= distance; ldot = max(dot(toLight, worldnormal), 0.0); lightScale = clamp(1.0 / dot(u_lightatt3, vec3(1.0, distance, distance*distance)), 0.0, 1.0); diffuse = (u_lightdiffuse3 * u_matdiffuse) * ldot; lightSum0.rgb += (u_lightambient3 * color0.rgb + diffuse) * lightScale; v_color0 = clamp(lightSum0, 0.0, 1.0); v_color1 = vec3(0.0); v_texcoord = vec3(texcoord.xy * u_uvscaleoffset.xy, 0.0); v_fogdepth = (viewPos.z + u_fogcoef.x) * u_fogcoef.y; }
God of War™: Ghost of Sparta v1.6.3 2022-06-15 Error in shader program link: info: Link Error: Vertex shader is missing. Link Error: Fragment shader is missing. fs: 00000000:01a00802 Tex LM Fog 2x StenToAlpha StenUniform TFuncMod #version 300 es #extension GL_EXT_shader_framebuffer_fetch : require precision lowp float; uniform sampler2D tex; uniform float u_stencilReplaceValue; in vec4 v_color0; in vec3 v_color1; uniform vec3 u_fogcolor; in highp float v_fogdepth; in highp vec3 v_texcoord; inout vec4 fragColor0; void main() { vec4 s = vec4(v_color1, 0.0); vec4 t = texture(tex, v_texcoord.xy); vec4 p = v_color0; vec4 v = vec4(t.rgb * p.rgb, p.a) + s; v.rgb = v.rgb * 2.0; float fogCoef = clamp(v_fogdepth, 0.0, 1.0); v = mix(vec4(u_fogcolor, v.a), v, fogCoef); fragColor0 = vec4(v.rgb, u_stencilReplaceValue); } vs: 01914000:00000b1d HWX C T N LM Fog Tex Light: 0: c:0 t:0 3: c:0 t:1 MatUp:1 #version 300 es precision highp float; in vec3 position; in mediump vec3 normal; in vec2 texcoord; in lowp vec4 color0; uniform mat4 u_proj; uniform mat4 u_world; uniform mat4 u_view; uniform vec4 u_uvscaleoffset; uniform vec3 u_lightpos0; uniform lowp vec3 u_lightambient0; uniform lowp vec3 u_lightdiffuse0; uniform vec3 u_lightpos3; uniform mediump vec3 u_lightatt3; uniform lowp vec3 u_lightambient3; uniform lowp vec3 u_lightdiffuse3; uniform lowp vec4 u_ambient; uniform lowp vec3 u_matdiffuse; uniform lowp vec4 u_matspecular; uniform lowp vec3 u_matemissive; uniform lowp vec4 u_matambientalpha; uniform highp vec2 u_fogcoef; out lowp vec4 v_color0; out lowp vec3 v_color1; out highp vec3 v_texcoord; out highp float v_fogdepth; void main() { vec3 worldpos = (u_world * vec4(position.xyz, 1.0)).xyz; mediump vec3 worldnormal = normalize((u_world * vec4(normal, 0.0)).xyz); vec4 viewPos = u_view * vec4(worldpos, 1.0); gl_Position = u_proj * viewPos; lowp vec4 lightSum0 = u_ambient * color0 + vec4(u_matemissive, 0.0); vec3 toLight; lowp vec3 diffuse; float distance; lowp float lightScale; mediump float ldot; toLight = u_lightpos0; ldot = max(dot(toLight, worldnormal), 0.0); diffuse = (u_lightdiffuse0 * u_matdiffuse) * ldot; lightSum0.rgb += (u_lightambient0 * color0.rgb + diffuse); toLight = u_lightpos3 - worldpos; distance = length(toLight); toLight /= distance; ldot = max(dot(toLight, worldnormal), 0.0); lightScale = clamp(1.0 / dot(u_lightatt3, vec3(1.0, distance, distance*distance)), 0.0, 1.0); diffuse = (u_lightdiffuse3 * u_matdiffuse) * ldot; lightSum0.rgb += (u_lightambient3 * color0.rgb + diffuse) * lightScale; v_color0 = clamp(lightSum0, 0.0, 1.0); v_color1 = vec3(0.0); v_texcoord = vec3(texcoord.xy * u_uvscaleoffset.xy, 0.0); v_fogdepth = (viewPos.z + u_fogcoef.x) * u_fogcoef.y; }
God of War™: Ghost of Sparta v1.6.3 2022-06-15 Error in shader program link: info: Link Error: Vertex shader is missing. Link Error: Fragment shader is missing. fs: 00000000:00a00822 Tex TexAlpha LM Fog 2x TFuncMod #version 300 es #extension GL_EXT_shader_framebuffer_fetch : require precision lowp float; uniform sampler2D tex; in vec4 v_color0; in vec3 v_color1; uniform vec3 u_fogcolor; in highp float v_fogdepth; in highp vec3 v_texcoord; inout vec4 fragColor0; void main() { vec4 s = vec4(v_color1, 0.0); vec4 t = texture(tex, v_texcoord.xy); vec4 p = v_color0; vec4 v = p * t + s; v.rgb = v.rgb * 2.0; float fogCoef = clamp(v_fogdepth, 0.0, 1.0); v = mix(vec4(u_fogcolor, v.a), v, fogCoef); fragColor0 = v; } vs: 01330040:00000b1d HWX C T N LM Fog Tex Light: 0: c:0 t:0 1: c:0 t:1 MatUp:3 #version 300 es precision highp float; in vec3 position; in mediump vec3 normal; in vec2 texcoord; in lowp vec4 color0; uniform mat4 u_proj; uniform mat4 u_world; uniform mat4 u_view; uniform vec4 u_uvscaleoffset; uniform vec3 u_lightpos0; uniform lowp vec3 u_lightambient0; uniform lowp vec3 u_lightdiffuse0; uniform vec3 u_lightpos1; uniform mediump vec3 u_lightatt1; uniform lowp vec3 u_lightambient1; uniform lowp vec3 u_lightdiffuse1; uniform lowp vec4 u_ambient; uniform lowp vec4 u_matspecular; uniform lowp vec3 u_matemissive; uniform lowp vec4 u_matambientalpha; uniform highp vec2 u_fogcoef; out lowp vec4 v_color0; out lowp vec3 v_color1; out highp vec3 v_texcoord; out highp float v_fogdepth; void main() { vec3 worldpos = (u_world * vec4(position.xyz, 1.0)).xyz; mediump vec3 worldnormal = normalize((u_world * vec4(normal, 0.0)).xyz); vec4 viewPos = u_view * vec4(worldpos, 1.0); gl_Position = u_proj * viewPos; lowp vec4 lightSum0 = u_ambient * color0 + vec4(u_matemissive, 0.0); vec3 toLight; lowp vec3 diffuse; float distance; lowp float lightScale; mediump float ldot; toLight = u_lightpos0; ldot = max(dot(toLight, worldnormal), 0.0); diffuse = (u_lightdiffuse0 * color0.rgb) * ldot; lightSum0.rgb += (u_lightambient0 * color0.rgb + diffuse); toLight = u_lightpos1 - worldpos; distance = length(toLight); toLight /= distance; ldot = max(dot(toLight, worldnormal), 0.0); lightScale = clamp(1.0 / dot(u_lightatt1, vec3(1.0, distance, distance*distance)), 0.0, 1.0); diffuse = (u_lightdiffuse1 * color0.rgb) * ldot; lightSum0.rgb += (u_lightambient1 * color0.rgb + diffuse) * lightScale; v_color0 = clamp(lightSum0, 0.0, 1.0); v_color1 = vec3(0.0); v_texcoord = vec3(texcoord.xy * u_uvscaleoffset.xy, 0.0); v_fogdepth = (viewPos.z + u_fogcoef.x) * u_fogcoef.y; }
God of War™: Ghost of Sparta v1.6.3 2022-06-15 Error in shader program link: info: Link Error: Vertex shader is missing. Link Error: Fragment shader is missing. fs: 00000000:00a00802 Tex LM Fog 2x TFuncMod #version 300 es #extension GL_EXT_shader_framebuffer_fetch : require precision lowp float; uniform sampler2D tex; in vec4 v_color0; in vec3 v_color1; uniform vec3 u_fogcolor; in highp float v_fogdepth; in highp vec3 v_texcoord; inout vec4 fragColor0; void main() { vec4 s = vec4(v_color1, 0.0); vec4 t = texture(tex, v_texcoord.xy); vec4 p = v_color0; vec4 v = vec4(t.rgb * p.rgb, p.a) + s; v.rgb = v.rgb * 2.0; float fogCoef = clamp(v_fogdepth, 0.0, 1.0); v = mix(vec4(u_fogcolor, v.a), v, fogCoef); fragColor0 = v; } vs: 01730511:00000b1d HWX C T N LM Fog Tex Light: 0: c:1 t:0 1: c:1 t:0 2: c:1 t:1 MatUp:3 #version 300 es precision highp float; in vec3 position; in mediump vec3 normal; in vec2 texcoord; in lowp vec4 color0; uniform mat4 u_proj; uniform mat4 u_world; uniform mat4 u_view; uniform vec4 u_uvscaleoffset; uniform vec3 u_lightpos0; uniform lowp vec3 u_lightambient0; uniform lowp vec3 u_lightdiffuse0; uniform lowp vec3 u_lightspecular0; uniform vec3 u_lightpos1; uniform lowp vec3 u_lightambient1; uniform lowp vec3 u_lightdiffuse1; uniform lowp vec3 u_lightspecular1; uniform vec3 u_lightpos2; uniform mediump vec3 u_lightatt2; uniform lowp vec3 u_lightambient2; uniform lowp vec3 u_lightdiffuse2; uniform lowp vec3 u_lightspecular2; uniform lowp vec4 u_ambient; uniform lowp vec4 u_matspecular; uniform lowp vec3 u_matemissive; uniform lowp vec4 u_matambientalpha; uniform highp vec2 u_fogcoef; out lowp vec4 v_color0; out lowp vec3 v_color1; out highp vec3 v_texcoord; out highp float v_fogdepth; void main() { vec3 worldpos = (u_world * vec4(position.xyz, 1.0)).xyz; mediump vec3 worldnormal = normalize((u_world * vec4(normal, 0.0)).xyz); vec4 viewPos = u_view * vec4(worldpos, 1.0); gl_Position = u_proj * viewPos; lowp vec4 lightSum0 = u_ambient * color0 + vec4(u_matemissive, 0.0); lowp vec3 lightSum1 = vec3(0.0); vec3 toLight; lowp vec3 diffuse; float distance; lowp float lightScale; mediump float ldot; toLight = u_lightpos0; ldot = max(dot(toLight, worldnormal), 0.0); diffuse = (u_lightdiffuse0 * color0.rgb) * ldot; ldot = dot(normalize(toLight + vec3(0.0, 0.0, 1.0)), worldnormal); if (ldot > 0.0) lightSum1 += u_lightspecular0 * u_matspecular.rgb * (pow(ldot, u_matspecular.a) ); lightSum0.rgb += (u_lightambient0 * color0.rgb + diffuse); toLight = u_lightpos1; ldot = max(dot(toLight, worldnormal), 0.0); diffuse = (u_lightdiffuse1 * color0.rgb) * ldot; ldot = dot(normalize(toLight + vec3(0.0, 0.0, 1.0)), worldnormal); if (ldot > 0.0) lightSum1 += u_lightspecular1 * u_matspecular.rgb * (pow(ldot, u_matspecular.a) ); lightSum0.rgb += (u_lightambient1 * color0.rgb + diffuse); toLight = u_lightpos2 - worldpos; distance = length(toLight); toLight /= distance; ldot = max(dot(toLight, worldnormal), 0.0); lightScale = clamp(1.0 / dot(u_lightatt2, vec3(1.0, distance, distance*distance)), 0.0, 1.0); diffuse = (u_lightdiffuse2 * color0.rgb) * ldot; ldot = dot(normalize(toLight + vec3(0.0, 0.0, 1.0)), worldnormal); if (ldot > 0.0) lightSum1 += u_lightspecular2 * u_matspecular.rgb * (pow(ldot, u_matspecular.a) * lightScale); lightSum0.rgb += (u_lightambient2 * color0.rgb + diffuse) * lightScale; v_color0 = clamp(lightSum0, 0.0, 1.0); v_color1 = clamp(lightSum1, 0.0, 1.0); v_texcoord = vec3(texcoord.xy * u_uvscaleoffset.xy, 0.0); v_fogdepth = (viewPos.z + u_fogcoef.x) * u_fogcoef.y; }
God of War™: Ghost of Sparta v1.6.3 2022-06-15 Error in shader program link: info: Link Error: Vertex shader is missing. Link Error: Fragment shader is missing. fs: 00000000:01a0d822 Tex TexAlpha LM Fog 2x StenToAlpha StenUniform TFuncMod AlphaTest > #version 300 es #extension GL_EXT_shader_framebuffer_fetch : require precision lowp float; uniform sampler2D tex; uniform sampler2D testtex; uniform float u_stencilReplaceValue; in vec4 v_color0; in vec3 v_color1; uniform vec3 u_fogcolor; in highp float v_fogdepth; in highp vec3 v_texcoord; inout vec4 fragColor0; void main() { vec4 s = vec4(v_color1, 0.0); vec4 t = texture(tex, v_texcoord.xy); vec4 p = v_color0; vec4 v = p * t + s; float aResult = texture(testtex, vec2(v.a * 0.996094 + 0.001953, 0)).a; if (aResult < 0.5) discard; v.rgb = v.rgb * 2.0; float fogCoef = clamp(v_fogdepth, 0.0, 1.0); v = mix(vec4(u_fogcolor, v.a), v, fogCoef); fragColor0 = vec4(v.rgb, u_stencilReplaceValue); } vs: 01730440:00000b1d HWX C T N LM Fog Tex Light: 0: c:0 t:0 1: c:0 t:1 2: c:0 t:1 MatUp:3 #version 300 es precision highp float; in vec3 position; in mediump vec3 normal; in vec2 texcoord; in lowp vec4 color0; uniform mat4 u_proj; uniform mat4 u_world; uniform mat4 u_view; uniform vec4 u_uvscaleoffset; uniform vec3 u_lightpos0; uniform lowp vec3 u_lightambient0; uniform lowp vec3 u_lightdiffuse0; uniform vec3 u_lightpos1; uniform mediump vec3 u_lightatt1; uniform lowp vec3 u_lightambient1; uniform lowp vec3 u_lightdiffuse1; uniform vec3 u_lightpos2; uniform mediump vec3 u_lightatt2; uniform lowp vec3 u_lightambient2; uniform lowp vec3 u_lightdiffuse2; uniform lowp vec4 u_ambient; uniform lowp vec4 u_matspecular; uniform lowp vec3 u_matemissive; uniform lowp vec4 u_matambientalpha; uniform highp vec2 u_fogcoef; out lowp vec4 v_color0; out lowp vec3 v_color1; out highp vec3 v_texcoord; out highp float v_fogdepth; void main() { vec3 worldpos = (u_world * vec4(position.xyz, 1.0)).xyz; mediump vec3 worldnormal = normalize((u_world * vec4(normal, 0.0)).xyz); vec4 viewPos = u_view * vec4(worldpos, 1.0); gl_Position = u_proj * viewPos; lowp vec4 lightSum0 = u_ambient * color0 + vec4(u_matemissive, 0.0); vec3 toLight; lowp vec3 diffuse; float distance; lowp float lightScale; mediump float ldot; toLight = u_lightpos0; ldot = max(dot(toLight, worldnormal), 0.0); diffuse = (u_lightdiffuse0 * color0.rgb) * ldot; lightSum0.rgb += (u_lightambient0 * color0.rgb + diffuse); toLight = u_lightpos1 - worldpos; distance = length(toLight); toLight /= distance; ldot = max(dot(toLight, worldnormal), 0.0); lightScale = clamp(1.0 / dot(u_lightatt1, vec3(1.0, distance, distance*distance)), 0.0, 1.0); diffuse = (u_lightdiffuse1 * color0.rgb) * ldot; lightSum0.rgb += (u_lightambient1 * color0.rgb + diffuse) * lightScale; toLight = u_lightpos2 - worldpos; distance = length(toLight); toLight /= distance; ldot = max(dot(toLight, worldnormal), 0.0); lightScale = clamp(1.0 / dot(u_lightatt2, vec3(1.0, distance, distance*distance)), 0.0, 1.0); diffuse = (u_lightdiffuse2 * color0.rgb) * ldot; lightSum0.rgb += (u_lightambient2 * color0.rgb + diffuse) * lightScale; v_color0 = clamp(lightSum0, 0.0, 1.0); v_color1 = vec3(0.0); v_texcoord = vec3(texcoord.xy * u_uvscaleoffset.xy, 0.0); v_fogdepth = (viewPos.z + u_fogcoef.x) * u_fogcoef.y; }
God of War™: Ghost of Sparta v1.6.3 2022-06-15 Error in shader program link: info: Link Error: Vertex shader is missing. Link Error: Fragment shader is missing. fs: 00000000:01a00802 Tex LM Fog 2x StenToAlpha StenUniform TFuncMod #version 300 es #extension GL_EXT_shader_framebuffer_fetch : require precision lowp float; uniform sampler2D tex; uniform float u_stencilReplaceValue; in vec4 v_color0; in vec3 v_color1; uniform vec3 u_fogcolor; in highp float v_fogdepth; in highp vec3 v_texcoord; inout vec4 fragColor0; void main() { vec4 s = vec4(v_color1, 0.0); vec4 t = texture(tex, v_texcoord.xy); vec4 p = v_color0; vec4 v = vec4(t.rgb * p.rgb, p.a) + s; v.rgb = v.rgb * 2.0; float fogCoef = clamp(v_fogdepth, 0.0, 1.0); v = mix(vec4(u_fogcolor, v.a), v, fogCoef); fragColor0 = vec4(v.rgb, u_stencilReplaceValue); } vs: 01f34404:00000b1d HWX C T N LM Fog Tex Light: 0: c:0 t:1 1: c:0 t:0 2: c:0 t:1 3: c:0 t:1 MatUp:3 #version 300 es precision highp float; in vec3 position; in mediump vec3 normal; in vec2 texcoord; in lowp vec4 color0; uniform mat4 u_proj; uniform mat4 u_world; uniform mat4 u_view; uniform vec4 u_uvscaleoffset; uniform vec3 u_lightpos0; uniform mediump vec3 u_lightatt0; uniform lowp vec3 u_lightambient0; uniform lowp vec3 u_lightdiffuse0; uniform vec3 u_lightpos1; uniform lowp vec3 u_lightambient1; uniform lowp vec3 u_lightdiffuse1; uniform vec3 u_lightpos2; uniform mediump vec3 u_lightatt2; uniform lowp vec3 u_lightambient2; uniform lowp vec3 u_lightdiffuse2; uniform vec3 u_lightpos3; uniform mediump vec3 u_lightatt3; uniform lowp vec3 u_lightambient3; uniform lowp vec3 u_lightdiffuse3; uniform lowp vec4 u_ambient; uniform lowp vec4 u_matspecular; uniform lowp vec3 u_matemissive; uniform lowp vec4 u_matambientalpha; uniform highp vec2 u_fogcoef; out lowp vec4 v_color0; out lowp vec3 v_color1; out highp vec3 v_texcoord; out highp float v_fogdepth; void main() { vec3 worldpos = (u_world * vec4(position.xyz, 1.0)).xyz; mediump vec3 worldnormal = normalize((u_world * vec4(normal, 0.0)).xyz); vec4 viewPos = u_view * vec4(worldpos, 1.0); gl_Position = u_proj * viewPos; lowp vec4 lightSum0 = u_ambient * color0 + vec4(u_matemissive, 0.0); vec3 toLight; lowp vec3 diffuse; float distance; lowp float lightScale; mediump float ldot; toLight = u_lightpos0 - worldpos; distance = length(toLight); toLight /= distance; ldot = max(dot(toLight, worldnormal), 0.0); lightScale = clamp(1.0 / dot(u_lightatt0, vec3(1.0, distance, distance*distance)), 0.0, 1.0); diffuse = (u_lightdiffuse0 * color0.rgb) * ldot; lightSum0.rgb += (u_lightambient0 * color0.rgb + diffuse) * lightScale; toLight = u_lightpos1; ldot = max(dot(toLight, worldnormal), 0.0); diffuse = (u_lightdiffuse1 * color0.rgb) * ldot; lightSum0.rgb += (u_lightambient1 * color0.rgb + diffuse); toLight = u_lightpos2 - worldpos; distance = length(toLight); toLight /= distance; ldot = max(dot(toLight, worldnormal), 0.0); lightScale = clamp(1.0 / dot(u_lightatt2, vec3(1.0, distance, distance*distance)), 0.0, 1.0); diffuse = (u_lightdiffuse2 * color0.rgb) * ldot; lightSum0.rgb += (u_lightambient2 * color0.rgb + diffuse) * lightScale; toLight = u_lightpos3 - worldpos; distance = length(toLight); toLight /= distance; ldot = max(dot(toLight, worldnormal), 0.0); lightScale = clamp(1.0 / dot(u_lightatt3, vec3(1.0, distance, distance*distance)), 0.0, 1.0); diffuse = (u_lightdiffuse3 * color0.rgb) * ldot; lightSum0.rgb += (u_lightambient3 * color0.rgb + diffuse) * lightScale; v_color0 = clamp(lightSum0, 0.0, 1.0); v_color1 = vec3(0.0); v_texcoord = vec3(texcoord.xy * u_uvscaleoffset.xy, 0.0); v_fogdepth = (viewPos.z + u_fogcoef.x) * u_fogcoef.y; }
God of War™: Ghost of Sparta v1.6.3 2022-06-15 Error in shader program link: info: Link Error: Vertex shader is missing. Link Error: Fragment shader is missing. fs: 00000000:01a0d822 Tex TexAlpha LM Fog 2x StenToAlpha StenUniform TFuncMod AlphaTest > #version 300 es #extension GL_EXT_shader_framebuffer_fetch : require precision lowp float; uniform sampler2D tex; uniform sampler2D testtex; uniform float u_stencilReplaceValue; in vec4 v_color0; in vec3 v_color1; uniform vec3 u_fogcolor; in highp float v_fogdepth; in highp vec3 v_texcoord; inout vec4 fragColor0; void main() { vec4 s = vec4(v_color1, 0.0); vec4 t = texture(tex, v_texcoord.xy); vec4 p = v_color0; vec4 v = p * t + s; float aResult = texture(testtex, vec2(v.a * 0.996094 + 0.001953, 0)).a; if (aResult < 0.5) discard; v.rgb = v.rgb * 2.0; float fogCoef = clamp(v_fogdepth, 0.0, 1.0); v = mix(vec4(u_fogcolor, v.a), v, fogCoef); fragColor0 = vec4(v.rgb, u_stencilReplaceValue); } vs: 01f34151:00000b1d HWX C T N LM Fog Tex Light: 0: c:1 t:0 1: c:1 t:1 2: c:1 t:0 3: c:0 t:1 MatUp:3 #version 300 es precision highp float; in vec3 position; in mediump vec3 normal; in vec2 texcoord; in lowp vec4 color0; uniform mat4 u_proj; uniform mat4 u_world; uniform mat4 u_view; uniform vec4 u_uvscaleoffset; uniform vec3 u_lightpos0; uniform lowp vec3 u_lightambient0; uniform lowp vec3 u_lightdiffuse0; uniform lowp vec3 u_lightspecular0; uniform vec3 u_lightpos1; uniform mediump vec3 u_lightatt1; uniform lowp vec3 u_lightambient1; uniform lowp vec3 u_lightdiffuse1; uniform lowp vec3 u_lightspecular1; uniform vec3 u_lightpos2; uniform lowp vec3 u_lightambient2; uniform lowp vec3 u_lightdiffuse2; uniform lowp vec3 u_lightspecular2; uniform vec3 u_lightpos3; uniform mediump vec3 u_lightatt3; uniform lowp vec3 u_lightambient3; uniform lowp vec3 u_lightdiffuse3; uniform lowp vec4 u_ambient; uniform lowp vec4 u_matspecular; uniform lowp vec3 u_matemissive; uniform lowp vec4 u_matambientalpha; uniform highp vec2 u_fogcoef; out lowp vec4 v_color0; out lowp vec3 v_color1; out highp vec3 v_texcoord; out highp float v_fogdepth; void main() { vec3 worldpos = (u_world * vec4(position.xyz, 1.0)).xyz; mediump vec3 worldnormal = normalize((u_world * vec4(normal, 0.0)).xyz); vec4 viewPos = u_view * vec4(worldpos, 1.0); gl_Position = u_proj * viewPos; lowp vec4 lightSum0 = u_ambient * color0 + vec4(u_matemissive, 0.0); lowp vec3 lightSum1 = vec3(0.0); vec3 toLight; lowp vec3 diffuse; float distance; lowp float lightScale; mediump float ldot; toLight = u_lightpos0; ldot = max(dot(toLight, worldnormal), 0.0); diffuse = (u_lightdiffuse0 * color0.rgb) * ldot; ldot = dot(normalize(toLight + vec3(0.0, 0.0, 1.0)), worldnormal); if (ldot > 0.0) lightSum1 += u_lightspecular0 * u_matspecular.rgb * (pow(ldot, u_matspecular.a) ); lightSum0.rgb += (u_lightambient0 * color0.rgb + diffuse); toLight = u_lightpos1 - worldpos; distance = length(toLight); toLight /= distance; ldot = max(dot(toLight, worldnormal), 0.0); lightScale = clamp(1.0 / dot(u_lightatt1, vec3(1.0, distance, distance*distance)), 0.0, 1.0); diffuse = (u_lightdiffuse1 * color0.rgb) * ldot; ldot = dot(normalize(toLight + vec3(0.0, 0.0, 1.0)), worldnormal); if (ldot > 0.0) lightSum1 += u_lightspecular1 * u_matspecular.rgb * (pow(ldot, u_matspecular.a) * lightScale); lightSum0.rgb += (u_lightambient1 * color0.rgb + diffuse) * lightScale; toLight = u_lightpos2; ldot = max(dot(toLight, worldnormal), 0.0); diffuse = (u_lightdiffuse2 * color0.rgb) * ldot; ldot = dot(normalize(toLight + vec3(0.0, 0.0, 1.0)), worldnormal); if (ldot > 0.0) lightSum1 += u_lightspecular2 * u_matspecular.rgb * (pow(ldot, u_matspecular.a) ); lightSum0.rgb += (u_lightambient2 * color0.rgb + diffuse); toLight = u_lightpos3 - worldpos; distance = length(toLight); toLight /= distance; ldot = max(dot(toLight, worldnormal), 0.0); lightScale = clamp(1.0 / dot(u_lightatt3, vec3(1.0, distance, distance*distance)), 0.0, 1.0); diffuse = (u_lightdiffuse3 * color0.rgb) * ldot; lightSum0.rgb += (u_lightambient3 * color0.rgb + d
God of War™: Ghost of Sparta v1.6.3 2022-06-15 Error in shader program link: info: Link Error: Vertex shader is missing. Link Error: Fragment shader is missing. fs: 00000000:01a0d822 Tex TexAlpha LM Fog 2x StenToAlpha StenUniform TFuncMod AlphaTest > #version 300 es #extension GL_EXT_shader_framebuffer_fetch : require precision lowp float; uniform sampler2D tex; uniform sampler2D testtex; uniform float u_stencilReplaceValue; in vec4 v_color0; in vec3 v_color1; uniform vec3 u_fogcolor; in highp float v_fogdepth; in highp vec3 v_texcoord; inout vec4 fragColor0; void main() { vec4 s = vec4(v_color1, 0.0); vec4 t = texture(tex, v_texcoord.xy); vec4 p = v_color0; vec4 v = p * t + s; float aResult = texture(testtex, vec2(v.a * 0.996094 + 0.001953, 0)).a; if (aResult < 0.5) discard; v.rgb = v.rgb * 2.0; float fogCoef = clamp(v_fogdepth, 0.0, 1.0); v = mix(vec4(u_fogcolor, v.a), v, fogCoef); fragColor0 = vec4(v.rgb, u_stencilReplaceValue); } vs: 01f34440:00000b1d HWX C T N LM Fog Tex Light: 0: c:0 t:0 1: c:0 t:1 2: c:0 t:1 3: c:0 t:1 MatUp:3 #version 300 es precision highp float; in vec3 position; in mediump vec3 normal; in vec2 texcoord; in lowp vec4 color0; uniform mat4 u_proj; uniform mat4 u_world; uniform mat4 u_view; uniform vec4 u_uvscaleoffset; uniform vec3 u_lightpos0; uniform lowp vec3 u_lightambient0; uniform lowp vec3 u_lightdiffuse0; uniform vec3 u_lightpos1; uniform mediump vec3 u_lightatt1; uniform lowp vec3 u_lightambient1; uniform lowp vec3 u_lightdiffuse1; uniform vec3 u_lightpos2; uniform mediump vec3 u_lightatt2; uniform lowp vec3 u_lightambient2; uniform lowp vec3 u_lightdiffuse2; uniform vec3 u_lightpos3; uniform mediump vec3 u_lightatt3; uniform lowp vec3 u_lightambient3; uniform lowp vec3 u_lightdiffuse3; uniform lowp vec4 u_ambient; uniform lowp vec4 u_matspecular; uniform lowp vec3 u_matemissive; uniform lowp vec4 u_matambientalpha; uniform highp vec2 u_fogcoef; out lowp vec4 v_color0; out lowp vec3 v_color1; out highp vec3 v_texcoord; out highp float v_fogdepth; void main() { vec3 worldpos = (u_world * vec4(position.xyz, 1.0)).xyz; mediump vec3 worldnormal = normalize((u_world * vec4(normal, 0.0)).xyz); vec4 viewPos = u_view * vec4(worldpos, 1.0); gl_Position = u_proj * viewPos; lowp vec4 lightSum0 = u_ambient * color0 + vec4(u_matemissive, 0.0); vec3 toLight; lowp vec3 diffuse; float distance; lowp float lightScale; mediump float ldot; toLight = u_lightpos0; ldot = max(dot(toLight, worldnormal), 0.0); diffuse = (u_lightdiffuse0 * color0.rgb) * ldot; lightSum0.rgb += (u_lightambient0 * color0.rgb + diffuse); toLight = u_lightpos1 - worldpos; distance = length(toLight); toLight /= distance; ldot = max(dot(toLight, worldnormal), 0.0); lightScale = clamp(1.0 / dot(u_lightatt1, vec3(1.0, distance, distance*distance)), 0.0, 1.0); diffuse = (u_lightdiffuse1 * color0.rgb) * ldot; lightSum0.rgb += (u_lightambient1 * color0.rgb + diffuse) * lightScale; toLight = u_lightpos2 - worldpos; distance = length(toLight); toLight /= distance; ldot = max(dot(toLight, worldnormal), 0.0); lightScale = clamp(1.0 / dot(u_lightatt2, vec3(1.0, distance, distance*distance)), 0.0, 1.0); diffuse = (u_lightdiffuse2 * color0.rgb) * ldot; lightSum0.rgb += (u_lightambient2 * color0.rgb + diffuse) * lightScale; toLight = u_lightpos3 - worldpos; distance = length(toLight); toLight /= distance; ldot = max(dot(toLight, worldnormal), 0.0); lightScale = clamp(1.0 / dot(u_lightatt3, vec3(1.0, distance, distance*distance)), 0.0, 1.0); diffuse = (u_lightdiffuse3 * color0.rgb) * ldot; lightSum0.rgb += (u_lightambient3 * color0.rgb + diffuse) * lightScale; v_color0 = clamp(lightSum0, 0.0, 1.0); v_color1 = vec3(0.0); v_texcoord = vec3(texcoord.xy * u_uvscaleoffset.xy, 0.0); v_fogdepth = (viewPos.z + u_fogcoef.x) * u_fogcoef.y; }
God of War™: Ghost of Sparta v1.6.3 2022-06-15 Error in shader program link: info: Link Error: Vertex shader is missing. Link Error: Fragment shader is missing. fs: 00000000:00a00822 Tex TexAlpha LM Fog 2x TFuncMod #version 300 es #extension GL_EXT_shader_framebuffer_fetch : require precision lowp float; uniform sampler2D tex; in vec4 v_color0; in vec3 v_color1; uniform vec3 u_fogcolor; in highp float v_fogdepth; in highp vec3 v_texcoord; inout vec4 fragColor0; void main() { vec4 s = vec4(v_color1, 0.0); vec4 t = texture(tex, v_texcoord.xy); vec4 p = v_color0; vec4 v = p * t + s; v.rgb = v.rgb * 2.0; float fogCoef = clamp(v_fogdepth, 0.0, 1.0); v = mix(vec4(u_fogcolor, v.a), v, fogCoef); fragColor0 = v; } vs: 01934000:00000b1d HWX C T N LM Fog Tex Light: 0: c:0 t:0 3: c:0 t:1 MatUp:3 #version 300 es precision highp float; in vec3 position; in mediump vec3 normal; in vec2 texcoord; in lowp vec4 color0; uniform mat4 u_proj; uniform mat4 u_world; uniform mat4 u_view; uniform vec4 u_uvscaleoffset; uniform vec3 u_lightpos0; uniform lowp vec3 u_lightambient0; uniform lowp vec3 u_lightdiffuse0; uniform vec3 u_lightpos3; uniform mediump vec3 u_lightatt3; uniform lowp vec3 u_lightambient3; uniform lowp vec3 u_lightdiffuse3; uniform lowp vec4 u_ambient; uniform lowp vec4 u_matspecular; uniform lowp vec3 u_matemissive; uniform lowp vec4 u_matambientalpha; uniform highp vec2 u_fogcoef; out lowp vec4 v_color0; out lowp vec3 v_color1; out highp vec3 v_texcoord; out highp float v_fogdepth; void main() { vec3 worldpos = (u_world * vec4(position.xyz, 1.0)).xyz; mediump vec3 worldnormal = normalize((u_world * vec4(normal, 0.0)).xyz); vec4 viewPos = u_view * vec4(worldpos, 1.0); gl_Position = u_proj * viewPos; lowp vec4 lightSum0 = u_ambient * color0 + vec4(u_matemissive, 0.0); vec3 toLight; lowp vec3 diffuse; float distance; lowp float lightScale; mediump float ldot; toLight = u_lightpos0; ldot = max(dot(toLight, worldnormal), 0.0); diffuse = (u_lightdiffuse0 * color0.rgb) * ldot; lightSum0.rgb += (u_lightambient0 * color0.rgb + diffuse); toLight = u_lightpos3 - worldpos; distance = length(toLight); toLight /= distance; ldot = max(dot(toLight, worldnormal), 0.0); lightScale = clamp(1.0 / dot(u_lightatt3, vec3(1.0, distance, distance*distance)), 0.0, 1.0); diffuse = (u_lightdiffuse3 * color0.rgb) * ldot; lightSum0.rgb += (u_lightambient3 * color0.rgb + diffuse) * lightScale; v_color0 = clamp(lightSum0, 0.0, 1.0); v_color1 = vec3(0.0); v_texcoord = vec3(texcoord.xy * u_uvscaleoffset.xy, 0.0); v_fogdepth = (viewPos.z + u_fogcoef.x) * u_fogcoef.y; }
God of War™: Ghost of Sparta v1.6.3 2022-06-15 Error in shader program link: info: Link Error: Vertex shader is missing. Link Error: Fragment shader is missing. fs: 00000000:01a00802 Tex LM Fog 2x StenToAlpha StenUniform TFuncMod #version 300 es #extension GL_EXT_shader_framebuffer_fetch : require precision lowp float; uniform sampler2D tex; uniform float u_stencilReplaceValue; in vec4 v_color0; in vec3 v_color1; uniform vec3 u_fogcolor; in highp float v_fogdepth; in highp vec3 v_texcoord; inout vec4 fragColor0; void main() { vec4 s = vec4(v_color1, 0.0); vec4 t = texture(tex, v_texcoord.xy); vec4 p = v_color0; vec4 v = vec4(t.rgb * p.rgb, p.a) + s; v.rgb = v.rgb * 2.0; float fogCoef = clamp(v_fogdepth, 0.0, 1.0); v = mix(vec4(u_fogcolor, v.a), v, fogCoef); fragColor0 = vec4(v.rgb, u_stencilReplaceValue); } vs: 01f34151:00000b1d HWX C T N LM Fog Tex Light: 0: c:1 t:0 1: c:1 t:1 2: c:1 t:0 3: c:0 t:1 MatUp:3 #version 300 es precision highp float; in vec3 position; in mediump vec3 normal; in vec2 texcoord; in lowp vec4 color0; uniform mat4 u_proj; uniform mat4 u_world; uniform mat4 u_view; uniform vec4 u_uvscaleoffset; uniform vec3 u_lightpos0; uniform lowp vec3 u_lightambient0; uniform lowp vec3 u_lightdiffuse0; uniform lowp vec3 u_lightspecular0; uniform vec3 u_lightpos1; uniform mediump vec3 u_lightatt1; uniform lowp vec3 u_lightambient1; uniform lowp vec3 u_lightdiffuse1; uniform lowp vec3 u_lightspecular1; uniform vec3 u_lightpos2; uniform lowp vec3 u_lightambient2; uniform lowp vec3 u_lightdiffuse2; uniform lowp vec3 u_lightspecular2; uniform vec3 u_lightpos3; uniform mediump vec3 u_lightatt3; uniform lowp vec3 u_lightambient3; uniform lowp vec3 u_lightdiffuse3; uniform lowp vec4 u_ambient; uniform lowp vec4 u_matspecular; uniform lowp vec3 u_matemissive; uniform lowp vec4 u_matambientalpha; uniform highp vec2 u_fogcoef; out lowp vec4 v_color0; out lowp vec3 v_color1; out highp vec3 v_texcoord; out highp float v_fogdepth; void main() { vec3 worldpos = (u_world * vec4(position.xyz, 1.0)).xyz; mediump vec3 worldnormal = normalize((u_world * vec4(normal, 0.0)).xyz); vec4 viewPos = u_view * vec4(worldpos, 1.0); gl_Position = u_proj * viewPos; lowp vec4 lightSum0 = u_ambient * color0 + vec4(u_matemissive, 0.0); lowp vec3 lightSum1 = vec3(0.0); vec3 toLight; lowp vec3 diffuse; float distance; lowp float lightScale; mediump float ldot; toLight = u_lightpos0; ldot = max(dot(toLight, worldnormal), 0.0); diffuse = (u_lightdiffuse0 * color0.rgb) * ldot; ldot = dot(normalize(toLight + vec3(0.0, 0.0, 1.0)), worldnormal); if (ldot > 0.0) lightSum1 += u_lightspecular0 * u_matspecular.rgb * (pow(ldot, u_matspecular.a) ); lightSum0.rgb += (u_lightambient0 * color0.rgb + diffuse); toLight = u_lightpos1 - worldpos; distance = length(toLight); toLight /= distance; ldot = max(dot(toLight, worldnormal), 0.0); lightScale = clamp(1.0 / dot(u_lightatt1, vec3(1.0, distance, distance*distance)), 0.0, 1.0); diffuse = (u_lightdiffuse1 * color0.rgb) * ldot; ldot = dot(normalize(toLight + vec3(0.0, 0.0, 1.0)), worldnormal); if (ldot > 0.0) lightSum1 += u_lightspecular1 * u_matspecular.rgb * (pow(ldot, u_matspecular.a) * lightScale); lightSum0.rgb += (u_lightambient1 * color0.rgb + diffuse) * lightScale; toLight = u_lightpos2; ldot = max(dot(toLight, worldnormal), 0.0); diffuse = (u_lightdiffuse2 * color0.rgb) * ldot; ldot = dot(normalize(toLight + vec3(0.0, 0.0, 1.0)), worldnormal); if (ldot > 0.0) lightSum1 += u_lightspecular2 * u_matspecular.rgb * (pow(ldot, u_matspecular.a) ); lightSum0.rgb += (u_lightambient2 * color0.rgb + diffuse); toLight = u_lightpos3 - worldpos; distance = length(toLight); toLight /= distance; ldot = max(dot(toLight, worldnormal), 0.0); lightScale = clamp(1.0 / dot(u_lightatt3, vec3(1.0, distance, distance*distance)), 0.0, 1.0); diffuse = (u_lightdiffuse3 * color0.rgb) * ldot; lightSum0.rgb += (u_lightambient3 * color0.rgb + diffuse) * lightScale; v_color0 = clamp(lightSum0, 0.0, 1.0); v_color1 = clamp(lightSum1, 0.0, 1.0); v_texcoord = vec3(texcoord.
God of War™: Ghost of Sparta v1.6.3 2022-06-15 Error in shader program link: info: Link Error: Vertex shader is missing. Link Error: Fragment shader is missing. fs: 00000000:01a0d822 Tex TexAlpha LM Fog 2x StenToAlpha StenUniform TFuncMod AlphaTest > #version 300 es #extension GL_EXT_shader_framebuffer_fetch : require precision lowp float; uniform sampler2D tex; uniform sampler2D testtex; uniform float u_stencilReplaceValue; in vec4 v_color0; in vec3 v_color1; uniform vec3 u_fogcolor; in highp float v_fogdepth; in highp vec3 v_texcoord; inout vec4 fragColor0; void main() { vec4 s = vec4(v_color1, 0.0); vec4 t = texture(tex, v_texcoord.xy); vec4 p = v_color0; vec4 v = p * t + s; float aResult = texture(testtex, vec2(v.a * 0.996094 + 0.001953, 0)).a; if (aResult < 0.5) discard; v.rgb = v.rgb * 2.0; float fogCoef = clamp(v_fogdepth, 0.0, 1.0); v = mix(vec4(u_fogcolor, v.a), v, fogCoef); fragColor0 = vec4(v.rgb, u_stencilReplaceValue); } vs: 01f34151:00000f1d HWX C T N LM Fog RevN Tex Light: 0: c:1 t:0 1: c:1 t:1 2: c:1 t:0 3: c:0 t:1 MatUp:3 #version 300 es precision highp float; in vec3 position; in mediump vec3 normal; in vec2 texcoord; in lowp vec4 color0; uniform mat4 u_proj; uniform mat4 u_world; uniform mat4 u_view; uniform vec4 u_uvscaleoffset; uniform vec3 u_lightpos0; uniform lowp vec3 u_lightambient0; uniform lowp vec3 u_lightdiffuse0; uniform lowp vec3 u_lightspecular0; uniform vec3 u_lightpos1; uniform mediump vec3 u_lightatt1; uniform lowp vec3 u_lightambient1; uniform lowp vec3 u_lightdiffuse1; uniform lowp vec3 u_lightspecular1; uniform vec3 u_lightpos2; uniform lowp vec3 u_lightambient2; uniform lowp vec3 u_lightdiffuse2; uniform lowp vec3 u_lightspecular2; uniform vec3 u_lightpos3; uniform mediump vec3 u_lightatt3; uniform lowp vec3 u_lightambient3; uniform lowp vec3 u_lightdiffuse3; uniform lowp vec4 u_ambient; uniform lowp vec4 u_matspecular; uniform lowp vec3 u_matemissive; uniform lowp vec4 u_matambientalpha; uniform highp vec2 u_fogcoef; out lowp vec4 v_color0; out lowp vec3 v_color1; out highp vec3 v_texcoord; out highp float v_fogdepth; void main() { vec3 worldpos = (u_world * vec4(position.xyz, 1.0)).xyz; mediump vec3 worldnormal = normalize((u_world * vec4(-normal, 0.0)).xyz); vec4 viewPos = u_view * vec4(worldpos, 1.0); gl_Position = u_proj * viewPos; lowp vec4 lightSum0 = u_ambient * color0 + vec4(u_matemissive, 0.0); lowp vec3 lightSum1 = vec3(0.0); vec3 toLight; lowp vec3 diffuse; float distance; lowp float lightScale; mediump float ldot; toLight = u_lightpos0; ldot = max(dot(toLight, worldnormal), 0.0); diffuse = (u_lightdiffuse0 * color0.rgb) * ldot; ldot = dot(normalize(toLight + vec3(0.0, 0.0, 1.0)), worldnormal); if (ldot > 0.0) lightSum1 += u_lightspecular0 * u_matspecular.rgb * (pow(ldot, u_matspecular.a) ); lightSum0.rgb += (u_lightambient0 * color0.rgb + diffuse); toLight = u_lightpos1 - worldpos; distance = length(toLight); toLight /= distance; ldot = max(dot(toLight, worldnormal), 0.0); lightScale = clamp(1.0 / dot(u_lightatt1, vec3(1.0, distance, distance*distance)), 0.0, 1.0); diffuse = (u_lightdiffuse1 * color0.rgb) * ldot; ldot = dot(normalize(toLight + vec3(0.0, 0.0, 1.0)), worldnormal); if (ldot > 0.0) lightSum1 += u_lightspecular1 * u_matspecular.rgb * (pow(ldot, u_matspecular.a) * lightScale); lightSum0.rgb += (u_lightambient1 * color0.rgb + diffuse) * lightScale; toLight = u_lightpos2; ldot = max(dot(toLight, worldnormal), 0.0); diffuse = (u_lightdiffuse2 * color0.rgb) * ldot; ldot = dot(normalize(toLight + vec3(0.0, 0.0, 1.0)), worldnormal); if (ldot > 0.0) lightSum1 += u_lightspecular2 * u_matspecular.rgb * (pow(ldot, u_matspecular.a) ); lightSum0.rgb += (u_lightambient2 * color0.rgb + diffuse); toLight = u_lightpos3 - worldpos; distance = length(toLight); toLight /= distance; ldot = max(dot(toLight, worldnormal), 0.0); lightScale = clamp(1.0 / dot(u_lightatt3, vec3(1.0, distance, distance*distance)), 0.0, 1.0); diffuse = (u_lightdiffuse3 * color0.rgb) * ldot; lightSum0.rgb += (u_lightambient3 * color0.r
God of War™: Ghost of Sparta v1.6.3 2022-06-15 Error in shader program link: info: Link Error: Vertex shader is missing. Link Error: Fragment shader is missing. fs: 00000000:01a00802 Tex LM Fog 2x StenToAlpha StenUniform TFuncMod #version 300 es #extension GL_EXT_shader_framebuffer_fetch : require precision lowp float; uniform sampler2D tex; uniform float u_stencilReplaceValue; in vec4 v_color0; in vec3 v_color1; uniform vec3 u_fogcolor; in highp float v_fogdepth; in highp vec3 v_texcoord; inout vec4 fragColor0; void main() { vec4 s = vec4(v_color1, 0.0); vec4 t = texture(tex, v_texcoord.xy); vec4 p = v_color0; vec4 v = vec4(t.rgb * p.rgb, p.a) + s; v.rgb = v.rgb * 2.0; float fogCoef = clamp(v_fogdepth, 0.0, 1.0); v = mix(vec4(u_fogcolor, v.a), v, fogCoef); fragColor0 = vec4(v.rgb, u_stencilReplaceValue); } vs: 01b34055:00000b1d HWX C T N LM Fog Tex Light: 0: c:1 t:1 1: c:1 t:1 3: c:0 t:1 MatUp:3 #version 300 es precision highp float; in vec3 position; in mediump vec3 normal; in vec2 texcoord; in lowp vec4 color0; uniform mat4 u_proj; uniform mat4 u_world; uniform mat4 u_view; uniform vec4 u_uvscaleoffset; uniform vec3 u_lightpos0; uniform mediump vec3 u_lightatt0; uniform lowp vec3 u_lightambient0; uniform lowp vec3 u_lightdiffuse0; uniform lowp vec3 u_lightspecular0; uniform vec3 u_lightpos1; uniform mediump vec3 u_lightatt1; uniform lowp vec3 u_lightambient1; uniform lowp vec3 u_lightdiffuse1; uniform lowp vec3 u_lightspecular1; uniform vec3 u_lightpos3; uniform mediump vec3 u_lightatt3; uniform lowp vec3 u_lightambient3; uniform lowp vec3 u_lightdiffuse3; uniform lowp vec4 u_ambient; uniform lowp vec4 u_matspecular; uniform lowp vec3 u_matemissive; uniform lowp vec4 u_matambientalpha; uniform highp vec2 u_fogcoef; out lowp vec4 v_color0; out lowp vec3 v_color1; out highp vec3 v_texcoord; out highp float v_fogdepth; void main() { vec3 worldpos = (u_world * vec4(position.xyz, 1.0)).xyz; mediump vec3 worldnormal = normalize((u_world * vec4(normal, 0.0)).xyz); vec4 viewPos = u_view * vec4(worldpos, 1.0); gl_Position = u_proj * viewPos; lowp vec4 lightSum0 = u_ambient * color0 + vec4(u_matemissive, 0.0); lowp vec3 lightSum1 = vec3(0.0); vec3 toLight; lowp vec3 diffuse; float distance; lowp float lightScale; mediump float ldot; toLight = u_lightpos0 - worldpos; distance = length(toLight); toLight /= distance; ldot = max(dot(toLight, worldnormal), 0.0); lightScale = clamp(1.0 / dot(u_lightatt0, vec3(1.0, distance, distance*distance)), 0.0, 1.0); diffuse = (u_lightdiffuse0 * color0.rgb) * ldot; ldot = dot(normalize(toLight + vec3(0.0, 0.0, 1.0)), worldnormal); if (ldot > 0.0) lightSum1 += u_lightspecular0 * u_matspecular.rgb * (pow(ldot, u_matspecular.a) * lightScale); lightSum0.rgb += (u_lightambient0 * color0.rgb + diffuse) * lightScale; toLight = u_lightpos1 - worldpos; distance = length(toLight); toLight /= distance; ldot = max(dot(toLight, worldnormal), 0.0); lightScale = clamp(1.0 / dot(u_lightatt1, vec3(1.0, distance, distance*distance)), 0.0, 1.0); diffuse = (u_lightdiffuse1 * color0.rgb) * ldot; ldot = dot(normalize(toLight + vec3(0.0, 0.0, 1.0)), worldnormal); if (ldot > 0.0) lightSum1 += u_lightspecular1 * u_matspecular.rgb * (pow(ldot, u_matspecular.a) * lightScale); lightSum0.rgb += (u_lightambient1 * color0.rgb + diffuse) * lightScale; toLight = u_lightpos3 - worldpos; distance = length(toLight); toLight /= distance; ldot = max(dot(toLight, worldnormal), 0.0); lightScale = clamp(1.0 / dot(u_lightatt3, vec3(1.0, distance, distance*distance)), 0.0, 1.0); diffuse = (u_lightdiffuse3 * color0.rgb) * ldot; lightSum0.rgb += (u_lightambient3 * color0.rgb + diffuse) * lightScale; v_color0 = clamp(lightSum0, 0.0, 1.0); v_color1 = clamp(lightSum1, 0.0, 1.0); v_texcoord = vec3(texcoord.xy * u_uvscaleoffset.xy, 0.0); v_fogdepth = (viewPos.z + u_fogcoef.x) * u_fogcoef.y; }
God of War™: Ghost of Sparta v1.6.3 2022-06-15 Error in shader program link: info: Link Error: Vertex shader is missing. Link Error: Fragment shader is missing. fs: 00000000:00a00822 Tex TexAlpha LM Fog 2x TFuncMod #version 300 es #extension GL_EXT_shader_framebuffer_fetch : require precision lowp float; uniform sampler2D tex; in vec4 v_color0; in vec3 v_color1; uniform vec3 u_fogcolor; in highp float v_fogdepth; in highp vec3 v_texcoord; inout vec4 fragColor0; void main() { vec4 s = vec4(v_color1, 0.0); vec4 t = texture(tex, v_texcoord.xy); vec4 p = v_color0; vec4 v = p * t + s; v.rgb = v.rgb * 2.0; float fogCoef = clamp(v_fogdepth, 0.0, 1.0); v = mix(vec4(u_fogcolor, v.a), v, fogCoef); fragColor0 = v; } vs: 01b14040:00000b1d HWX C T N LM Fog Tex Light: 0: c:0 t:0 1: c:0 t:1 3: c:0 t:1 MatUp:1 #version 300 es precision highp float; in vec3 position; in mediump vec3 normal; in vec2 texcoord; in lowp vec4 color0; uniform mat4 u_proj; uniform mat4 u_world; uniform mat4 u_view; uniform vec4 u_uvscaleoffset; uniform vec3 u_lightpos0; uniform lowp vec3 u_lightambient0; uniform lowp vec3 u_lightdiffuse0; uniform vec3 u_lightpos1; uniform mediump vec3 u_lightatt1; uniform lowp vec3 u_lightambient1; uniform lowp vec3 u_lightdiffuse1; uniform vec3 u_lightpos3; uniform mediump vec3 u_lightatt3; uniform lowp vec3 u_lightambient3; uniform lowp vec3 u_lightdiffuse3; uniform lowp vec4 u_ambient; uniform lowp vec3 u_matdiffuse; uniform lowp vec4 u_matspecular; uniform lowp vec3 u_matemissive; uniform lowp vec4 u_matambientalpha; uniform highp vec2 u_fogcoef; out lowp vec4 v_color0; out lowp vec3 v_color1; out highp vec3 v_texcoord; out highp float v_fogdepth; void main() { vec3 worldpos = (u_world * vec4(position.xyz, 1.0)).xyz; mediump vec3 worldnormal = normalize((u_world * vec4(normal, 0.0)).xyz); vec4 viewPos = u_view * vec4(worldpos, 1.0); gl_Position = u_proj * viewPos; lowp vec4 lightSum0 = u_ambient * color0 + vec4(u_matemissive, 0.0); vec3 toLight; lowp vec3 diffuse; float distance; lowp float lightScale; mediump float ldot; toLight = u_lightpos0; ldot = max(dot(toLight, worldnormal), 0.0); diffuse = (u_lightdiffuse0 * u_matdiffuse) * ldot; lightSum0.rgb += (u_lightambient0 * color0.rgb + diffuse); toLight = u_lightpos1 - worldpos; distance = length(toLight); toLight /= distance; ldot = max(dot(toLight, worldnormal), 0.0); lightScale = clamp(1.0 / dot(u_lightatt1, vec3(1.0, distance, distance*distance)), 0.0, 1.0); diffuse = (u_lightdiffuse1 * u_matdiffuse) * ldot; lightSum0.rgb += (u_lightambient1 * color0.rgb + diffuse) * lightScale; toLight = u_lightpos3 - worldpos; distance = length(toLight); toLight /= distance; ldot = max(dot(toLight, worldnormal), 0.0); lightScale = clamp(1.0 / dot(u_lightatt3, vec3(1.0, distance, distance*distance)), 0.0, 1.0); diffuse = (u_lightdiffuse3 * u_matdiffuse) * ldot; lightSum0.rgb += (u_lightambient3 * color0.rgb + diffuse) * lightScale; v_color0 = clamp(lightSum0, 0.0, 1.0); v_color1 = vec3(0.0); v_texcoord = vec3(texcoord.xy * u_uvscaleoffset.xy, 0.0); v_fogdepth = (viewPos.z + u_fogcoef.x) * u_fogcoef.y; }
God of War™: Ghost of Sparta v1.6.3 2022-06-15 Error in shader program link: info: Link Error: Vertex shader is missing. Link Error: Fragment shader is missing. fs: 00000000:00a00822 Tex TexAlpha LM Fog 2x TFuncMod #version 300 es #extension GL_EXT_shader_framebuffer_fetch : require precision lowp float; uniform sampler2D tex; in vec4 v_color0; in vec3 v_color1; uniform vec3 u_fogcolor; in highp float v_fogdepth; in highp vec3 v_texcoord; inout vec4 fragColor0; void main() { vec4 s = vec4(v_color1, 0.0); vec4 t = texture(tex, v_texcoord.xy); vec4 p = v_color0; vec4 v = p * t + s; v.rgb = v.rgb * 2.0; float fogCoef = clamp(v_fogdepth, 0.0, 1.0); v = mix(vec4(u_fogcolor, v.a), v, fogCoef); fragColor0 = v; } vs: 01330004:00000b1d HWX C T N LM Fog Tex Light: 0: c:0 t:1 1: c:0 t:0 MatUp:3 #version 300 es precision highp float; in vec3 position; in mediump vec3 normal; in vec2 texcoord; in lowp vec4 color0; uniform mat4 u_proj; uniform mat4 u_world; uniform mat4 u_view; uniform vec4 u_uvscaleoffset; uniform vec3 u_lightpos0; uniform mediump vec3 u_lightatt0; uniform lowp vec3 u_lightambient0; uniform lowp vec3 u_lightdiffuse0; uniform vec3 u_lightpos1; uniform lowp vec3 u_lightambient1; uniform lowp vec3 u_lightdiffuse1; uniform lowp vec4 u_ambient; uniform lowp vec4 u_matspecular; uniform lowp vec3 u_matemissive; uniform lowp vec4 u_matambientalpha; uniform highp vec2 u_fogcoef; out lowp vec4 v_color0; out lowp vec3 v_color1; out highp vec3 v_texcoord; out highp float v_fogdepth; void main() { vec3 worldpos = (u_world * vec4(position.xyz, 1.0)).xyz; mediump vec3 worldnormal = normalize((u_world * vec4(normal, 0.0)).xyz); vec4 viewPos = u_view * vec4(worldpos, 1.0); gl_Position = u_proj * viewPos; lowp vec4 lightSum0 = u_ambient * color0 + vec4(u_matemissive, 0.0); vec3 toLight; lowp vec3 diffuse; float distance; lowp float lightScale; mediump float ldot; toLight = u_lightpos0 - worldpos; distance = length(toLight); toLight /= distance; ldot = max(dot(toLight, worldnormal), 0.0); lightScale = clamp(1.0 / dot(u_lightatt0, vec3(1.0, distance, distance*distance)), 0.0, 1.0); diffuse = (u_lightdiffuse0 * color0.rgb) * ldot; lightSum0.rgb += (u_lightambient0 * color0.rgb + diffuse) * lightScale; toLight = u_lightpos1; ldot = max(dot(toLight, worldnormal), 0.0); diffuse = (u_lightdiffuse1 * color0.rgb) * ldot; lightSum0.rgb += (u_lightambient1 * color0.rgb + diffuse); v_color0 = clamp(lightSum0, 0.0, 1.0); v_color1 = vec3(0.0); v_texcoord = vec3(texcoord.xy * u_uvscaleoffset.xy, 0.0); v_fogdepth = (viewPos.z + u_fogcoef.x) * u_fogcoef.y; }
God of War™: Ghost of Sparta v1.6.3 2022-06-15 Error in shader program link: info: Link Error: Vertex shader is missing. Link Error: Fragment shader is missing. fs: 00000000:00a00802 Tex LM Fog 2x TFuncMod #version 300 es #extension GL_EXT_shader_framebuffer_fetch : require precision lowp float; uniform sampler2D tex; in vec4 v_color0; in vec3 v_color1; uniform vec3 u_fogcolor; in highp float v_fogdepth; in highp vec3 v_texcoord; inout vec4 fragColor0; void main() { vec4 s = vec4(v_color1, 0.0); vec4 t = texture(tex, v_texcoord.xy); vec4 p = v_color0; vec4 v = vec4(t.rgb * p.rgb, p.a) + s; v.rgb = v.rgb * 2.0; float fogCoef = clamp(v_fogdepth, 0.0, 1.0); v = mix(vec4(u_fogcolor, v.a), v, fogCoef); fragColor0 = v; } vs: 01f34511:00000b1d HWX C T N LM Fog Tex Light: 0: c:1 t:0 1: c:1 t:0 2: c:1 t:1 3: c:0 t:1 MatUp:3 #version 300 es precision highp float; in vec3 position; in mediump vec3 normal; in vec2 texcoord; in lowp vec4 color0; uniform mat4 u_proj; uniform mat4 u_world; uniform mat4 u_view; uniform vec4 u_uvscaleoffset; uniform vec3 u_lightpos0; uniform lowp vec3 u_lightambient0; uniform lowp vec3 u_lightdiffuse0; uniform lowp vec3 u_lightspecular0; uniform vec3 u_lightpos1; uniform lowp vec3 u_lightambient1; uniform lowp vec3 u_lightdiffuse1; uniform lowp vec3 u_lightspecular1; uniform vec3 u_lightpos2; uniform mediump vec3 u_lightatt2; uniform lowp vec3 u_lightambient2; uniform lowp vec3 u_lightdiffuse2; uniform lowp vec3 u_lightspecular2; uniform vec3 u_lightpos3; uniform mediump vec3 u_lightatt3; uniform lowp vec3 u_lightambient3; uniform lowp vec3 u_lightdiffuse3; uniform lowp vec4 u_ambient; uniform lowp vec4 u_matspecular; uniform lowp vec3 u_matemissive; uniform lowp vec4 u_matambientalpha; uniform highp vec2 u_fogcoef; out lowp vec4 v_color0; out lowp vec3 v_color1; out highp vec3 v_texcoord; out highp float v_fogdepth; void main() { vec3 worldpos = (u_world * vec4(position.xyz, 1.0)).xyz; mediump vec3 worldnormal = normalize((u_world * vec4(normal, 0.0)).xyz); vec4 viewPos = u_view * vec4(worldpos, 1.0); gl_Position = u_proj * viewPos; lowp vec4 lightSum0 = u_ambient * color0 + vec4(u_matemissive, 0.0); lowp vec3 lightSum1 = vec3(0.0); vec3 toLight; lowp vec3 diffuse; float distance; lowp float lightScale; mediump float ldot; toLight = u_lightpos0; ldot = max(dot(toLight, worldnormal), 0.0); diffuse = (u_lightdiffuse0 * color0.rgb) * ldot; ldot = dot(normalize(toLight + vec3(0.0, 0.0, 1.0)), worldnormal); if (ldot > 0.0) lightSum1 += u_lightspecular0 * u_matspecular.rgb * (pow(ldot, u_matspecular.a) ); lightSum0.rgb += (u_lightambient0 * color0.rgb + diffuse); toLight = u_lightpos1; ldot = max(dot(toLight, worldnormal), 0.0); diffuse = (u_lightdiffuse1 * color0.rgb) * ldot; ldot = dot(normalize(toLight + vec3(0.0, 0.0, 1.0)), worldnormal); if (ldot > 0.0) lightSum1 += u_lightspecular1 * u_matspecular.rgb * (pow(ldot, u_matspecular.a) ); lightSum0.rgb += (u_lightambient1 * color0.rgb + diffuse); toLight = u_lightpos2 - worldpos; distance = length(toLight); toLight /= distance; ldot = max(dot(toLight, worldnormal), 0.0); lightScale = clamp(1.0 / dot(u_lightatt2, vec3(1.0, distance, distance*distance)), 0.0, 1.0); diffuse = (u_lightdiffuse2 * color0.rgb) * ldot; ldot = dot(normalize(toLight + vec3(0.0, 0.0, 1.0)), worldnormal); if (ldot > 0.0) lightSum1 += u_lightspecular2 * u_matspecular.rgb * (pow(ldot, u_matspecular.a) * lightScale); lightSum0.rgb += (u_lightambient2 * color0.rgb + diffuse) * lightScale; toLight = u_lightpos3 - worldpos; distance = length(toLight); toLight /= distance; ldot = max(dot(toLight, worldnormal), 0.0); lightScale = clamp(1.0 / dot(u_lightatt3, vec3(1.0, distance, distance*distance)), 0.0, 1.0); diffuse = (u_lightdiffuse3 * color0.rgb) * ldot; lightSum0.rgb += (u_lightambient3 * color0.rgb + diffuse) * lightScale; v_color0 = clamp(lightSum0, 0.0, 1.0); v_color1 = clamp(lightSum1, 0.0, 1.0); v_texcoord = vec3(texcoord.xy * u_uvscaleoffset.xy, 0.0); v_fogdepth = (viewPos.z + u_fogcoef.x) * u_fogcoef.y; }
God of War™: Ghost of Sparta v1.6.3 2022-06-15 Error in shader program link: info: Link Error: Vertex shader is missing. Link Error: Fragment shader is missing. fs: 00000000:00800822 Tex TexAlpha LM 2x TFuncMod #version 300 es #extension GL_EXT_shader_framebuffer_fetch : require precision lowp float; uniform sampler2D tex; in vec4 v_color0; in vec3 v_color1; in highp vec3 v_texcoord; inout vec4 fragColor0; void main() { vec4 s = vec4(v_color1, 0.0); vec4 t = texture(tex, v_texcoord.xy); vec4 p = v_color0; vec4 v = p * t + s; v.rgb = v.rgb * 2.0; fragColor0 = v; } vs: 01814000:00000b19 HWX C T N LM Tex Light: 3: c:0 t:1 MatUp:1 #version 300 es precision highp float; in vec3 position; in mediump vec3 normal; in vec2 texcoord; in lowp vec4 color0; uniform mat4 u_proj; uniform mat4 u_world; uniform mat4 u_view; uniform vec4 u_uvscaleoffset; uniform vec3 u_lightpos3; uniform mediump vec3 u_lightatt3; uniform lowp vec3 u_lightambient3; uniform lowp vec3 u_lightdiffuse3; uniform lowp vec4 u_ambient; uniform lowp vec3 u_matdiffuse; uniform lowp vec4 u_matspecular; uniform lowp vec3 u_matemissive; uniform lowp vec4 u_matambientalpha; out lowp vec4 v_color0; out lowp vec3 v_color1; out highp vec3 v_texcoord; void main() { vec3 worldpos = (u_world * vec4(position.xyz, 1.0)).xyz; mediump vec3 worldnormal = normalize((u_world * vec4(normal, 0.0)).xyz); vec4 viewPos = u_view * vec4(worldpos, 1.0); gl_Position = u_proj * viewPos; lowp vec4 lightSum0 = u_ambient * color0 + vec4(u_matemissive, 0.0); vec3 toLight; lowp vec3 diffuse; float distance; lowp float lightScale; mediump float ldot; toLight = u_lightpos3 - worldpos; distance = length(toLight); toLight /= distance; ldot = max(dot(toLight, worldnormal), 0.0); lightScale = clamp(1.0 / dot(u_lightatt3, vec3(1.0, distance, distance*distance)), 0.0, 1.0); diffuse = (u_lightdiffuse3 * u_matdiffuse) * ldot; lightSum0.rgb += (u_lightambient3 * color0.rgb + diffuse) * lightScale; v_color0 = clamp(lightSum0, 0.0, 1.0); v_color1 = vec3(0.0); v_texcoord = vec3(texcoord.xy * u_uvscaleoffset.xy, 0.0); }
God of War™: Ghost of Sparta v1.6.3 2022-06-15 Error in shader program link: info: Link Error: Vertex shader is missing. Link Error: Fragment shader is missing. fs: 00000000:01a0d822 Tex TexAlpha LM Fog 2x StenToAlpha StenUniform TFuncMod AlphaTest > #version 300 es #extension GL_EXT_shader_framebuffer_fetch : require precision lowp float; uniform sampler2D tex; uniform sampler2D testtex; uniform float u_stencilReplaceValue; in vec4 v_color0; in vec3 v_color1; uniform vec3 u_fogcolor; in highp float v_fogdepth; in highp vec3 v_texcoord; inout vec4 fragColor0; void main() { vec4 s = vec4(v_color1, 0.0); vec4 t = texture(tex, v_texcoord.xy); vec4 p = v_color0; vec4 v = p * t + s; float aResult = texture(testtex, vec2(v.a * 0.996094 + 0.001953, 0)).a; if (aResult < 0.5) discard; v.rgb = v.rgb * 2.0; float fogCoef = clamp(v_fogdepth, 0.0, 1.0); v = mix(vec4(u_fogcolor, v.a), v, fogCoef); fragColor0 = vec4(v.rgb, u_stencilReplaceValue); } vs: 01f34444:00000b1d HWX C T N LM Fog Tex Light: 0: c:0 t:1 1: c:0 t:1 2: c:0 t:1 3: c:0 t:1 MatUp:3 #version 300 es precision highp float; in vec3 position; in mediump vec3 normal; in vec2 texcoord; in lowp vec4 color0; uniform mat4 u_proj; uniform mat4 u_world; uniform mat4 u_view; uniform vec4 u_uvscaleoffset; uniform vec3 u_lightpos0; uniform mediump vec3 u_lightatt0; uniform lowp vec3 u_lightambient0; uniform lowp vec3 u_lightdiffuse0; uniform vec3 u_lightpos1; uniform mediump vec3 u_lightatt1; uniform lowp vec3 u_lightambient1; uniform lowp vec3 u_lightdiffuse1; uniform vec3 u_lightpos2; uniform mediump vec3 u_lightatt2; uniform lowp vec3 u_lightambient2; uniform lowp vec3 u_lightdiffuse2; uniform vec3 u_lightpos3; uniform mediump vec3 u_lightatt3; uniform lowp vec3 u_lightambient3; uniform lowp vec3 u_lightdiffuse3; uniform lowp vec4 u_ambient; uniform lowp vec4 u_matspecular; uniform lowp vec3 u_matemissive; uniform lowp vec4 u_matambientalpha; uniform highp vec2 u_fogcoef; out lowp vec4 v_color0; out lowp vec3 v_color1; out highp vec3 v_texcoord; out highp float v_fogdepth; void main() { vec3 worldpos = (u_world * vec4(position.xyz, 1.0)).xyz; mediump vec3 worldnormal = normalize((u_world * vec4(normal, 0.0)).xyz); vec4 viewPos = u_view * vec4(worldpos, 1.0); gl_Position = u_proj * viewPos; lowp vec4 lightSum0 = u_ambient * color0 + vec4(u_matemissive, 0.0); vec3 toLight; lowp vec3 diffuse; float distance; lowp float lightScale; mediump float ldot; toLight = u_lightpos0 - worldpos; distance = length(toLight); toLight /= distance; ldot = max(dot(toLight, worldnormal), 0.0); lightScale = clamp(1.0 / dot(u_lightatt0, vec3(1.0, distance, distance*distance)), 0.0, 1.0); diffuse = (u_lightdiffuse0 * color0.rgb) * ldot; lightSum0.rgb += (u_lightambient0 * color0.rgb + diffuse) * lightScale; toLight = u_lightpos1 - worldpos; distance = length(toLight); toLight /= distance; ldot = max(dot(toLight, worldnormal), 0.0); lightScale = clamp(1.0 / dot(u_lightatt1, vec3(1.0, distance, distance*distance)), 0.0, 1.0); diffuse = (u_lightdiffuse1 * color0.rgb) * ldot; lightSum0.rgb += (u_lightambient1 * color0.rgb + diffuse) * lightScale; toLight = u_lightpos2 - worldpos; distance = length(toLight); toLight /= distance; ldot = max(dot(toLight, worldnormal), 0.0); lightScale = clamp(1.0 / dot(u_lightatt2, vec3(1.0, distance, distance*distance)), 0.0, 1.0); diffuse = (u_lightdiffuse2 * color0.rgb) * ldot; lightSum0.rgb += (u_lightambient2 * color0.rgb + diffuse) * lightScale; toLight = u_lightpos3 - worldpos; distance = length(toLight); toLight /= distance; ldot = max(dot(toLight, worldnormal), 0.0); lightScale = clamp(1.0 / dot(u_lightatt3, vec3(1.0, distance, distance*distance)), 0.0, 1.0); diffuse = (u_lightdiffuse3 * color0.rgb) * ldot; lightSum0.rgb += (u_lightambient3 * color0.rgb + diffuse) * lightScale; v_color0 = clamp(lightSum0, 0.0, 1.0); v_color1 = vec3(0.0); v_texcoord = vec3(texcoord.xy * u_uvscaleoffset.xy, 0.0); v_fogdepth = (viewPos.z + u_fogcoef.x) * u_fogcoef.y; }
God of War™: Ghost of Sparta v1.6.3 2022-06-15 Error in shader program link: info: Link Error: Vertex shader is missing. Link Error: Fragment shader is missing. fs: 00000000:01a0d822 Tex TexAlpha LM Fog 2x StenToAlpha StenUniform TFuncMod AlphaTest > #version 300 es #extension GL_EXT_shader_framebuffer_fetch : require precision lowp float; uniform sampler2D tex; uniform sampler2D testtex; uniform float u_stencilReplaceValue; in vec4 v_color0; in vec3 v_color1; uniform vec3 u_fogcolor; in highp float v_fogdepth; in highp vec3 v_texcoord; inout vec4 fragColor0; void main() { vec4 s = vec4(v_color1, 0.0); vec4 t = texture(tex, v_texcoord.xy); vec4 p = v_color0; vec4 v = p * t + s; float aResult = texture(testtex, vec2(v.a * 0.996094 + 0.001953, 0)).a; if (aResult < 0.5) discard; v.rgb = v.rgb * 2.0; float fogCoef = clamp(v_fogdepth, 0.0, 1.0); v = mix(vec4(u_fogcolor, v.a), v, fogCoef); fragColor0 = vec4(v.rgb, u_stencilReplaceValue); } vs: 01730151:00000b1d HWX C T N LM Fog Tex Light: 0: c:1 t:0 1: c:1 t:1 2: c:1 t:0 MatUp:3 #version 300 es precision highp float; in vec3 position; in mediump vec3 normal; in vec2 texcoord; in lowp vec4 color0; uniform mat4 u_proj; uniform mat4 u_world; uniform mat4 u_view; uniform vec4 u_uvscaleoffset; uniform vec3 u_lightpos0; uniform lowp vec3 u_lightambient0; uniform lowp vec3 u_lightdiffuse0; uniform lowp vec3 u_lightspecular0; uniform vec3 u_lightpos1; uniform mediump vec3 u_lightatt1; uniform lowp vec3 u_lightambient1; uniform lowp vec3 u_lightdiffuse1; uniform lowp vec3 u_lightspecular1; uniform vec3 u_lightpos2; uniform lowp vec3 u_lightambient2; uniform lowp vec3 u_lightdiffuse2; uniform lowp vec3 u_lightspecular2; uniform lowp vec4 u_ambient; uniform lowp vec4 u_matspecular; uniform lowp vec3 u_matemissive; uniform lowp vec4 u_matambientalpha; uniform highp vec2 u_fogcoef; out lowp vec4 v_color0; out lowp vec3 v_color1; out highp vec3 v_texcoord; out highp float v_fogdepth; void main() { vec3 worldpos = (u_world * vec4(position.xyz, 1.0)).xyz; mediump vec3 worldnormal = normalize((u_world * vec4(normal, 0.0)).xyz); vec4 viewPos = u_view * vec4(worldpos, 1.0); gl_Position = u_proj * viewPos; lowp vec4 lightSum0 = u_ambient * color0 + vec4(u_matemissive, 0.0); lowp vec3 lightSum1 = vec3(0.0); vec3 toLight; lowp vec3 diffuse; float distance; lowp float lightScale; mediump float ldot; toLight = u_lightpos0; ldot = max(dot(toLight, worldnormal), 0.0); diffuse = (u_lightdiffuse0 * color0.rgb) * ldot; ldot = dot(normalize(toLight + vec3(0.0, 0.0, 1.0)), worldnormal); if (ldot > 0.0) lightSum1 += u_lightspecular0 * u_matspecular.rgb * (pow(ldot, u_matspecular.a) ); lightSum0.rgb += (u_lightambient0 * color0.rgb + diffuse); toLight = u_lightpos1 - worldpos; distance = length(toLight); toLight /= distance; ldot = max(dot(toLight, worldnormal), 0.0); lightScale = clamp(1.0 / dot(u_lightatt1, vec3(1.0, distance, distance*distance)), 0.0, 1.0); diffuse = (u_lightdiffuse1 * color0.rgb) * ldot; ldot = dot(normalize(toLight + vec3(0.0, 0.0, 1.0)), worldnormal); if (ldot > 0.0) lightSum1 += u_lightspecular1 * u_matspecular.rgb * (pow(ldot, u_matspecular.a) * lightScale); lightSum0.rgb += (u_lightambient1 * color0.rgb + diffuse) * lightScale; toLight = u_lightpos2; ldot = max(dot(toLight, worldnormal), 0.0); diffuse = (u_lightdiffuse2 * color0.rgb) * ldot; ldot = dot(normalize(toLight + vec3(0.0, 0.0, 1.0)), worldnormal); if (ldot > 0.0) lightSum1 += u_lightspecular2 * u_matspecular.rgb * (pow(ldot, u_matspecular.a) ); lightSum0.rgb += (u_lightambient2 * color0.rgb + diffuse); v_color0 = clamp(lightSum0, 0.0, 1.0); v_color1 = clamp(lightSum1, 0.0, 1.0); v_texcoord = vec3(texcoord.xy * u_uvscaleoffset.xy, 0.0); v_fogdepth = (viewPos.z + u_fogcoef.x) * u_fogcoef.y; }
God of War™: Ghost of Sparta v1.6.3 2022-06-15 Error in shader program link: info: Link Error: Vertex shader is missing. Link Error: Fragment shader is missing. fs: 00000000:01a00802 Tex LM Fog 2x StenToAlpha StenUniform TFuncMod #version 300 es #extension GL_EXT_shader_framebuffer_fetch : require precision lowp float; uniform sampler2D tex; uniform float u_stencilReplaceValue; in vec4 v_color0; in vec3 v_color1; uniform vec3 u_fogcolor; in highp float v_fogdepth; in highp vec3 v_texcoord; inout vec4 fragColor0; void main() { vec4 s = vec4(v_color1, 0.0); vec4 t = texture(tex, v_texcoord.xy); vec4 p = v_color0; vec4 v = vec4(t.rgb * p.rgb, p.a) + s; v.rgb = v.rgb * 2.0; float fogCoef = clamp(v_fogdepth, 0.0, 1.0); v = mix(vec4(u_fogcolor, v.a), v, fogCoef); fragColor0 = vec4(v.rgb, u_stencilReplaceValue); } vs: 01f34440:00000b1d HWX C T N LM Fog Tex Light: 0: c:0 t:0 1: c:0 t:1 2: c:0 t:1 3: c:0 t:1 MatUp:3 #version 300 es precision highp float; in vec3 position; in mediump vec3 normal; in vec2 texcoord; in lowp vec4 color0; uniform mat4 u_proj; uniform mat4 u_world; uniform mat4 u_view; uniform vec4 u_uvscaleoffset; uniform vec3 u_lightpos0; uniform lowp vec3 u_lightambient0; uniform lowp vec3 u_lightdiffuse0; uniform vec3 u_lightpos1; uniform mediump vec3 u_lightatt1; uniform lowp vec3 u_lightambient1; uniform lowp vec3 u_lightdiffuse1; uniform vec3 u_lightpos2; uniform mediump vec3 u_lightatt2; uniform lowp vec3 u_lightambient2; uniform lowp vec3 u_lightdiffuse2; uniform vec3 u_lightpos3; uniform mediump vec3 u_lightatt3; uniform lowp vec3 u_lightambient3; uniform lowp vec3 u_lightdiffuse3; uniform lowp vec4 u_ambient; uniform lowp vec4 u_matspecular; uniform lowp vec3 u_matemissive; uniform lowp vec4 u_matambientalpha; uniform highp vec2 u_fogcoef; out lowp vec4 v_color0; out lowp vec3 v_color1; out highp vec3 v_texcoord; out highp float v_fogdepth; void main() { vec3 worldpos = (u_world * vec4(position.xyz, 1.0)).xyz; mediump vec3 worldnormal = normalize((u_world * vec4(normal, 0.0)).xyz); vec4 viewPos = u_view * vec4(worldpos, 1.0); gl_Position = u_proj * viewPos; lowp vec4 lightSum0 = u_ambient * color0 + vec4(u_matemissive, 0.0); vec3 toLight; lowp vec3 diffuse; float distance; lowp float lightScale; mediump float ldot; toLight = u_lightpos0; ldot = max(dot(toLight, worldnormal), 0.0); diffuse = (u_lightdiffuse0 * color0.rgb) * ldot; lightSum0.rgb += (u_lightambient0 * color0.rgb + diffuse); toLight = u_lightpos1 - worldpos; distance = length(toLight); toLight /= distance; ldot = max(dot(toLight, worldnormal), 0.0); lightScale = clamp(1.0 / dot(u_lightatt1, vec3(1.0, distance, distance*distance)), 0.0, 1.0); diffuse = (u_lightdiffuse1 * color0.rgb) * ldot; lightSum0.rgb += (u_lightambient1 * color0.rgb + diffuse) * lightScale; toLight = u_lightpos2 - worldpos; distance = length(toLight); toLight /= distance; ldot = max(dot(toLight, worldnormal), 0.0); lightScale = clamp(1.0 / dot(u_lightatt2, vec3(1.0, distance, distance*distance)), 0.0, 1.0); diffuse = (u_lightdiffuse2 * color0.rgb) * ldot; lightSum0.rgb += (u_lightambient2 * color0.rgb + diffuse) * lightScale; toLight = u_lightpos3 - worldpos; distance = length(toLight); toLight /= distance; ldot = max(dot(toLight, worldnormal), 0.0); lightScale = clamp(1.0 / dot(u_lightatt3, vec3(1.0, distance, distance*distance)), 0.0, 1.0); diffuse = (u_lightdiffuse3 * color0.rgb) * ldot; lightSum0.rgb += (u_lightambient3 * color0.rgb + diffuse) * lightScale; v_color0 = clamp(lightSum0, 0.0, 1.0); v_color1 = vec3(0.0); v_texcoord = vec3(texcoord.xy * u_uvscaleoffset.xy, 0.0); v_fogdepth = (viewPos.z + u_fogcoef.x) * u_fogcoef.y; }
God of War™: Ghost of Sparta v1.6.3 2022-06-15 Error in shader program link: info: Link Error: Vertex shader is missing. Link Error: Fragment shader is missing. fs: 00000000:01a00802 Tex LM Fog 2x StenToAlpha StenUniform TFuncMod #version 300 es #extension GL_EXT_shader_framebuffer_fetch : require precision lowp float; uniform sampler2D tex; uniform float u_stencilReplaceValue; in vec4 v_color0; in vec3 v_color1; uniform vec3 u_fogcolor; in highp float v_fogdepth; in highp vec3 v_texcoord; inout vec4 fragColor0; void main() { vec4 s = vec4(v_color1, 0.0); vec4 t = texture(tex, v_texcoord.xy); vec4 p = v_color0; vec4 v = vec4(t.rgb * p.rgb, p.a) + s; v.rgb = v.rgb * 2.0; float fogCoef = clamp(v_fogdepth, 0.0, 1.0); v = mix(vec4(u_fogcolor, v.a), v, fogCoef); fragColor0 = vec4(v.rgb, u_stencilReplaceValue); } vs: 01b14040:00000b1d HWX C T N LM Fog Tex Light: 0: c:0 t:0 1: c:0 t:1 3: c:0 t:1 MatUp:1 #version 300 es precision highp float; in vec3 position; in mediump vec3 normal; in vec2 texcoord; in lowp vec4 color0; uniform mat4 u_proj; uniform mat4 u_world; uniform mat4 u_view; uniform vec4 u_uvscaleoffset; uniform vec3 u_lightpos0; uniform lowp vec3 u_lightambient0; uniform lowp vec3 u_lightdiffuse0; uniform vec3 u_lightpos1; uniform mediump vec3 u_lightatt1; uniform lowp vec3 u_lightambient1; uniform lowp vec3 u_lightdiffuse1; uniform vec3 u_lightpos3; uniform mediump vec3 u_lightatt3; uniform lowp vec3 u_lightambient3; uniform lowp vec3 u_lightdiffuse3; uniform lowp vec4 u_ambient; uniform lowp vec3 u_matdiffuse; uniform lowp vec4 u_matspecular; uniform lowp vec3 u_matemissive; uniform lowp vec4 u_matambientalpha; uniform highp vec2 u_fogcoef; out lowp vec4 v_color0; out lowp vec3 v_color1; out highp vec3 v_texcoord; out highp float v_fogdepth; void main() { vec3 worldpos = (u_world * vec4(position.xyz, 1.0)).xyz; mediump vec3 worldnormal = normalize((u_world * vec4(normal, 0.0)).xyz); vec4 viewPos = u_view * vec4(worldpos, 1.0); gl_Position = u_proj * viewPos; lowp vec4 lightSum0 = u_ambient * color0 + vec4(u_matemissive, 0.0); vec3 toLight; lowp vec3 diffuse; float distance; lowp float lightScale; mediump float ldot; toLight = u_lightpos0; ldot = max(dot(toLight, worldnormal), 0.0); diffuse = (u_lightdiffuse0 * u_matdiffuse) * ldot; lightSum0.rgb += (u_lightambient0 * color0.rgb + diffuse); toLight = u_lightpos1 - worldpos; distance = length(toLight); toLight /= distance; ldot = max(dot(toLight, worldnormal), 0.0); lightScale = clamp(1.0 / dot(u_lightatt1, vec3(1.0, distance, distance*distance)), 0.0, 1.0); diffuse = (u_lightdiffuse1 * u_matdiffuse) * ldot; lightSum0.rgb += (u_lightambient1 * color0.rgb + diffuse) * lightScale; toLight = u_lightpos3 - worldpos; distance = length(toLight); toLight /= distance; ldot = max(dot(toLight, worldnormal), 0.0); lightScale = clamp(1.0 / dot(u_lightatt3, vec3(1.0, distance, distance*distance)), 0.0, 1.0); diffuse = (u_lightdiffuse3 * u_matdiffuse) * ldot; lightSum0.rgb += (u_lightambient3 * color0.rgb + diffuse) * lightScale; v_color0 = clamp(lightSum0, 0.0, 1.0); v_color1 = vec3(0.0); v_texcoord = vec3(texcoord.xy * u_uvscaleoffset.xy, 0.0); v_fogdepth = (viewPos.z + u_fogcoef.x) * u_fogcoef.y; }
God of War™: Ghost of Sparta v1.6.3 2022-06-15 Error in shader program link: info: Link Error: Vertex shader is missing. Link Error: Fragment shader is missing. fs: 00000000:00a1d822 Tex TexAlpha LM Fog 2x TFuncMod AlphaTest0 > #version 300 es #extension GL_EXT_shader_framebuffer_fetch : require precision lowp float; uniform sampler2D tex; uniform sampler2D testtex; in vec4 v_color0; in vec3 v_color1; uniform vec3 u_fogcolor; in highp float v_fogdepth; in highp vec3 v_texcoord; inout vec4 fragColor0; void main() { vec4 s = vec4(v_color1, 0.0); vec4 t = texture(tex, v_texcoord.xy); vec4 p = v_color0; vec4 v = p * t + s; if (v.a < 0.002) discard; v.rgb = v.rgb * 2.0; float fogCoef = clamp(v_fogdepth, 0.0, 1.0); v = mix(vec4(u_fogcolor, v.a), v, fogCoef); fragColor0 = v; } vs: 01730511:00000b1d HWX C T N LM Fog Tex Light: 0: c:1 t:0 1: c:1 t:0 2: c:1 t:1 MatUp:3 #version 300 es precision highp float; in vec3 position; in mediump vec3 normal; in vec2 texcoord; in lowp vec4 color0; uniform mat4 u_proj; uniform mat4 u_world; uniform mat4 u_view; uniform vec4 u_uvscaleoffset; uniform vec3 u_lightpos0; uniform lowp vec3 u_lightambient0; uniform lowp vec3 u_lightdiffuse0; uniform lowp vec3 u_lightspecular0; uniform vec3 u_lightpos1; uniform lowp vec3 u_lightambient1; uniform lowp vec3 u_lightdiffuse1; uniform lowp vec3 u_lightspecular1; uniform vec3 u_lightpos2; uniform mediump vec3 u_lightatt2; uniform lowp vec3 u_lightambient2; uniform lowp vec3 u_lightdiffuse2; uniform lowp vec3 u_lightspecular2; uniform lowp vec4 u_ambient; uniform lowp vec4 u_matspecular; uniform lowp vec3 u_matemissive; uniform lowp vec4 u_matambientalpha; uniform highp vec2 u_fogcoef; out lowp vec4 v_color0; out lowp vec3 v_color1; out highp vec3 v_texcoord; out highp float v_fogdepth; void main() { vec3 worldpos = (u_world * vec4(position.xyz, 1.0)).xyz; mediump vec3 worldnormal = normalize((u_world * vec4(normal, 0.0)).xyz); vec4 viewPos = u_view * vec4(worldpos, 1.0); gl_Position = u_proj * viewPos; lowp vec4 lightSum0 = u_ambient * color0 + vec4(u_matemissive, 0.0); lowp vec3 lightSum1 = vec3(0.0); vec3 toLight; lowp vec3 diffuse; float distance; lowp float lightScale; mediump float ldot; toLight = u_lightpos0; ldot = max(dot(toLight, worldnormal), 0.0); diffuse = (u_lightdiffuse0 * color0.rgb) * ldot; ldot = dot(normalize(toLight + vec3(0.0, 0.0, 1.0)), worldnormal); if (ldot > 0.0) lightSum1 += u_lightspecular0 * u_matspecular.rgb * (pow(ldot, u_matspecular.a) ); lightSum0.rgb += (u_lightambient0 * color0.rgb + diffuse); toLight = u_lightpos1; ldot = max(dot(toLight, worldnormal), 0.0); diffuse = (u_lightdiffuse1 * color0.rgb) * ldot; ldot = dot(normalize(toLight + vec3(0.0, 0.0, 1.0)), worldnormal); if (ldot > 0.0) lightSum1 += u_lightspecular1 * u_matspecular.rgb * (pow(ldot, u_matspecular.a) ); lightSum0.rgb += (u_lightambient1 * color0.rgb + diffuse); toLight = u_lightpos2 - worldpos; distance = length(toLight); toLight /= distance; ldot = max(dot(toLight, worldnormal), 0.0); lightScale = clamp(1.0 / dot(u_lightatt2, vec3(1.0, distance, distance*distance)), 0.0, 1.0); diffuse = (u_lightdiffuse2 * color0.rgb) * ldot; ldot = dot(normalize(toLight + vec3(0.0, 0.0, 1.0)), worldnormal); if (ldot > 0.0) lightSum1 += u_lightspecular2 * u_matspecular.rgb * (pow(ldot, u_matspecular.a) * lightScale); lightSum0.rgb += (u_lightambient2 * color0.rgb + diffuse) * lightScale; v_color0 = clamp(lightSum0, 0.0, 1.0); v_color1 = clamp(lightSum1, 0.0, 1.0); v_texcoord = vec3(texcoord.xy * u_uvscaleoffset.xy, 0.0); v_fogdepth = (viewPos.z + u_fogcoef.x) * u_fogcoef.y; }
God of War™: Ghost of Sparta v1.6.3 2022-06-15 Error in shader program link: info: Link Error: Vertex shader is missing. Link Error: Fragment shader is missing. fs: 00000000:00a00822 Tex TexAlpha LM Fog 2x TFuncMod #version 300 es #extension GL_EXT_shader_framebuffer_fetch : require precision lowp float; uniform sampler2D tex; in vec4 v_color0; in vec3 v_color1; uniform vec3 u_fogcolor; in highp float v_fogdepth; in highp vec3 v_texcoord; inout vec4 fragColor0; void main() { vec4 s = vec4(v_color1, 0.0); vec4 t = texture(tex, v_texcoord.xy); vec4 p = v_color0; vec4 v = p * t + s; v.rgb = v.rgb * 2.0; float fogCoef = clamp(v_fogdepth, 0.0, 1.0); v = mix(vec4(u_fogcolor, v.a), v, fogCoef); fragColor0 = v; } vs: 01310040:00000b1d HWX C T N LM Fog Tex Light: 0: c:0 t:0 1: c:0 t:1 MatUp:1 #version 300 es precision highp float; in vec3 position; in mediump vec3 normal; in vec2 texcoord; in lowp vec4 color0; uniform mat4 u_proj; uniform mat4 u_world; uniform mat4 u_view; uniform vec4 u_uvscaleoffset; uniform vec3 u_lightpos0; uniform lowp vec3 u_lightambient0; uniform lowp vec3 u_lightdiffuse0; uniform vec3 u_lightpos1; uniform mediump vec3 u_lightatt1; uniform lowp vec3 u_lightambient1; uniform lowp vec3 u_lightdiffuse1; uniform lowp vec4 u_ambient; uniform lowp vec3 u_matdiffuse; uniform lowp vec4 u_matspecular; uniform lowp vec3 u_matemissive; uniform lowp vec4 u_matambientalpha; uniform highp vec2 u_fogcoef; out lowp vec4 v_color0; out lowp vec3 v_color1; out highp vec3 v_texcoord; out highp float v_fogdepth; void main() { vec3 worldpos = (u_world * vec4(position.xyz, 1.0)).xyz; mediump vec3 worldnormal = normalize((u_world * vec4(normal, 0.0)).xyz); vec4 viewPos = u_view * vec4(worldpos, 1.0); gl_Position = u_proj * viewPos; lowp vec4 lightSum0 = u_ambient * color0 + vec4(u_matemissive, 0.0); vec3 toLight; lowp vec3 diffuse; float distance; lowp float lightScale; mediump float ldot; toLight = u_lightpos0; ldot = max(dot(toLight, worldnormal), 0.0); diffuse = (u_lightdiffuse0 * u_matdiffuse) * ldot; lightSum0.rgb += (u_lightambient0 * color0.rgb + diffuse); toLight = u_lightpos1 - worldpos; distance = length(toLight); toLight /= distance; ldot = max(dot(toLight, worldnormal), 0.0); lightScale = clamp(1.0 / dot(u_lightatt1, vec3(1.0, distance, distance*distance)), 0.0, 1.0); diffuse = (u_lightdiffuse1 * u_matdiffuse) * ldot; lightSum0.rgb += (u_lightambient1 * color0.rgb + diffuse) * lightScale; v_color0 = clamp(lightSum0, 0.0, 1.0); v_color1 = vec3(0.0); v_texcoord = vec3(texcoord.xy * u_uvscaleoffset.xy, 0.0); v_fogdepth = (viewPos.z + u_fogcoef.x) * u_fogcoef.y; }
God of War™: Ghost of Sparta v1.6.3 2022-06-15 Error in shader program link: info: Link Error: Vertex shader is missing. Link Error: Fragment shader is missing. fs: 00000000:01a0d822 Tex TexAlpha LM Fog 2x StenToAlpha StenUniform TFuncMod AlphaTest > #version 300 es #extension GL_EXT_shader_framebuffer_fetch : require precision lowp float; uniform sampler2D tex; uniform sampler2D testtex; uniform float u_stencilReplaceValue; in vec4 v_color0; in vec3 v_color1; uniform vec3 u_fogcolor; in highp float v_fogdepth; in highp vec3 v_texcoord; inout vec4 fragColor0; void main() { vec4 s = vec4(v_color1, 0.0); vec4 t = texture(tex, v_texcoord.xy); vec4 p = v_color0; vec4 v = p * t + s; float aResult = texture(testtex, vec2(v.a * 0.996094 + 0.001953, 0)).a; if (aResult < 0.5) discard; v.rgb = v.rgb * 2.0; float fogCoef = clamp(v_fogdepth, 0.0, 1.0); v = mix(vec4(u_fogcolor, v.a), v, fogCoef); fragColor0 = vec4(v.rgb, u_stencilReplaceValue); } vs: 01130000:00000b1d HWX C T N LM Fog Tex Light: 0: c:0 t:0 MatUp:3 #version 300 es precision highp float; in vec3 position; in mediump vec3 normal; in vec2 texcoord; in lowp vec4 color0; uniform mat4 u_proj; uniform mat4 u_world; uniform mat4 u_view; uniform vec4 u_uvscaleoffset; uniform vec3 u_lightpos0; uniform lowp vec3 u_lightambient0; uniform lowp vec3 u_lightdiffuse0; uniform lowp vec4 u_ambient; uniform lowp vec4 u_matspecular; uniform lowp vec3 u_matemissive; uniform lowp vec4 u_matambientalpha; uniform highp vec2 u_fogcoef; out lowp vec4 v_color0; out lowp vec3 v_color1; out highp vec3 v_texcoord; out highp float v_fogdepth; void main() { vec3 worldpos = (u_world * vec4(position.xyz, 1.0)).xyz; mediump vec3 worldnormal = normalize((u_world * vec4(normal, 0.0)).xyz); vec4 viewPos = u_view * vec4(worldpos, 1.0); gl_Position = u_proj * viewPos; lowp vec4 lightSum0 = u_ambient * color0 + vec4(u_matemissive, 0.0); vec3 toLight; lowp vec3 diffuse; mediump float ldot; toLight = u_lightpos0; ldot = max(dot(toLight, worldnormal), 0.0); diffuse = (u_lightdiffuse0 * color0.rgb) * ldot; lightSum0.rgb += (u_lightambient0 * color0.rgb + diffuse); v_color0 = clamp(lightSum0, 0.0, 1.0); v_color1 = vec3(0.0); v_texcoord = vec3(texcoord.xy * u_uvscaleoffset.xy, 0.0); v_fogdepth = (viewPos.z + u_fogcoef.x) * u_fogcoef.y; }
God of War™: Ghost of Sparta v1.6.3 2022-06-15 Error in shader program link: info: Link Error: Vertex shader is missing. Link Error: Fragment shader is missing. fs: 00000000:00a00822 Tex TexAlpha LM Fog 2x TFuncMod #version 300 es #extension GL_EXT_shader_framebuffer_fetch : require precision lowp float; uniform sampler2D tex; in vec4 v_color0; in vec3 v_color1; uniform vec3 u_fogcolor; in highp float v_fogdepth; in highp vec3 v_texcoord; inout vec4 fragColor0; void main() { vec4 s = vec4(v_color1, 0.0); vec4 t = texture(tex, v_texcoord.xy); vec4 p = v_color0; vec4 v = p * t + s; v.rgb = v.rgb * 2.0; float fogCoef = clamp(v_fogdepth, 0.0, 1.0); v = mix(vec4(u_fogcolor, v.a), v, fogCoef); fragColor0 = v; } vs: 01934005:00000b1d HWX C T N LM Fog Tex Light: 0: c:1 t:1 3: c:0 t:1 MatUp:3 #version 300 es precision highp float; in vec3 position; in mediump vec3 normal; in vec2 texcoord; in lowp vec4 color0; uniform mat4 u_proj; uniform mat4 u_world; uniform mat4 u_view; uniform vec4 u_uvscaleoffset; uniform vec3 u_lightpos0; uniform mediump vec3 u_lightatt0; uniform lowp vec3 u_lightambient0; uniform lowp vec3 u_lightdiffuse0; uniform lowp vec3 u_lightspecular0; uniform vec3 u_lightpos3; uniform mediump vec3 u_lightatt3; uniform lowp vec3 u_lightambient3; uniform lowp vec3 u_lightdiffuse3; uniform lowp vec4 u_ambient; uniform lowp vec4 u_matspecular; uniform lowp vec3 u_matemissive; uniform lowp vec4 u_matambientalpha; uniform highp vec2 u_fogcoef; out lowp vec4 v_color0; out lowp vec3 v_color1; out highp vec3 v_texcoord; out highp float v_fogdepth; void main() { vec3 worldpos = (u_world * vec4(position.xyz, 1.0)).xyz; mediump vec3 worldnormal = normalize((u_world * vec4(normal, 0.0)).xyz); vec4 viewPos = u_view * vec4(worldpos, 1.0); gl_Position = u_proj * viewPos; lowp vec4 lightSum0 = u_ambient * color0 + vec4(u_matemissive, 0.0); lowp vec3 lightSum1 = vec3(0.0); vec3 toLight; lowp vec3 diffuse; float distance; lowp float lightScale; mediump float ldot; toLight = u_lightpos0 - worldpos; distance = length(toLight); toLight /= distance; ldot = max(dot(toLight, worldnormal), 0.0); lightScale = clamp(1.0 / dot(u_lightatt0, vec3(1.0, distance, distance*distance)), 0.0, 1.0); diffuse = (u_lightdiffuse0 * color0.rgb) * ldot; ldot = dot(normalize(toLight + vec3(0.0, 0.0, 1.0)), worldnormal); if (ldot > 0.0) lightSum1 += u_lightspecular0 * u_matspecular.rgb * (pow(ldot, u_matspecular.a) * lightScale); lightSum0.rgb += (u_lightambient0 * color0.rgb + diffuse) * lightScale; toLight = u_lightpos3 - worldpos; distance = length(toLight); toLight /= distance; ldot = max(dot(toLight, worldnormal), 0.0); lightScale = clamp(1.0 / dot(u_lightatt3, vec3(1.0, distance, distance*distance)), 0.0, 1.0); diffuse = (u_lightdiffuse3 * color0.rgb) * ldot; lightSum0.rgb += (u_lightambient3 * color0.rgb + diffuse) * lightScale; v_color0 = clamp(lightSum0, 0.0, 1.0); v_color1 = clamp(lightSum1, 0.0, 1.0); v_texcoord = vec3(texcoord.xy * u_uvscaleoffset.xy, 0.0); v_fogdepth = (viewPos.z + u_fogcoef.x) * u_fogcoef.y; }
God of War™: Ghost of Sparta v1.6.3 2022-06-15 Error in shader program link: info: Link Error: Vertex shader is missing. Link Error: Fragment shader is missing. fs: 00000000:01a00802 Tex LM Fog 2x StenToAlpha StenUniform TFuncMod #version 300 es #extension GL_EXT_shader_framebuffer_fetch : require precision lowp float; uniform sampler2D tex; uniform float u_stencilReplaceValue; in vec4 v_color0; in vec3 v_color1; uniform vec3 u_fogcolor; in highp float v_fogdepth; in highp vec3 v_texcoord; inout vec4 fragColor0; void main() { vec4 s = vec4(v_color1, 0.0); vec4 t = texture(tex, v_texcoord.xy); vec4 p = v_color0; vec4 v = vec4(t.rgb * p.rgb, p.a) + s; v.rgb = v.rgb * 2.0; float fogCoef = clamp(v_fogdepth, 0.0, 1.0); v = mix(vec4(u_fogcolor, v.a), v, fogCoef); fragColor0 = vec4(v.rgb, u_stencilReplaceValue); } vs: 01310040:00000b1d HWX C T N LM Fog Tex Light: 0: c:0 t:0 1: c:0 t:1 MatUp:1 #version 300 es precision highp float; in vec3 position; in mediump vec3 normal; in vec2 texcoord; in lowp vec4 color0; uniform mat4 u_proj; uniform mat4 u_world; uniform mat4 u_view; uniform vec4 u_uvscaleoffset; uniform vec3 u_lightpos0; uniform lowp vec3 u_lightambient0; uniform lowp vec3 u_lightdiffuse0; uniform vec3 u_lightpos1; uniform mediump vec3 u_lightatt1; uniform lowp vec3 u_lightambient1; uniform lowp vec3 u_lightdiffuse1; uniform lowp vec4 u_ambient; uniform lowp vec3 u_matdiffuse; uniform lowp vec4 u_matspecular; uniform lowp vec3 u_matemissive; uniform lowp vec4 u_matambientalpha; uniform highp vec2 u_fogcoef; out lowp vec4 v_color0; out lowp vec3 v_color1; out highp vec3 v_texcoord; out highp float v_fogdepth; void main() { vec3 worldpos = (u_world * vec4(position.xyz, 1.0)).xyz; mediump vec3 worldnormal = normalize((u_world * vec4(normal, 0.0)).xyz); vec4 viewPos = u_view * vec4(worldpos, 1.0); gl_Position = u_proj * viewPos; lowp vec4 lightSum0 = u_ambient * color0 + vec4(u_matemissive, 0.0); vec3 toLight; lowp vec3 diffuse; float distance; lowp float lightScale; mediump float ldot; toLight = u_lightpos0; ldot = max(dot(toLight, worldnormal), 0.0); diffuse = (u_lightdiffuse0 * u_matdiffuse) * ldot; lightSum0.rgb += (u_lightambient0 * color0.rgb + diffuse); toLight = u_lightpos1 - worldpos; distance = length(toLight); toLight /= distance; ldot = max(dot(toLight, worldnormal), 0.0); lightScale = clamp(1.0 / dot(u_lightatt1, vec3(1.0, distance, distance*distance)), 0.0, 1.0); diffuse = (u_lightdiffuse1 * u_matdiffuse) * ldot; lightSum0.rgb += (u_lightambient1 * color0.rgb + diffuse) * lightScale; v_color0 = clamp(lightSum0, 0.0, 1.0); v_color1 = vec3(0.0); v_texcoord = vec3(texcoord.xy * u_uvscaleoffset.xy, 0.0); v_fogdepth = (viewPos.z + u_fogcoef.x) * u_fogcoef.y; }
God of War™: Ghost of Sparta v1.6.3 2022-06-15 Error in shader program link: info: Link Error: Vertex shader is missing. Link Error: Fragment shader is missing. fs: 00000000:00a1d822 Tex TexAlpha LM Fog 2x TFuncMod AlphaTest0 > #version 300 es #extension GL_EXT_shader_framebuffer_fetch : require precision lowp float; uniform sampler2D tex; uniform sampler2D testtex; in vec4 v_color0; in vec3 v_color1; uniform vec3 u_fogcolor; in highp float v_fogdepth; in highp vec3 v_texcoord; inout vec4 fragColor0; void main() { vec4 s = vec4(v_color1, 0.0); vec4 t = texture(tex, v_texcoord.xy); vec4 p = v_color0; vec4 v = p * t + s; if (v.a < 0.002) discard; v.rgb = v.rgb * 2.0; float fogCoef = clamp(v_fogdepth, 0.0, 1.0); v = mix(vec4(u_fogcolor, v.a), v, fogCoef); fragColor0 = v; } vs: 01834000:00000b1d HWX C T N LM Fog Tex Light: 3: c:0 t:1 MatUp:3 #version 300 es precision highp float; in vec3 position; in mediump vec3 normal; in vec2 texcoord; in lowp vec4 color0; uniform mat4 u_proj; uniform mat4 u_world; uniform mat4 u_view; uniform vec4 u_uvscaleoffset; uniform vec3 u_lightpos3; uniform mediump vec3 u_lightatt3; uniform lowp vec3 u_lightambient3; uniform lowp vec3 u_lightdiffuse3; uniform lowp vec4 u_ambient; uniform lowp vec4 u_matspecular; uniform lowp vec3 u_matemissive; uniform lowp vec4 u_matambientalpha; uniform highp vec2 u_fogcoef; out lowp vec4 v_color0; out lowp vec3 v_color1; out highp vec3 v_texcoord; out highp float v_fogdepth; void main() { vec3 worldpos = (u_world * vec4(position.xyz, 1.0)).xyz; mediump vec3 worldnormal = normalize((u_world * vec4(normal, 0.0)).xyz); vec4 viewPos = u_view * vec4(worldpos, 1.0); gl_Position = u_proj * viewPos; lowp vec4 lightSum0 = u_ambient * color0 + vec4(u_matemissive, 0.0); vec3 toLight; lowp vec3 diffuse; float distance; lowp float lightScale; mediump float ldot; toLight = u_lightpos3 - worldpos; distance = length(toLight); toLight /= distance; ldot = max(dot(toLight, worldnormal), 0.0); lightScale = clamp(1.0 / dot(u_lightatt3, vec3(1.0, distance, distance*distance)), 0.0, 1.0); diffuse = (u_lightdiffuse3 * color0.rgb) * ldot; lightSum0.rgb += (u_lightambient3 * color0.rgb + diffuse) * lightScale; v_color0 = clamp(lightSum0, 0.0, 1.0); v_color1 = vec3(0.0); v_texcoord = vec3(texcoord.xy * u_uvscaleoffset.xy, 0.0); v_fogdepth = (viewPos.z + u_fogcoef.x) * u_fogcoef.y; }
God of War™: Ghost of Sparta v1.6.3 2022-06-15 Error in shader program link: info: Link Error: Vertex shader is missing. Link Error: Fragment shader is missing. fs: 00000000:00a00802 Tex LM Fog 2x TFuncMod #version 300 es #extension GL_EXT_shader_framebuffer_fetch : require precision lowp float; uniform sampler2D tex; in vec4 v_color0; in vec3 v_color1; uniform vec3 u_fogcolor; in highp float v_fogdepth; in highp vec3 v_texcoord; inout vec4 fragColor0; void main() { vec4 s = vec4(v_color1, 0.0); vec4 t = texture(tex, v_texcoord.xy); vec4 p = v_color0; vec4 v = vec4(t.rgb * p.rgb, p.a) + s; v.rgb = v.rgb * 2.0; float fogCoef = clamp(v_fogdepth, 0.0, 1.0); v = mix(vec4(u_fogcolor, v.a), v, fogCoef); fragColor0 = v; } vs: 01730500:00000b1d HWX C T N LM Fog Tex Light: 0: c:0 t:0 1: c:0 t:0 2: c:1 t:1 MatUp:3 #version 300 es precision highp float; in vec3 position; in mediump vec3 normal; in vec2 texcoord; in lowp vec4 color0; uniform mat4 u_proj; uniform mat4 u_world; uniform mat4 u_view; uniform vec4 u_uvscaleoffset; uniform vec3 u_lightpos0; uniform lowp vec3 u_lightambient0; uniform lowp vec3 u_lightdiffuse0; uniform vec3 u_lightpos1; uniform lowp vec3 u_lightambient1; uniform lowp vec3 u_lightdiffuse1; uniform vec3 u_lightpos2; uniform mediump vec3 u_lightatt2; uniform lowp vec3 u_lightambient2; uniform lowp vec3 u_lightdiffuse2; uniform lowp vec3 u_lightspecular2; uniform lowp vec4 u_ambient; uniform lowp vec4 u_matspecular; uniform lowp vec3 u_matemissive; uniform lowp vec4 u_matambientalpha; uniform highp vec2 u_fogcoef; out lowp vec4 v_color0; out lowp vec3 v_color1; out highp vec3 v_texcoord; out highp float v_fogdepth; void main() { vec3 worldpos = (u_world * vec4(position.xyz, 1.0)).xyz; mediump vec3 worldnormal = normalize((u_world * vec4(normal, 0.0)).xyz); vec4 viewPos = u_view * vec4(worldpos, 1.0); gl_Position = u_proj * viewPos; lowp vec4 lightSum0 = u_ambient * color0 + vec4(u_matemissive, 0.0); lowp vec3 lightSum1 = vec3(0.0); vec3 toLight; lowp vec3 diffuse; float distance; lowp float lightScale; mediump float ldot; toLight = u_lightpos0; ldot = max(dot(toLight, worldnormal), 0.0); diffuse = (u_lightdiffuse0 * color0.rgb) * ldot; lightSum0.rgb += (u_lightambient0 * color0.rgb + diffuse); toLight = u_lightpos1; ldot = max(dot(toLight, worldnormal), 0.0); diffuse = (u_lightdiffuse1 * color0.rgb) * ldot; lightSum0.rgb += (u_lightambient1 * color0.rgb + diffuse); toLight = u_lightpos2 - worldpos; distance = length(toLight); toLight /= distance; ldot = max(dot(toLight, worldnormal), 0.0); lightScale = clamp(1.0 / dot(u_lightatt2, vec3(1.0, distance, distance*distance)), 0.0, 1.0); diffuse = (u_lightdiffuse2 * color0.rgb) * ldot; ldot = dot(normalize(toLight + vec3(0.0, 0.0, 1.0)), worldnormal); if (ldot > 0.0) lightSum1 += u_lightspecular2 * u_matspecular.rgb * (pow(ldot, u_matspecular.a) * lightScale); lightSum0.rgb += (u_lightambient2 * color0.rgb + diffuse) * lightScale; v_color0 = clamp(lightSum0, 0.0, 1.0); v_color1 = clamp(lightSum1, 0.0, 1.0); v_texcoord = vec3(texcoord.xy * u_uvscaleoffset.xy, 0.0); v_fogdepth = (viewPos.z + u_fogcoef.x) * u_fogcoef.y; }
God of War™: Ghost of Sparta v1.6.3 2022-06-15 Error in shader program link: info: Link Error: Vertex shader is missing. Link Error: Fragment shader is missing. fs: 00000000:00a00822 Tex TexAlpha LM Fog 2x TFuncMod #version 300 es #extension GL_EXT_shader_framebuffer_fetch : require precision lowp float; uniform sampler2D tex; in vec4 v_color0; in vec3 v_color1; uniform vec3 u_fogcolor; in highp float v_fogdepth; in highp vec3 v_texcoord; inout vec4 fragColor0; void main() { vec4 s = vec4(v_color1, 0.0); vec4 t = texture(tex, v_texcoord.xy); vec4 p = v_color0; vec4 v = p * t + s; v.rgb = v.rgb * 2.0; float fogCoef = clamp(v_fogdepth, 0.0, 1.0); v = mix(vec4(u_fogcolor, v.a), v, fogCoef); fragColor0 = v; } vs: 01130000:00000b1d HWX C T N LM Fog Tex Light: 0: c:0 t:0 MatUp:3 #version 300 es precision highp float; in vec3 position; in mediump vec3 normal; in vec2 texcoord; in lowp vec4 color0; uniform mat4 u_proj; uniform mat4 u_world; uniform mat4 u_view; uniform vec4 u_uvscaleoffset; uniform vec3 u_lightpos0; uniform lowp vec3 u_lightambient0; uniform lowp vec3 u_lightdiffuse0; uniform lowp vec4 u_ambient; uniform lowp vec4 u_matspecular; uniform lowp vec3 u_matemissive; uniform lowp vec4 u_matambientalpha; uniform highp vec2 u_fogcoef; out lowp vec4 v_color0; out lowp vec3 v_color1; out highp vec3 v_texcoord; out highp float v_fogdepth; void main() { vec3 worldpos = (u_world * vec4(position.xyz, 1.0)).xyz; mediump vec3 worldnormal = normalize((u_world * vec4(normal, 0.0)).xyz); vec4 viewPos = u_view * vec4(worldpos, 1.0); gl_Position = u_proj * viewPos; lowp vec4 lightSum0 = u_ambient * color0 + vec4(u_matemissive, 0.0); vec3 toLight; lowp vec3 diffuse; mediump float ldot; toLight = u_lightpos0; ldot = max(dot(toLight, worldnormal), 0.0); diffuse = (u_lightdiffuse0 * color0.rgb) * ldot; lightSum0.rgb += (u_lightambient0 * color0.rgb + diffuse); v_color0 = clamp(lightSum0, 0.0, 1.0); v_color1 = vec3(0.0); v_texcoord = vec3(texcoord.xy * u_uvscaleoffset.xy, 0.0); v_fogdepth = (viewPos.z + u_fogcoef.x) * u_fogcoef.y; }
God of War™: Ghost of Sparta v1.6.3 2022-06-15 Error in shader program link: info: Link Error: Vertex shader is missing. Link Error: Fragment shader is missing. fs: 00000000:01a0d822 Tex TexAlpha LM Fog 2x StenToAlpha StenUniform TFuncMod AlphaTest > #version 300 es #extension GL_EXT_shader_framebuffer_fetch : require precision lowp float; uniform sampler2D tex; uniform sampler2D testtex; uniform float u_stencilReplaceValue; in vec4 v_color0; in vec3 v_color1; uniform vec3 u_fogcolor; in highp float v_fogdepth; in highp vec3 v_texcoord; inout vec4 fragColor0; void main() { vec4 s = vec4(v_color1, 0.0); vec4 t = texture(tex, v_texcoord.xy); vec4 p = v_color0; vec4 v = p * t + s; float aResult = texture(testtex, vec2(v.a * 0.996094 + 0.001953, 0)).a; if (aResult < 0.5) discard; v.rgb = v.rgb * 2.0; float fogCoef = clamp(v_fogdepth, 0.0, 1.0); v = mix(vec4(u_fogcolor, v.a), v, fogCoef); fragColor0 = vec4(v.rgb, u_stencilReplaceValue); } vs: 01730144:00000b1d HWX C T N LM Fog Tex Light: 0: c:0 t:1 1: c:0 t:1 2: c:1 t:0 MatUp:3 #version 300 es precision highp float; in vec3 position; in mediump vec3 normal; in vec2 texcoord; in lowp vec4 color0; uniform mat4 u_proj; uniform mat4 u_world; uniform mat4 u_view; uniform vec4 u_uvscaleoffset; uniform vec3 u_lightpos0; uniform mediump vec3 u_lightatt0; uniform lowp vec3 u_lightambient0; uniform lowp vec3 u_lightdiffuse0; uniform vec3 u_lightpos1; uniform mediump vec3 u_lightatt1; uniform lowp vec3 u_lightambient1; uniform lowp vec3 u_lightdiffuse1; uniform vec3 u_lightpos2; uniform lowp vec3 u_lightambient2; uniform lowp vec3 u_lightdiffuse2; uniform lowp vec3 u_lightspecular2; uniform lowp vec4 u_ambient; uniform lowp vec4 u_matspecular; uniform lowp vec3 u_matemissive; uniform lowp vec4 u_matambientalpha; uniform highp vec2 u_fogcoef; out lowp vec4 v_color0; out lowp vec3 v_color1; out highp vec3 v_texcoord; out highp float v_fogdepth; void main() { vec3 worldpos = (u_world * vec4(position.xyz, 1.0)).xyz; mediump vec3 worldnormal = normalize((u_world * vec4(normal, 0.0)).xyz); vec4 viewPos = u_view * vec4(worldpos, 1.0); gl_Position = u_proj * viewPos; lowp vec4 lightSum0 = u_ambient * color0 + vec4(u_matemissive, 0.0); lowp vec3 lightSum1 = vec3(0.0); vec3 toLight; lowp vec3 diffuse; float distance; lowp float lightScale; mediump float ldot; toLight = u_lightpos0 - worldpos; distance = length(toLight); toLight /= distance; ldot = max(dot(toLight, worldnormal), 0.0); lightScale = clamp(1.0 / dot(u_lightatt0, vec3(1.0, distance, distance*distance)), 0.0, 1.0); diffuse = (u_lightdiffuse0 * color0.rgb) * ldot; lightSum0.rgb += (u_lightambient0 * color0.rgb + diffuse) * lightScale; toLight = u_lightpos1 - worldpos; distance = length(toLight); toLight /= distance; ldot = max(dot(toLight, worldnormal), 0.0); lightScale = clamp(1.0 / dot(u_lightatt1, vec3(1.0, distance, distance*distance)), 0.0, 1.0); diffuse = (u_lightdiffuse1 * color0.rgb) * ldot; lightSum0.rgb += (u_lightambient1 * color0.rgb + diffuse) * lightScale; toLight = u_lightpos2; ldot = max(dot(toLight, worldnormal), 0.0); diffuse = (u_lightdiffuse2 * color0.rgb) * ldot; ldot = dot(normalize(toLight + vec3(0.0, 0.0, 1.0)), worldnormal); if (ldot > 0.0) lightSum1 += u_lightspecular2 * u_matspecular.rgb * (pow(ldot, u_matspecular.a) ); lightSum0.rgb += (u_lightambient2 * color0.rgb + diffuse); v_color0 = clamp(lightSum0, 0.0, 1.0); v_color1 = clamp(lightSum1, 0.0, 1.0); v_texcoord = vec3(texcoord.xy * u_uvscaleoffset.xy, 0.0); v_fogdepth = (viewPos.z + u_fogcoef.x) * u_fogcoef.y; }
God of War™: Ghost of Sparta v1.6.3 2022-06-15 Error in shader program link: info: Link Error: Vertex shader is missing. Link Error: Fragment shader is missing. fs: 00000000:01a0d822 Tex TexAlpha LM Fog 2x StenToAlpha StenUniform TFuncMod AlphaTest > #version 300 es #extension GL_EXT_shader_framebuffer_fetch : require precision lowp float; uniform sampler2D tex; uniform sampler2D testtex; uniform float u_stencilReplaceValue; in vec4 v_color0; in vec3 v_color1; uniform vec3 u_fogcolor; in highp float v_fogdepth; in highp vec3 v_texcoord; inout vec4 fragColor0; void main() { vec4 s = vec4(v_color1, 0.0); vec4 t = texture(tex, v_texcoord.xy); vec4 p = v_color0; vec4 v = p * t + s; float aResult = texture(testtex, vec2(v.a * 0.996094 + 0.001953, 0)).a; if (aResult < 0.5) discard; v.rgb = v.rgb * 2.0; float fogCoef = clamp(v_fogdepth, 0.0, 1.0); v = mix(vec4(u_fogcolor, v.a), v, fogCoef); fragColor0 = vec4(v.rgb, u_stencilReplaceValue); } vs: 01730411:00000f1d HWX C T N LM Fog RevN Tex Light: 0: c:1 t:0 1: c:1 t:0 2: c:0 t:1 MatUp:3 #version 300 es precision highp float; in vec3 position; in mediump vec3 normal; in vec2 texcoord; in lowp vec4 color0; uniform mat4 u_proj; uniform mat4 u_world; uniform mat4 u_view; uniform vec4 u_uvscaleoffset; uniform vec3 u_lightpos0; uniform lowp vec3 u_lightambient0; uniform lowp vec3 u_lightdiffuse0; uniform lowp vec3 u_lightspecular0; uniform vec3 u_lightpos1; uniform lowp vec3 u_lightambient1; uniform lowp vec3 u_lightdiffuse1; uniform lowp vec3 u_lightspecular1; uniform vec3 u_lightpos2; uniform mediump vec3 u_lightatt2; uniform lowp vec3 u_lightambient2; uniform lowp vec3 u_lightdiffuse2; uniform lowp vec4 u_ambient; uniform lowp vec4 u_matspecular; uniform lowp vec3 u_matemissive; uniform lowp vec4 u_matambientalpha; uniform highp vec2 u_fogcoef; out lowp vec4 v_color0; out lowp vec3 v_color1; out highp vec3 v_texcoord; out highp float v_fogdepth; void main() { vec3 worldpos = (u_world * vec4(position.xyz, 1.0)).xyz; mediump vec3 worldnormal = normalize((u_world * vec4(-normal, 0.0)).xyz); vec4 viewPos = u_view * vec4(worldpos, 1.0); gl_Position = u_proj * viewPos; lowp vec4 lightSum0 = u_ambient * color0 + vec4(u_matemissive, 0.0); lowp vec3 lightSum1 = vec3(0.0); vec3 toLight; lowp vec3 diffuse; float distance; lowp float lightScale; mediump float ldot; toLight = u_lightpos0; ldot = max(dot(toLight, worldnormal), 0.0); diffuse = (u_lightdiffuse0 * color0.rgb) * ldot; ldot = dot(normalize(toLight + vec3(0.0, 0.0, 1.0)), worldnormal); if (ldot > 0.0) lightSum1 += u_lightspecular0 * u_matspecular.rgb * (pow(ldot, u_matspecular.a) ); lightSum0.rgb += (u_lightambient0 * color0.rgb + diffuse); toLight = u_lightpos1; ldot = max(dot(toLight, worldnormal), 0.0); diffuse = (u_lightdiffuse1 * color0.rgb) * ldot; ldot = dot(normalize(toLight + vec3(0.0, 0.0, 1.0)), worldnormal); if (ldot > 0.0) lightSum1 += u_lightspecular1 * u_matspecular.rgb * (pow(ldot, u_matspecular.a) ); lightSum0.rgb += (u_lightambient1 * color0.rgb + diffuse); toLight = u_lightpos2 - worldpos; distance = length(toLight); toLight /= distance; ldot = max(dot(toLight, worldnormal), 0.0); lightScale = clamp(1.0 / dot(u_lightatt2, vec3(1.0, distance, distance*distance)), 0.0, 1.0); diffuse = (u_lightdiffuse2 * color0.rgb) * ldot; lightSum0.rgb += (u_lightambient2 * color0.rgb + diffuse) * lightScale; v_color0 = clamp(lightSum0, 0.0, 1.0); v_color1 = clamp(lightSum1, 0.0, 1.0); v_texcoord = vec3(texcoord.xy * u_uvscaleoffset.xy, 0.0); v_fogdepth = (viewPos.z + u_fogcoef.x) * u_fogcoef.y; }
God of War™: Ghost of Sparta v1.6.3 2022-06-15 Error in shader program link: info: Link Error: Vertex shader is missing. Link Error: Fragment shader is missing. fs: 00000000:01a0d822 Tex TexAlpha LM Fog 2x StenToAlpha StenUniform TFuncMod AlphaTest > #version 300 es #extension GL_EXT_shader_framebuffer_fetch : require precision lowp float; uniform sampler2D tex; uniform sampler2D testtex; uniform float u_stencilReplaceValue; in vec4 v_color0; in vec3 v_color1; uniform vec3 u_fogcolor; in highp float v_fogdepth; in highp vec3 v_texcoord; inout vec4 fragColor0; void main() { vec4 s = vec4(v_color1, 0.0); vec4 t = texture(tex, v_texcoord.xy); vec4 p = v_color0; vec4 v = p * t + s; float aResult = texture(testtex, vec2(v.a * 0.996094 + 0.001953, 0)).a; if (aResult < 0.5) discard; v.rgb = v.rgb * 2.0; float fogCoef = clamp(v_fogdepth, 0.0, 1.0); v = mix(vec4(u_fogcolor, v.a), v, fogCoef); fragColor0 = vec4(v.rgb, u_stencilReplaceValue); } vs: 01730144:00000f1d HWX C T N LM Fog RevN Tex Light: 0: c:0 t:1 1: c:0 t:1 2: c:1 t:0 MatUp:3 #version 300 es precision highp float; in vec3 position; in mediump vec3 normal; in vec2 texcoord; in lowp vec4 color0; uniform mat4 u_proj; uniform mat4 u_world; uniform mat4 u_view; uniform vec4 u_uvscaleoffset; uniform vec3 u_lightpos0; uniform mediump vec3 u_lightatt0; uniform lowp vec3 u_lightambient0; uniform lowp vec3 u_lightdiffuse0; uniform vec3 u_lightpos1; uniform mediump vec3 u_lightatt1; uniform lowp vec3 u_lightambient1; uniform lowp vec3 u_lightdiffuse1; uniform vec3 u_lightpos2; uniform lowp vec3 u_lightambient2; uniform lowp vec3 u_lightdiffuse2; uniform lowp vec3 u_lightspecular2; uniform lowp vec4 u_ambient; uniform lowp vec4 u_matspecular; uniform lowp vec3 u_matemissive; uniform lowp vec4 u_matambientalpha; uniform highp vec2 u_fogcoef; out lowp vec4 v_color0; out lowp vec3 v_color1; out highp vec3 v_texcoord; out highp float v_fogdepth; void main() { vec3 worldpos = (u_world * vec4(position.xyz, 1.0)).xyz; mediump vec3 worldnormal = normalize((u_world * vec4(-normal, 0.0)).xyz); vec4 viewPos = u_view * vec4(worldpos, 1.0); gl_Position = u_proj * viewPos; lowp vec4 lightSum0 = u_ambient * color0 + vec4(u_matemissive, 0.0); lowp vec3 lightSum1 = vec3(0.0); vec3 toLight; lowp vec3 diffuse; float distance; lowp float lightScale; mediump float ldot; toLight = u_lightpos0 - worldpos; distance = length(toLight); toLight /= distance; ldot = max(dot(toLight, worldnormal), 0.0); lightScale = clamp(1.0 / dot(u_lightatt0, vec3(1.0, distance, distance*distance)), 0.0, 1.0); diffuse = (u_lightdiffuse0 * color0.rgb) * ldot; lightSum0.rgb += (u_lightambient0 * color0.rgb + diffuse) * lightScale; toLight = u_lightpos1 - worldpos; distance = length(toLight); toLight /= distance; ldot = max(dot(toLight, worldnormal), 0.0); lightScale = clamp(1.0 / dot(u_lightatt1, vec3(1.0, distance, distance*distance)), 0.0, 1.0); diffuse = (u_lightdiffuse1 * color0.rgb) * ldot; lightSum0.rgb += (u_lightambient1 * color0.rgb + diffuse) * lightScale; toLight = u_lightpos2; ldot = max(dot(toLight, worldnormal), 0.0); diffuse = (u_lightdiffuse2 * color0.rgb) * ldot; ldot = dot(normalize(toLight + vec3(0.0, 0.0, 1.0)), worldnormal); if (ldot > 0.0) lightSum1 += u_lightspecular2 * u_matspecular.rgb * (pow(ldot, u_matspecular.a) ); lightSum0.rgb += (u_lightambient2 * color0.rgb + diffuse); v_color0 = clamp(lightSum0, 0.0, 1.0); v_color1 = clamp(lightSum1, 0.0, 1.0); v_texcoord = vec3(texcoord.xy * u_uvscaleoffset.xy, 0.0); v_fogdepth = (viewPos.z + u_fogcoef.x) * u_fogcoef.y; }
God of War™: Ghost of Sparta v1.6.3 2022-06-15 Error in shader program link: info: Link Error: Vertex shader is missing. Link Error: Fragment shader is missing. fs: 00000000:01a0d822 Tex TexAlpha LM Fog 2x StenToAlpha StenUniform TFuncMod AlphaTest > #version 300 es #extension GL_EXT_shader_framebuffer_fetch : require precision lowp float; uniform sampler2D tex; uniform sampler2D testtex; uniform float u_stencilReplaceValue; in vec4 v_color0; in vec3 v_color1; uniform vec3 u_fogcolor; in highp float v_fogdepth; in highp vec3 v_texcoord; inout vec4 fragColor0; void main() { vec4 s = vec4(v_color1, 0.0); vec4 t = texture(tex, v_texcoord.xy); vec4 p = v_color0; vec4 v = p * t + s; float aResult = texture(testtex, vec2(v.a * 0.996094 + 0.001953, 0)).a; if (aResult < 0.5) discard; v.rgb = v.rgb * 2.0; float fogCoef = clamp(v_fogdepth, 0.0, 1.0); v = mix(vec4(u_fogcolor, v.a), v, fogCoef); fragColor0 = vec4(v.rgb, u_stencilReplaceValue); } vs: 01730411:00000b1d HWX C T N LM Fog Tex Light: 0: c:1 t:0 1: c:1 t:0 2: c:0 t:1 MatUp:3 #version 300 es precision highp float; in vec3 position; in mediump vec3 normal; in vec2 texcoord; in lowp vec4 color0; uniform mat4 u_proj; uniform mat4 u_world; uniform mat4 u_view; uniform vec4 u_uvscaleoffset; uniform vec3 u_lightpos0; uniform lowp vec3 u_lightambient0; uniform lowp vec3 u_lightdiffuse0; uniform lowp vec3 u_lightspecular0; uniform vec3 u_lightpos1; uniform lowp vec3 u_lightambient1; uniform lowp vec3 u_lightdiffuse1; uniform lowp vec3 u_lightspecular1; uniform vec3 u_lightpos2; uniform mediump vec3 u_lightatt2; uniform lowp vec3 u_lightambient2; uniform lowp vec3 u_lightdiffuse2; uniform lowp vec4 u_ambient; uniform lowp vec4 u_matspecular; uniform lowp vec3 u_matemissive; uniform lowp vec4 u_matambientalpha; uniform highp vec2 u_fogcoef; out lowp vec4 v_color0; out lowp vec3 v_color1; out highp vec3 v_texcoord; out highp float v_fogdepth; void main() { vec3 worldpos = (u_world * vec4(position.xyz, 1.0)).xyz; mediump vec3 worldnormal = normalize((u_world * vec4(normal, 0.0)).xyz); vec4 viewPos = u_view * vec4(worldpos, 1.0); gl_Position = u_proj * viewPos; lowp vec4 lightSum0 = u_ambient * color0 + vec4(u_matemissive, 0.0); lowp vec3 lightSum1 = vec3(0.0); vec3 toLight; lowp vec3 diffuse; float distance; lowp float lightScale; mediump float ldot; toLight = u_lightpos0; ldot = max(dot(toLight, worldnormal), 0.0); diffuse = (u_lightdiffuse0 * color0.rgb) * ldot; ldot = dot(normalize(toLight + vec3(0.0, 0.0, 1.0)), worldnormal); if (ldot > 0.0) lightSum1 += u_lightspecular0 * u_matspecular.rgb * (pow(ldot, u_matspecular.a) ); lightSum0.rgb += (u_lightambient0 * color0.rgb + diffuse); toLight = u_lightpos1; ldot = max(dot(toLight, worldnormal), 0.0); diffuse = (u_lightdiffuse1 * color0.rgb) * ldot; ldot = dot(normalize(toLight + vec3(0.0, 0.0, 1.0)), worldnormal); if (ldot > 0.0) lightSum1 += u_lightspecular1 * u_matspecular.rgb * (pow(ldot, u_matspecular.a) ); lightSum0.rgb += (u_lightambient1 * color0.rgb + diffuse); toLight = u_lightpos2 - worldpos; distance = length(toLight); toLight /= distance; ldot = max(dot(toLight, worldnormal), 0.0); lightScale = clamp(1.0 / dot(u_lightatt2, vec3(1.0, distance, distance*distance)), 0.0, 1.0); diffuse = (u_lightdiffuse2 * color0.rgb) * ldot; lightSum0.rgb += (u_lightambient2 * color0.rgb + diffuse) * lightScale; v_color0 = clamp(lightSum0, 0.0, 1.0); v_color1 = clamp(lightSum1, 0.0, 1.0); v_texcoord = vec3(texcoord.xy * u_uvscaleoffset.xy, 0.0); v_fogdepth = (viewPos.z + u_fogcoef.x) * u_fogcoef.y; }
God of War™: Ghost of Sparta v1.6.3 2022-06-15 Error in shader program link: info: Link Error: Vertex shader is missing. Link Error: Fragment shader is missing. fs: 00000000:00a00822 Tex TexAlpha LM Fog 2x TFuncMod #version 300 es #extension GL_EXT_shader_framebuffer_fetch : require precision lowp float; uniform sampler2D tex; in vec4 v_color0; in vec3 v_color1; uniform vec3 u_fogcolor; in highp float v_fogdepth; in highp vec3 v_texcoord; inout vec4 fragColor0; void main() { vec4 s = vec4(v_color1, 0.0); vec4 t = texture(tex, v_texcoord.xy); vec4 p = v_color0; vec4 v = p * t + s; v.rgb = v.rgb * 2.0; float fogCoef = clamp(v_fogdepth, 0.0, 1.0); v = mix(vec4(u_fogcolor, v.a), v, fogCoef); fragColor0 = v; } vs: 01110000:00000b1d HWX C T N LM Fog Tex Light: 0: c:0 t:0 MatUp:1 #version 300 es precision highp float; in vec3 position; in mediump vec3 normal; in vec2 texcoord; in lowp vec4 color0; uniform mat4 u_proj; uniform mat4 u_world; uniform mat4 u_view; uniform vec4 u_uvscaleoffset; uniform vec3 u_lightpos0; uniform lowp vec3 u_lightambient0; uniform lowp vec3 u_lightdiffuse0; uniform lowp vec4 u_ambient; uniform lowp vec3 u_matdiffuse; uniform lowp vec4 u_matspecular; uniform lowp vec3 u_matemissive; uniform lowp vec4 u_matambientalpha; uniform highp vec2 u_fogcoef; out lowp vec4 v_color0; out lowp vec3 v_color1; out highp vec3 v_texcoord; out highp float v_fogdepth; void main() { vec3 worldpos = (u_world * vec4(position.xyz, 1.0)).xyz; mediump vec3 worldnormal = normalize((u_world * vec4(normal, 0.0)).xyz); vec4 viewPos = u_view * vec4(worldpos, 1.0); gl_Position = u_proj * viewPos; lowp vec4 lightSum0 = u_ambient * color0 + vec4(u_matemissive, 0.0); vec3 toLight; lowp vec3 diffuse; mediump float ldot; toLight = u_lightpos0; ldot = max(dot(toLight, worldnormal), 0.0); diffuse = (u_lightdiffuse0 * u_matdiffuse) * ldot; lightSum0.rgb += (u_lightambient0 * color0.rgb + diffuse); v_color0 = clamp(lightSum0, 0.0, 1.0); v_color1 = vec3(0.0); v_texcoord = vec3(texcoord.xy * u_uvscaleoffset.xy, 0.0); v_fogdepth = (viewPos.z + u_fogcoef.x) * u_fogcoef.y; }
God of War™: Ghost of Sparta v1.6.3 2022-06-15 Error in shader program link: info: Link Error: Vertex shader is missing. Link Error: Fragment shader is missing. fs: 00000000:01a0d822 Tex TexAlpha LM Fog 2x StenToAlpha StenUniform TFuncMod AlphaTest > #version 300 es #extension GL_EXT_shader_framebuffer_fetch : require precision lowp float; uniform sampler2D tex; uniform sampler2D testtex; uniform float u_stencilReplaceValue; in vec4 v_color0; in vec3 v_color1; uniform vec3 u_fogcolor; in highp float v_fogdepth; in highp vec3 v_texcoord; inout vec4 fragColor0; void main() { vec4 s = vec4(v_color1, 0.0); vec4 t = texture(tex, v_texcoord.xy); vec4 p = v_color0; vec4 v = p * t + s; float aResult = texture(testtex, vec2(v.a * 0.996094 + 0.001953, 0)).a; if (aResult < 0.5) discard; v.rgb = v.rgb * 2.0; float fogCoef = clamp(v_fogdepth, 0.0, 1.0); v = mix(vec4(u_fogcolor, v.a), v, fogCoef); fragColor0 = vec4(v.rgb, u_stencilReplaceValue); } vs: 01934005:00000f1d HWX C T N LM Fog RevN Tex Light: 0: c:1 t:1 3: c:0 t:1 MatUp:3 #version 300 es precision highp float; in vec3 position; in mediump vec3 normal; in vec2 texcoord; in lowp vec4 color0; uniform mat4 u_proj; uniform mat4 u_world; uniform mat4 u_view; uniform vec4 u_uvscaleoffset; uniform vec3 u_lightpos0; uniform mediump vec3 u_lightatt0; uniform lowp vec3 u_lightambient0; uniform lowp vec3 u_lightdiffuse0; uniform lowp vec3 u_lightspecular0; uniform vec3 u_lightpos3; uniform mediump vec3 u_lightatt3; uniform lowp vec3 u_lightambient3; uniform lowp vec3 u_lightdiffuse3; uniform lowp vec4 u_ambient; uniform lowp vec4 u_matspecular; uniform lowp vec3 u_matemissive; uniform lowp vec4 u_matambientalpha; uniform highp vec2 u_fogcoef; out lowp vec4 v_color0; out lowp vec3 v_color1; out highp vec3 v_texcoord; out highp float v_fogdepth; void main() { vec3 worldpos = (u_world * vec4(position.xyz, 1.0)).xyz; mediump vec3 worldnormal = normalize((u_world * vec4(-normal, 0.0)).xyz); vec4 viewPos = u_view * vec4(worldpos, 1.0); gl_Position = u_proj * viewPos; lowp vec4 lightSum0 = u_ambient * color0 + vec4(u_matemissive, 0.0); lowp vec3 lightSum1 = vec3(0.0); vec3 toLight; lowp vec3 diffuse; float distance; lowp float lightScale; mediump float ldot; toLight = u_lightpos0 - worldpos; distance = length(toLight); toLight /= distance; ldot = max(dot(toLight, worldnormal), 0.0); lightScale = clamp(1.0 / dot(u_lightatt0, vec3(1.0, distance, distance*distance)), 0.0, 1.0); diffuse = (u_lightdiffuse0 * color0.rgb) * ldot; ldot = dot(normalize(toLight + vec3(0.0, 0.0, 1.0)), worldnormal); if (ldot > 0.0) lightSum1 += u_lightspecular0 * u_matspecular.rgb * (pow(ldot, u_matspecular.a) * lightScale); lightSum0.rgb += (u_lightambient0 * color0.rgb + diffuse) * lightScale; toLight = u_lightpos3 - worldpos; distance = length(toLight); toLight /= distance; ldot = max(dot(toLight, worldnormal), 0.0); lightScale = clamp(1.0 / dot(u_lightatt3, vec3(1.0, distance, distance*distance)), 0.0, 1.0); diffuse = (u_lightdiffuse3 * color0.rgb) * ldot; lightSum0.rgb += (u_lightambient3 * color0.rgb + diffuse) * lightScale; v_color0 = clamp(lightSum0, 0.0, 1.0); v_color1 = clamp(lightSum1, 0.0, 1.0); v_texcoord = vec3(texcoord.xy * u_uvscaleoffset.xy, 0.0); v_fogdepth = (viewPos.z + u_fogcoef.x) * u_fogcoef.y; }
God of War™: Ghost of Sparta v1.6.3 2022-06-15 Error in shader program link: info: Link Error: Vertex shader is missing. Link Error: Fragment shader is missing. fs: 00000000:00800802 Tex LM 2x TFuncMod #version 300 es #extension GL_EXT_shader_framebuffer_fetch : require precision lowp float; uniform sampler2D tex; in vec4 v_color0; in vec3 v_color1; in highp vec3 v_texcoord; inout vec4 fragColor0; void main() { vec4 s = vec4(v_color1, 0.0); vec4 t = texture(tex, v_texcoord.xy); vec4 p = v_color0; vec4 v = vec4(t.rgb * p.rgb, p.a) + s; v.rgb = v.rgb * 2.0; fragColor0 = v; } vs: 01814000:00000b19 HWX C T N LM Tex Light: 3: c:0 t:1 MatUp:1 #version 300 es precision highp float; in vec3 position; in mediump vec3 normal; in vec2 texcoord; in lowp vec4 color0; uniform mat4 u_proj; uniform mat4 u_world; uniform mat4 u_view; uniform vec4 u_uvscaleoffset; uniform vec3 u_lightpos3; uniform mediump vec3 u_lightatt3; uniform lowp vec3 u_lightambient3; uniform lowp vec3 u_lightdiffuse3; uniform lowp vec4 u_ambient; uniform lowp vec3 u_matdiffuse; uniform lowp vec4 u_matspecular; uniform lowp vec3 u_matemissive; uniform lowp vec4 u_matambientalpha; out lowp vec4 v_color0; out lowp vec3 v_color1; out highp vec3 v_texcoord; void main() { vec3 worldpos = (u_world * vec4(position.xyz, 1.0)).xyz; mediump vec3 worldnormal = normalize((u_world * vec4(normal, 0.0)).xyz); vec4 viewPos = u_view * vec4(worldpos, 1.0); gl_Position = u_proj * viewPos; lowp vec4 lightSum0 = u_ambient * color0 + vec4(u_matemissive, 0.0); vec3 toLight; lowp vec3 diffuse; float distance; lowp float lightScale; mediump float ldot; toLight = u_lightpos3 - worldpos; distance = length(toLight); toLight /= distance; ldot = max(dot(toLight, worldnormal), 0.0); lightScale = clamp(1.0 / dot(u_lightatt3, vec3(1.0, distance, distance*distance)), 0.0, 1.0); diffuse = (u_lightdiffuse3 * u_matdiffuse) * ldot; lightSum0.rgb += (u_lightambient3 * color0.rgb + diffuse) * lightScale; v_color0 = clamp(lightSum0, 0.0, 1.0); v_color1 = vec3(0.0); v_texcoord = vec3(texcoord.xy * u_uvscaleoffset.xy, 0.0); }
God of War™: Ghost of Sparta v1.6.3 2022-06-15 Error in shader program link: info: Link Error: Vertex shader is missing. Link Error: Fragment shader is missing. fs: 00000000:01a0d822 Tex TexAlpha LM Fog 2x StenToAlpha StenUniform TFuncMod AlphaTest > #version 300 es #extension GL_EXT_shader_framebuffer_fetch : require precision lowp float; uniform sampler2D tex; uniform sampler2D testtex; uniform float u_stencilReplaceValue; in vec4 v_color0; in vec3 v_color1; uniform vec3 u_fogcolor; in highp float v_fogdepth; in highp vec3 v_texcoord; inout vec4 fragColor0; void main() { vec4 s = vec4(v_color1, 0.0); vec4 t = texture(tex, v_texcoord.xy); vec4 p = v_color0; vec4 v = p * t + s; float aResult = texture(testtex, vec2(v.a * 0.996094 + 0.001953, 0)).a; if (aResult < 0.5) discard; v.rgb = v.rgb * 2.0; float fogCoef = clamp(v_fogdepth, 0.0, 1.0); v = mix(vec4(u_fogcolor, v.a), v, fogCoef); fragColor0 = vec4(v.rgb, u_stencilReplaceValue); } vs: 01b34055:00000b1d HWX C T N LM Fog Tex Light: 0: c:1 t:1 1: c:1 t:1 3: c:0 t:1 MatUp:3 #version 300 es precision highp float; in vec3 position; in mediump vec3 normal; in vec2 texcoord; in lowp vec4 color0; uniform mat4 u_proj; uniform mat4 u_world; uniform mat4 u_view; uniform vec4 u_uvscaleoffset; uniform vec3 u_lightpos0; uniform mediump vec3 u_lightatt0; uniform lowp vec3 u_lightambient0; uniform lowp vec3 u_lightdiffuse0; uniform lowp vec3 u_lightspecular0; uniform vec3 u_lightpos1; uniform mediump vec3 u_lightatt1; uniform lowp vec3 u_lightambient1; uniform lowp vec3 u_lightdiffuse1; uniform lowp vec3 u_lightspecular1; uniform vec3 u_lightpos3; uniform mediump vec3 u_lightatt3; uniform lowp vec3 u_lightambient3; uniform lowp vec3 u_lightdiffuse3; uniform lowp vec4 u_ambient; uniform lowp vec4 u_matspecular; uniform lowp vec3 u_matemissive; uniform lowp vec4 u_matambientalpha; uniform highp vec2 u_fogcoef; out lowp vec4 v_color0; out lowp vec3 v_color1; out highp vec3 v_texcoord; out highp float v_fogdepth; void main() { vec3 worldpos = (u_world * vec4(position.xyz, 1.0)).xyz; mediump vec3 worldnormal = normalize((u_world * vec4(normal, 0.0)).xyz); vec4 viewPos = u_view * vec4(worldpos, 1.0); gl_Position = u_proj * viewPos; lowp vec4 lightSum0 = u_ambient * color0 + vec4(u_matemissive, 0.0); lowp vec3 lightSum1 = vec3(0.0); vec3 toLight; lowp vec3 diffuse; float distance; lowp float lightScale; mediump float ldot; toLight = u_lightpos0 - worldpos; distance = length(toLight); toLight /= distance; ldot = max(dot(toLight, worldnormal), 0.0); lightScale = clamp(1.0 / dot(u_lightatt0, vec3(1.0, distance, distance*distance)), 0.0, 1.0); diffuse = (u_lightdiffuse0 * color0.rgb) * ldot; ldot = dot(normalize(toLight + vec3(0.0, 0.0, 1.0)), worldnormal); if (ldot > 0.0) lightSum1 += u_lightspecular0 * u_matspecular.rgb * (pow(ldot, u_matspecular.a) * lightScale); lightSum0.rgb += (u_lightambient0 * color0.rgb + diffuse) * lightScale; toLight = u_lightpos1 - worldpos; distance = length(toLight); toLight /= distance; ldot = max(dot(toLight, worldnormal), 0.0); lightScale = clamp(1.0 / dot(u_lightatt1, vec3(1.0, distance, distance*distance)), 0.0, 1.0); diffuse = (u_lightdiffuse1 * color0.rgb) * ldot; ldot = dot(normalize(toLight + vec3(0.0, 0.0, 1.0)), worldnormal); if (ldot > 0.0) lightSum1 += u_lightspecular1 * u_matspecular.rgb * (pow(ldot, u_matspecular.a) * lightScale); lightSum0.rgb += (u_lightambient1 * color0.rgb + diffuse) * lightScale; toLight = u_lightpos3 - worldpos; distance = length(toLight); toLight /= distance; ldot = max(dot(toLight, worldnormal), 0.0); lightScale = clamp(1.0 / dot(u_lightatt3, vec3(1.0, distance, distance*distance)), 0.0, 1.0); diffuse = (u_lightdiffuse3 * color0.rgb) * ldot; lightSum0.rgb += (u_lightambient3 * color0.rgb + diffuse) * lightScale; v_color0 = clamp(lightSum0, 0.0, 1.0); v_color1 = clamp(lightSum1, 0.0, 1.0); v_texcoord = vec3(texcoord.xy * u_uvscaleoffset.xy, 0.0); v_fogdepth = (viewPos.z + u_fogcoef.x) * u_fogcoef.y; }
God of War™: Ghost of Sparta v1.6.3 2022-06-15 Error in shader program link: info: Link Error: Vertex shader is missing. Link Error: Fragment shader is missing. fs: 00000000:01a0d822 Tex TexAlpha LM Fog 2x StenToAlpha StenUniform TFuncMod AlphaTest > #version 300 es #extension GL_EXT_shader_framebuffer_fetch : require precision lowp float; uniform sampler2D tex; uniform sampler2D testtex; uniform float u_stencilReplaceValue; in vec4 v_color0; in vec3 v_color1; uniform vec3 u_fogcolor; in highp float v_fogdepth; in highp vec3 v_texcoord; inout vec4 fragColor0; void main() { vec4 s = vec4(v_color1, 0.0); vec4 t = texture(tex, v_texcoord.xy); vec4 p = v_color0; vec4 v = p * t + s; float aResult = texture(testtex, vec2(v.a * 0.996094 + 0.001953, 0)).a; if (aResult < 0.5) discard; v.rgb = v.rgb * 2.0; float fogCoef = clamp(v_fogdepth, 0.0, 1.0); v = mix(vec4(u_fogcolor, v.a), v, fogCoef); fragColor0 = vec4(v.rgb, u_stencilReplaceValue); } vs: 01730151:00000f1d HWX C T N LM Fog RevN Tex Light: 0: c:1 t:0 1: c:1 t:1 2: c:1 t:0 MatUp:3 #version 300 es precision highp float; in vec3 position; in mediump vec3 normal; in vec2 texcoord; in lowp vec4 color0; uniform mat4 u_proj; uniform mat4 u_world; uniform mat4 u_view; uniform vec4 u_uvscaleoffset; uniform vec3 u_lightpos0; uniform lowp vec3 u_lightambient0; uniform lowp vec3 u_lightdiffuse0; uniform lowp vec3 u_lightspecular0; uniform vec3 u_lightpos1; uniform mediump vec3 u_lightatt1; uniform lowp vec3 u_lightambient1; uniform lowp vec3 u_lightdiffuse1; uniform lowp vec3 u_lightspecular1; uniform vec3 u_lightpos2; uniform lowp vec3 u_lightambient2; uniform lowp vec3 u_lightdiffuse2; uniform lowp vec3 u_lightspecular2; uniform lowp vec4 u_ambient; uniform lowp vec4 u_matspecular; uniform lowp vec3 u_matemissive; uniform lowp vec4 u_matambientalpha; uniform highp vec2 u_fogcoef; out lowp vec4 v_color0; out lowp vec3 v_color1; out highp vec3 v_texcoord; out highp float v_fogdepth; void main() { vec3 worldpos = (u_world * vec4(position.xyz, 1.0)).xyz; mediump vec3 worldnormal = normalize((u_world * vec4(-normal, 0.0)).xyz); vec4 viewPos = u_view * vec4(worldpos, 1.0); gl_Position = u_proj * viewPos; lowp vec4 lightSum0 = u_ambient * color0 + vec4(u_matemissive, 0.0); lowp vec3 lightSum1 = vec3(0.0); vec3 toLight; lowp vec3 diffuse; float distance; lowp float lightScale; mediump float ldot; toLight = u_lightpos0; ldot = max(dot(toLight, worldnormal), 0.0); diffuse = (u_lightdiffuse0 * color0.rgb) * ldot; ldot = dot(normalize(toLight + vec3(0.0, 0.0, 1.0)), worldnormal); if (ldot > 0.0) lightSum1 += u_lightspecular0 * u_matspecular.rgb * (pow(ldot, u_matspecular.a) ); lightSum0.rgb += (u_lightambient0 * color0.rgb + diffuse); toLight = u_lightpos1 - worldpos; distance = length(toLight); toLight /= distance; ldot = max(dot(toLight, worldnormal), 0.0); lightScale = clamp(1.0 / dot(u_lightatt1, vec3(1.0, distance, distance*distance)), 0.0, 1.0); diffuse = (u_lightdiffuse1 * color0.rgb) * ldot; ldot = dot(normalize(toLight + vec3(0.0, 0.0, 1.0)), worldnormal); if (ldot > 0.0) lightSum1 += u_lightspecular1 * u_matspecular.rgb * (pow(ldot, u_matspecular.a) * lightScale); lightSum0.rgb += (u_lightambient1 * color0.rgb + diffuse) * lightScale; toLight = u_lightpos2; ldot = max(dot(toLight, worldnormal), 0.0); diffuse = (u_lightdiffuse2 * color0.rgb) * ldot; ldot = dot(normalize(toLight + vec3(0.0, 0.0, 1.0)), worldnormal); if (ldot > 0.0) lightSum1 += u_lightspecular2 * u_matspecular.rgb * (pow(ldot, u_matspecular.a) ); lightSum0.rgb += (u_lightambient2 * color0.rgb + diffuse); v_color0 = clamp(lightSum0, 0.0, 1.0); v_color1 = clamp(lightSum1, 0.0, 1.0); v_texcoord = vec3(texcoord.xy * u_uvscaleoffset.xy, 0.0); v_fogdepth = (viewPos.z + u_fogcoef.x) * u_fogcoef.y; }
God of War™: Ghost of Sparta v1.6.3 2022-06-15 Error in shader program link: info: Link Error: Vertex shader is missing. Link Error: Fragment shader is missing. fs: 00000000:01a0d822 Tex TexAlpha LM Fog 2x StenToAlpha StenUniform TFuncMod AlphaTest > #version 300 es #extension GL_EXT_shader_framebuffer_fetch : require precision lowp float; uniform sampler2D tex; uniform sampler2D testtex; uniform float u_stencilReplaceValue; in vec4 v_color0; in vec3 v_color1; uniform vec3 u_fogcolor; in highp float v_fogdepth; in highp vec3 v_texcoord; inout vec4 fragColor0; void main() { vec4 s = vec4(v_color1, 0.0); vec4 t = texture(tex, v_texcoord.xy); vec4 p = v_color0; vec4 v = p * t + s; float aResult = texture(testtex, vec2(v.a * 0.996094 + 0.001953, 0)).a; if (aResult < 0.5) discard; v.rgb = v.rgb * 2.0; float fogCoef = clamp(v_fogdepth, 0.0, 1.0); v = mix(vec4(u_fogcolor, v.a), v, fogCoef); fragColor0 = vec4(v.rgb, u_stencilReplaceValue); } vs: 01b34055:00000f1d HWX C T N LM Fog RevN Tex Light: 0: c:1 t:1 1: c:1 t:1 3: c:0 t:1 MatUp:3 #version 300 es precision highp float; in vec3 position; in mediump vec3 normal; in vec2 texcoord; in lowp vec4 color0; uniform mat4 u_proj; uniform mat4 u_world; uniform mat4 u_view; uniform vec4 u_uvscaleoffset; uniform vec3 u_lightpos0; uniform mediump vec3 u_lightatt0; uniform lowp vec3 u_lightambient0; uniform lowp vec3 u_lightdiffuse0; uniform lowp vec3 u_lightspecular0; uniform vec3 u_lightpos1; uniform mediump vec3 u_lightatt1; uniform lowp vec3 u_lightambient1; uniform lowp vec3 u_lightdiffuse1; uniform lowp vec3 u_lightspecular1; uniform vec3 u_lightpos3; uniform mediump vec3 u_lightatt3; uniform lowp vec3 u_lightambient3; uniform lowp vec3 u_lightdiffuse3; uniform lowp vec4 u_ambient; uniform lowp vec4 u_matspecular; uniform lowp vec3 u_matemissive; uniform lowp vec4 u_matambientalpha; uniform highp vec2 u_fogcoef; out lowp vec4 v_color0; out lowp vec3 v_color1; out highp vec3 v_texcoord; out highp float v_fogdepth; void main() { vec3 worldpos = (u_world * vec4(position.xyz, 1.0)).xyz; mediump vec3 worldnormal = normalize((u_world * vec4(-normal, 0.0)).xyz); vec4 viewPos = u_view * vec4(worldpos, 1.0); gl_Position = u_proj * viewPos; lowp vec4 lightSum0 = u_ambient * color0 + vec4(u_matemissive, 0.0); lowp vec3 lightSum1 = vec3(0.0); vec3 toLight; lowp vec3 diffuse; float distance; lowp float lightScale; mediump float ldot; toLight = u_lightpos0 - worldpos; distance = length(toLight); toLight /= distance; ldot = max(dot(toLight, worldnormal), 0.0); lightScale = clamp(1.0 / dot(u_lightatt0, vec3(1.0, distance, distance*distance)), 0.0, 1.0); diffuse = (u_lightdiffuse0 * color0.rgb) * ldot; ldot = dot(normalize(toLight + vec3(0.0, 0.0, 1.0)), worldnormal); if (ldot > 0.0) lightSum1 += u_lightspecular0 * u_matspecular.rgb * (pow(ldot, u_matspecular.a) * lightScale); lightSum0.rgb += (u_lightambient0 * color0.rgb + diffuse) * lightScale; toLight = u_lightpos1 - worldpos; distance = length(toLight); toLight /= distance; ldot = max(dot(toLight, worldnormal), 0.0); lightScale = clamp(1.0 / dot(u_lightatt1, vec3(1.0, distance, distance*distance)), 0.0, 1.0); diffuse = (u_lightdiffuse1 * color0.rgb) * ldot; ldot = dot(normalize(toLight + vec3(0.0, 0.0, 1.0)), worldnormal); if (ldot > 0.0) lightSum1 += u_lightspecular1 * u_matspecular.rgb * (pow(ldot, u_matspecular.a) * lightScale); lightSum0.rgb += (u_lightambient1 * color0.rgb + diffuse) * lightScale; toLight = u_lightpos3 - worldpos; distance = length(toLight); toLight /= distance; ldot = max(dot(toLight, worldnormal), 0.0); lightScale = clamp(1.0 / dot(u_lightatt3, vec3(1.0, distance, distance*distance)), 0.0, 1.0); diffuse = (u_lightdiffuse3 * color0.rgb) * ldot; lightSum0.rgb += (u_lightambient3 * color0.rgb + diffuse) * lightScale; v_color0 = clamp(lightSum0, 0.0, 1.0); v_color1 = clamp(lightSum1, 0.0, 1.0); v_texcoord = vec3(texcoord.xy * u_uvscaleoffset.xy, 0.0); v_fogdepth = (viewPos.z + u_fogcoef.x) * u_fogcoef.y; }
God of War™: Ghost of Sparta v1.6.3 2022-06-15 Error in shader program link: info: Link Error: Vertex shader is missing. Link Error: Fragment shader is missing. fs: 00000000:01a0d822 Tex TexAlpha LM Fog 2x StenToAlpha StenUniform TFuncMod AlphaTest > #version 300 es #extension GL_EXT_shader_framebuffer_fetch : require precision lowp float; uniform sampler2D tex; uniform sampler2D testtex; uniform float u_stencilReplaceValue; in vec4 v_color0; in vec3 v_color1; uniform vec3 u_fogcolor; in highp float v_fogdepth; in highp vec3 v_texcoord; inout vec4 fragColor0; void main() { vec4 s = vec4(v_color1, 0.0); vec4 t = texture(tex, v_texcoord.xy); vec4 p = v_color0; vec4 v = p * t + s; float aResult = texture(testtex, vec2(v.a * 0.996094 + 0.001953, 0)).a; if (aResult < 0.5) discard; v.rgb = v.rgb * 2.0; float fogCoef = clamp(v_fogdepth, 0.0, 1.0); v = mix(vec4(u_fogcolor, v.a), v, fogCoef); fragColor0 = vec4(v.rgb, u_stencilReplaceValue); } vs: 01730555:00000b1d HWX C T N LM Fog Tex Light: 0: c:1 t:1 1: c:1 t:1 2: c:1 t:1 MatUp:3 #version 300 es precision highp float; in vec3 position; in mediump vec3 normal; in vec2 texcoord; in lowp vec4 color0; uniform mat4 u_proj; uniform mat4 u_world; uniform mat4 u_view; uniform vec4 u_uvscaleoffset; uniform vec3 u_lightpos0; uniform mediump vec3 u_lightatt0; uniform lowp vec3 u_lightambient0; uniform lowp vec3 u_lightdiffuse0; uniform lowp vec3 u_lightspecular0; uniform vec3 u_lightpos1; uniform mediump vec3 u_lightatt1; uniform lowp vec3 u_lightambient1; uniform lowp vec3 u_lightdiffuse1; uniform lowp vec3 u_lightspecular1; uniform vec3 u_lightpos2; uniform mediump vec3 u_lightatt2; uniform lowp vec3 u_lightambient2; uniform lowp vec3 u_lightdiffuse2; uniform lowp vec3 u_lightspecular2; uniform lowp vec4 u_ambient; uniform lowp vec4 u_matspecular; uniform lowp vec3 u_matemissive; uniform lowp vec4 u_matambientalpha; uniform highp vec2 u_fogcoef; out lowp vec4 v_color0; out lowp vec3 v_color1; out highp vec3 v_texcoord; out highp float v_fogdepth; void main() { vec3 worldpos = (u_world * vec4(position.xyz, 1.0)).xyz; mediump vec3 worldnormal = normalize((u_world * vec4(normal, 0.0)).xyz); vec4 viewPos = u_view * vec4(worldpos, 1.0); gl_Position = u_proj * viewPos; lowp vec4 lightSum0 = u_ambient * color0 + vec4(u_matemissive, 0.0); lowp vec3 lightSum1 = vec3(0.0); vec3 toLight; lowp vec3 diffuse; float distance; lowp float lightScale; mediump float ldot; toLight = u_lightpos0 - worldpos; distance = length(toLight); toLight /= distance; ldot = max(dot(toLight, worldnormal), 0.0); lightScale = clamp(1.0 / dot(u_lightatt0, vec3(1.0, distance, distance*distance)), 0.0, 1.0); diffuse = (u_lightdiffuse0 * color0.rgb) * ldot; ldot = dot(normalize(toLight + vec3(0.0, 0.0, 1.0)), worldnormal); if (ldot > 0.0) lightSum1 += u_lightspecular0 * u_matspecular.rgb * (pow(ldot, u_matspecular.a) * lightScale); lightSum0.rgb += (u_lightambient0 * color0.rgb + diffuse) * lightScale; toLight = u_lightpos1 - worldpos; distance = length(toLight); toLight /= distance; ldot = max(dot(toLight, worldnormal), 0.0); lightScale = clamp(1.0 / dot(u_lightatt1, vec3(1.0, distance, distance*distance)), 0.0, 1.0); diffuse = (u_lightdiffuse1 * color0.rgb) * ldot; ldot = dot(normalize(toLight + vec3(0.0, 0.0, 1.0)), worldnormal); if (ldot > 0.0) lightSum1 += u_lightspecular1 * u_matspecular.rgb * (pow(ldot, u_matspecular.a) * lightScale); lightSum0.rgb += (u_lightambient1 * color0.rgb + diffuse) * lightScale; toLight = u_lightpos2 - worldpos; distance = length(toLight); toLight /= distance; ldot = max(dot(toLight, worldnormal), 0.0); lightScale = clamp(1.0 / dot(u_lightatt2, vec3(1.0, distance, distance*distance)), 0.0, 1.0); diffuse = (u_lightdiffuse2 * color0.rgb) * ldot; ldot = dot(normalize(toLight + vec3(0.0, 0.0, 1.0)), worldnormal); if (ldot > 0.0) lightSum1 += u_lightspecular2 * u_matspecular.rgb * (pow(ldot, u_matspecular.a) * lightScale); lightSum0.rgb += (u_lightambient2 * color0.rgb + diffuse) * lightScale; v_color0 = clamp(lightSum0, 0.0,
God of War™: Ghost of Sparta v1.6.3 2022-06-15 Error in shader program link: info: Link Error: Vertex shader is missing. Link Error: Fragment shader is missing. fs: 00000000:01a0d822 Tex TexAlpha LM Fog 2x StenToAlpha StenUniform TFuncMod AlphaTest > #version 300 es #extension GL_EXT_shader_framebuffer_fetch : require precision lowp float; uniform sampler2D tex; uniform sampler2D testtex; uniform float u_stencilReplaceValue; in vec4 v_color0; in vec3 v_color1; uniform vec3 u_fogcolor; in highp float v_fogdepth; in highp vec3 v_texcoord; inout vec4 fragColor0; void main() { vec4 s = vec4(v_color1, 0.0); vec4 t = texture(tex, v_texcoord.xy); vec4 p = v_color0; vec4 v = p * t + s; float aResult = texture(testtex, vec2(v.a * 0.996094 + 0.001953, 0)).a; if (aResult < 0.5) discard; v.rgb = v.rgb * 2.0; float fogCoef = clamp(v_fogdepth, 0.0, 1.0); v = mix(vec4(u_fogcolor, v.a), v, fogCoef); fragColor0 = vec4(v.rgb, u_stencilReplaceValue); } vs: 01330055:00000f1d HWX C T N LM Fog RevN Tex Light: 0: c:1 t:1 1: c:1 t:1 MatUp:3 #version 300 es precision highp float; in vec3 position; in mediump vec3 normal; in vec2 texcoord; in lowp vec4 color0; uniform mat4 u_proj; uniform mat4 u_world; uniform mat4 u_view; uniform vec4 u_uvscaleoffset; uniform vec3 u_lightpos0; uniform mediump vec3 u_lightatt0; uniform lowp vec3 u_lightambient0; uniform lowp vec3 u_lightdiffuse0; uniform lowp vec3 u_lightspecular0; uniform vec3 u_lightpos1; uniform mediump vec3 u_lightatt1; uniform lowp vec3 u_lightambient1; uniform lowp vec3 u_lightdiffuse1; uniform lowp vec3 u_lightspecular1; uniform lowp vec4 u_ambient; uniform lowp vec4 u_matspecular; uniform lowp vec3 u_matemissive; uniform lowp vec4 u_matambientalpha; uniform highp vec2 u_fogcoef; out lowp vec4 v_color0; out lowp vec3 v_color1; out highp vec3 v_texcoord; out highp float v_fogdepth; void main() { vec3 worldpos = (u_world * vec4(position.xyz, 1.0)).xyz; mediump vec3 worldnormal = normalize((u_world * vec4(-normal, 0.0)).xyz); vec4 viewPos = u_view * vec4(worldpos, 1.0); gl_Position = u_proj * viewPos; lowp vec4 lightSum0 = u_ambient * color0 + vec4(u_matemissive, 0.0); lowp vec3 lightSum1 = vec3(0.0); vec3 toLight; lowp vec3 diffuse; float distance; lowp float lightScale; mediump float ldot; toLight = u_lightpos0 - worldpos; distance = length(toLight); toLight /= distance; ldot = max(dot(toLight, worldnormal), 0.0); lightScale = clamp(1.0 / dot(u_lightatt0, vec3(1.0, distance, distance*distance)), 0.0, 1.0); diffuse = (u_lightdiffuse0 * color0.rgb) * ldot; ldot = dot(normalize(toLight + vec3(0.0, 0.0, 1.0)), worldnormal); if (ldot > 0.0) lightSum1 += u_lightspecular0 * u_matspecular.rgb * (pow(ldot, u_matspecular.a) * lightScale); lightSum0.rgb += (u_lightambient0 * color0.rgb + diffuse) * lightScale; toLight = u_lightpos1 - worldpos; distance = length(toLight); toLight /= distance; ldot = max(dot(toLight, worldnormal), 0.0); lightScale = clamp(1.0 / dot(u_lightatt1, vec3(1.0, distance, distance*distance)), 0.0, 1.0); diffuse = (u_lightdiffuse1 * color0.rgb) * ldot; ldot = dot(normalize(toLight + vec3(0.0, 0.0, 1.0)), worldnormal); if (ldot > 0.0) lightSum1 += u_lightspecular1 * u_matspecular.rgb * (pow(ldot, u_matspecular.a) * lightScale); lightSum0.rgb += (u_lightambient1 * color0.rgb + diffuse) * lightScale; v_color0 = clamp(lightSum0, 0.0, 1.0); v_color1 = clamp(lightSum1, 0.0, 1.0); v_texcoord = vec3(texcoord.xy * u_uvscaleoffset.xy, 0.0); v_fogdepth = (viewPos.z + u_fogcoef.x) * u_fogcoef.y; }
God of War™: Ghost of Sparta v1.6.3 2022-06-15 Error in shader program link: info: Link Error: Vertex shader is missing. Link Error: Fragment shader is missing. fs: 00000000:00a00822 Tex TexAlpha LM Fog 2x TFuncMod #version 300 es #extension GL_EXT_shader_framebuffer_fetch : require precision lowp float; uniform sampler2D tex; in vec4 v_color0; in vec3 v_color1; uniform vec3 u_fogcolor; in highp float v_fogdepth; in highp vec3 v_texcoord; inout vec4 fragColor0; void main() { vec4 s = vec4(v_color1, 0.0); vec4 t = texture(tex, v_texcoord.xy); vec4 p = v_color0; vec4 v = p * t + s; v.rgb = v.rgb * 2.0; float fogCoef = clamp(v_fogdepth, 0.0, 1.0); v = mix(vec4(u_fogcolor, v.a), v, fogCoef); fragColor0 = v; } vs: 01b34055:00000b1d HWX C T N LM Fog Tex Light: 0: c:1 t:1 1: c:1 t:1 3: c:0 t:1 MatUp:3 #version 300 es precision highp float; in vec3 position; in mediump vec3 normal; in vec2 texcoord; in lowp vec4 color0; uniform mat4 u_proj; uniform mat4 u_world; uniform mat4 u_view; uniform vec4 u_uvscaleoffset; uniform vec3 u_lightpos0; uniform mediump vec3 u_lightatt0; uniform lowp vec3 u_lightambient0; uniform lowp vec3 u_lightdiffuse0; uniform lowp vec3 u_lightspecular0; uniform vec3 u_lightpos1; uniform mediump vec3 u_lightatt1; uniform lowp vec3 u_lightambient1; uniform lowp vec3 u_lightdiffuse1; uniform lowp vec3 u_lightspecular1; uniform vec3 u_lightpos3; uniform mediump vec3 u_lightatt3; uniform lowp vec3 u_lightambient3; uniform lowp vec3 u_lightdiffuse3; uniform lowp vec4 u_ambient; uniform lowp vec4 u_matspecular; uniform lowp vec3 u_matemissive; uniform lowp vec4 u_matambientalpha; uniform highp vec2 u_fogcoef; out lowp vec4 v_color0; out lowp vec3 v_color1; out highp vec3 v_texcoord; out highp float v_fogdepth; void main() { vec3 worldpos = (u_world * vec4(position.xyz, 1.0)).xyz; mediump vec3 worldnormal = normalize((u_world * vec4(normal, 0.0)).xyz); vec4 viewPos = u_view * vec4(worldpos, 1.0); gl_Position = u_proj * viewPos; lowp vec4 lightSum0 = u_ambient * color0 + vec4(u_matemissive, 0.0); lowp vec3 lightSum1 = vec3(0.0); vec3 toLight; lowp vec3 diffuse; float distance; lowp float lightScale; mediump float ldot; toLight = u_lightpos0 - worldpos; distance = length(toLight); toLight /= distance; ldot = max(dot(toLight, worldnormal), 0.0); lightScale = clamp(1.0 / dot(u_lightatt0, vec3(1.0, distance, distance*distance)), 0.0, 1.0); diffuse = (u_lightdiffuse0 * color0.rgb) * ldot; ldot = dot(normalize(toLight + vec3(0.0, 0.0, 1.0)), worldnormal); if (ldot > 0.0) lightSum1 += u_lightspecular0 * u_matspecular.rgb * (pow(ldot, u_matspecular.a) * lightScale); lightSum0.rgb += (u_lightambient0 * color0.rgb + diffuse) * lightScale; toLight = u_lightpos1 - worldpos; distance = length(toLight); toLight /= distance; ldot = max(dot(toLight, worldnormal), 0.0); lightScale = clamp(1.0 / dot(u_lightatt1, vec3(1.0, distance, distance*distance)), 0.0, 1.0); diffuse = (u_lightdiffuse1 * color0.rgb) * ldot; ldot = dot(normalize(toLight + vec3(0.0, 0.0, 1.0)), worldnormal); if (ldot > 0.0) lightSum1 += u_lightspecular1 * u_matspecular.rgb * (pow(ldot, u_matspecular.a) * lightScale); lightSum0.rgb += (u_lightambient1 * color0.rgb + diffuse) * lightScale; toLight = u_lightpos3 - worldpos; distance = length(toLight); toLight /= distance; ldot = max(dot(toLight, worldnormal), 0.0); lightScale = clamp(1.0 / dot(u_lightatt3, vec3(1.0, distance, distance*distance)), 0.0, 1.0); diffuse = (u_lightdiffuse3 * color0.rgb) * ldot; lightSum0.rgb += (u_lightambient3 * color0.rgb + diffuse) * lightScale; v_color0 = clamp(lightSum0, 0.0, 1.0); v_color1 = clamp(lightSum1, 0.0, 1.0); v_texcoord = vec3(texcoord.xy * u_uvscaleoffset.xy, 0.0); v_fogdepth = (viewPos.z + u_fogcoef.x) * u_fogcoef.y; }
God of War™: Ghost of Sparta v1.6.3 2022-06-15 Error in shader program link: info: Link Error: Vertex shader is missing. Link Error: Fragment shader is missing. fs: 00000000:00a00822 Tex TexAlpha LM Fog 2x TFuncMod #version 300 es #extension GL_EXT_shader_framebuffer_fetch : require precision lowp float; uniform sampler2D tex; in vec4 v_color0; in vec3 v_color1; uniform vec3 u_fogcolor; in highp float v_fogdepth; in highp vec3 v_texcoord; inout vec4 fragColor0; void main() { vec4 s = vec4(v_color1, 0.0); vec4 t = texture(tex, v_texcoord.xy); vec4 p = v_color0; vec4 v = p * t + s; v.rgb = v.rgb * 2.0; float fogCoef = clamp(v_fogdepth, 0.0, 1.0); v = mix(vec4(u_fogcolor, v.a), v, fogCoef); fragColor0 = v; } vs: 01934004:00000b1d HWX C T N LM Fog Tex Light: 0: c:0 t:1 3: c:0 t:1 MatUp:3 #version 300 es precision highp float; in vec3 position; in mediump vec3 normal; in vec2 texcoord; in lowp vec4 color0; uniform mat4 u_proj; uniform mat4 u_world; uniform mat4 u_view; uniform vec4 u_uvscaleoffset; uniform vec3 u_lightpos0; uniform mediump vec3 u_lightatt0; uniform lowp vec3 u_lightambient0; uniform lowp vec3 u_lightdiffuse0; uniform vec3 u_lightpos3; uniform mediump vec3 u_lightatt3; uniform lowp vec3 u_lightambient3; uniform lowp vec3 u_lightdiffuse3; uniform lowp vec4 u_ambient; uniform lowp vec4 u_matspecular; uniform lowp vec3 u_matemissive; uniform lowp vec4 u_matambientalpha; uniform highp vec2 u_fogcoef; out lowp vec4 v_color0; out lowp vec3 v_color1; out highp vec3 v_texcoord; out highp float v_fogdepth; void main() { vec3 worldpos = (u_world * vec4(position.xyz, 1.0)).xyz; mediump vec3 worldnormal = normalize((u_world * vec4(normal, 0.0)).xyz); vec4 viewPos = u_view * vec4(worldpos, 1.0); gl_Position = u_proj * viewPos; lowp vec4 lightSum0 = u_ambient * color0 + vec4(u_matemissive, 0.0); vec3 toLight; lowp vec3 diffuse; float distance; lowp float lightScale; mediump float ldot; toLight = u_lightpos0 - worldpos; distance = length(toLight); toLight /= distance; ldot = max(dot(toLight, worldnormal), 0.0); lightScale = clamp(1.0 / dot(u_lightatt0, vec3(1.0, distance, distance*distance)), 0.0, 1.0); diffuse = (u_lightdiffuse0 * color0.rgb) * ldot; lightSum0.rgb += (u_lightambient0 * color0.rgb + diffuse) * lightScale; toLight = u_lightpos3 - worldpos; distance = length(toLight); toLight /= distance; ldot = max(dot(toLight, worldnormal), 0.0); lightScale = clamp(1.0 / dot(u_lightatt3, vec3(1.0, distance, distance*distance)), 0.0, 1.0); diffuse = (u_lightdiffuse3 * color0.rgb) * ldot; lightSum0.rgb += (u_lightambient3 * color0.rgb + diffuse) * lightScale; v_color0 = clamp(lightSum0, 0.0, 1.0); v_color1 = vec3(0.0); v_texcoord = vec3(texcoord.xy * u_uvscaleoffset.xy, 0.0); v_fogdepth = (viewPos.z + u_fogcoef.x) * u_fogcoef.y; }
God of War™: Ghost of Sparta v1.6.3 2022-06-15 Error in shader program link: info: Link Error: Vertex shader is missing. Link Error: Fragment shader is missing. fs: 00000000:00a00822 Tex TexAlpha LM Fog 2x TFuncMod #version 300 es #extension GL_EXT_shader_framebuffer_fetch : require precision lowp float; uniform sampler2D tex; in vec4 v_color0; in vec3 v_color1; uniform vec3 u_fogcolor; in highp float v_fogdepth; in highp vec3 v_texcoord; inout vec4 fragColor0; void main() { vec4 s = vec4(v_color1, 0.0); vec4 t = texture(tex, v_texcoord.xy); vec4 p = v_color0; vec4 v = p * t + s; v.rgb = v.rgb * 2.0; float fogCoef = clamp(v_fogdepth, 0.0, 1.0); v = mix(vec4(u_fogcolor, v.a), v, fogCoef); fragColor0 = v; } vs: 01330055:00000b1d HWX C T N LM Fog Tex Light: 0: c:1 t:1 1: c:1 t:1 MatUp:3 #version 300 es precision highp float; in vec3 position; in mediump vec3 normal; in vec2 texcoord; in lowp vec4 color0; uniform mat4 u_proj; uniform mat4 u_world; uniform mat4 u_view; uniform vec4 u_uvscaleoffset; uniform vec3 u_lightpos0; uniform mediump vec3 u_lightatt0; uniform lowp vec3 u_lightambient0; uniform lowp vec3 u_lightdiffuse0; uniform lowp vec3 u_lightspecular0; uniform vec3 u_lightpos1; uniform mediump vec3 u_lightatt1; uniform lowp vec3 u_lightambient1; uniform lowp vec3 u_lightdiffuse1; uniform lowp vec3 u_lightspecular1; uniform lowp vec4 u_ambient; uniform lowp vec4 u_matspecular; uniform lowp vec3 u_matemissive; uniform lowp vec4 u_matambientalpha; uniform highp vec2 u_fogcoef; out lowp vec4 v_color0; out lowp vec3 v_color1; out highp vec3 v_texcoord; out highp float v_fogdepth; void main() { vec3 worldpos = (u_world * vec4(position.xyz, 1.0)).xyz; mediump vec3 worldnormal = normalize((u_world * vec4(normal, 0.0)).xyz); vec4 viewPos = u_view * vec4(worldpos, 1.0); gl_Position = u_proj * viewPos; lowp vec4 lightSum0 = u_ambient * color0 + vec4(u_matemissive, 0.0); lowp vec3 lightSum1 = vec3(0.0); vec3 toLight; lowp vec3 diffuse; float distance; lowp float lightScale; mediump float ldot; toLight = u_lightpos0 - worldpos; distance = length(toLight); toLight /= distance; ldot = max(dot(toLight, worldnormal), 0.0); lightScale = clamp(1.0 / dot(u_lightatt0, vec3(1.0, distance, distance*distance)), 0.0, 1.0); diffuse = (u_lightdiffuse0 * color0.rgb) * ldot; ldot = dot(normalize(toLight + vec3(0.0, 0.0, 1.0)), worldnormal); if (ldot > 0.0) lightSum1 += u_lightspecular0 * u_matspecular.rgb * (pow(ldot, u_matspecular.a) * lightScale); lightSum0.rgb += (u_lightambient0 * color0.rgb + diffuse) * lightScale; toLight = u_lightpos1 - worldpos; distance = length(toLight); toLight /= distance; ldot = max(dot(toLight, worldnormal), 0.0); lightScale = clamp(1.0 / dot(u_lightatt1, vec3(1.0, distance, distance*distance)), 0.0, 1.0); diffuse = (u_lightdiffuse1 * color0.rgb) * ldot; ldot = dot(normalize(toLight + vec3(0.0, 0.0, 1.0)), worldnormal); if (ldot > 0.0) lightSum1 += u_lightspecular1 * u_matspecular.rgb * (pow(ldot, u_matspecular.a) * lightScale); lightSum0.rgb += (u_lightambient1 * color0.rgb + diffuse) * lightScale; v_color0 = clamp(lightSum0, 0.0, 1.0); v_color1 = clamp(lightSum1, 0.0, 1.0); v_texcoord = vec3(texcoord.xy * u_uvscaleoffset.xy, 0.0); v_fogdepth = (viewPos.z + u_fogcoef.x) * u_fogcoef.y; }
God of War™: Ghost of Sparta v1.6.3 2022-06-15 Error in shader program link: info: Link Error: Vertex shader is missing. Link Error: Fragment shader is missing. fs: 00000000:00a00822 Tex TexAlpha LM Fog 2x TFuncMod #version 300 es #extension GL_EXT_shader_framebuffer_fetch : require precision lowp float; uniform sampler2D tex; in vec4 v_color0; in vec3 v_color1; uniform vec3 u_fogcolor; in highp float v_fogdepth; in highp vec3 v_texcoord; inout vec4 fragColor0; void main() { vec4 s = vec4(v_color1, 0.0); vec4 t = texture(tex, v_texcoord.xy); vec4 p = v_color0; vec4 v = p * t + s; v.rgb = v.rgb * 2.0; float fogCoef = clamp(v_fogdepth, 0.0, 1.0); v = mix(vec4(u_fogcolor, v.a), v, fogCoef); fragColor0 = v; } vs: 01f34444:00000b1d HWX C T N LM Fog Tex Light: 0: c:0 t:1 1: c:0 t:1 2: c:0 t:1 3: c:0 t:1 MatUp:3 #version 300 es precision highp float; in vec3 position; in mediump vec3 normal; in vec2 texcoord; in lowp vec4 color0; uniform mat4 u_proj; uniform mat4 u_world; uniform mat4 u_view; uniform vec4 u_uvscaleoffset; uniform vec3 u_lightpos0; uniform mediump vec3 u_lightatt0; uniform lowp vec3 u_lightambient0; uniform lowp vec3 u_lightdiffuse0; uniform vec3 u_lightpos1; uniform mediump vec3 u_lightatt1; uniform lowp vec3 u_lightambient1; uniform lowp vec3 u_lightdiffuse1; uniform vec3 u_lightpos2; uniform mediump vec3 u_lightatt2; uniform lowp vec3 u_lightambient2; uniform lowp vec3 u_lightdiffuse2; uniform vec3 u_lightpos3; uniform mediump vec3 u_lightatt3; uniform lowp vec3 u_lightambient3; uniform lowp vec3 u_lightdiffuse3; uniform lowp vec4 u_ambient; uniform lowp vec4 u_matspecular; uniform lowp vec3 u_matemissive; uniform lowp vec4 u_matambientalpha; uniform highp vec2 u_fogcoef; out lowp vec4 v_color0; out lowp vec3 v_color1; out highp vec3 v_texcoord; out highp float v_fogdepth; void main() { vec3 worldpos = (u_world * vec4(position.xyz, 1.0)).xyz; mediump vec3 worldnormal = normalize((u_world * vec4(normal, 0.0)).xyz); vec4 viewPos = u_view * vec4(worldpos, 1.0); gl_Position = u_proj * viewPos; lowp vec4 lightSum0 = u_ambient * color0 + vec4(u_matemissive, 0.0); vec3 toLight; lowp vec3 diffuse; float distance; lowp float lightScale; mediump float ldot; toLight = u_lightpos0 - worldpos; distance = length(toLight); toLight /= distance; ldot = max(dot(toLight, worldnormal), 0.0); lightScale = clamp(1.0 / dot(u_lightatt0, vec3(1.0, distance, distance*distance)), 0.0, 1.0); diffuse = (u_lightdiffuse0 * color0.rgb) * ldot; lightSum0.rgb += (u_lightambient0 * color0.rgb + diffuse) * lightScale; toLight = u_lightpos1 - worldpos; distance = length(toLight); toLight /= distance; ldot = max(dot(toLight, worldnormal), 0.0); lightScale = clamp(1.0 / dot(u_lightatt1, vec3(1.0, distance, distance*distance)), 0.0, 1.0); diffuse = (u_lightdiffuse1 * color0.rgb) * ldot; lightSum0.rgb += (u_lightambient1 * color0.rgb + diffuse) * lightScale; toLight = u_lightpos2 - worldpos; distance = length(toLight); toLight /= distance; ldot = max(dot(toLight, worldnormal), 0.0); lightScale = clamp(1.0 / dot(u_lightatt2, vec3(1.0, distance, distance*distance)), 0.0, 1.0); diffuse = (u_lightdiffuse2 * color0.rgb) * ldot; lightSum0.rgb += (u_lightambient2 * color0.rgb + diffuse) * lightScale; toLight = u_lightpos3 - worldpos; distance = length(toLight); toLight /= distance; ldot = max(dot(toLight, worldnormal), 0.0); lightScale = clamp(1.0 / dot(u_lightatt3, vec3(1.0, distance, distance*distance)), 0.0, 1.0); diffuse = (u_lightdiffuse3 * color0.rgb) * ldot; lightSum0.rgb += (u_lightambient3 * color0.rgb + diffuse) * lightScale; v_color0 = clamp(lightSum0, 0.0, 1.0); v_color1 = vec3(0.0); v_texcoord = vec3(texcoord.xy * u_uvscaleoffset.xy, 0.0); v_fogdepth = (viewPos.z + u_fogcoef.x) * u_fogcoef.y; }
God of War™: Ghost of Sparta v1.6.3 2022-06-15 Error in shader program link: info: Link Error: Vertex shader is missing. Link Error: Fragment shader is missing. fs: 00000000:01a0d822 Tex TexAlpha LM Fog 2x StenToAlpha StenUniform TFuncMod AlphaTest > #version 300 es #extension GL_EXT_shader_framebuffer_fetch : require precision lowp float; uniform sampler2D tex; uniform sampler2D testtex; uniform float u_stencilReplaceValue; in vec4 v_color0; in vec3 v_color1; uniform vec3 u_fogcolor; in highp float v_fogdepth; in highp vec3 v_texcoord; inout vec4 fragColor0; void main() { vec4 s = vec4(v_color1, 0.0); vec4 t = texture(tex, v_texcoord.xy); vec4 p = v_color0; vec4 v = p * t + s; float aResult = texture(testtex, vec2(v.a * 0.996094 + 0.001953, 0)).a; if (aResult < 0.5) discard; v.rgb = v.rgb * 2.0; float fogCoef = clamp(v_fogdepth, 0.0, 1.0); v = mix(vec4(u_fogcolor, v.a), v, fogCoef); fragColor0 = vec4(v.rgb, u_stencilReplaceValue); } vs: 01934004:00000b1d HWX C T N LM Fog Tex Light: 0: c:0 t:1 3: c:0 t:1 MatUp:3 #version 300 es precision highp float; in vec3 position; in mediump vec3 normal; in vec2 texcoord; in lowp vec4 color0; uniform mat4 u_proj; uniform mat4 u_world; uniform mat4 u_view; uniform vec4 u_uvscaleoffset; uniform vec3 u_lightpos0; uniform mediump vec3 u_lightatt0; uniform lowp vec3 u_lightambient0; uniform lowp vec3 u_lightdiffuse0; uniform vec3 u_lightpos3; uniform mediump vec3 u_lightatt3; uniform lowp vec3 u_lightambient3; uniform lowp vec3 u_lightdiffuse3; uniform lowp vec4 u_ambient; uniform lowp vec4 u_matspecular; uniform lowp vec3 u_matemissive; uniform lowp vec4 u_matambientalpha; uniform highp vec2 u_fogcoef; out lowp vec4 v_color0; out lowp vec3 v_color1; out highp vec3 v_texcoord; out highp float v_fogdepth; void main() { vec3 worldpos = (u_world * vec4(position.xyz, 1.0)).xyz; mediump vec3 worldnormal = normalize((u_world * vec4(normal, 0.0)).xyz); vec4 viewPos = u_view * vec4(worldpos, 1.0); gl_Position = u_proj * viewPos; lowp vec4 lightSum0 = u_ambient * color0 + vec4(u_matemissive, 0.0); vec3 toLight; lowp vec3 diffuse; float distance; lowp float lightScale; mediump float ldot; toLight = u_lightpos0 - worldpos; distance = length(toLight); toLight /= distance; ldot = max(dot(toLight, worldnormal), 0.0); lightScale = clamp(1.0 / dot(u_lightatt0, vec3(1.0, distance, distance*distance)), 0.0, 1.0); diffuse = (u_lightdiffuse0 * color0.rgb) * ldot; lightSum0.rgb += (u_lightambient0 * color0.rgb + diffuse) * lightScale; toLight = u_lightpos3 - worldpos; distance = length(toLight); toLight /= distance; ldot = max(dot(toLight, worldnormal), 0.0); lightScale = clamp(1.0 / dot(u_lightatt3, vec3(1.0, distance, distance*distance)), 0.0, 1.0); diffuse = (u_lightdiffuse3 * color0.rgb) * ldot; lightSum0.rgb += (u_lightambient3 * color0.rgb + diffuse) * lightScale; v_color0 = clamp(lightSum0, 0.0, 1.0); v_color1 = vec3(0.0); v_texcoord = vec3(texcoord.xy * u_uvscaleoffset.xy, 0.0); v_fogdepth = (viewPos.z + u_fogcoef.x) * u_fogcoef.y; }
God of War™: Ghost of Sparta v1.6.3 2022-06-15 Error in shader program link: info: Link Error: Vertex shader is missing. Link Error: Fragment shader is missing. fs: 00000000:01a00802 Tex LM Fog 2x StenToAlpha StenUniform TFuncMod #version 300 es #extension GL_EXT_shader_framebuffer_fetch : require precision lowp float; uniform sampler2D tex; uniform float u_stencilReplaceValue; in vec4 v_color0; in vec3 v_color1; uniform vec3 u_fogcolor; in highp float v_fogdepth; in highp vec3 v_texcoord; inout vec4 fragColor0; void main() { vec4 s = vec4(v_color1, 0.0); vec4 t = texture(tex, v_texcoord.xy); vec4 p = v_color0; vec4 v = vec4(t.rgb * p.rgb, p.a) + s; v.rgb = v.rgb * 2.0; float fogCoef = clamp(v_fogdepth, 0.0, 1.0); v = mix(vec4(u_fogcolor, v.a), v, fogCoef); fragColor0 = vec4(v.rgb, u_stencilReplaceValue); } vs: 01f34500:00000b1d HWX C T N LM Fog Tex Light: 0: c:0 t:0 1: c:0 t:0 2: c:1 t:1 3: c:0 t:1 MatUp:3 #version 300 es precision highp float; in vec3 position; in mediump vec3 normal; in vec2 texcoord; in lowp vec4 color0; uniform mat4 u_proj; uniform mat4 u_world; uniform mat4 u_view; uniform vec4 u_uvscaleoffset; uniform vec3 u_lightpos0; uniform lowp vec3 u_lightambient0; uniform lowp vec3 u_lightdiffuse0; uniform vec3 u_lightpos1; uniform lowp vec3 u_lightambient1; uniform lowp vec3 u_lightdiffuse1; uniform vec3 u_lightpos2; uniform mediump vec3 u_lightatt2; uniform lowp vec3 u_lightambient2; uniform lowp vec3 u_lightdiffuse2; uniform lowp vec3 u_lightspecular2; uniform vec3 u_lightpos3; uniform mediump vec3 u_lightatt3; uniform lowp vec3 u_lightambient3; uniform lowp vec3 u_lightdiffuse3; uniform lowp vec4 u_ambient; uniform lowp vec4 u_matspecular; uniform lowp vec3 u_matemissive; uniform lowp vec4 u_matambientalpha; uniform highp vec2 u_fogcoef; out lowp vec4 v_color0; out lowp vec3 v_color1; out highp vec3 v_texcoord; out highp float v_fogdepth; void main() { vec3 worldpos = (u_world * vec4(position.xyz, 1.0)).xyz; mediump vec3 worldnormal = normalize((u_world * vec4(normal, 0.0)).xyz); vec4 viewPos = u_view * vec4(worldpos, 1.0); gl_Position = u_proj * viewPos; lowp vec4 lightSum0 = u_ambient * color0 + vec4(u_matemissive, 0.0); lowp vec3 lightSum1 = vec3(0.0); vec3 toLight; lowp vec3 diffuse; float distance; lowp float lightScale; mediump float ldot; toLight = u_lightpos0; ldot = max(dot(toLight, worldnormal), 0.0); diffuse = (u_lightdiffuse0 * color0.rgb) * ldot; lightSum0.rgb += (u_lightambient0 * color0.rgb + diffuse); toLight = u_lightpos1; ldot = max(dot(toLight, worldnormal), 0.0); diffuse = (u_lightdiffuse1 * color0.rgb) * ldot; lightSum0.rgb += (u_lightambient1 * color0.rgb + diffuse); toLight = u_lightpos2 - worldpos; distance = length(toLight); toLight /= distance; ldot = max(dot(toLight, worldnormal), 0.0); lightScale = clamp(1.0 / dot(u_lightatt2, vec3(1.0, distance, distance*distance)), 0.0, 1.0); diffuse = (u_lightdiffuse2 * color0.rgb) * ldot; ldot = dot(normalize(toLight + vec3(0.0, 0.0, 1.0)), worldnormal); if (ldot > 0.0) lightSum1 += u_lightspecular2 * u_matspecular.rgb * (pow(ldot, u_matspecular.a) * lightScale); lightSum0.rgb += (u_lightambient2 * color0.rgb + diffuse) * lightScale; toLight = u_lightpos3 - worldpos; distance = length(toLight); toLight /= distance; ldot = max(dot(toLight, worldnormal), 0.0); lightScale = clamp(1.0 / dot(u_lightatt3, vec3(1.0, distance, distance*distance)), 0.0, 1.0); diffuse = (u_lightdiffuse3 * color0.rgb) * ldot; lightSum0.rgb += (u_lightambient3 * color0.rgb + diffuse) * lightScale; v_color0 = clamp(lightSum0, 0.0, 1.0); v_color1 = clamp(lightSum1, 0.0, 1.0); v_texcoord = vec3(texcoord.xy * u_uvscaleoffset.xy, 0.0); v_fogdepth = (viewPos.z + u_fogcoef.x) * u_fogcoef.y; }
God of War™: Ghost of Sparta v1.6.3 2022-06-15 Error in shader program link: info: Link Error: Vertex shader is missing. Link Error: Fragment shader is missing. fs: 00000000:00a00822 Tex TexAlpha LM Fog 2x TFuncMod #version 300 es #extension GL_EXT_shader_framebuffer_fetch : require precision lowp float; uniform sampler2D tex; in vec4 v_color0; in vec3 v_color1; uniform vec3 u_fogcolor; in highp float v_fogdepth; in highp vec3 v_texcoord; inout vec4 fragColor0; void main() { vec4 s = vec4(v_color1, 0.0); vec4 t = texture(tex, v_texcoord.xy); vec4 p = v_color0; vec4 v = p * t + s; v.rgb = v.rgb * 2.0; float fogCoef = clamp(v_fogdepth, 0.0, 1.0); v = mix(vec4(u_fogcolor, v.a), v, fogCoef); fragColor0 = v; } vs: 01f34555:00000b1d HWX C T N LM Fog Tex Light: 0: c:1 t:1 1: c:1 t:1 2: c:1 t:1 3: c:0 t:1 MatUp:3 #version 300 es precision highp float; in vec3 position; in mediump vec3 normal; in vec2 texcoord; in lowp vec4 color0; uniform mat4 u_proj; uniform mat4 u_world; uniform mat4 u_view; uniform vec4 u_uvscaleoffset; uniform vec3 u_lightpos0; uniform mediump vec3 u_lightatt0; uniform lowp vec3 u_lightambient0; uniform lowp vec3 u_lightdiffuse0; uniform lowp vec3 u_lightspecular0; uniform vec3 u_lightpos1; uniform mediump vec3 u_lightatt1; uniform lowp vec3 u_lightambient1; uniform lowp vec3 u_lightdiffuse1; uniform lowp vec3 u_lightspecular1; uniform vec3 u_lightpos2; uniform mediump vec3 u_lightatt2; uniform lowp vec3 u_lightambient2; uniform lowp vec3 u_lightdiffuse2; uniform lowp vec3 u_lightspecular2; uniform vec3 u_lightpos3; uniform mediump vec3 u_lightatt3; uniform lowp vec3 u_lightambient3; uniform lowp vec3 u_lightdiffuse3; uniform lowp vec4 u_ambient; uniform lowp vec4 u_matspecular; uniform lowp vec3 u_matemissive; uniform lowp vec4 u_matambientalpha; uniform highp vec2 u_fogcoef; out lowp vec4 v_color0; out lowp vec3 v_color1; out highp vec3 v_texcoord; out highp float v_fogdepth; void main() { vec3 worldpos = (u_world * vec4(position.xyz, 1.0)).xyz; mediump vec3 worldnormal = normalize((u_world * vec4(normal, 0.0)).xyz); vec4 viewPos = u_view * vec4(worldpos, 1.0); gl_Position = u_proj * viewPos; lowp vec4 lightSum0 = u_ambient * color0 + vec4(u_matemissive, 0.0); lowp vec3 lightSum1 = vec3(0.0); vec3 toLight; lowp vec3 diffuse; float distance; lowp float lightScale; mediump float ldot; toLight = u_lightpos0 - worldpos; distance = length(toLight); toLight /= distance; ldot = max(dot(toLight, worldnormal), 0.0); lightScale = clamp(1.0 / dot(u_lightatt0, vec3(1.0, distance, distance*distance)), 0.0, 1.0); diffuse = (u_lightdiffuse0 * color0.rgb) * ldot; ldot = dot(normalize(toLight + vec3(0.0, 0.0, 1.0)), worldnormal); if (ldot > 0.0) lightSum1 += u_lightspecular0 * u_matspecular.rgb * (pow(ldot, u_matspecular.a) * lightScale); lightSum0.rgb += (u_lightambient0 * color0.rgb + diffuse) * lightScale; toLight = u_lightpos1 - worldpos; distance = length(toLight); toLight /= distance; ldot = max(dot(toLight, worldnormal), 0.0); lightScale = clamp(1.0 / dot(u_lightatt1, vec3(1.0, distance, distance*distance)), 0.0, 1.0); diffuse = (u_lightdiffuse1 * color0.rgb) * ldot; ldot = dot(normalize(toLight + vec3(0.0, 0.0, 1.0)), worldnormal); if (ldot > 0.0) lightSum1 += u_lightspecular1 * u_matspecular.rgb * (pow(ldot, u_matspecular.a) * lightScale); lightSum0.rgb += (u_lightambient1 * color0.rgb + diffuse) * lightScale; toLight = u_lightpos2 - worldpos; distance = length(toLight); toLight /= distance; ldot = max(dot(toLight, worldnormal), 0.0); lightScale = clamp(1.0 / dot(u_lightatt2, vec3(1.0, distance, distance*distance)), 0.0, 1.0); diffuse = (u_lightdiffuse2 * color0.rgb) * ldot; ldot = dot(normalize(toLight + vec3(0.0, 0.0, 1.0)), worldnormal); if (ldot > 0.0) lightSum1 += u_lightspecular2 * u_matspecular.rgb * (pow(ldot, u_matspecular.a) * lightScale); lightSum0.rgb += (u_lightambient2 * color0.rgb + diffuse) * lightScale; toLight = u_lightpos3 - worldpos; distance = length(toLight); toLight /= distance; ldot = max(dot(toLight, worldnormal), 0.
God of War™: Ghost of Sparta v1.6.3 2022-06-15 Error in shader program link: info: Link Error: Vertex shader is missing. Link Error: Fragment shader is missing. fs: 00000000:00a00822 Tex TexAlpha LM Fog 2x TFuncMod #version 300 es #extension GL_EXT_shader_framebuffer_fetch : require precision lowp float; uniform sampler2D tex; in vec4 v_color0; in vec3 v_color1; uniform vec3 u_fogcolor; in highp float v_fogdepth; in highp vec3 v_texcoord; inout vec4 fragColor0; void main() { vec4 s = vec4(v_color1, 0.0); vec4 t = texture(tex, v_texcoord.xy); vec4 p = v_color0; vec4 v = p * t + s; v.rgb = v.rgb * 2.0; float fogCoef = clamp(v_fogdepth, 0.0, 1.0); v = mix(vec4(u_fogcolor, v.a), v, fogCoef); fragColor0 = v; } vs: 01130005:00000b1d HWX C T N LM Fog Tex Light: 0: c:1 t:1 MatUp:3 #version 300 es precision highp float; in vec3 position; in mediump vec3 normal; in vec2 texcoord; in lowp vec4 color0; uniform mat4 u_proj; uniform mat4 u_world; uniform mat4 u_view; uniform vec4 u_uvscaleoffset; uniform vec3 u_lightpos0; uniform mediump vec3 u_lightatt0; uniform lowp vec3 u_lightambient0; uniform lowp vec3 u_lightdiffuse0; uniform lowp vec3 u_lightspecular0; uniform lowp vec4 u_ambient; uniform lowp vec4 u_matspecular; uniform lowp vec3 u_matemissive; uniform lowp vec4 u_matambientalpha; uniform highp vec2 u_fogcoef; out lowp vec4 v_color0; out lowp vec3 v_color1; out highp vec3 v_texcoord; out highp float v_fogdepth; void main() { vec3 worldpos = (u_world * vec4(position.xyz, 1.0)).xyz; mediump vec3 worldnormal = normalize((u_world * vec4(normal, 0.0)).xyz); vec4 viewPos = u_view * vec4(worldpos, 1.0); gl_Position = u_proj * viewPos; lowp vec4 lightSum0 = u_ambient * color0 + vec4(u_matemissive, 0.0); lowp vec3 lightSum1 = vec3(0.0); vec3 toLight; lowp vec3 diffuse; float distance; lowp float lightScale; mediump float ldot; toLight = u_lightpos0 - worldpos; distance = length(toLight); toLight /= distance; ldot = max(dot(toLight, worldnormal), 0.0); lightScale = clamp(1.0 / dot(u_lightatt0, vec3(1.0, distance, distance*distance)), 0.0, 1.0); diffuse = (u_lightdiffuse0 * color0.rgb) * ldot; ldot = dot(normalize(toLight + vec3(0.0, 0.0, 1.0)), worldnormal); if (ldot > 0.0) lightSum1 += u_lightspecular0 * u_matspecular.rgb * (pow(ldot, u_matspecular.a) * lightScale); lightSum0.rgb += (u_lightambient0 * color0.rgb + diffuse) * lightScale; v_color0 = clamp(lightSum0, 0.0, 1.0); v_color1 = clamp(lightSum1, 0.0, 1.0); v_texcoord = vec3(texcoord.xy * u_uvscaleoffset.xy, 0.0); v_fogdepth = (viewPos.z + u_fogcoef.x) * u_fogcoef.y; }
God of War™: Ghost of Sparta v1.6.3 2022-06-15 Error in shader program link: info: Link Error: Vertex shader is missing. Link Error: Fragment shader is missing. fs: 00000000:01a0d822 Tex TexAlpha LM Fog 2x StenToAlpha StenUniform TFuncMod AlphaTest > #version 300 es #extension GL_EXT_shader_framebuffer_fetch : require precision lowp float; uniform sampler2D tex; uniform sampler2D testtex; uniform float u_stencilReplaceValue; in vec4 v_color0; in vec3 v_color1; uniform vec3 u_fogcolor; in highp float v_fogdepth; in highp vec3 v_texcoord; inout vec4 fragColor0; void main() { vec4 s = vec4(v_color1, 0.0); vec4 t = texture(tex, v_texcoord.xy); vec4 p = v_color0; vec4 v = p * t + s; float aResult = texture(testtex, vec2(v.a * 0.996094 + 0.001953, 0)).a; if (aResult < 0.5) discard; v.rgb = v.rgb * 2.0; float fogCoef = clamp(v_fogdepth, 0.0, 1.0); v = mix(vec4(u_fogcolor, v.a), v, fogCoef); fragColor0 = vec4(v.rgb, u_stencilReplaceValue); } vs: 01f34555:00000b1d HWX C T N LM Fog Tex Light: 0: c:1 t:1 1: c:1 t:1 2: c:1 t:1 3: c:0 t:1 MatUp:3 #version 300 es precision highp float; in vec3 position; in mediump vec3 normal; in vec2 texcoord; in lowp vec4 color0; uniform mat4 u_proj; uniform mat4 u_world; uniform mat4 u_view; uniform vec4 u_uvscaleoffset; uniform vec3 u_lightpos0; uniform mediump vec3 u_lightatt0; uniform lowp vec3 u_lightambient0; uniform lowp vec3 u_lightdiffuse0; uniform lowp vec3 u_lightspecular0; uniform vec3 u_lightpos1; uniform mediump vec3 u_lightatt1; uniform lowp vec3 u_lightambient1; uniform lowp vec3 u_lightdiffuse1; uniform lowp vec3 u_lightspecular1; uniform vec3 u_lightpos2; uniform mediump vec3 u_lightatt2; uniform lowp vec3 u_lightambient2; uniform lowp vec3 u_lightdiffuse2; uniform lowp vec3 u_lightspecular2; uniform vec3 u_lightpos3; uniform mediump vec3 u_lightatt3; uniform lowp vec3 u_lightambient3; uniform lowp vec3 u_lightdiffuse3; uniform lowp vec4 u_ambient; uniform lowp vec4 u_matspecular; uniform lowp vec3 u_matemissive; uniform lowp vec4 u_matambientalpha; uniform highp vec2 u_fogcoef; out lowp vec4 v_color0; out lowp vec3 v_color1; out highp vec3 v_texcoord; out highp float v_fogdepth; void main() { vec3 worldpos = (u_world * vec4(position.xyz, 1.0)).xyz; mediump vec3 worldnormal = normalize((u_world * vec4(normal, 0.0)).xyz); vec4 viewPos = u_view * vec4(worldpos, 1.0); gl_Position = u_proj * viewPos; lowp vec4 lightSum0 = u_ambient * color0 + vec4(u_matemissive, 0.0); lowp vec3 lightSum1 = vec3(0.0); vec3 toLight; lowp vec3 diffuse; float distance; lowp float lightScale; mediump float ldot; toLight = u_lightpos0 - worldpos; distance = length(toLight); toLight /= distance; ldot = max(dot(toLight, worldnormal), 0.0); lightScale = clamp(1.0 / dot(u_lightatt0, vec3(1.0, distance, distance*distance)), 0.0, 1.0); diffuse = (u_lightdiffuse0 * color0.rgb) * ldot; ldot = dot(normalize(toLight + vec3(0.0, 0.0, 1.0)), worldnormal); if (ldot > 0.0) lightSum1 += u_lightspecular0 * u_matspecular.rgb * (pow(ldot, u_matspecular.a) * lightScale); lightSum0.rgb += (u_lightambient0 * color0.rgb + diffuse) * lightScale; toLight = u_lightpos1 - worldpos; distance = length(toLight); toLight /= distance; ldot = max(dot(toLight, worldnormal), 0.0); lightScale = clamp(1.0 / dot(u_lightatt1, vec3(1.0, distance, distance*distance)), 0.0, 1.0); diffuse = (u_lightdiffuse1 * color0.rgb) * ldot; ldot = dot(normalize(toLight + vec3(0.0, 0.0, 1.0)), worldnormal); if (ldot > 0.0) lightSum1 += u_lightspecular1 * u_matspecular.rgb * (pow(ldot, u_matspecular.a) * lightScale); lightSum0.rgb += (u_lightambient1 * color0.rgb + diffuse) * lightScale; toLight = u_lightpos2 - worldpos; distance = length(toLight); toLight /= distance; ldot = max(dot(toLight, worldnormal), 0.0); lightScale = clamp(1.0 / dot(u_lightatt2, vec3(1.0, distance, distance*distance)), 0.0, 1.0); diffuse = (u_lightdiffuse2 * color0.rgb) * ldot; ldot = dot(normalize(toLight + vec3(0.0, 0.0, 1.0)), worldnormal); if (ldot > 0.0) lightSum1 += u_lightspecular2 * u_matspecular.rgb * (pow(ldot, u
God of War™: Ghost of Sparta v1.6.3 2022-06-15 Error in shader program link: info: Link Error: Vertex shader is missing. Link Error: Fragment shader is missing. fs: 00000000:01a00802 Tex LM Fog 2x StenToAlpha StenUniform TFuncMod #version 300 es #extension GL_EXT_shader_framebuffer_fetch : require precision lowp float; uniform sampler2D tex; uniform float u_stencilReplaceValue; in vec4 v_color0; in vec3 v_color1; uniform vec3 u_fogcolor; in highp float v_fogdepth; in highp vec3 v_texcoord; inout vec4 fragColor0; void main() { vec4 s = vec4(v_color1, 0.0); vec4 t = texture(tex, v_texcoord.xy); vec4 p = v_color0; vec4 v = vec4(t.rgb * p.rgb, p.a) + s; v.rgb = v.rgb * 2.0; float fogCoef = clamp(v_fogdepth, 0.0, 1.0); v = mix(vec4(u_fogcolor, v.a), v, fogCoef); fragColor0 = vec4(v.rgb, u_stencilReplaceValue); } vs: 01730151:00000b1d HWX C T N LM Fog Tex Light: 0: c:1 t:0 1: c:1 t:1 2: c:1 t:0 MatUp:3 #version 300 es precision highp float; in vec3 position; in mediump vec3 normal; in vec2 texcoord; in lowp vec4 color0; uniform mat4 u_proj; uniform mat4 u_world; uniform mat4 u_view; uniform vec4 u_uvscaleoffset; uniform vec3 u_lightpos0; uniform lowp vec3 u_lightambient0; uniform lowp vec3 u_lightdiffuse0; uniform lowp vec3 u_lightspecular0; uniform vec3 u_lightpos1; uniform mediump vec3 u_lightatt1; uniform lowp vec3 u_lightambient1; uniform lowp vec3 u_lightdiffuse1; uniform lowp vec3 u_lightspecular1; uniform vec3 u_lightpos2; uniform lowp vec3 u_lightambient2; uniform lowp vec3 u_lightdiffuse2; uniform lowp vec3 u_lightspecular2; uniform lowp vec4 u_ambient; uniform lowp vec4 u_matspecular; uniform lowp vec3 u_matemissive; uniform lowp vec4 u_matambientalpha; uniform highp vec2 u_fogcoef; out lowp vec4 v_color0; out lowp vec3 v_color1; out highp vec3 v_texcoord; out highp float v_fogdepth; void main() { vec3 worldpos = (u_world * vec4(position.xyz, 1.0)).xyz; mediump vec3 worldnormal = normalize((u_world * vec4(normal, 0.0)).xyz); vec4 viewPos = u_view * vec4(worldpos, 1.0); gl_Position = u_proj * viewPos; lowp vec4 lightSum0 = u_ambient * color0 + vec4(u_matemissive, 0.0); lowp vec3 lightSum1 = vec3(0.0); vec3 toLight; lowp vec3 diffuse; float distance; lowp float lightScale; mediump float ldot; toLight = u_lightpos0; ldot = max(dot(toLight, worldnormal), 0.0); diffuse = (u_lightdiffuse0 * color0.rgb) * ldot; ldot = dot(normalize(toLight + vec3(0.0, 0.0, 1.0)), worldnormal); if (ldot > 0.0) lightSum1 += u_lightspecular0 * u_matspecular.rgb * (pow(ldot, u_matspecular.a) ); lightSum0.rgb += (u_lightambient0 * color0.rgb + diffuse); toLight = u_lightpos1 - worldpos; distance = length(toLight); toLight /= distance; ldot = max(dot(toLight, worldnormal), 0.0); lightScale = clamp(1.0 / dot(u_lightatt1, vec3(1.0, distance, distance*distance)), 0.0, 1.0); diffuse = (u_lightdiffuse1 * color0.rgb) * ldot; ldot = dot(normalize(toLight + vec3(0.0, 0.0, 1.0)), worldnormal); if (ldot > 0.0) lightSum1 += u_lightspecular1 * u_matspecular.rgb * (pow(ldot, u_matspecular.a) * lightScale); lightSum0.rgb += (u_lightambient1 * color0.rgb + diffuse) * lightScale; toLight = u_lightpos2; ldot = max(dot(toLight, worldnormal), 0.0); diffuse = (u_lightdiffuse2 * color0.rgb) * ldot; ldot = dot(normalize(toLight + vec3(0.0, 0.0, 1.0)), worldnormal); if (ldot > 0.0) lightSum1 += u_lightspecular2 * u_matspecular.rgb * (pow(ldot, u_matspecular.a) ); lightSum0.rgb += (u_lightambient2 * color0.rgb + diffuse); v_color0 = clamp(lightSum0, 0.0, 1.0); v_color1 = clamp(lightSum1, 0.0, 1.0); v_texcoord = vec3(texcoord.xy * u_uvscaleoffset.xy, 0.0); v_fogdepth = (viewPos.z + u_fogcoef.x) * u_fogcoef.y; }
God of War™: Ghost of Sparta v1.6.3 2022-06-15 Error in shader program link: info: Link Error: Vertex shader is missing. Link Error: Fragment shader is missing. fs: 00000000:01a00802 Tex LM Fog 2x StenToAlpha StenUniform TFuncMod #version 300 es #extension GL_EXT_shader_framebuffer_fetch : require precision lowp float; uniform sampler2D tex; uniform float u_stencilReplaceValue; in vec4 v_color0; in vec3 v_color1; uniform vec3 u_fogcolor; in highp float v_fogdepth; in highp vec3 v_texcoord; inout vec4 fragColor0; void main() { vec4 s = vec4(v_color1, 0.0); vec4 t = texture(tex, v_texcoord.xy); vec4 p = v_color0; vec4 v = vec4(t.rgb * p.rgb, p.a) + s; v.rgb = v.rgb * 2.0; float fogCoef = clamp(v_fogdepth, 0.0, 1.0); v = mix(vec4(u_fogcolor, v.a), v, fogCoef); fragColor0 = vec4(v.rgb, u_stencilReplaceValue); } vs: 01130005:00000b1d HWX C T N LM Fog Tex Light: 0: c:1 t:1 MatUp:3 #version 300 es precision highp float; in vec3 position; in mediump vec3 normal; in vec2 texcoord; in lowp vec4 color0; uniform mat4 u_proj; uniform mat4 u_world; uniform mat4 u_view; uniform vec4 u_uvscaleoffset; uniform vec3 u_lightpos0; uniform mediump vec3 u_lightatt0; uniform lowp vec3 u_lightambient0; uniform lowp vec3 u_lightdiffuse0; uniform lowp vec3 u_lightspecular0; uniform lowp vec4 u_ambient; uniform lowp vec4 u_matspecular; uniform lowp vec3 u_matemissive; uniform lowp vec4 u_matambientalpha; uniform highp vec2 u_fogcoef; out lowp vec4 v_color0; out lowp vec3 v_color1; out highp vec3 v_texcoord; out highp float v_fogdepth; void main() { vec3 worldpos = (u_world * vec4(position.xyz, 1.0)).xyz; mediump vec3 worldnormal = normalize((u_world * vec4(normal, 0.0)).xyz); vec4 viewPos = u_view * vec4(worldpos, 1.0); gl_Position = u_proj * viewPos; lowp vec4 lightSum0 = u_ambient * color0 + vec4(u_matemissive, 0.0); lowp vec3 lightSum1 = vec3(0.0); vec3 toLight; lowp vec3 diffuse; float distance; lowp float lightScale; mediump float ldot; toLight = u_lightpos0 - worldpos; distance = length(toLight); toLight /= distance; ldot = max(dot(toLight, worldnormal), 0.0); lightScale = clamp(1.0 / dot(u_lightatt0, vec3(1.0, distance, distance*distance)), 0.0, 1.0); diffuse = (u_lightdiffuse0 * color0.rgb) * ldot; ldot = dot(normalize(toLight + vec3(0.0, 0.0, 1.0)), worldnormal); if (ldot > 0.0) lightSum1 += u_lightspecular0 * u_matspecular.rgb * (pow(ldot, u_matspecular.a) * lightScale); lightSum0.rgb += (u_lightambient0 * color0.rgb + diffuse) * lightScale; v_color0 = clamp(lightSum0, 0.0, 1.0); v_color1 = clamp(lightSum1, 0.0, 1.0); v_texcoord = vec3(texcoord.xy * u_uvscaleoffset.xy, 0.0); v_fogdepth = (viewPos.z + u_fogcoef.x) * u_fogcoef.y; }
God of War™: Ghost of Sparta v1.6.3 2022-06-15 Error in shader program link: info: Link Error: Vertex shader is missing. Link Error: Fragment shader is missing. fs: 00000000:01a0d822 Tex TexAlpha LM Fog 2x StenToAlpha StenUniform TFuncMod AlphaTest > #version 300 es #extension GL_EXT_shader_framebuffer_fetch : require precision lowp float; uniform sampler2D tex; uniform sampler2D testtex; uniform float u_stencilReplaceValue; in vec4 v_color0; in vec3 v_color1; uniform vec3 u_fogcolor; in highp float v_fogdepth; in highp vec3 v_texcoord; inout vec4 fragColor0; void main() { vec4 s = vec4(v_color1, 0.0); vec4 t = texture(tex, v_texcoord.xy); vec4 p = v_color0; vec4 v = p * t + s; float aResult = texture(testtex, vec2(v.a * 0.996094 + 0.001953, 0)).a; if (aResult < 0.5) discard; v.rgb = v.rgb * 2.0; float fogCoef = clamp(v_fogdepth, 0.0, 1.0); v = mix(vec4(u_fogcolor, v.a), v, fogCoef); fragColor0 = vec4(v.rgb, u_stencilReplaceValue); } vs: 01730555:00000f1d HWX C T N LM Fog RevN Tex Light: 0: c:1 t:1 1: c:1 t:1 2: c:1 t:1 MatUp:3 #version 300 es precision highp float; in vec3 position; in mediump vec3 normal; in vec2 texcoord; in lowp vec4 color0; uniform mat4 u_proj; uniform mat4 u_world; uniform mat4 u_view; uniform vec4 u_uvscaleoffset; uniform vec3 u_lightpos0; uniform mediump vec3 u_lightatt0; uniform lowp vec3 u_lightambient0; uniform lowp vec3 u_lightdiffuse0; uniform lowp vec3 u_lightspecular0; uniform vec3 u_lightpos1; uniform mediump vec3 u_lightatt1; uniform lowp vec3 u_lightambient1; uniform lowp vec3 u_lightdiffuse1; uniform lowp vec3 u_lightspecular1; uniform vec3 u_lightpos2; uniform mediump vec3 u_lightatt2; uniform lowp vec3 u_lightambient2; uniform lowp vec3 u_lightdiffuse2; uniform lowp vec3 u_lightspecular2; uniform lowp vec4 u_ambient; uniform lowp vec4 u_matspecular; uniform lowp vec3 u_matemissive; uniform lowp vec4 u_matambientalpha; uniform highp vec2 u_fogcoef; out lowp vec4 v_color0; out lowp vec3 v_color1; out highp vec3 v_texcoord; out highp float v_fogdepth; void main() { vec3 worldpos = (u_world * vec4(position.xyz, 1.0)).xyz; mediump vec3 worldnormal = normalize((u_world * vec4(-normal, 0.0)).xyz); vec4 viewPos = u_view * vec4(worldpos, 1.0); gl_Position = u_proj * viewPos; lowp vec4 lightSum0 = u_ambient * color0 + vec4(u_matemissive, 0.0); lowp vec3 lightSum1 = vec3(0.0); vec3 toLight; lowp vec3 diffuse; float distance; lowp float lightScale; mediump float ldot; toLight = u_lightpos0 - worldpos; distance = length(toLight); toLight /= distance; ldot = max(dot(toLight, worldnormal), 0.0); lightScale = clamp(1.0 / dot(u_lightatt0, vec3(1.0, distance, distance*distance)), 0.0, 1.0); diffuse = (u_lightdiffuse0 * color0.rgb) * ldot; ldot = dot(normalize(toLight + vec3(0.0, 0.0, 1.0)), worldnormal); if (ldot > 0.0) lightSum1 += u_lightspecular0 * u_matspecular.rgb * (pow(ldot, u_matspecular.a) * lightScale); lightSum0.rgb += (u_lightambient0 * color0.rgb + diffuse) * lightScale; toLight = u_lightpos1 - worldpos; distance = length(toLight); toLight /= distance; ldot = max(dot(toLight, worldnormal), 0.0); lightScale = clamp(1.0 / dot(u_lightatt1, vec3(1.0, distance, distance*distance)), 0.0, 1.0); diffuse = (u_lightdiffuse1 * color0.rgb) * ldot; ldot = dot(normalize(toLight + vec3(0.0, 0.0, 1.0)), worldnormal); if (ldot > 0.0) lightSum1 += u_lightspecular1 * u_matspecular.rgb * (pow(ldot, u_matspecular.a) * lightScale); lightSum0.rgb += (u_lightambient1 * color0.rgb + diffuse) * lightScale; toLight = u_lightpos2 - worldpos; distance = length(toLight); toLight /= distance; ldot = max(dot(toLight, worldnormal), 0.0); lightScale = clamp(1.0 / dot(u_lightatt2, vec3(1.0, distance, distance*distance)), 0.0, 1.0); diffuse = (u_lightdiffuse2 * color0.rgb) * ldot; ldot = dot(normalize(toLight + vec3(0.0, 0.0, 1.0)), worldnormal); if (ldot > 0.0) lightSum1 += u_lightspecular2 * u_matspecular.rgb * (pow(ldot, u_matspecular.a) * lightScale); lightSum0.rgb += (u_lightambient2 * color0.rgb + diffuse) * lightScale; v_color0 = clamp(lightSum0,
God of War™: Ghost of Sparta v1.6.3 2022-06-15 Error in shader program link: info: Link Error: Vertex shader is missing. Link Error: Fragment shader is missing. fs: 00000000:01a00802 Tex LM Fog 2x StenToAlpha StenUniform TFuncMod #version 300 es #extension GL_EXT_shader_framebuffer_fetch : require precision lowp float; uniform sampler2D tex; uniform float u_stencilReplaceValue; in vec4 v_color0; in vec3 v_color1; uniform vec3 u_fogcolor; in highp float v_fogdepth; in highp vec3 v_texcoord; inout vec4 fragColor0; void main() { vec4 s = vec4(v_color1, 0.0); vec4 t = texture(tex, v_texcoord.xy); vec4 p = v_color0; vec4 v = vec4(t.rgb * p.rgb, p.a) + s; v.rgb = v.rgb * 2.0; float fogCoef = clamp(v_fogdepth, 0.0, 1.0); v = mix(vec4(u_fogcolor, v.a), v, fogCoef); fragColor0 = vec4(v.rgb, u_stencilReplaceValue); } vs: 01730555:00000b1d HWX C T N LM Fog Tex Light: 0: c:1 t:1 1: c:1 t:1 2: c:1 t:1 MatUp:3 #version 300 es precision highp float; in vec3 position; in mediump vec3 normal; in vec2 texcoord; in lowp vec4 color0; uniform mat4 u_proj; uniform mat4 u_world; uniform mat4 u_view; uniform vec4 u_uvscaleoffset; uniform vec3 u_lightpos0; uniform mediump vec3 u_lightatt0; uniform lowp vec3 u_lightambient0; uniform lowp vec3 u_lightdiffuse0; uniform lowp vec3 u_lightspecular0; uniform vec3 u_lightpos1; uniform mediump vec3 u_lightatt1; uniform lowp vec3 u_lightambient1; uniform lowp vec3 u_lightdiffuse1; uniform lowp vec3 u_lightspecular1; uniform vec3 u_lightpos2; uniform mediump vec3 u_lightatt2; uniform lowp vec3 u_lightambient2; uniform lowp vec3 u_lightdiffuse2; uniform lowp vec3 u_lightspecular2; uniform lowp vec4 u_ambient; uniform lowp vec4 u_matspecular; uniform lowp vec3 u_matemissive; uniform lowp vec4 u_matambientalpha; uniform highp vec2 u_fogcoef; out lowp vec4 v_color0; out lowp vec3 v_color1; out highp vec3 v_texcoord; out highp float v_fogdepth; void main() { vec3 worldpos = (u_world * vec4(position.xyz, 1.0)).xyz; mediump vec3 worldnormal = normalize((u_world * vec4(normal, 0.0)).xyz); vec4 viewPos = u_view * vec4(worldpos, 1.0); gl_Position = u_proj * viewPos; lowp vec4 lightSum0 = u_ambient * color0 + vec4(u_matemissive, 0.0); lowp vec3 lightSum1 = vec3(0.0); vec3 toLight; lowp vec3 diffuse; float distance; lowp float lightScale; mediump float ldot; toLight = u_lightpos0 - worldpos; distance = length(toLight); toLight /= distance; ldot = max(dot(toLight, worldnormal), 0.0); lightScale = clamp(1.0 / dot(u_lightatt0, vec3(1.0, distance, distance*distance)), 0.0, 1.0); diffuse = (u_lightdiffuse0 * color0.rgb) * ldot; ldot = dot(normalize(toLight + vec3(0.0, 0.0, 1.0)), worldnormal); if (ldot > 0.0) lightSum1 += u_lightspecular0 * u_matspecular.rgb * (pow(ldot, u_matspecular.a) * lightScale); lightSum0.rgb += (u_lightambient0 * color0.rgb + diffuse) * lightScale; toLight = u_lightpos1 - worldpos; distance = length(toLight); toLight /= distance; ldot = max(dot(toLight, worldnormal), 0.0); lightScale = clamp(1.0 / dot(u_lightatt1, vec3(1.0, distance, distance*distance)), 0.0, 1.0); diffuse = (u_lightdiffuse1 * color0.rgb) * ldot; ldot = dot(normalize(toLight + vec3(0.0, 0.0, 1.0)), worldnormal); if (ldot > 0.0) lightSum1 += u_lightspecular1 * u_matspecular.rgb * (pow(ldot, u_matspecular.a) * lightScale); lightSum0.rgb += (u_lightambient1 * color0.rgb + diffuse) * lightScale; toLight = u_lightpos2 - worldpos; distance = length(toLight); toLight /= distance; ldot = max(dot(toLight, worldnormal), 0.0); lightScale = clamp(1.0 / dot(u_lightatt2, vec3(1.0, distance, distance*distance)), 0.0, 1.0); diffuse = (u_lightdiffuse2 * color0.rgb) * ldot; ldot = dot(normalize(toLight + vec3(0.0, 0.0, 1.0)), worldnormal); if (ldot > 0.0) lightSum1 += u_lightspecular2 * u_matspecular.rgb * (pow(ldot, u_matspecular.a) * lightScale); lightSum0.rgb += (u_lightambient2 * color0.rgb + diffuse) * lightScale; v_color0 = clamp(lightSum0, 0.0, 1.0); v_color1 = clamp(lightSum1, 0.0, 1.0); v_texcoord = vec3(texcoord.xy * u_uvscaleoffset.xy, 0.0); v_fogdepth = (viewPos.z