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.9.3-80-g73bf6098e 2020-01-26 __KernelStopThread: thread 2203 does not exist
God of War®: Ghost of Sparta v1.9.3 2020-01-26 Error in shader compilation: info: 0:1: F0002: Mali-400 GP register allocation failed for vertex shader. Please contact [email protected] with the shader causing the problem, along with this error message. Mali online shader compiler r6p0-01rel1 [Revision 96995]. 01f34551:00000b1d HWX C T N LM Fog Tex Light: 0: c:1 t:0 1: c:1 t:1 2: c:1 t:1 3: c:0 t:1 MatUp:3 #version 100 precision highp float; attribute vec3 position; attribute mediump vec3 normal; attribute vec2 texcoord; attribute 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 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; uniform highp vec4 u_cullRangeMin; uniform highp vec4 u_cullRangeMax; varying lowp vec4 v_color0; varying lowp vec3 v_color1; varying mediump vec3 v_texcoord; varying mediump 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); vec4 outPos = 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 = dot(toLight, worldnormal); diffuse = (u_lightdiffuse0 * color0.rgb) * max(ldot, 0.0); if (ldot >= 0.0) { ldot = dot(normalize(toLight + vec3(0.0, 0.0, 1.0)), worldnormal); if (u_matspecular.a == 0.0) { ldot = 1.0; } else { ldot = pow(max(ldot, 0.0), u_matspecular.a); } if (ldot > 0.0) lightSum1 += u_lightspecular0 * u_matspecular.rgb * ldot ; } lightSum0.rgb += (u_lightambient0 * color0.rgb + diffuse); toLight = u_lightpos1 - worldpos; distance = length(toLight); toLight /= distance; ldot = dot(toLight, worldnormal); lightScale = clamp(1.0 / dot(u_lightatt1, vec3(1.0, distance, distance*distance)), 0.0, 1.0); diffuse = (u_lightdiffuse1 * color0.rgb) * max(ldot, 0.0); if (ldot >= 0.0) { ldot = dot(normalize(toLight + vec3(0.0, 0.0, 1.0)), worldnormal); if (u_matspecular.a == 0.0) { ldot = 1.0; } else { ldot = pow(max(ldot, 0.0), u_matspecular.a); } if (ldot > 0.0) lightSum1 += u_lightspecular1 * u_matspecular.rgb * ldot * lightScale; } lightSum0.rgb += (u_lightambient1 * color0.rgb + diffuse) * lightScale; toLight = u_lightpos2 - worldpos; distance = length(toLight); toLight /= distance; ldot = dot(toLight, worldnormal); lightScale = clamp(1.0 / dot(u_lightatt2, vec3(1.0, distance, distance*distance)), 0.0, 1.0); diffuse = (u_lightdiffuse2 * color0.rgb) * max(ldot, 0.0); if (ldot >= 0.0) { ldot = dot(normalize(toLight + vec3(0.0, 0.0, 1.0)), worldnormal); if (u_matspecular.a == 0.0) { ldot = 1.0; } else { ldot = pow(max(ldot, 0.0), u_matspecular.a); } if (ldot > 0.0) lightSum1 += u_lightspecular2 * u_matspecular.rgb * ldot * lightScale; } lightSum0.rgb += (u_lightambient2 * color0.rgb + diffuse) * lightScale; toLight = u_lightpos3 - worldpos; distance = length(toLight); toLight /= distance; ldot = dot(toLight, worldnormal); lightScale = clamp(1.0 / dot(u_lightatt3, vec3(1.0, distance, distance*distance)), 0.0, 1.0); diffuse = (u_l
God of War®: Ghost of Sparta v1.9.3 2020-01-26 Error in shader compilation: info: 0:1: F0002: Mali-400 GP register allocation failed for vertex shader. Please contact [email protected] with the shader causing the problem, along with this error message. Mali online shader compiler r6p0-01rel1 [Revision 96995]. 01f34551:00000f1d HWX C T N LM Fog RevN Tex Light: 0: c:1 t:0 1: c:1 t:1 2: c:1 t:1 3: c:0 t:1 MatUp:3 #version 100 precision highp float; attribute vec3 position; attribute mediump vec3 normal; attribute vec2 texcoord; attribute 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 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; uniform highp vec4 u_cullRangeMin; uniform highp vec4 u_cullRangeMax; varying lowp vec4 v_color0; varying lowp vec3 v_color1; varying mediump vec3 v_texcoord; varying mediump 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); vec4 outPos = 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 = dot(toLight, worldnormal); diffuse = (u_lightdiffuse0 * color0.rgb) * max(ldot, 0.0); if (ldot >= 0.0) { ldot = dot(normalize(toLight + vec3(0.0, 0.0, 1.0)), worldnormal); if (u_matspecular.a == 0.0) { ldot = 1.0; } else { ldot = pow(max(ldot, 0.0), u_matspecular.a); } if (ldot > 0.0) lightSum1 += u_lightspecular0 * u_matspecular.rgb * ldot ; } lightSum0.rgb += (u_lightambient0 * color0.rgb + diffuse); toLight = u_lightpos1 - worldpos; distance = length(toLight); toLight /= distance; ldot = dot(toLight, worldnormal); lightScale = clamp(1.0 / dot(u_lightatt1, vec3(1.0, distance, distance*distance)), 0.0, 1.0); diffuse = (u_lightdiffuse1 * color0.rgb) * max(ldot, 0.0); if (ldot >= 0.0) { ldot = dot(normalize(toLight + vec3(0.0, 0.0, 1.0)), worldnormal); if (u_matspecular.a == 0.0) { ldot = 1.0; } else { ldot = pow(max(ldot, 0.0), u_matspecular.a); } if (ldot > 0.0) lightSum1 += u_lightspecular1 * u_matspecular.rgb * ldot * lightScale; } lightSum0.rgb += (u_lightambient1 * color0.rgb + diffuse) * lightScale; toLight = u_lightpos2 - worldpos; distance = length(toLight); toLight /= distance; ldot = dot(toLight, worldnormal); lightScale = clamp(1.0 / dot(u_lightatt2, vec3(1.0, distance, distance*distance)), 0.0, 1.0); diffuse = (u_lightdiffuse2 * color0.rgb) * max(ldot, 0.0); if (ldot >= 0.0) { ldot = dot(normalize(toLight + vec3(0.0, 0.0, 1.0)), worldnormal); if (u_matspecular.a == 0.0) { ldot = 1.0; } else { ldot = pow(max(ldot, 0.0), u_matspecular.a); } if (ldot > 0.0) lightSum1 += u_lightspecular2 * u_matspecular.rgb * ldot * lightScale; } lightSum0.rgb += (u_lightambient2 * color0.rgb + diffuse) * lightScale; toLight = u_lightpos3 - worldpos; distance = length(toLight); toLight /= distance; ldot = dot(toLight, worldnormal); lightScale = clamp(1.0 / dot(u_lightatt3, vec3(1.0, distance, distance*distance)), 0.0, 1.0); diffuse
God of War®: Ghost of Sparta v1.9.3 2020-01-26 Error in shader compilation: info: 0:1: F0002: Mali-400 GP register allocation failed for vertex shader. Please contact [email protected] with the shader causing the problem, along with this error message. Mali online shader compiler r6p0-01rel1 [Revision 96995]. 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 100 precision highp float; attribute vec3 position; attribute mediump vec3 normal; attribute vec2 texcoord; attribute 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; uniform highp vec4 u_cullRangeMin; uniform highp vec4 u_cullRangeMax; varying lowp vec4 v_color0; varying lowp vec3 v_color1; varying mediump vec3 v_texcoord; varying mediump 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); vec4 outPos = 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 = dot(toLight, worldnormal); diffuse = (u_lightdiffuse0 * color0.rgb) * max(ldot, 0.0); if (ldot >= 0.0) { ldot = dot(normalize(toLight + vec3(0.0, 0.0, 1.0)), worldnormal); if (u_matspecular.a == 0.0) { ldot = 1.0; } else { ldot = pow(max(ldot, 0.0), u_matspecular.a); } if (ldot > 0.0) lightSum1 += u_lightspecular0 * u_matspecular.rgb * ldot ; } lightSum0.rgb += (u_lightambient0 * color0.rgb + diffuse); toLight = u_lightpos1 - worldpos; distance = length(toLight); toLight /= distance; ldot = dot(toLight, worldnormal); lightScale = clamp(1.0 / dot(u_lightatt1, vec3(1.0, distance, distance*distance)), 0.0, 1.0); diffuse = (u_lightdiffuse1 * color0.rgb) * max(ldot, 0.0); if (ldot >= 0.0) { ldot = dot(normalize(toLight + vec3(0.0, 0.0, 1.0)), worldnormal); if (u_matspecular.a == 0.0) { ldot = 1.0; } else { ldot = pow(max(ldot, 0.0), u_matspecular.a); } if (ldot > 0.0) lightSum1 += u_lightspecular1 * u_matspecular.rgb * ldot * lightScale; } lightSum0.rgb += (u_lightambient1 * color0.rgb + diffuse) * lightScale; toLight = u_lightpos2; ldot = dot(toLight, worldnormal); diffuse = (u_lightdiffuse2 * color0.rgb) * max(ldot, 0.0); if (ldot >= 0.0) { ldot = dot(normalize(toLight + vec3(0.0, 0.0, 1.0)), worldnormal); if (u_matspecular.a == 0.0) { ldot = 1.0; } else { ldot = pow(max(ldot, 0.0), u_matspecular.a); } if (ldot > 0.0) lightSum1 += u_lightspecular2 * u_matspecular.rgb * ldot ; } lightSum0.rgb += (u_lightambient2 * color0.rgb + diffuse); toLight = u_lightpos3 - worldpos; distance = length(toLight); toLight /= distance; ldot = dot(toLight, worldnormal); lightScale = clamp(1.0 / dot(u_lightatt3, vec3(1.0, distance, distance*distance)), 0.0, 1.0); diffuse = (u_lightdiffuse3 * color0.rgb) * max(ldot, 0.0); 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
God of War®: Ghost of Sparta v1.9.3 2020-01-26 Error in shader compilation: info: 0:1: F0002: Mali-400 GP register allocation failed for vertex shader. Please contact [email protected] with the shader causing the problem, along with this error message. Mali online shader compiler r6p0-01rel1 [Revision 96995]. 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 100 precision highp float; attribute vec3 position; attribute mediump vec3 normal; attribute vec2 texcoord; attribute 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; uniform highp vec4 u_cullRangeMin; uniform highp vec4 u_cullRangeMax; varying lowp vec4 v_color0; varying lowp vec3 v_color1; varying mediump vec3 v_texcoord; varying mediump 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); vec4 outPos = 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 = dot(toLight, worldnormal); diffuse = (u_lightdiffuse0 * color0.rgb) * max(ldot, 0.0); if (ldot >= 0.0) { ldot = dot(normalize(toLight + vec3(0.0, 0.0, 1.0)), worldnormal); if (u_matspecular.a == 0.0) { ldot = 1.0; } else { ldot = pow(max(ldot, 0.0), u_matspecular.a); } if (ldot > 0.0) lightSum1 += u_lightspecular0 * u_matspecular.rgb * ldot ; } lightSum0.rgb += (u_lightambient0 * color0.rgb + diffuse); toLight = u_lightpos1 - worldpos; distance = length(toLight); toLight /= distance; ldot = dot(toLight, worldnormal); lightScale = clamp(1.0 / dot(u_lightatt1, vec3(1.0, distance, distance*distance)), 0.0, 1.0); diffuse = (u_lightdiffuse1 * color0.rgb) * max(ldot, 0.0); if (ldot >= 0.0) { ldot = dot(normalize(toLight + vec3(0.0, 0.0, 1.0)), worldnormal); if (u_matspecular.a == 0.0) { ldot = 1.0; } else { ldot = pow(max(ldot, 0.0), u_matspecular.a); } if (ldot > 0.0) lightSum1 += u_lightspecular1 * u_matspecular.rgb * ldot * lightScale; } lightSum0.rgb += (u_lightambient1 * color0.rgb + diffuse) * lightScale; toLight = u_lightpos2; ldot = dot(toLight, worldnormal); diffuse = (u_lightdiffuse2 * color0.rgb) * max(ldot, 0.0); if (ldot >= 0.0) { ldot = dot(normalize(toLight + vec3(0.0, 0.0, 1.0)), worldnormal); if (u_matspecular.a == 0.0) { ldot = 1.0; } else { ldot = pow(max(ldot, 0.0), u_matspecular.a); } if (ldot > 0.0) lightSum1 += u_lightspecular2 * u_matspecular.rgb * ldot ; } lightSum0.rgb += (u_lightambient2 * color0.rgb + diffuse); toLight = u_lightpos3 - worldpos; distance = length(toLight); toLight /= distance; ldot = dot(toLight, worldnormal); lightScale = clamp(1.0 / dot(u_lightatt3, vec3(1.0, distance, distance*distance)), 0.0, 1.0); diffuse = (u_lightdiffuse3 * color0.rgb) * max(ldot, 0.0); 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
God of War®: Ghost of Sparta v1.6.3-492-g9fddfff66 2020-01-25 Error in shader program link: info: Link failed because of missing vertex shader. fs: 00002a82:000007a2 Tex TexAlpha TexOffs TClampST ReplaceBlend_2A:10_B:10_Eq:0 TFuncMod #version 300 es #extension GL_ARM_shader_framebuffer_fetch : require precision lowp float; uniform sampler2D tex; uniform vec3 u_blendFixA; uniform vec3 u_blendFixB; uniform vec4 u_texclamp; uniform vec2 u_texclampoff; in vec4 v_color0; in mediump vec3 v_texcoord; out vec4 fragColor0; void main() { vec2 fixedcoord = vec2((clamp(v_texcoord.x, u_texclamp.z, u_texclamp.x - u_texclamp.z) + u_texclampoff.x), (clamp(v_texcoord.y, u_texclamp.w, u_texclamp.y - u_texclamp.w) + u_texclampoff.y)); vec4 t = texture(tex, fixedcoord.xy); vec4 p = v_color0; vec4 v = p * t; v.rgb = v.rgb * u_blendFixA; 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 mediump vec3 v_texcoord; void main() { v_texcoord = vec3(texcoord, 1.0); v_color0 = color0; vec4 outPos = u_proj_through * vec4(position.xyz, 1.0); gl_Position = outPos; }
God of War®: Ghost of Sparta v1.6.3-492-g9fddfff66 2020-01-25 Error in shader program link: info: Link failed because of missing vertex shader. fs: 00000000:000007a2 Tex TexAlpha TexOffs TClampST TFuncMod #version 300 es #extension GL_ARM_shader_framebuffer_fetch : require precision lowp float; uniform sampler2D tex; uniform vec4 u_texclamp; uniform vec2 u_texclampoff; in vec4 v_color0; in mediump vec3 v_texcoord; out vec4 fragColor0; void main() { vec2 fixedcoord = vec2((clamp(v_texcoord.x, u_texclamp.z, u_texclamp.x - u_texclamp.z) + u_texclampoff.x), (clamp(v_texcoord.y, u_texclamp.w, u_texclamp.y - u_texclamp.w) + u_texclampoff.y)); vec4 t = texture(tex, fixedcoord.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 mediump vec3 v_texcoord; void main() { v_texcoord = vec3(texcoord, 1.0); v_color0 = color0; vec4 outPos = u_proj_through * vec4(position.xyz, 1.0); gl_Position = outPos; }
God of War®: Ghost of Sparta v1.6.3-492-g9fddfff66 2020-01-25 Error in shader program link: info: Link failed because of missing vertex shader. fs: 00000000:000003a2 Tex TexAlpha TClampST TFuncMod #version 300 es #extension GL_ARM_shader_framebuffer_fetch : require precision lowp float; uniform sampler2D tex; uniform vec4 u_texclamp; in vec4 v_color0; in mediump vec3 v_texcoord; out vec4 fragColor0; void main() { vec2 fixedcoord = vec2(clamp(v_texcoord.x, u_texclamp.z, u_texclamp.x - u_texclamp.z), clamp(v_texcoord.y, u_texclamp.w, u_texclamp.y - u_texclamp.w)); vec4 t = texture(tex, fixedcoord.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 mediump vec3 v_texcoord; void main() { v_texcoord = vec3(texcoord, 1.0); v_color0 = color0; vec4 outPos = u_proj_through * vec4(position.xyz, 1.0); gl_Position = outPos; }
God of War®: Ghost of Sparta v1.6.3-492-g9fddfff66 2020-01-25 Error in shader program link: info: Link failed because of missing vertex shader. fs: 00000000:008053a2 Tex TexAlpha 2x TClampST TFuncMod AlphaTest == #version 300 es #extension GL_ARM_shader_framebuffer_fetch : require precision lowp float; uniform sampler2D tex; uniform vec4 u_texclamp; uniform sampler2D testtex; in vec4 v_color0; in mediump vec3 v_texcoord; out vec4 fragColor0; void main() { vec2 fixedcoord = vec2(clamp(v_texcoord.x, u_texclamp.z, u_texclamp.x - u_texclamp.z), clamp(v_texcoord.y, u_texclamp.w, u_texclamp.y - u_texclamp.w)); vec4 t = texture(tex, fixedcoord.xy); vec4 p = v_color0; vec4 v = p * t; v.rgb = clamp(v.rgb * 2.0, 0.0, 1.0); float aResult = texture(testtex, vec2(v.a * 0.996094 + 0.001953, 0)).a; if (aResult < 0.5) discard; 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 mediump vec3 v_texcoord; void main() { v_texcoord = vec3(texcoord, 1.0); v_color0 = color0; vec4 outPos = u_proj_through * vec4(position.xyz, 1.0); gl_Position = outPos; }
God of War®: Ghost of Sparta v1.6.3-492-g9fddfff66 2020-01-25 Error in shader program link: info: Link failed because of missing vertex shader. fs: 00000000:00800382 Tex 2x TClampST TFuncMod #version 300 es #extension GL_ARM_shader_framebuffer_fetch : require precision lowp float; uniform sampler2D tex; uniform vec4 u_texclamp; in vec4 v_color0; in mediump vec3 v_texcoord; out vec4 fragColor0; void main() { vec2 fixedcoord = vec2(clamp(v_texcoord.x, u_texclamp.z, u_texclamp.x - u_texclamp.z), clamp(v_texcoord.y, 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.rgb, p.a); v.rgb = clamp(v.rgb * 2.0, 0.0, 1.0); 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 mediump vec3 v_texcoord; void main() { v_texcoord = vec3(texcoord, 1.0); v_color0 = color0; vec4 outPos = u_proj_through * vec4(position.xyz, 1.0); gl_Position = outPos; }
God of War®: Ghost of Sparta v1.6.3-492-g9fddfff66 2020-01-24 WriteToHardware: Invalid address 000310dc near PC 08a4f598 LR 08a4f598
God of War®: Ghost of Sparta v1.9.3-80-g73bf6098e 2020-01-23 __KernelStopThread: thread 316 does not exist
God of War®: Ghost of Sparta v1.9.3-80-g73bf6098e 2020-01-26 __KernelStopThread: thread 346 does not exist
God of War®: Ghost of Sparta v1.9.3-80-g73bf6098e 2020-01-23 __KernelStopThread: thread 347 does not exist
God of War®: Ghost of Sparta v1.9.3-80-g73bf6098e 2020-01-23 __KernelStopThread: thread 365 does not exist
God of War®: Ghost of Sparta v1.9.3-80-g73bf6098e 2020-01-22 __KernelStopThread: thread 363 does not exist
God of War®: Ghost of Sparta v1.9.3-80-g73bf6098e 2020-01-22 __KernelStopThread: thread 351 does not exist
God of War®: Ghost of Sparta v1.9.3-80-g73bf6098e 2020-01-22 __KernelStopThread: thread 352 does not exist
God of War®: Ghost of Sparta v1.9.3-80-g73bf6098e 2020-01-22 __KernelStopThread: thread 356 does not exist
God of War®: Ghost of Sparta v1.6.3-492-g9fddfff66 2020-01-22 Error in shader program link: info: (unknown reason) fs: 00000000:00a00822 Tex TexAlpha LM Fog 2x TFuncMod #version 300 es precision lowp float; uniform sampler2D tex; in vec4 v_color0; in vec3 v_color1; uniform vec3 u_fogcolor; in mediump float v_fogdepth; in mediump vec3 v_texcoord; out 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 = clamp(v.rgb * 2.0, 0.0, 1.0); float fogCoef = clamp(v_fogdepth, 0.0, 1.0); v = mix(vec4(u_fogcolor, v.a), v, fogCoef); fragColor0 = v; } 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; uniform highp vec4 u_cullRangeMin; uniform highp vec4 u_cullRangeMax; out lowp vec4 v_color0; out lowp vec3 v_color1; out mediump vec3 v_texcoord; out mediump 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); vec4 outPos = 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.xy * u_uvscaleoffset.xy, 0.0); v_fogdepth = (viewPos.z + u_fogcoef.x) * u_fogcoef.y; vec3 projPos = outPos.xyz / outPos.w;
God of War®: Ghost of Sparta v1.6.3-492-g9fddfff66 2020-01-22 Error in shader program link: info: (unknown reason) fs: 00000000:00a00822 Tex TexAlpha LM Fog 2x TFuncMod #version 300 es precision lowp float; uniform sampler2D tex; in vec4 v_color0; in vec3 v_color1; uniform vec3 u_fogcolor; in mediump float v_fogdepth; in mediump vec3 v_texcoord; out 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 = clamp(v.rgb * 2.0, 0.0, 1.0); float fogCoef = clamp(v_fogdepth, 0.0, 1.0); v = mix(vec4(u_fogcolor, v.a), v, fogCoef); fragColor0 = v; } vs: 01710404:00000b1d HWX C T N LM Fog Tex Light: 0: c:0 t:1 1: c:0 t:0 2: 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 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 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; uniform highp vec4 u_cullRangeMin; uniform highp vec4 u_cullRangeMax; out lowp vec4 v_color0; out lowp vec3 v_color1; out mediump vec3 v_texcoord; out mediump 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); vec4 outPos = 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 * u_matdiffuse) * ldot; lightSum0.rgb += (u_lightambient0 * color0.rgb + diffuse) * lightScale; 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; 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; vec3 projPos = outPos.xyz / outPos.w; if (u_cullRangeMin.w <= 0.0f || (projPos.z >= u_cullRangeMin.z && projPos.z <= u_cullRangeMax.z)) { if (projPos.x < u_cullRangeMin.x || projPos.y < u_cullRangeMin.y || projPos.z < u_cullRangeMin.z || projPos.x > u_cullRangeMax.x || projPos.y > u_cullRangeMax.y || projPos.z > u_cullRangeMax.z) { outPos.w = u_cullRangeMax.w; } } gl_Position = outPos; }
God of War®: Ghost of Sparta v1.6.3-492-g9fddfff66 2020-01-22 Error in shader program link: info: (unknown reason) fs: 00000000:00400f8e Tex TexProj TexOffs LM TClampST TFuncRepl #version 300 es precision lowp float; uniform sampler2D tex; uniform vec4 u_texclamp; uniform vec2 u_texclampoff; in vec4 v_color0; in vec3 v_color1; in mediump vec3 v_texcoord; out vec4 fragColor0; 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; uniform highp vec4 u_cullRangeMin; uniform highp vec4 u_cullRangeMax; out lowp vec4 v_color0; out lowp vec3 v_color1; out mediump 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); vec4 outPos = 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); vec3 projPos = outPos.xyz / outPos.w; if (u_cullRangeMin.w <= 0.0f || (projPos.z >= u_cullRangeMin.z && projPos.z <= u_cullRangeMax.z)) { if (projPos.x < u_cullRangeMin.x || projPos.y < u_cullRangeMin.y || projPos.z < u_cullRangeMin.z || projPos.x > u_cullRangeMax.x || projPos.y > u_cullRangeMax.y || projPos.z > u_cullRangeMax.z) { outPos.w = u_cullRangeMax.w; } } gl_Position = outPos; }
God of War®: Ghost of Sparta v1.6.3-492-g9fddfff66 2020-01-22 Error in shader program link: info: (unknown reason) fs: 00000000:00a00822 Tex TexAlpha LM Fog 2x TFuncMod #version 300 es precision lowp float; uniform sampler2D tex; in vec4 v_color0; in vec3 v_color1; uniform vec3 u_fogcolor; in mediump float v_fogdepth; in mediump vec3 v_texcoord; out 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 = clamp(v.rgb * 2.0, 0.0, 1.0); float fogCoef = clamp(v_fogdepth, 0.0, 1.0); v = mix(vec4(u_fogcolor, v.a), v, fogCoef); fragColor0 = v; } vs: 01130001:00000b1d HWX C T N LM Fog Tex Light: 0: 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 lowp vec4 u_ambient; uniform lowp vec4 u_matspecular; uniform lowp vec3 u_matemissive; uniform lowp vec4 u_matambientalpha; uniform highp vec2 u_fogcoef; uniform highp vec4 u_cullRangeMin; uniform highp vec4 u_cullRangeMax; out lowp vec4 v_color0; out lowp vec3 v_color1; out mediump vec3 v_texcoord; out mediump 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); vec4 outPos = 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); 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; vec3 projPos = outPos.xyz / outPos.w; if (u_cullRangeMin.w <= 0.0f || (projPos.z >= u_cullRangeMin.z && projPos.z <= u_cullRangeMax.z)) { if (projPos.x < u_cullRangeMin.x || projPos.y < u_cullRangeMin.y || projPos.z < u_cullRangeMin.z || projPos.x > u_cullRangeMax.x || projPos.y > u_cullRangeMax.y || projPos.z > u_cullRangeMax.z) { outPos.w = u_cullRangeMax.w; } } gl_Position = outPos; }
God of War®: Ghost of Sparta v1.6.3-492-g9fddfff66 2020-01-22 Error in shader program link: info: (unknown reason) fs: 00000000:00a00822 Tex TexAlpha LM Fog 2x TFuncMod #version 300 es precision lowp float; uniform sampler2D tex; in vec4 v_color0; in vec3 v_color1; uniform vec3 u_fogcolor; in mediump float v_fogdepth; in mediump vec3 v_texcoord; out 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 = clamp(v.rgb * 2.0, 0.0, 1.0); float fogCoef = clamp(v_fogdepth, 0.0, 1.0); v = mix(vec4(u_fogcolor, v.a), v, fogCoef); fragColor0 = v; } vs: 01730551:00000b1d HWX C T N LM Fog Tex Light: 0: c:1 t:0 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 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; uniform highp vec4 u_cullRangeMin; uniform highp vec4 u_cullRangeMax; out lowp vec4 v_color0; out lowp vec3 v_color1; out mediump vec3 v_texcoord; out mediump 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); vec4 outPos = 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 - 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; vec3 projPos = outPos.xyz / outPos.w; if (u_cullRangeMin.w <= 0.0f || (projPos.z >= u_cullRangeMin.z && projPos.z <= u_cullRangeMax.z)) { if (projPos.x < u_cullRangeMin.x || projPos.y < u_cullRangeMin.y || projPos.z < u_cullRangeMin.z || projPos.x > u_cullRangeMax.x || projPos.y > u_cullRangeMax.y || projPo
God of War®: Ghost of Sparta v1.6.3-492-g9fddfff66 2020-01-22 Error in shader program link: info: (unknown reason) fs: 00000000:01a0d822 Tex TexAlpha LM Fog 2x StenToAlpha StenUniform TFuncMod AlphaTest > #version 300 es 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 mediump float v_fogdepth; in mediump vec3 v_texcoord; out 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 = clamp(v.rgb * 2.0, 0.0, 1.0); float fogCoef = clamp(v_fogdepth, 0.0, 1.0); v = mix(vec4(u_fogcolor, v.a), v, fogCoef); float aResult = texture(testtex, vec2(v.a * 0.996094 + 0.001953, 0)).a; if (aResult < 0.5) discard; fragColor0 = vec4(v.rgb, u_stencilReplaceValue); } vs: 01f34551:00000f1d HWX C T N LM Fog RevN Tex Light: 0: c:1 t:0 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 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; uniform highp vec4 u_cullRangeMin; uniform highp vec4 u_cullRangeMax; out lowp vec4 v_color0; out lowp vec3 v_color1; out mediump vec3 v_texcoord; out mediump 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); vec4 outPos = 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 - 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-492-g9fddfff66 2020-01-22 Error in shader program link: info: (unknown reason) fs: 00000000:00a1d822 Tex TexAlpha LM Fog 2x TFuncMod AlphaTest0 > #version 300 es precision lowp float; uniform sampler2D tex; uniform sampler2D testtex; in vec4 v_color0; in vec3 v_color1; uniform vec3 u_fogcolor; in mediump float v_fogdepth; in mediump vec3 v_texcoord; out 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 = clamp(v.rgb * 2.0, 0.0, 1.0); float fogCoef = clamp(v_fogdepth, 0.0, 1.0); v = mix(vec4(u_fogcolor, v.a), v, fogCoef); if (v.a < 0.002) discard; fragColor0 = v; } vs: 01730111:00000b1d HWX C T N LM Fog Tex 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 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; uniform highp vec2 u_fogcoef; uniform highp vec4 u_cullRangeMin; uniform highp vec4 u_cullRangeMax; out lowp vec4 v_color0; out lowp vec3 v_color1; out mediump vec3 v_texcoord; out mediump 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); vec4 outPos = 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 = vec3(texcoord.xy * u_uvscaleoffset.xy, 0.0); v_fogdepth = (viewPos.z + u_fogcoef.x) * u_fogcoef.y; vec3 projPos = outPos.xyz / outPos.w; if (u_cullRangeMin.w <= 0.0f || (projPos.z >= u_cullRangeMin.z && projPos.z <= u_cullRangeMax.z)) { if (projPos.x < u_cullRangeMin.x || projPos.y < u_cullRangeMin.y || projPos.z < u_cullRangeMin.z || projPos.x > u_cullRangeMax.x || projPos.y > u_cullRangeMax.y || projPos.z > u_cullRangeMax.z) { outPos.w = u_cullRangeMax.w; } } gl_Position = outPos; }
God of War®: Ghost of Sparta v1.6.3-492-g9fddfff66 2020-01-22 Error in shader program link: info: (unknown reason) fs: 00000000:00400b8e Tex TexProj LM TClampST TFuncRepl #version 300 es precision lowp float; uniform sampler2D tex; uniform vec4 u_texclamp; in vec4 v_color0; in vec3 v_color1; in mediump vec3 v_texcoord; out vec4 fragColor0; 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: 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; uniform highp vec4 u_cullRangeMin; uniform highp vec4 u_cullRangeMax; out lowp vec4 v_color0; out lowp vec3 v_color1; out mediump 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); vec4 outPos = 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); vec3 projPos = outPos.xyz / outPos.w; if (u_cullRangeMin.w <= 0.0f || (projPos.z >= u_cullRangeMin.z && projPos.z <= u_cullRangeMax.z)) { if (projPos.x < u_cullRangeMin.x || projPos.y < u_cullRangeMin.y || projPos.z < u_cullRangeMin.z || projPos.x > u_cullRangeMax.x || projPos.y > u_cullRangeMax.y || projPos.z > u_cullRangeMax.z) { outPos.w = u_cullRangeMax.w; } } gl_Position = outPos; }
God of War®: Ghost of Sparta v1.6.3-492-g9fddfff66 2020-01-22 Error in shader program link: info: (unknown reason) fs: 00000000:01a0d822 Tex TexAlpha LM Fog 2x StenToAlpha StenUniform TFuncMod AlphaTest > #version 300 es 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 mediump float v_fogdepth; in mediump vec3 v_texcoord; out 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 = clamp(v.rgb * 2.0, 0.0, 1.0); float fogCoef = clamp(v_fogdepth, 0.0, 1.0); v = mix(vec4(u_fogcolor, v.a), v, fogCoef); float aResult = texture(testtex, vec2(v.a * 0.996094 + 0.001953, 0)).a; if (aResult < 0.5) discard; fragColor0 = vec4(v.rgb, u_stencilReplaceValue); } vs: 01730504:00000b1d HWX C T N LM Fog Tex Light: 0: c:0 t:1 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 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 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; uniform highp vec4 u_cullRangeMin; uniform highp vec4 u_cullRangeMax; out lowp vec4 v_color0; out lowp vec3 v_color1; out mediump vec3 v_texcoord; out mediump 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); vec4 outPos = 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; 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; vec3 projPos = outPos.xyz / outPos.w; if (u_cullRangeMin.w <= 0.0f || (projPos.z >= u_cullRangeMin.z && projPos.z <= u_cullRangeMax.z)) { if (projPos.x < u_cullRangeMin.x || projPos.y < u_cullRangeMin.y || projPos.z < u_cullRangeMin.z || projPos.x > u_cullRangeMax.x || projPos.y > u_cullRangeMax.y || projPos.z > u_cullRangeMax.z) { outPos.w = u_cullRangeMax.w; } } gl_Position = outPos; }
God of War®: Ghost of Sparta v1.6.3-492-g9fddfff66 2020-01-22 Error in shader program link: info: (unknown reason) fs: 00000000:01a0d822 Tex TexAlpha LM Fog 2x StenToAlpha StenUniform TFuncMod AlphaTest > #version 300 es 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 mediump float v_fogdepth; in mediump vec3 v_texcoord; out 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 = clamp(v.rgb * 2.0, 0.0, 1.0); float fogCoef = clamp(v_fogdepth, 0.0, 1.0); v = mix(vec4(u_fogcolor, v.a), v, fogCoef); float aResult = texture(testtex, vec2(v.a * 0.996094 + 0.001953, 0)).a; if (aResult < 0.5) discard; fragColor0 = vec4(v.rgb, u_stencilReplaceValue); } vs: 01f34540:00000b1d HWX C T N LM Fog Tex Light: 0: c:0 t:0 1: c:0 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 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 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; uniform highp vec4 u_cullRangeMin; uniform highp vec4 u_cullRangeMax; out lowp vec4 v_color0; out lowp vec3 v_color1; out mediump vec3 v_texcoord; out mediump 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); vec4 outPos = 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 - 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; 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; vec3 projPos
God of War®: Ghost of Sparta v1.6.3-492-g9fddfff66 2020-01-22 Error in shader program link: info: (unknown reason) fs: 00000000:00a1d822 Tex TexAlpha LM Fog 2x TFuncMod AlphaTest0 > #version 300 es precision lowp float; uniform sampler2D tex; uniform sampler2D testtex; in vec4 v_color0; in vec3 v_color1; uniform vec3 u_fogcolor; in mediump float v_fogdepth; in mediump vec3 v_texcoord; out 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 = clamp(v.rgb * 2.0, 0.0, 1.0); float fogCoef = clamp(v_fogdepth, 0.0, 1.0); v = mix(vec4(u_fogcolor, v.a), v, fogCoef); if (v.a < 0.002) discard; fragColor0 = v; } 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; uniform highp vec4 u_cullRangeMin; uniform highp vec4 u_cullRangeMax; out lowp vec4 v_color0; out lowp vec3 v_color1; out mediump vec3 v_texcoord; out mediump 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); vec4 outPos = 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.xy * u_uvscaleoffset.xy, 0.0); v_fogdepth = (viewPos.z +
God of War®: Ghost of Sparta v1.6.3-492-g9fddfff66 2020-01-22 Error in shader program link: info: (unknown reason) fs: 00000000:01a00802 Tex LM Fog 2x StenToAlpha StenUniform TFuncMod #version 300 es precision lowp float; uniform sampler2D tex; uniform float u_stencilReplaceValue; in vec4 v_color0; in vec3 v_color1; uniform vec3 u_fogcolor; in mediump float v_fogdepth; in mediump vec3 v_texcoord; out 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 = clamp(v.rgb * 2.0, 0.0, 1.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: 01f34540:00000b1d HWX C T N LM Fog Tex Light: 0: c:0 t:0 1: c:0 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 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 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; uniform highp vec4 u_cullRangeMin; uniform highp vec4 u_cullRangeMax; out lowp vec4 v_color0; out lowp vec3 v_color1; out mediump vec3 v_texcoord; out mediump 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); vec4 outPos = 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 - 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; 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; vec3 projPos = outPos.xyz / outPos.w; if (u_cullRangeMin.w <= 0.0f || (projPos.z >= u_cullRangeMin.z && projPos.z <= u_cullRangeMax.z)) { if
God of War®: Ghost of Sparta v1.6.3-492-g9fddfff66 2020-01-22 Error in shader program link: info: (unknown reason) fs: 00000000:00a00822 Tex TexAlpha LM Fog 2x TFuncMod #version 300 es precision lowp float; uniform sampler2D tex; in vec4 v_color0; in vec3 v_color1; uniform vec3 u_fogcolor; in mediump float v_fogdepth; in mediump vec3 v_texcoord; out 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 = clamp(v.rgb * 2.0, 0.0, 1.0); float fogCoef = clamp(v_fogdepth, 0.0, 1.0); v = mix(vec4(u_fogcolor, v.a), v, fogCoef); fragColor0 = v; } vs: 01b34051:00000b1d HWX C T N LM Fog Tex Light: 0: c:1 t:0 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 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; uniform highp vec4 u_cullRangeMin; uniform highp vec4 u_cullRangeMax; out lowp vec4 v_color0; out lowp vec3 v_color1; out mediump vec3 v_texcoord; out mediump 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); vec4 outPos = 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_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; vec3 projPos = outPos.xyz / outPos.w; if (u_cullRangeMin.w <= 0.0f || (projPos.z >= u_cullRangeMin.z && projPos.z <= u_cullRangeMax.z)) { if (projPos.x < u_cullRangeMin.x || projPos.y < u_cullRangeMin.y || projPos.z < u_cullRangeMin.z || projPos.x > u_cullRangeMax.x || projPos.y > u_cullRangeMax.y || projPos.z > u_cullRangeMax.z) { outPos.w = u_cullRangeMax.w; } } gl_Position = outPos; }
God of War®: Ghost of Sparta v1.6.3-492-g9fddfff66 2020-01-22 Error in shader program link: info: (unknown reason) fs: 00000000:00a00802 Tex LM Fog 2x TFuncMod #version 300 es precision lowp float; uniform sampler2D tex; in vec4 v_color0; in vec3 v_color1; uniform vec3 u_fogcolor; in mediump float v_fogdepth; in mediump vec3 v_texcoord; out 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 = clamp(v.rgb * 2.0, 0.0, 1.0); float fogCoef = clamp(v_fogdepth, 0.0, 1.0); v = mix(vec4(u_fogcolor, v.a), v, fogCoef); fragColor0 = v; } vs: 01f14440: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: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_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; uniform highp vec4 u_cullRangeMin; uniform highp vec4 u_cullRangeMax; out lowp vec4 v_color0; out lowp vec3 v_color1; out mediump vec3 v_texcoord; out mediump 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); vec4 outPos = 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_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; vec3 projPos = outPos.xyz / outPos.w; if (u_cullRangeMin.w <= 0.0f || (projPos.z >= u_cullRangeMin.z && projPos.z <= u_cullRangeMax.z)) { if (projPos.x < u_cullRangeMin.x || projPos.y < u_cullRangeMin.y || projPos.z < u_cullRangeMin.z || projPos.x > u_cullRangeMax.x || projPos.y > u_cullRangeMax.y || projPos.z > u_cullRangeMax.z) { outPos.w = u_cullRangeMax.w; } } gl_Position = outPos; }
God of War®: Ghost of Sparta v1.6.3-492-g9fddfff66 2020-01-22 Error in shader program link: info: (unknown reason) fs: 00000000:01a0d822 Tex TexAlpha LM Fog 2x StenToAlpha StenUniform TFuncMod AlphaTest > #version 300 es 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 mediump float v_fogdepth; in mediump vec3 v_texcoord; out 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 = clamp(v.rgb * 2.0, 0.0, 1.0); float fogCoef = clamp(v_fogdepth, 0.0, 1.0); v = mix(vec4(u_fogcolor, v.a), v, fogCoef); float aResult = texture(testtex, vec2(v.a * 0.996094 + 0.001953, 0)).a; if (aResult < 0.5) discard; fragColor0 = vec4(v.rgb, u_stencilReplaceValue); } vs: 01f34044:00000b1d HWX C T N LM Fog Tex 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 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; uniform highp vec2 u_fogcoef; uniform highp vec4 u_cullRangeMin; uniform highp vec4 u_cullRangeMax; out lowp vec4 v_color0; out lowp vec3 v_color1; out mediump vec3 v_texcoord; out mediump 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); vec4 outPos = 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 = vec3(texcoord.xy * u_uvscaleoffset.xy, 0.0); v_fogdepth = (viewPos.z + u_fogcoef.x) * u_fogcoef.y; vec3 projPos = outPos.xyz / outPos.w; if (u_cullRangeMin.w <= 0.0f || (projPos.z >= u_cullRangeMin.z && projPos.z <= u_cullRangeMax.z)) { if (projPos.x < u_cullRangeMin.x || projPos.y < u_cullRangeMin.y || projPos.z < u_cullRangeMin.z || projPos.x > u_cullRangeMax.x || projPos.y >
God of War®: Ghost of Sparta v1.6.3-492-g9fddfff66 2020-01-22 Error in shader program link: info: (unknown reason) fs: 00000000:01a00802 Tex LM Fog 2x StenToAlpha StenUniform TFuncMod #version 300 es precision lowp float; uniform sampler2D tex; uniform float u_stencilReplaceValue; in vec4 v_color0; in vec3 v_color1; uniform vec3 u_fogcolor; in mediump float v_fogdepth; in mediump vec3 v_texcoord; out 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 = clamp(v.rgb * 2.0, 0.0, 1.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: 01f34044:00000b1d HWX C T N LM Fog Tex 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 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; uniform highp vec2 u_fogcoef; uniform highp vec4 u_cullRangeMin; uniform highp vec4 u_cullRangeMax; out lowp vec4 v_color0; out lowp vec3 v_color1; out mediump vec3 v_texcoord; out mediump 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); vec4 outPos = 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 = vec3(texcoord.xy * u_uvscaleoffset.xy, 0.0); v_fogdepth = (viewPos.z + u_fogcoef.x) * u_fogcoef.y; vec3 projPos = outPos.xyz / outPos.w; if (u_cullRangeMin.w <= 0.0f || (projPos.z >= u_cullRangeMin.z && projPos.z <= u_cullRangeMax.z)) { if (projPos.x < u_cullRangeMin.x || projPos.y < u_cullRangeMin.y || projPos.z < u_cullRangeMin.z || projPos.x > u_cullRangeMax.x || projPos.y > u_cullRangeMax.y || projPos.z > u_cullRangeMax.z) { outPos.w = u_cullRangeMax.w; } } gl_Position = outPos; }
God of War®: Ghost of Sparta v1.6.3-492-g9fddfff66 2020-01-22 Error in shader program link: info: (unknown reason) fs: 00000000:00a0d822 Tex TexAlpha LM Fog 2x TFuncMod AlphaTest > #version 300 es precision lowp float; uniform sampler2D tex; uniform sampler2D testtex; in vec4 v_color0; in vec3 v_color1; uniform vec3 u_fogcolor; in mediump float v_fogdepth; in mediump vec3 v_texcoord; out 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 = clamp(v.rgb * 2.0, 0.0, 1.0); float fogCoef = clamp(v_fogdepth, 0.0, 1.0); v = mix(vec4(u_fogcolor, v.a), v, fogCoef); float aResult = texture(testtex, vec2(v.a * 0.996094 + 0.001953, 0)).a; if (aResult < 0.5) discard; 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; uniform highp vec4 u_cullRangeMin; uniform highp vec4 u_cullRangeMax; out lowp vec4 v_color0; out lowp vec3 v_color1; out mediump vec3 v_texcoord; out mediump 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); vec4 outPos = 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; vec3 projPos = outPos.xyz / outPos.w; if (u_cullRangeMin.w <= 0.0f || (projPos.z >= u_cullRangeMin.z && projPos.z <= u_cullRangeMax.z)) { if (projPos.x < u_cullRangeMin.x || projPos.y < u_cullRangeMin.y || projPos.z < u_cullRangeMin.z || projPos.x > u_cullRangeMax.x || projPos.y > u_cullRangeMax.y || projPos.z > u_cullRangeMax.z) { outPos.w = u_cullRangeMax.w; } } gl_P
God of War®: Ghost of Sparta v1.6.3-492-g9fddfff66 2020-01-22 Error in shader program link: info: (unknown reason) fs: 00000000:00a00822 Tex TexAlpha LM Fog 2x TFuncMod #version 300 es precision lowp float; uniform sampler2D tex; in vec4 v_color0; in vec3 v_color1; uniform vec3 u_fogcolor; in mediump float v_fogdepth; in mediump vec3 v_texcoord; out 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 = clamp(v.rgb * 2.0, 0.0, 1.0); float fogCoef = clamp(v_fogdepth, 0.0, 1.0); v = mix(vec4(u_fogcolor, v.a), v, fogCoef); fragColor0 = v; } vs: 01330051:00000b1d HWX C T N LM Fog Tex Light: 0: c:1 t:0 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 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; uniform highp vec4 u_cullRangeMin; uniform highp vec4 u_cullRangeMax; out lowp vec4 v_color0; out lowp vec3 v_color1; out mediump vec3 v_texcoord; out mediump 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); vec4 outPos = 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; 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; vec3 projPos = outPos.xyz / outPos.w; if (u_cullRangeMin.w <= 0.0f || (projPos.z >= u_cullRangeMin.z && projPos.z <= u_cullRangeMax.z)) { if (projPos.x < u_cullRangeMin.x || projPos.y < u_cullRangeMin.y || projPos.z < u_cullRangeMin.z || projPos.x > u_cullRangeMax.x || projPos.y > u_cullRangeMax.y || projPos.z > u_cullRangeMax.z) { outPos.w = u_cullRangeMax.w; } } gl_Position = outPos; }
God of War®: Ghost of Sparta v1.6.3-492-g9fddfff66 2020-01-22 Error in shader program link: info: (unknown reason) fs: 00000000:00a00822 Tex TexAlpha LM Fog 2x TFuncMod #version 300 es precision lowp float; uniform sampler2D tex; in vec4 v_color0; in vec3 v_color1; uniform vec3 u_fogcolor; in mediump float v_fogdepth; in mediump vec3 v_texcoord; out 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 = clamp(v.rgb * 2.0, 0.0, 1.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; uniform highp vec4 u_cullRangeMin; uniform highp vec4 u_cullRangeMax; out lowp vec4 v_color0; out lowp vec3 v_color1; out mediump vec3 v_texcoord; out mediump 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); vec4 outPos = 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; vec3 projPos = outPos.xyz / outPos.w; if (u_cullRangeMin.w <= 0.0f || (projPos.z >= u_cullRangeMin.z && projPos.z <= u_cullRangeMax.z)) { if (projPos.x < u_cullRangeMin.x || projPos.y < u_cullRangeMin.y || projPos.z < u_cullRangeMin.z || projPos.x > u_cullRangeMax.x || projPos.y > u_cullRangeMax.y || projPos.z > u_cullRangeMax.z) { outPos.w = u_cullRangeMax.w; } } gl_Position = outPos; }
God of War®: Ghost of Sparta v1.6.3-492-g9fddfff66 2020-01-22 Error in shader program link: info: (unknown reason) fs: 00000000:00a00802 Tex LM Fog 2x TFuncMod #version 300 es precision lowp float; uniform sampler2D tex; in vec4 v_color0; in vec3 v_color1; uniform vec3 u_fogcolor; in mediump float v_fogdepth; in mediump vec3 v_texcoord; out 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 = clamp(v.rgb * 2.0, 0.0, 1.0); float fogCoef = clamp(v_fogdepth, 0.0, 1.0); v = mix(vec4(u_fogcolor, v.a), v, fogCoef); fragColor0 = v; } vs: 01730040:00000b1d HWX C T N LM Fog Tex Light: 0: c:0 t:0 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 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 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; uniform highp vec4 u_cullRangeMin; uniform highp vec4 u_cullRangeMax; out lowp vec4 v_color0; out lowp vec3 v_color1; out mediump vec3 v_texcoord; out mediump 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); vec4 outPos = 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; 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; vec3 projPos = outPos.xyz / outPos.w; if (u_cullRangeMin.w <= 0.0f || (projPos.z >= u_cullRangeMin.z && projPos.z <= u_cullRangeMax.z)) { if (projPos.x < u_cullRangeMin.x || projPos.y < u_cullRangeMin.y || projPos.z < u_cullRangeMin.z || projPos.x > u_cullRangeMax.x || projPos.y > u_cullRangeMax.y || projPos.z > u_cullRangeMax.z) { outPos.w = u_cullRangeMax.w; } } gl_Position = outPos; }
God of War®: Ghost of Sparta v1.6.3-492-g9fddfff66 2020-01-22 Error in shader program link: info: (unknown reason) fs: 00000000:01a0d822 Tex TexAlpha LM Fog 2x StenToAlpha StenUniform TFuncMod AlphaTest > #version 300 es 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 mediump float v_fogdepth; in mediump vec3 v_texcoord; out 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 = clamp(v.rgb * 2.0, 0.0, 1.0); float fogCoef = clamp(v_fogdepth, 0.0, 1.0); v = mix(vec4(u_fogcolor, v.a), v, fogCoef); float aResult = texture(testtex, vec2(v.a * 0.996094 + 0.001953, 0)).a; if (aResult < 0.5) discard; fragColor0 = vec4(v.rgb, u_stencilReplaceValue); } 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; uniform highp vec4 u_cullRangeMin; uniform highp vec4 u_cullRangeMax; out lowp vec4 v_color0; out lowp vec3 v_color1; out mediump vec3 v_texcoord; out mediump 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); vec4 outPos = 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; vec3 projPos = outPos.xyz / outPos.w; if (u_cullRangeMin.w <= 0.0f || (projPos.z >= u_cullRangeMin.z && projPos.z <= u_cullRangeMax.z)) { if (projPos.x < u_cullRangeMin.x || projPos.y < u_cullRangeMin.y || projPos.z < u_cullRangeMin.z || projPos.x > u_cullRangeMax.x || projPos.y > u_cullRangeMax.y || projPos.z > u_cullRangeMax.z) { outPos.w = u_cullRangeMax.w; } } gl_Position = outPos; }
God of War®: Ghost of Sparta v1.6.3-492-g9fddfff66 2020-01-22 Error in shader program link: info: (unknown reason) fs: 00000000:00a00822 Tex TexAlpha LM Fog 2x TFuncMod #version 300 es precision lowp float; uniform sampler2D tex; in vec4 v_color0; in vec3 v_color1; uniform vec3 u_fogcolor; in mediump float v_fogdepth; in mediump vec3 v_texcoord; out 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 = clamp(v.rgb * 2.0, 0.0, 1.0); float fogCoef = clamp(v_fogdepth, 0.0, 1.0); v = mix(vec4(u_fogcolor, v.a), v, fogCoef); fragColor0 = v; } vs: 01b34011:00000b1d HWX C T N LM Fog Tex Light: 0: c:1 t:0 1: 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 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; uniform highp vec4 u_cullRangeMin; uniform highp vec4 u_cullRangeMax; out lowp vec4 v_color0; out lowp vec3 v_color1; out mediump vec3 v_texcoord; out mediump 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); vec4 outPos = 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_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; vec3 projPos = outPos.xyz / outPos.w; if (u_cullRangeMin.w <= 0.0f || (projPos.z >= u_cullRangeMin.z && projPos.z <= u_cullRangeMax.z)) { if (projPos.x < u_cullRangeMin.x || projPos.y < u_cullRangeMin.y || projPos.z < u_cullRangeMin.z || projPos.x > u_cullRangeMax.x || projPos.y > u_cullRangeMax.y || projPos.z > u_cullRangeMax.z) { outPos.w = u_cullRangeMax.w; } } gl_Position = outPos; }
God of War®: Ghost of Sparta v1.6.3-492-g9fddfff66 2020-01-22 Error in shader program link: info: (unknown reason) fs: 00000000:00a00822 Tex TexAlpha LM Fog 2x TFuncMod #version 300 es precision lowp float; uniform sampler2D tex; in vec4 v_color0; in vec3 v_color1; uniform vec3 u_fogcolor; in mediump float v_fogdepth; in mediump vec3 v_texcoord; out 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 = clamp(v.rgb * 2.0, 0.0, 1.0); float fogCoef = clamp(v_fogdepth, 0.0, 1.0); v = mix(vec4(u_fogcolor, v.a), v, fogCoef); fragColor0 = v; } vs: 01934001:00000b1d HWX C T N LM Fog Tex Light: 0: 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_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; uniform highp vec4 u_cullRangeMin; uniform highp vec4 u_cullRangeMax; out lowp vec4 v_color0; out lowp vec3 v_color1; out mediump vec3 v_texcoord; out mediump 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); vec4 outPos = 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_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; vec3 projPos = outPos.xyz / outPos.w; if (u_cullRangeMin.w <= 0.0f || (projPos.z >= u_cullRangeMin.z && projPos.z <= u_cullRangeMax.z)) { if (projPos.x < u_cullRangeMin.x || projPos.y < u_cullRangeMin.y || projPos.z < u_cullRangeMin.z || projPos.x > u_cullRangeMax.x || projPos.y > u_cullRangeMax.y || projPos.z > u_cullRangeMax.z) { outPos.w = u_cullRangeMax.w; } } gl_Position = outPos; }
God of War®: Ghost of Sparta v1.6.3-492-g9fddfff66 2020-01-22 Error in shader program link: info: (unknown reason) fs: 00000000:00a00802 Tex LM Fog 2x TFuncMod #version 300 es precision lowp float; uniform sampler2D tex; in vec4 v_color0; in vec3 v_color1; uniform vec3 u_fogcolor; in mediump float v_fogdepth; in mediump vec3 v_texcoord; out 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 = clamp(v.rgb * 2.0, 0.0, 1.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; uniform highp vec4 u_cullRangeMin; uniform highp vec4 u_cullRangeMax; out lowp vec4 v_color0; out lowp vec3 v_color1; out mediump vec3 v_texcoord; out mediump 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); vec4 outPos = 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; vec3 projPos = outPos.xyz / outPos.w; if (u_cullRangeMin.w <= 0.0f || (projPos.z >= u_cullRangeMin.z && projPos.z <= u_cullRangeMax.z)) { if (projPos.x < u_cullRangeMin.x || projPos.y < u_cullRangeMin.y || projPos.z < u_cullRangeMin.z || projPos.x > u_cullRangeMax.x || projPos.y > u_cullRangeMax.y || projPos.z > u_cullRangeMax.z) { outPos.w = u_cullRangeMax.w; } } gl_Position = outPos; }
God of War®: Ghost of Sparta v1.6.3-492-g9fddfff66 2020-01-22 Error in shader program link: info: (unknown reason) fs: 00000000:00a1d822 Tex TexAlpha LM Fog 2x TFuncMod AlphaTest0 > #version 300 es precision lowp float; uniform sampler2D tex; uniform sampler2D testtex; in vec4 v_color0; in vec3 v_color1; uniform vec3 u_fogcolor; in mediump float v_fogdepth; in mediump vec3 v_texcoord; out 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 = clamp(v.rgb * 2.0, 0.0, 1.0); float fogCoef = clamp(v_fogdepth, 0.0, 1.0); v = mix(vec4(u_fogcolor, v.a), v, fogCoef); if (v.a < 0.002) discard; fragColor0 = v; } vs: 01730551:00000b1d HWX C T N LM Fog Tex Light: 0: c:1 t:0 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 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; uniform highp vec4 u_cullRangeMin; uniform highp vec4 u_cullRangeMax; out lowp vec4 v_color0; out lowp vec3 v_color1; out mediump vec3 v_texcoord; out mediump 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); vec4 outPos = 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 - 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; vec3 projPos = outPos.xyz / outPos.w; if (u_cullRangeMin.w <= 0.0f || (projPos.z >= u_cullRangeMin.z && projPos.z <= u_cullRangeMax.z)) { if (projPos.x < u_cullRangeMin.x || projPos.y < u_cullRangeMin.y || projPos.z < u_cullRangeMin.z || pr
God of War®: Ghost of Sparta v1.6.3-492-g9fddfff66 2020-01-22 Error in shader program link: info: (unknown reason) fs: 00000000:01a00802 Tex LM Fog 2x StenToAlpha StenUniform TFuncMod #version 300 es precision lowp float; uniform sampler2D tex; uniform float u_stencilReplaceValue; in vec4 v_color0; in vec3 v_color1; uniform vec3 u_fogcolor; in mediump float v_fogdepth; in mediump vec3 v_texcoord; out 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 = clamp(v.rgb * 2.0, 0.0, 1.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: 01730040:00000b1d HWX C T N LM Fog Tex Light: 0: c:0 t:0 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 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 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; uniform highp vec4 u_cullRangeMin; uniform highp vec4 u_cullRangeMax; out lowp vec4 v_color0; out lowp vec3 v_color1; out mediump vec3 v_texcoord; out mediump 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); vec4 outPos = 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; 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; vec3 projPos = outPos.xyz / outPos.w; if (u_cullRangeMin.w <= 0.0f || (projPos.z >= u_cullRangeMin.z && projPos.z <= u_cullRangeMax.z)) { if (projPos.x < u_cullRangeMin.x || projPos.y < u_cullRangeMin.y || projPos.z < u_cullRangeMin.z || projPos.x > u_cullRangeMax.x || projPos.y > u_cullRangeMax.y || projPos.z > u_cullRangeMax.z) { outPos.w = u_cullRangeMax.w; } } gl_Position = outPos; }
God of War®: Ghost of Sparta v1.6.3-492-g9fddfff66 2020-01-22 Error in shader program link: info: (unknown reason) fs: 00000000:00a1d822 Tex TexAlpha LM Fog 2x TFuncMod AlphaTest0 > #version 300 es precision lowp float; uniform sampler2D tex; uniform sampler2D testtex; in vec4 v_color0; in vec3 v_color1; uniform vec3 u_fogcolor; in mediump float v_fogdepth; in mediump vec3 v_texcoord; out 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 = clamp(v.rgb * 2.0, 0.0, 1.0); float fogCoef = clamp(v_fogdepth, 0.0, 1.0); v = mix(vec4(u_fogcolor, v.a), v, fogCoef); if (v.a < 0.002) discard; 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; uniform highp vec4 u_cullRangeMin; uniform highp vec4 u_cullRangeMax; out lowp vec4 v_color0; out lowp vec3 v_color1; out mediump vec3 v_texcoord; out mediump 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); vec4 outPos = 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; vec3 projPos = outPos.xyz / outPos.w; if (u_cullRangeMin.w <= 0.0f || (projPos.z >= u_cullRangeMin.z && projPos.z <= u_cullRangeMax.z)) { if (projPos.x < u_cullRangeMin.x || projPos.y < u_cullRangeMin.y || projPos.z < u_cullRangeMin.z || projPos.x > u_cullRangeMax.x || projPos.y > u_cullRangeMax.y || projPos.z > u_cullRangeMax.z) { outPos.w = u_cullRangeMax.w; } } gl_Position = outPos; }
God of War®: Ghost of Sparta v1.6.3-492-g9fddfff66 2020-01-22 Error in shader program link: info: (unknown reason) fs: 00000000:00a00802 Tex LM Fog 2x TFuncMod #version 300 es precision lowp float; uniform sampler2D tex; in vec4 v_color0; in vec3 v_color1; uniform vec3 u_fogcolor; in mediump float v_fogdepth; in mediump vec3 v_texcoord; out 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 = clamp(v.rgb * 2.0, 0.0, 1.0); float fogCoef = clamp(v_fogdepth, 0.0, 1.0); v = mix(vec4(u_fogcolor, v.a), v, fogCoef); fragColor0 = v; } 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; uniform highp vec4 u_cullRangeMin; uniform highp vec4 u_cullRangeMax; out lowp vec4 v_color0; out lowp vec3 v_color1; out mediump vec3 v_texcoord; out mediump 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); vec4 outPos = 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; vec3 projPos = outPos.xyz / outPos.w; if (u_cullRangeMin.w <= 0.0f || (projPos.z >= u_cullRangeMin.z && projPos.z <= u_cullRangeMax.z)) { if (projPos.x < u_cullRangeMin.x || projPos.y < u_cullRangeMin.y || projPos.z < u_cullRangeMin.z || projPos.x > u_cullRangeMax.x || projPos.y > u_cullRangeMax.y || projPos.z > u_cullRangeMax.z) { outPos.w = u_cullRangeMax.w; } } gl_Position = outPos; }
God of War®: Ghost of Sparta v1.6.3-492-g9fddfff66 2020-01-22 Error in shader program link: info: (unknown reason) fs: 00000000:01a0d822 Tex TexAlpha LM Fog 2x StenToAlpha StenUniform TFuncMod AlphaTest > #version 300 es 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 mediump float v_fogdepth; in mediump vec3 v_texcoord; out 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 = clamp(v.rgb * 2.0, 0.0, 1.0); float fogCoef = clamp(v_fogdepth, 0.0, 1.0); v = mix(vec4(u_fogcolor, v.a), v, fogCoef); float aResult = texture(testtex, vec2(v.a * 0.996094 + 0.001953, 0)).a; if (aResult < 0.5) discard; fragColor0 = vec4(v.rgb, u_stencilReplaceValue); } vs: 01730404:00000b1d HWX C T N LM Fog Tex Light: 0: c:0 t:1 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 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 lowp vec4 u_ambient; uniform lowp vec4 u_matspecular; uniform lowp vec3 u_matemissive; uniform lowp vec4 u_matambientalpha; uniform highp vec2 u_fogcoef; uniform highp vec4 u_cullRangeMin; uniform highp vec4 u_cullRangeMax; out lowp vec4 v_color0; out lowp vec3 v_color1; out mediump vec3 v_texcoord; out mediump 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); vec4 outPos = 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; 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; vec3 projPos = outPos.xyz / outPos.w; if (u_cullRangeMin.w <= 0.0f || (projPos.z >= u_cullRangeMin.z && projPos.z <= u_cullRangeMax.z)) { if (projPos.x < u_cullRangeMin.x || projPos.y < u_cullRangeMin.y || projPos.z < u_cullRangeMin.z || projPos.x > u_cullRangeMax.x || projPos.y > u_cullRangeMax.y || projPos.z > u_cullRangeMax.z) { outPos.w = u_cullRangeMax.w; } } gl_Position = outPos; }
God of War®: Ghost of Sparta v1.6.3-492-g9fddfff66 2020-01-22 Error in shader program link: info: (unknown reason) fs: 00000000:01a00802 Tex LM Fog 2x StenToAlpha StenUniform TFuncMod #version 300 es precision lowp float; uniform sampler2D tex; uniform float u_stencilReplaceValue; in vec4 v_color0; in vec3 v_color1; uniform vec3 u_fogcolor; in mediump float v_fogdepth; in mediump vec3 v_texcoord; out 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 = clamp(v.rgb * 2.0, 0.0, 1.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: 01730404:00000b1d HWX C T N LM Fog Tex Light: 0: c:0 t:1 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 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 lowp vec4 u_ambient; uniform lowp vec4 u_matspecular; uniform lowp vec3 u_matemissive; uniform lowp vec4 u_matambientalpha; uniform highp vec2 u_fogcoef; uniform highp vec4 u_cullRangeMin; uniform highp vec4 u_cullRangeMax; out lowp vec4 v_color0; out lowp vec3 v_color1; out mediump vec3 v_texcoord; out mediump 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); vec4 outPos = 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; 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; vec3 projPos = outPos.xyz / outPos.w; if (u_cullRangeMin.w <= 0.0f || (projPos.z >= u_cullRangeMin.z && projPos.z <= u_cullRangeMax.z)) { if (projPos.x < u_cullRangeMin.x || projPos.y < u_cullRangeMin.y || projPos.z < u_cullRangeMin.z || projPos.x > u_cullRangeMax.x || projPos.y > u_cullRangeMax.y || projPos.z > u_cullRangeMax.z) { outPos.w = u_cullRangeMax.w; } } gl_Position = outPos; }
God of War®: Ghost of Sparta v1.6.3-492-g9fddfff66 2020-01-22 Error in shader program link: info: (unknown reason) fs: 00000000:00a1d822 Tex TexAlpha LM Fog 2x TFuncMod AlphaTest0 > #version 300 es precision lowp float; uniform sampler2D tex; uniform sampler2D testtex; in vec4 v_color0; in vec3 v_color1; uniform vec3 u_fogcolor; in mediump float v_fogdepth; in mediump vec3 v_texcoord; out 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 = clamp(v.rgb * 2.0, 0.0, 1.0); float fogCoef = clamp(v_fogdepth, 0.0, 1.0); v = mix(vec4(u_fogcolor, v.a), v, fogCoef); if (v.a < 0.002) discard; fragColor0 = v; } vs: 01f34004:00000b1d HWX C T N LM Fog Tex 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 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; uniform highp vec2 u_fogcoef; uniform highp vec4 u_cullRangeMin; uniform highp vec4 u_cullRangeMax; out lowp vec4 v_color0; out lowp vec3 v_color1; out mediump vec3 v_texcoord; out mediump 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); vec4 outPos = 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 = vec3(texcoord.xy * u_uvscaleoffset.xy, 0.0); v_fogdepth = (viewPos.z + u_fogcoef.x) * u_fogcoef.y; vec3 projPos = outPos.xyz / outPos.w; if (u_cullRangeMin.w <= 0.0f || (projPos.z >= u_cullRangeMin.z && projPos.z <= u_cullRangeMax.z)) { if (projPos.x < u_cullRangeMin.x || projPos.y < u_cullRangeMin.y || projPos.z < u_cullRangeMin.z || projPos.x > u_cullRangeMax.x || projPos.y > u_cullRangeMax.y || projPos.z > u_cullRangeMax.z) { outPos.w = u_cullRangeMax.w; } } gl_Position = outPos; }
God of War®: Ghost of Sparta v1.6.3-492-g9fddfff66 2020-01-22 Error in shader program link: info: (unknown reason) fs: 00000000:00a0d822 Tex TexAlpha LM Fog 2x TFuncMod AlphaTest > #version 300 es precision lowp float; uniform sampler2D tex; uniform sampler2D testtex; in vec4 v_color0; in vec3 v_color1; uniform vec3 u_fogcolor; in mediump float v_fogdepth; in mediump vec3 v_texcoord; out 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 = clamp(v.rgb * 2.0, 0.0, 1.0); float fogCoef = clamp(v_fogdepth, 0.0, 1.0); v = mix(vec4(u_fogcolor, v.a), v, fogCoef); float aResult = texture(testtex, vec2(v.a * 0.996094 + 0.001953, 0)).a; if (aResult < 0.5) discard; fragColor0 = v; } vs: 01130001:00000b1d HWX C T N LM Fog Tex Light: 0: 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 lowp vec4 u_ambient; uniform lowp vec4 u_matspecular; uniform lowp vec3 u_matemissive; uniform lowp vec4 u_matambientalpha; uniform highp vec2 u_fogcoef; uniform highp vec4 u_cullRangeMin; uniform highp vec4 u_cullRangeMax; out lowp vec4 v_color0; out lowp vec3 v_color1; out mediump vec3 v_texcoord; out mediump 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); vec4 outPos = 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); 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; vec3 projPos = outPos.xyz / outPos.w; if (u_cullRangeMin.w <= 0.0f || (projPos.z >= u_cullRangeMin.z && projPos.z <= u_cullRangeMax.z)) { if (projPos.x < u_cullRangeMin.x || projPos.y < u_cullRangeMin.y || projPos.z < u_cullRangeMin.z || projPos.x > u_cullRangeMax.x || projPos.y > u_cullRangeMax.y || projPos.z > u_cullRangeMax.z) { outPos.w = u_cullRangeMax.w; } } gl_Position = outPos; }
God of War®: Ghost of Sparta v1.6.3-492-g9fddfff66 2020-01-22 Error in shader program link: info: (unknown reason) fs: 00000000:01a00802 Tex LM Fog 2x StenToAlpha StenUniform TFuncMod #version 300 es precision lowp float; uniform sampler2D tex; uniform float u_stencilReplaceValue; in vec4 v_color0; in vec3 v_color1; uniform vec3 u_fogcolor; in mediump float v_fogdepth; in mediump vec3 v_texcoord; out 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 = clamp(v.rgb * 2.0, 0.0, 1.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: 01f34551:00000b1d HWX C T N LM Fog Tex Light: 0: c:1 t:0 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 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; uniform highp vec4 u_cullRangeMin; uniform highp vec4 u_cullRangeMax; out lowp vec4 v_color0; out lowp vec3 v_color1; out mediump vec3 v_texcoord; out mediump 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); vec4 outPos = 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 - 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.
God of War®: Ghost of Sparta v1.6.3-492-g9fddfff66 2020-01-22 Error in shader program link: info: (unknown reason) fs: 00000000:00a1d822 Tex TexAlpha LM Fog 2x TFuncMod AlphaTest0 > #version 300 es precision lowp float; uniform sampler2D tex; uniform sampler2D testtex; in vec4 v_color0; in vec3 v_color1; uniform vec3 u_fogcolor; in mediump float v_fogdepth; in mediump vec3 v_texcoord; out 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 = clamp(v.rgb * 2.0, 0.0, 1.0); float fogCoef = clamp(v_fogdepth, 0.0, 1.0); v = mix(vec4(u_fogcolor, v.a), v, fogCoef); if (v.a < 0.002) discard; fragColor0 = v; } vs: 01710440: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: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_lightpos2; uniform mediump vec3 u_lightatt2; uniform lowp vec3 u_lightambient2; uniform lowp vec3 u_lightdiffuse2; 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; uniform highp vec4 u_cullRangeMin; uniform highp vec4 u_cullRangeMax; out lowp vec4 v_color0; out lowp vec3 v_color1; out mediump vec3 v_texcoord; out mediump 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); vec4 outPos = 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_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; 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; vec3 projPos = outPos.xyz / outPos.w; if (u_cullRangeMin.w <= 0.0f || (projPos.z >= u_cullRangeMin.z && projPos.z <= u_cullRangeMax.z)) { if (projPos.x < u_cullRangeMin.x || projPos.y < u_cullRangeMin.y || projPos.z < u_cullRangeMin.z || projPos.x > u_cullRangeMax.x || projPos.y > u_cullRangeMax.y || projPos.z > u_cullRangeMax.z) { outPos.w = u_cullRangeMax.w; } } gl_Position = outPos; }
God of War®: Ghost of Sparta v1.6.3-492-g9fddfff66 2020-01-22 Error in shader program link: info: (unknown reason) fs: 00000000:00a0d822 Tex TexAlpha LM Fog 2x TFuncMod AlphaTest > #version 300 es precision lowp float; uniform sampler2D tex; uniform sampler2D testtex; in vec4 v_color0; in vec3 v_color1; uniform vec3 u_fogcolor; in mediump float v_fogdepth; in mediump vec3 v_texcoord; out 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 = clamp(v.rgb * 2.0, 0.0, 1.0); float fogCoef = clamp(v_fogdepth, 0.0, 1.0); v = mix(vec4(u_fogcolor, v.a), v, fogCoef); float aResult = texture(testtex, vec2(v.a * 0.996094 + 0.001953, 0)).a; if (aResult < 0.5) discard; fragColor0 = v; } vs: 01730551:00000b1d HWX C T N LM Fog Tex Light: 0: c:1 t:0 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 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; uniform highp vec4 u_cullRangeMin; uniform highp vec4 u_cullRangeMax; out lowp vec4 v_color0; out lowp vec3 v_color1; out mediump vec3 v_texcoord; out mediump 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); vec4 outPos = 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 - 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; vec3 projPos = outPos.xyz / outPos.w; if (u_cullRangeMin.w <= 0.0f || (projPos.z >= u_cullRangeMin.z && projPos.z <= u_cullRangeMax.z)) { if (projPos.x < u_cullRange
God of War®: Ghost of Sparta v1.6.3-492-g9fddfff66 2020-01-22 Error in shader program link: info: (unknown reason) fs: 00000000:00a00802 Tex LM Fog 2x TFuncMod #version 300 es precision lowp float; uniform sampler2D tex; in vec4 v_color0; in vec3 v_color1; uniform vec3 u_fogcolor; in mediump float v_fogdepth; in mediump vec3 v_texcoord; out 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 = clamp(v.rgb * 2.0, 0.0, 1.0); float fogCoef = clamp(v_fogdepth, 0.0, 1.0); v = mix(vec4(u_fogcolor, v.a), v, fogCoef); fragColor0 = v; } 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; uniform highp vec4 u_cullRangeMin; uniform highp vec4 u_cullRangeMax; out lowp vec4 v_color0; out lowp vec3 v_color1; out mediump vec3 v_texcoord; out mediump 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); vec4 outPos = 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; vec3 projPos = outPos.xyz / outPos.w; if (u_cullRangeMin.w <= 0.0f || (projPos.z >= u_cullRangeMin.z && projPos.z <= u_cullRangeMax.z)) { if (projPos.x < u_cullRangeMin.x || projPos.y < u_cullRangeMin.y || projPos.z < u_cullRangeMin.z || projPos.x > u_cullRangeMax.x || projPos.y > u_cullRangeMax.y || projPos.z > u_cullRangeMax.z) { outPos.w = u_cullRangeMax.w; } } gl_Position = outPos; }
God of War®: Ghost of Sparta v1.6.3-492-g9fddfff66 2020-01-22 Error in shader program link: info: (unknown reason) fs: 00000000:01a0d822 Tex TexAlpha LM Fog 2x StenToAlpha StenUniform TFuncMod AlphaTest > #version 300 es 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 mediump float v_fogdepth; in mediump vec3 v_texcoord; out 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 = clamp(v.rgb * 2.0, 0.0, 1.0); float fogCoef = clamp(v_fogdepth, 0.0, 1.0); v = mix(vec4(u_fogcolor, v.a), v, fogCoef); float aResult = texture(testtex, vec2(v.a * 0.996094 + 0.001953, 0)).a; if (aResult < 0.5) discard; fragColor0 = vec4(v.rgb, u_stencilReplaceValue); } vs: 01f34551:00000b1d HWX C T N LM Fog Tex Light: 0: c:1 t:0 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 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; uniform highp vec4 u_cullRangeMin; uniform highp vec4 u_cullRangeMax; out lowp vec4 v_color0; out lowp vec3 v_color1; out mediump vec3 v_texcoord; out mediump 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); vec4 outPos = 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 - 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);
God of War®: Ghost of Sparta v1.6.3-492-g9fddfff66 2020-01-22 Error in shader program link: info: (unknown reason) fs: 00000000:00a1d822 Tex TexAlpha LM Fog 2x TFuncMod AlphaTest0 > #version 300 es precision lowp float; uniform sampler2D tex; uniform sampler2D testtex; in vec4 v_color0; in vec3 v_color1; uniform vec3 u_fogcolor; in mediump float v_fogdepth; in mediump vec3 v_texcoord; out 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 = clamp(v.rgb * 2.0, 0.0, 1.0); float fogCoef = clamp(v_fogdepth, 0.0, 1.0); v = mix(vec4(u_fogcolor, v.a), v, fogCoef); if (v.a < 0.002) discard; fragColor0 = v; } vs: 01f14440: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: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_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; uniform highp vec4 u_cullRangeMin; uniform highp vec4 u_cullRangeMax; out lowp vec4 v_color0; out lowp vec3 v_color1; out mediump vec3 v_texcoord; out mediump 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); vec4 outPos = 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_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; vec3 projPos = outPos.xyz / outPos.w; if (u_cullRangeMin.w <= 0.0f || (projPos.z >= u_cullRangeMin.z && projPos.z <= u_cullRangeMax.z)) { if (projPos.x < u_cullRangeMin.x || projPos.y < u_cullRangeMin.y || projPos.z < u_cullRangeMin.z || projPos.x > u_cullRangeMax.x || projPos.y > u_cullRangeMax.y || projPos.z > u_cullRangeMax.z) { outPos.w = u_cullRangeMax.w; } } gl_Position = outPos; }
God of War®: Ghost of Sparta v1.6.3-492-g9fddfff66 2020-01-22 Error in shader program link: info: (unknown reason) fs: 00000000:00a1d822 Tex TexAlpha LM Fog 2x TFuncMod AlphaTest0 > #version 300 es precision lowp float; uniform sampler2D tex; uniform sampler2D testtex; in vec4 v_color0; in vec3 v_color1; uniform vec3 u_fogcolor; in mediump float v_fogdepth; in mediump vec3 v_texcoord; out 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 = clamp(v.rgb * 2.0, 0.0, 1.0); float fogCoef = clamp(v_fogdepth, 0.0, 1.0); v = mix(vec4(u_fogcolor, v.a), v, fogCoef); if (v.a < 0.002) discard; 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; uniform highp vec4 u_cullRangeMin; uniform highp vec4 u_cullRangeMax; out lowp vec4 v_color0; out lowp vec3 v_color1; out mediump vec3 v_texcoord; out mediump 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); vec4 outPos = 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; vec3 projPos = outPos.xyz / outPos.w; if (u_cullRangeMin.w <= 0.0f || (projPos.z >= u_cullRangeMin.z && projPos.z <= u_cullRangeMax.z)) { if (projPos.x < u_cullRangeMin.x || projPos.y < u_cullRangeMin.y || projPos.z < u_cullRangeMin.z || projPos.x > u_cullRangeMax.x || projPos.y > u_cullRangeMax.y || projPos.z > u_cullRangeMax.z) { outPos.w = u_cullRangeMax.w; } } gl_Position = outPos; }
God of War®: Ghost of Sparta v1.6.3-492-g9fddfff66 2020-01-22 Error in shader program link: info: (unknown reason) fs: 00000000:01a0d822 Tex TexAlpha LM Fog 2x StenToAlpha StenUniform TFuncMod AlphaTest > #version 300 es 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 mediump float v_fogdepth; in mediump vec3 v_texcoord; out 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 = clamp(v.rgb * 2.0, 0.0, 1.0); float fogCoef = clamp(v_fogdepth, 0.0, 1.0); v = mix(vec4(u_fogcolor, v.a), v, fogCoef); float aResult = texture(testtex, vec2(v.a * 0.996094 + 0.001953, 0)).a; if (aResult < 0.5) discard; fragColor0 = vec4(v.rgb, u_stencilReplaceValue); } vs: 01934001:00000b1d HWX C T N LM Fog Tex Light: 0: 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_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; uniform highp vec4 u_cullRangeMin; uniform highp vec4 u_cullRangeMax; out lowp vec4 v_color0; out lowp vec3 v_color1; out mediump vec3 v_texcoord; out mediump 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); vec4 outPos = 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_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; vec3 projPos = outPos.xyz / outPos.w; if (u_cullRangeMin.w <= 0.0f || (projPos.z >= u_cullRangeMin.z && projPos.z <= u_cullRangeMax.z)) { if (projPos.x < u_cullRangeMin.x || projPos.y < u_cullRangeMin.y || projPos.z < u_cullRangeMin.z || projPos.x > u_cullRangeMax.x || projPos.y > u_cullRangeMax.y || projPos.z > u_cullRangeMax.z) { outPos.w = u_cullRangeMax.w; } } gl_Position = outPos; }
God of War®: Ghost of Sparta v1.6.3-492-g9fddfff66 2020-01-22 Error in shader program link: info: (unknown reason) fs: 00000000:00a00822 Tex TexAlpha LM Fog 2x TFuncMod #version 300 es precision lowp float; uniform sampler2D tex; in vec4 v_color0; in vec3 v_color1; uniform vec3 u_fogcolor; in mediump float v_fogdepth; in mediump vec3 v_texcoord; out 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 = clamp(v.rgb * 2.0, 0.0, 1.0); float fogCoef = clamp(v_fogdepth, 0.0, 1.0); v = mix(vec4(u_fogcolor, v.a), v, fogCoef); fragColor0 = v; } vs: 01f34551:00000b1d HWX C T N LM Fog Tex Light: 0: c:1 t:0 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 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; uniform highp vec4 u_cullRangeMin; uniform highp vec4 u_cullRangeMax; out lowp vec4 v_color0; out lowp vec3 v_color1; out mediump vec3 v_texcoord; out mediump 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); vec4 outPos = 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 - 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 = clam
God of War®: Ghost of Sparta v1.6.3-492-g9fddfff66 2020-01-22 Error in shader program link: info: (unknown reason) fs: 00000000:00a1d822 Tex TexAlpha LM Fog 2x TFuncMod AlphaTest0 > #version 300 es precision lowp float; uniform sampler2D tex; uniform sampler2D testtex; in vec4 v_color0; in vec3 v_color1; uniform vec3 u_fogcolor; in mediump float v_fogdepth; in mediump vec3 v_texcoord; out 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 = clamp(v.rgb * 2.0, 0.0, 1.0); float fogCoef = clamp(v_fogdepth, 0.0, 1.0); v = mix(vec4(u_fogcolor, v.a), v, fogCoef); if (v.a < 0.002) discard; fragColor0 = v; } vs: 01b34004:00000b1d HWX C T N LM Fog Tex Light: 0: c:0 t:1 1: 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 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_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; uniform highp vec4 u_cullRangeMin; uniform highp vec4 u_cullRangeMax; out lowp vec4 v_color0; out lowp vec3 v_color1; out mediump vec3 v_texcoord; out mediump 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); vec4 outPos = 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_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; vec3 projPos = outPos.xyz / outPos.w; if (u_cullRangeMin.w <= 0.0f || (projPos.z >= u_cullRangeMin.z && projPos.z <= u_cullRangeMax.z)) { if (projPos.x < u_cullRangeMin.x || projPos.y < u_cullRangeMin.y || projPos.z < u_cullRangeMin.z || projPos.x > u_cullRangeMax.x || projPos.y > u_cullRangeMax.y || projPos.z > u_cullRangeMax.z) { outPos.w = u_cullRangeMax.w; } } gl_Position = outPos; }
God of War®: Ghost of Sparta v1.6.3-492-g9fddfff66 2020-01-22 Error in shader program link: info: (unknown reason) fs: 00000000:00a0d822 Tex TexAlpha LM Fog 2x TFuncMod AlphaTest > #version 300 es precision lowp float; uniform sampler2D tex; uniform sampler2D testtex; in vec4 v_color0; in vec3 v_color1; uniform vec3 u_fogcolor; in mediump float v_fogdepth; in mediump vec3 v_texcoord; out 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 = clamp(v.rgb * 2.0, 0.0, 1.0); float fogCoef = clamp(v_fogdepth, 0.0, 1.0); v = mix(vec4(u_fogcolor, v.a), v, fogCoef); float aResult = texture(testtex, vec2(v.a * 0.996094 + 0.001953, 0)).a; if (aResult < 0.5) discard; fragColor0 = v; } 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; uniform highp vec4 u_cullRangeMin; uniform highp vec4 u_cullRangeMax; out lowp vec4 v_color0; out lowp vec3 v_color1; out mediump vec3 v_texcoord; out mediump 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); vec4 outPos = 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
God of War®: Ghost of Sparta v1.6.3-492-g9fddfff66 2020-01-22 Error in shader program link: info: (unknown reason) fs: 00000000:01a00802 Tex LM Fog 2x StenToAlpha StenUniform TFuncMod #version 300 es precision lowp float; uniform sampler2D tex; uniform float u_stencilReplaceValue; in vec4 v_color0; in vec3 v_color1; uniform vec3 u_fogcolor; in mediump float v_fogdepth; in mediump vec3 v_texcoord; out 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 = clamp(v.rgb * 2.0, 0.0, 1.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: 01934001:00000b1d HWX C T N LM Fog Tex Light: 0: 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_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; uniform highp vec4 u_cullRangeMin; uniform highp vec4 u_cullRangeMax; out lowp vec4 v_color0; out lowp vec3 v_color1; out mediump vec3 v_texcoord; out mediump 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); vec4 outPos = 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_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; vec3 projPos = outPos.xyz / outPos.w; if (u_cullRangeMin.w <= 0.0f || (projPos.z >= u_cullRangeMin.z && projPos.z <= u_cullRangeMax.z)) { if (projPos.x < u_cullRangeMin.x || projPos.y < u_cullRangeMin.y || projPos.z < u_cullRangeMin.z || projPos.x > u_cullRangeMax.x || projPos.y > u_cullRangeMax.y || projPos.z > u_cullRangeMax.z) { outPos.w = u_cullRangeMax.w; } } gl_Position = outPos; }
God of War®: Ghost of Sparta v1.6.3-492-g9fddfff66 2020-01-22 Error in shader program link: info: (unknown reason) fs: 00000000:01a0d822 Tex TexAlpha LM Fog 2x StenToAlpha StenUniform TFuncMod AlphaTest > #version 300 es 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 mediump float v_fogdepth; in mediump vec3 v_texcoord; out 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 = clamp(v.rgb * 2.0, 0.0, 1.0); float fogCoef = clamp(v_fogdepth, 0.0, 1.0); v = mix(vec4(u_fogcolor, v.a), v, fogCoef); float aResult = texture(testtex, vec2(v.a * 0.996094 + 0.001953, 0)).a; if (aResult < 0.5) discard; fragColor0 = vec4(v.rgb, u_stencilReplaceValue); } vs: 01934001:00000f1d HWX C T N LM Fog RevN Tex Light: 0: 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_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; uniform highp vec4 u_cullRangeMin; uniform highp vec4 u_cullRangeMax; out lowp vec4 v_color0; out lowp vec3 v_color1; out mediump vec3 v_texcoord; out mediump 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); vec4 outPos = 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_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; vec3 projPos = outPos.xyz / outPos.w; if (u_cullRangeMin.w <= 0.0f || (projPos.z >= u_cullRangeMin.z && projPos.z <= u_cullRangeMax.z)) { if (projPos.x < u_cullRangeMin.x || projPos.y < u_cullRangeMin.y || projPos.z < u_cullRangeMin.z || projPos.x > u_cullRangeMax.x || projPos.y > u_cullRangeMax.y || projPos.z > u_cullRangeMax.z) { outPos.w = u_cullRangeMax.w; } } gl_Position = outPos; }
God of War®: Ghost of Sparta v1.6.3-492-g9fddfff66 2020-01-22 Error in shader program link: info: (unknown reason) fs: 00000000:00a0d822 Tex TexAlpha LM Fog 2x TFuncMod AlphaTest > #version 300 es precision lowp float; uniform sampler2D tex; uniform sampler2D testtex; in vec4 v_color0; in vec3 v_color1; uniform vec3 u_fogcolor; in mediump float v_fogdepth; in mediump vec3 v_texcoord; out 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 = clamp(v.rgb * 2.0, 0.0, 1.0); float fogCoef = clamp(v_fogdepth, 0.0, 1.0); v = mix(vec4(u_fogcolor, v.a), v, fogCoef); float aResult = texture(testtex, vec2(v.a * 0.996094 + 0.001953, 0)).a; if (aResult < 0.5) discard; fragColor0 = v; } vs: 01b34051:00000b1d HWX C T N LM Fog Tex Light: 0: c:1 t:0 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 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; uniform highp vec4 u_cullRangeMin; uniform highp vec4 u_cullRangeMax; out lowp vec4 v_color0; out lowp vec3 v_color1; out mediump vec3 v_texcoord; out mediump 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); vec4 outPos = 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_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; vec3 projPos = outPos.xyz / outPos.w; if (u_cullRangeMin.w <= 0.0f || (projPos.z >= u_cullRangeMin.z && projPos.z <= u_cullRangeMax.z)) { if (projPos.x < u_cullRangeMin.x || projPos.y < u_cullRangeMin.y || projPos.z < u_cullRangeMin.z || projPos.x > u_cullRangeMax.x || projPos.y > u_cullRangeMax.y || projPos.z > u_cullRangeMax.z) { outPos.w = u_cullRangeMax.w; } } gl_Posi
God of War®: Ghost of Sparta v1.6.3-492-g9fddfff66 2020-01-22 Error in shader program link: info: (unknown reason) fs: 00000000:00a1d822 Tex TexAlpha LM Fog 2x TFuncMod AlphaTest0 > #version 300 es precision lowp float; uniform sampler2D tex; uniform sampler2D testtex; in vec4 v_color0; in vec3 v_color1; uniform vec3 u_fogcolor; in mediump float v_fogdepth; in mediump vec3 v_texcoord; out 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 = clamp(v.rgb * 2.0, 0.0, 1.0); float fogCoef = clamp(v_fogdepth, 0.0, 1.0); v = mix(vec4(u_fogcolor, v.a), v, fogCoef); if (v.a < 0.002) discard; fragColor0 = v; } vs: 01330051:00000b1d HWX C T N LM Fog Tex Light: 0: c:1 t:0 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 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; uniform highp vec4 u_cullRangeMin; uniform highp vec4 u_cullRangeMax; out lowp vec4 v_color0; out lowp vec3 v_color1; out mediump vec3 v_texcoord; out mediump 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); vec4 outPos = 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; 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; vec3 projPos = outPos.xyz / outPos.w; if (u_cullRangeMin.w <= 0.0f || (projPos.z >= u_cullRangeMin.z && projPos.z <= u_cullRangeMax.z)) { if (projPos.x < u_cullRangeMin.x || projPos.y < u_cullRangeMin.y || projPos.z < u_cullRangeMin.z || projPos.x > u_cullRangeMax.x || projPos.y > u_cullRangeMax.y || projPos.z > u_cullRangeMax.z) { outPos.w = u_cullRangeMax.w; } } gl_Position = outPos; }
God of War®: Ghost of Sparta v1.6.3-492-g9fddfff66 2020-01-22 Error in shader program link: info: (unknown reason) fs: 00000000:00a1d822 Tex TexAlpha LM Fog 2x TFuncMod AlphaTest0 > #version 300 es precision lowp float; uniform sampler2D tex; uniform sampler2D testtex; in vec4 v_color0; in vec3 v_color1; uniform vec3 u_fogcolor; in mediump float v_fogdepth; in mediump vec3 v_texcoord; out 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 = clamp(v.rgb * 2.0, 0.0, 1.0); float fogCoef = clamp(v_fogdepth, 0.0, 1.0); v = mix(vec4(u_fogcolor, v.a), v, fogCoef); if (v.a < 0.002) discard; fragColor0 = v; } vs: 01730040:00000b1d HWX C T N LM Fog Tex Light: 0: c:0 t:0 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 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 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; uniform highp vec4 u_cullRangeMin; uniform highp vec4 u_cullRangeMax; out lowp vec4 v_color0; out lowp vec3 v_color1; out mediump vec3 v_texcoord; out mediump 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); vec4 outPos = 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; 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; vec3 projPos = outPos.xyz / outPos.w; if (u_cullRangeMin.w <= 0.0f || (projPos.z >= u_cullRangeMin.z && projPos.z <= u_cullRangeMax.z)) { if (projPos.x < u_cullRangeMin.x || projPos.y < u_cullRangeMin.y || projPos.z < u_cullRangeMin.z || projPos.x > u_cullRangeMax.x || projPos.y > u_cullRangeMax.y || projPos.z > u_cullRangeMax.z) { outPos.w = u_cullRangeMax.w; } } gl_Position = outPos; }
God of War®: Ghost of Sparta v1.6.3-492-g9fddfff66 2020-01-22 Error in shader program link: info: (unknown reason) fs: 00000000:00a00802 Tex LM Fog 2x TFuncMod #version 300 es precision lowp float; uniform sampler2D tex; in vec4 v_color0; in vec3 v_color1; uniform vec3 u_fogcolor; in mediump float v_fogdepth; in mediump vec3 v_texcoord; out 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 = clamp(v.rgb * 2.0, 0.0, 1.0); float fogCoef = clamp(v_fogdepth, 0.0, 1.0); v = mix(vec4(u_fogcolor, v.a), v, fogCoef); fragColor0 = v; } vs: 01f34044:00000b1d HWX C T N LM Fog Tex 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 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; uniform highp vec2 u_fogcoef; uniform highp vec4 u_cullRangeMin; uniform highp vec4 u_cullRangeMax; out lowp vec4 v_color0; out lowp vec3 v_color1; out mediump vec3 v_texcoord; out mediump 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); vec4 outPos = 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 = vec3(texcoord.xy * u_uvscaleoffset.xy, 0.0); v_fogdepth = (viewPos.z + u_fogcoef.x) * u_fogcoef.y; vec3 projPos = outPos.xyz / outPos.w; if (u_cullRangeMin.w <= 0.0f || (projPos.z >= u_cullRangeMin.z && projPos.z <= u_cullRangeMax.z)) { if (projPos.x < u_cullRangeMin.x || projPos.y < u_cullRangeMin.y || projPos.z < u_cullRangeMin.z || projPos.x > u_cullRangeMax.x || projPos.y > u_cullRangeMax.y || projPos.z > u_cullRangeMax.z) { outPos.w = u_cullRangeMax.w; } } gl_Position = outPos; }
God of War®: Ghost of Sparta v1.6.3-492-g9fddfff66 2020-01-22 Error in shader program link: info: (unknown reason) fs: 00000000:01a0d822 Tex TexAlpha LM Fog 2x StenToAlpha StenUniform TFuncMod AlphaTest > #version 300 es 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 mediump float v_fogdepth; in mediump vec3 v_texcoord; out 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 = clamp(v.rgb * 2.0, 0.0, 1.0); float fogCoef = clamp(v_fogdepth, 0.0, 1.0); v = mix(vec4(u_fogcolor, v.a), v, fogCoef); float aResult = texture(testtex, vec2(v.a * 0.996094 + 0.001953, 0)).a; if (aResult < 0.5) discard; fragColor0 = vec4(v.rgb, u_stencilReplaceValue); } vs: 01730040:00000b1d HWX C T N LM Fog Tex Light: 0: c:0 t:0 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 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 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; uniform highp vec4 u_cullRangeMin; uniform highp vec4 u_cullRangeMax; out lowp vec4 v_color0; out lowp vec3 v_color1; out mediump vec3 v_texcoord; out mediump 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); vec4 outPos = 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; 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; vec3 projPos = outPos.xyz / outPos.w; if (u_cullRangeMin.w <= 0.0f || (projPos.z >= u_cullRangeMin.z && projPos.z <= u_cullRangeMax.z)) { if (projPos.x < u_cullRangeMin.x || projPos.y < u_cullRangeMin.y || projPos.z < u_cullRangeMin.z || projPos.x > u_cullRangeMax.x || projPos.y > u_cullRangeMax.y || projPos.z > u_cullRangeMax.z) { outPos.w = u_cullRangeMax.w; } } gl_Position = outPos; }
God of War®: Ghost of Sparta v1.6.3-492-g9fddfff66 2020-01-22 Error in shader program link: info: (unknown reason) fs: 00000000:00a1d822 Tex TexAlpha LM Fog 2x TFuncMod AlphaTest0 > #version 300 es precision lowp float; uniform sampler2D tex; uniform sampler2D testtex; in vec4 v_color0; in vec3 v_color1; uniform vec3 u_fogcolor; in mediump float v_fogdepth; in mediump vec3 v_texcoord; out 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 = clamp(v.rgb * 2.0, 0.0, 1.0); float fogCoef = clamp(v_fogdepth, 0.0, 1.0); v = mix(vec4(u_fogcolor, v.a), v, fogCoef); if (v.a < 0.002) discard; 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; uniform highp vec4 u_cullRangeMin; uniform highp vec4 u_cullRangeMax; out lowp vec4 v_color0; out lowp vec3 v_color1; out mediump vec3 v_texcoord; out mediump 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); vec4 outPos = 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; vec3 projPos = outPos.xyz / outPos.w; if (u_cullRangeMin.w <= 0.0f || (projPos.z >= u_cullRangeMin.z && projPos.z <= u_cullRangeMax.z)) { if (projPos.x < u_cullRangeMin.x || projPos.y < u_cullRangeMin.y || projPos.z < u_cullRangeMin.z || projPos.x > u_cullRangeMax.x || projPos.y > u_cullRangeMax.y || projPos.z > u_cullRangeMax.z) { outPos.w = u_cullRangeMax.w; } } gl_Position = outPos; }
God of War®: Ghost of Sparta v1.4 2020-01-21 ReadFromHardware: Invalid address 394fba70 near PC 08a75e94 LR 08a75f2c
God of War®: Ghost of Sparta v1.9.4 2020-01-20 Unknown GetPointer 001f001f PC 08a79040 LR 08a79040
God of War®: Ghost of Sparta v1.8.0 2020-01-19 sceMpegRingbufferPut(): invalid mpeg data
God of War®: Ghost of Sparta v1.9.4 2020-01-19 WriteToHardware: Invalid address 000002a0 near PC 08820028 LR 08820028
God of War®: Ghost of Sparta v1.6.3-492-g9fddfff66 2020-01-18 800201b7=sceKernelCreateFpl(): invalid blockSize/count
God of War®: Ghost of Sparta v1.6.3-492-g9fddfff66 2020-01-18 UNIMPL sceKernelStopUnloadSelfModuleWithStatus(00000001, 00000000, 00000000, 00000000, 00000000): game has likely crashed
God of War®: Ghost of Sparta v1.6.3-492-g9fddfff66 2020-01-18 Error in shader program link: info: (unknown reason) fs: 00000000:01a00802 Tex LM Fog 2x StenToAlpha StenUniform TFuncMod #version 300 es #extension GL_ARM_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 mediump float v_fogdepth; in mediump vec3 v_texcoord; out 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 = clamp(v.rgb * 2.0, 0.0, 1.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: 01f34111:00000b1d HWX C T N LM Fog Tex Light: 0: c:1 t:0 1: c:1 t:0 2: c:1 t:0 3: c:0 t:1 MatUp:3 (failed) #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 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; uniform highp vec4 u_cullRangeMin; uniform highp vec4 u_cullRangeMax; out lowp vec4 v_color0; out lowp vec3 v_color1; out mediump vec3 v_texcoord; out mediump 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); vec4 outPos = 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; 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.xy * u_uvscaleoffset.xy, 0.0); v_fogdepth = (viewPos.z + u_fogcoef.x) * u_fogcoef.y; vec3 projPos = outPos.xyz / outPos.w; if (u_cullRangeMin.w <= 0.0f || (projPos.z >= u_cul
God of War®: Ghost of Sparta v1.6.3-492-g9fddfff66 2020-01-18 Error in shader program link: info: (unknown reason) fs: 00000000:01a0d822 Tex TexAlpha LM Fog 2x StenToAlpha StenUniform TFuncMod AlphaTest > #version 300 es #extension GL_ARM_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 mediump float v_fogdepth; in mediump vec3 v_texcoord; out 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 = clamp(v.rgb * 2.0, 0.0, 1.0); float fogCoef = clamp(v_fogdepth, 0.0, 1.0); v = mix(vec4(u_fogcolor, v.a), v, fogCoef); float aResult = texture(testtex, vec2(v.a * 0.996094 + 0.001953, 0)).a; if (aResult < 0.5) discard; fragColor0 = vec4(v.rgb, u_stencilReplaceValue); } vs: 01f34111:00000f1d HWX C T N LM Fog RevN Tex Light: 0: c:1 t:0 1: c:1 t:0 2: c:1 t:0 3: c:0 t:1 MatUp:3 (failed) #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 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; uniform highp vec4 u_cullRangeMin; uniform highp vec4 u_cullRangeMax; out lowp vec4 v_color0; out lowp vec3 v_color1; out mediump vec3 v_texcoord; out mediump 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); vec4 outPos = 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; 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.xy * u_uvscaleoffset.xy, 0.0); v_fogdep
God of War®: Ghost of Sparta v1.6.3-492-g9fddfff66 2020-01-18 Error in shader program link: info: (unknown reason) fs: 00000000:01a0d822 Tex TexAlpha LM Fog 2x StenToAlpha StenUniform TFuncMod AlphaTest > #version 300 es #extension GL_ARM_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 mediump float v_fogdepth; in mediump vec3 v_texcoord; out 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 = clamp(v.rgb * 2.0, 0.0, 1.0); float fogCoef = clamp(v_fogdepth, 0.0, 1.0); v = mix(vec4(u_fogcolor, v.a), v, fogCoef); float aResult = texture(testtex, vec2(v.a * 0.996094 + 0.001953, 0)).a; if (aResult < 0.5) discard; fragColor0 = vec4(v.rgb, u_stencilReplaceValue); } vs: 01f34111:00000b1d HWX C T N LM Fog Tex Light: 0: c:1 t:0 1: c:1 t:0 2: c:1 t:0 3: c:0 t:1 MatUp:3 (failed) #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 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; uniform highp vec4 u_cullRangeMin; uniform highp vec4 u_cullRangeMax; out lowp vec4 v_color0; out lowp vec3 v_color1; out mediump vec3 v_texcoord; out mediump 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); vec4 outPos = 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; 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.xy * u_uvscaleoffset.xy, 0.0); v_fogdepth = (
God of War®: Ghost of Sparta v1.6.3-492-g9fddfff66 2020-01-18 Error in shader compilation: info: (unknown reason) 01f34111:00000f1d HWX C T N LM Fog RevN Tex Light: 0: c:1 t:0 1: c:1 t:0 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 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; uniform highp vec4 u_cullRangeMin; uniform highp vec4 u_cullRangeMax; out lowp vec4 v_color0; out lowp vec3 v_color1; out mediump vec3 v_texcoord; out mediump 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); vec4 outPos = 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; 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.xy * u_uvscaleoffset.xy, 0.0); v_fogdepth = (viewPos.z + u_fogcoef.x) * u_fogcoef.y; vec3 projPos = outPos.xyz / outPos.w; if (u_cullRangeMin.w <= 0.0f || (projPos.z >= u_cullRangeMin.z && projPos.z <= u_cullRangeMax.z)) { if (projPos.x < u_cullRangeMin.x || projPos.y < u_cullRangeMin.y || projPos.z < u_cullRangeMin.z || projPos.x > u_cullRangeMax.x || projPos.y > u_cullRangeMax.y || projPos.z > u_cullRangeMax.z) { outPos.w = u_cullRangeMax.w; } } gl_Position = outPos; }
God of War®: Ghost of Sparta v1.9.4 2020-01-17 ReadFromHardware: Invalid address 00000068 near PC 08aad8a0 LR 08aa5fcc
God of War®: Ghost of Sparta v1.9.4 2020-01-17 WriteToHardware: Invalid address 00000064 near PC 08aad8a0 LR 08aa5fcc
God of War®: Ghost of Sparta v1.8.0 2020-01-17 Unknown GetPointer 00000000 PC 08816844 LR 08816844
God of War®: Ghost of Sparta v1.8.0 2020-01-17 WriteToHardware: Invalid address 00000064 near PC 088072b0 LR 088072b0
God of War®: Ghost of Sparta v1.8.0 2020-01-17 ReadFromHardware: Invalid address 00000068 near PC 088072b0 LR 088072b0
God of War®: Ghost of Sparta v1.6.3-492-g9fddfff66 2020-01-17 Error in shader program link: info: Link failed because of missing vertex shader. fs: 00000000:00800022 Tex TexAlpha 2x TFuncMod #version 300 es #extension GL_ARM_shader_framebuffer_fetch : require precision lowp float; uniform sampler2D tex; in vec4 v_color0; in mediump vec3 v_texcoord; out vec4 fragColor0; void main() { vec4 t = texture(tex, v_texcoord.xy); vec4 p = v_color0; vec4 v = p * t; v.rgb = clamp(v.rgb * 2.0, 0.0, 1.0); fragColor0 = v; } vs: 00000000:00000918 HWX C T Tex #version 300 es precision highp float; in vec3 position; in vec2 texcoord; in lowp vec4 color0; uniform mat4 u_proj; uniform mat4 u_world; uniform mat4 u_view; uniform vec4 u_uvscaleoffset; uniform lowp vec4 u_matambientalpha; uniform highp vec4 u_cullRangeMin; uniform highp vec4 u_cullRangeMax; out lowp vec4 v_color0; out mediump vec3 v_texcoord; void main() { vec3 worldpos = (u_world * vec4(position.xyz, 1.0)).xyz; mediump vec3 worldnormal = vec3(0.0, 0.0, 1.0); vec4 viewPos = u_view * vec4(worldpos, 1.0); vec4 outPos = u_proj * viewPos; v_color0 = color0; v_texcoord = vec3(texcoord.xy * u_uvscaleoffset.xy, 0.0); vec3 projPos = outPos.xyz / outPos.w; if (u_cullRangeMin.w <= 0.0f || (projPos.z >= u_cullRangeMin.z && projPos.z <= u_cullRangeMax.z)) { if (projPos.x < u_cullRangeMin.x || projPos.y < u_cullRangeMin.y || projPos.z < u_cullRangeMin.z || projPos.x > u_cullRangeMax.x || projPos.y > u_cullRangeMax.y || projPos.z > u_cullRangeMax.z) { outPos.w = u_cullRangeMax.w; } } gl_Position = outPos; }
God of War®: Ghost of Sparta v1.9.4 2020-01-16 WriteToHardware: Invalid address 3f1bbf72 near PC 088129a8 LR 088129a8
God of War®: Ghost of Sparta v1.6.3-492-g9fddfff66 2020-01-15 Error in shader program link: info: Link Error: Vertex 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 = clamp(v.rgb * 2.0, 0.0, 1.0); float fogCoef = clamp(v_fogdepth, 0.0, 1.0); v = mix(vec4(u_fogcolor, v.a), v, fogCoef); fragColor0 = v; } vs: 01030000:00000b1d HWX C T N LM Fog Tex 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 vec4 u_uvscaleoffset; 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; uniform highp vec4 u_cullRangeMin; uniform highp vec4 u_cullRangeMax; 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); vec4 outPos = 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 = vec3(texcoord.xy * u_uvscaleoffset.xy, 0.0); v_fogdepth = (viewPos.z + u_fogcoef.x) * u_fogcoef.y; vec3 projPos = outPos.xyz / outPos.w; if (u_cullRangeMin.w <= 0.0f || (projPos.z >= u_cullRangeMin.z && projPos.z <= u_cullRangeMax.z)) { if (projPos.x < u_cullRangeMin.x || projPos.y < u_cullRangeMin.y || projPos.z < u_cullRangeMin.z || projPos.x > u_cullRangeMax.x || projPos.y > u_cullRangeMax.y || projPos.z > u_cullRangeMax.z) { outPos.w = u_cullRangeMax.w; } } gl_Position = outPos; }
God of War®: Ghost of Sparta v1.6.3-492-g9fddfff66 2020-01-15 Error in shader program link: info: Link Error: Vertex 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 = clamp(v.rgb * 2.0, 0.0, 1.0); float fogCoef = clamp(v_fogdepth, 0.0, 1.0); v = mix(vec4(u_fogcolor, v.a), v, fogCoef); fragColor0 = v; } vs: 01f14444: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: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 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 vec3 u_matdiffuse; uniform lowp vec4 u_matspecular; uniform lowp vec3 u_matemissive; uniform lowp vec4 u_matambientalpha; uniform highp vec2 u_fogcoef; uniform highp vec4 u_cullRangeMin; uniform highp vec4 u_cullRangeMax; 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); vec4 outPos = 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 * u_matdiffuse) * 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 * u_matdiffuse) * 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 * 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; vec3 projPos = outPos.xyz / outPos.w; if (u_cullRangeMin.w <= 0.0f || (projPos.z >= u_cullRangeMin.z && projPos.z <= u_cullRangeMax.z)) { if (projPos.x < u_cullRangeMin.x || projPos.y < u_cullR
God of War®: Ghost of Sparta v1.6.3-492-g9fddfff66 2020-01-15 Error in shader program link: info: Link Error: Vertex 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; v.rgb = clamp(v.rgb * 2.0, 0.0, 1.0); float fogCoef = clamp(v_fogdepth, 0.0, 1.0); v = mix(vec4(u_fogcolor, v.a), v, fogCoef); if (v.a < 0.002) discard; fragColor0 = v; } vs: 01730111:00000b1d HWX C T N LM Fog Tex 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 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; uniform highp vec2 u_fogcoef; uniform highp vec4 u_cullRangeMin; uniform highp vec4 u_cullRangeMax; 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); vec4 outPos = 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 = vec3(texcoord.xy * u_uvscaleoffset.xy, 0.0); v_fogdepth = (viewPos.z + u_fogcoef.x) * u_fogcoef.y; vec3 projPos = outPos.xyz / outPos.w; if (u_cullRangeMin.w <= 0.0f || (projPos.z >= u_cullRangeMin.z && projPos.z <= u_cullRangeMax.z)) { if (projPos.x < u_cullRangeMin.x || projPos.y < u_cullRangeMin.y || projPos.z < u_cullRangeMin.z || projPos.x > u_cullRangeMax.x || projPos.y > u_cullRangeMax.y || projPos.z > u_cullRangeMax.z) { outPos.w = u_cullRangeMax.w; } } gl_Position = outPos; }
God of War®: Ghost of Sparta v1.6.3-492-g9fddfff66 2020-01-15 Error in shader program link: info: Link Error: Vertex 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 = clamp(v.rgb * 2.0, 0.0, 1.0); float fogCoef = clamp(v_fogdepth, 0.0, 1.0); v = mix(vec4(u_fogcolor, v.a), v, fogCoef); fragColor0 = v; } vs: 01f34111:00000b1d HWX C T N LM Fog Tex Light: 0: c:1 t:0 1: c:1 t:0 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 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; uniform highp vec4 u_cullRangeMin; uniform highp vec4 u_cullRangeMax; 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); vec4 outPos = 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; 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.xy * u_uvscaleoffset.xy, 0.0); v_fogdepth = (viewPos.z + u_fogcoef.x) * u_fogcoef.y; vec3 projPos = outPos.xyz / outPos.w; if (u_cullRangeMin.w <= 0.0f || (projPos.z >= u_cullRangeMin.z && projPos.z <= u_cullRangeMax.z)) { if (projPos.x < u_cullRangeMin.x || projPos.
God of War®: Ghost of Sparta v1.6.3-492-g9fddfff66 2020-01-15 Error in shader program link: info: Link Error: Vertex 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; v.rgb = clamp(v.rgb * 2.0, 0.0, 1.0); float fogCoef = clamp(v_fogdepth, 0.0, 1.0); v = mix(vec4(u_fogcolor, v.a), v, fogCoef); float aResult = texture(testtex, vec2(v.a * 0.996094 + 0.001953, 0)).a; if (aResult < 0.5) discard; fragColor0 = v; } vs: 01b34000: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: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_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; uniform highp vec4 u_cullRangeMin; uniform highp vec4 u_cullRangeMax; 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); vec4 outPos = 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_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; vec3 projPos = outPos.xyz / outPos.w; if (u_cullRangeMin.w <= 0.0f || (projPos.z >= u_cullRangeMin.z && projPos.z <= u_cullRangeMax.z)) { if (projPos.x < u_cullRangeMin.x || projPos.y < u_cullRangeMin.y || projPos.z < u_cullRangeMin.z || projPos.x > u_cullRangeMax.x || projPos.y > u_cullRangeMax.y || projPos.z > u_cullRangeMax.z) { outPos.w = u_cullRangeMax.w; } } gl_Position = outPos; }
God of War®: Ghost of Sparta v1.6.3-492-g9fddfff66 2020-01-15 Error in shader program link: info: Link Error: Vertex 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 = clamp(v.rgb * 2.0, 0.0, 1.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; uniform highp vec4 u_cullRangeMin; uniform highp vec4 u_cullRangeMax; 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); vec4 outPos = 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; vec3 projPos = outPos.xyz / outPos.w; if (u_cullRangeMin.w <= 0.0f || (projPos.z >= u_cullRangeMin.z && projPos.z <= u_cullRangeMax.z)) { if (projPos.x < u_cullRangeMin.x || projPos.y < u_cullRangeMin.y || projPos.z < u_cullRangeMin.z || projPos.x > u_cullRangeMax.x || projPos.y > u_cullRangeMax.y || projPos.z > u_cullRangeMax.z) { outPos.w = u_cullRangeMax.w; } } gl_Position = outPos; }
God of War®: Ghost of Sparta v1.6.3-492-g9fddfff66 2020-01-15 Error in shader program link: info: Link Error: Vertex 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 = clamp(v.rgb * 2.0, 0.0, 1.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: 01710400:00000b1d HWX C T N LM Fog Tex Light: 0: c:0 t:0 1: c:0 t:0 2: 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 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; uniform highp vec4 u_cullRangeMin; uniform highp vec4 u_cullRangeMax; 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); vec4 outPos = 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; 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; vec3 projPos = outPos.xyz / outPos.w; if (u_cullRangeMin.w <= 0.0f || (projPos.z >= u_cullRangeMin.z && projPos.z <= u_cullRangeMax.z)) { if (projPos.x < u_cullRangeMin.x || projPos.y < u_cullRangeMin.y || projPos.z < u_cullRangeMin.z || projPos.x > u_cullRangeMax.x || projPos.y > u_cullRangeMax.y || projPos.z > u_cullRangeMax.z) { outPos.w = u_cullRangeMax.w; } } gl_Position = outPos; }
God of War®: Ghost of Sparta v1.6.3-492-g9fddfff66 2020-01-15 Error in shader program link: info: Link Error: Vertex 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; v.rgb = clamp(v.rgb * 2.0, 0.0, 1.0); float fogCoef = clamp(v_fogdepth, 0.0, 1.0); v = mix(vec4(u_fogcolor, v.a), v, fogCoef); float aResult = texture(testtex, vec2(v.a * 0.996094 + 0.001953, 0)).a; if (aResult < 0.5) discard; fragColor0 = vec4(v.rgb, u_stencilReplaceValue); } vs: 01730000:00000f1d HWX C T N LM Fog RevN 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; uniform highp vec4 u_cullRangeMin; uniform highp vec4 u_cullRangeMax; 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); vec4 outPos = 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; vec3 projPos = outPos.xyz / outPos.w; if (u_cullRangeMin.w <= 0.0f || (projPos.z >= u_cullRangeMin.z && projPos.z <= u_cullRangeMax.z)) { if (projPos.x < u_cullRangeMin.x || projPos.y < u_cullRangeMin.y || projPos.z < u_cullRangeMin.z || projPos.x > u_cullRangeMax.x || projPos.y > u_cullRangeMax.y || projPos.z > u_cullRangeMax.z) { outPos.w = u_cullRangeMax.w; } } gl_Position = outPos; }
God of War®: Ghost of Sparta v1.6.3-492-g9fddfff66 2020-01-15 Error in shader program link: info: Link Error: Vertex 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; v.rgb = clamp(v.rgb * 2.0, 0.0, 1.0); float fogCoef = clamp(v_fogdepth, 0.0, 1.0); v = mix(vec4(u_fogcolor, v.a), v, fogCoef); float aResult = texture(testtex, vec2(v.a * 0.996094 + 0.001953, 0)).a; if (aResult < 0.5) discard; fragColor0 = vec4(v.rgb, u_stencilReplaceValue); } vs: 01f34501:00000b1d HWX C T N LM Fog Tex Light: 0: c:1 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 lowp vec3 u_lightspecular0; 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; uniform highp vec4 u_cullRangeMin; uniform highp vec4 u_cullRangeMax; 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); vec4 outPos = 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; 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);
God of War®: Ghost of Sparta v1.6.3-492-g9fddfff66 2020-01-15 Error in shader program link: info: Link Error: Vertex 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 = clamp(v.rgb * 2.0, 0.0, 1.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: 01730111:00000b1d HWX C T N LM Fog Tex 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 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; uniform highp vec2 u_fogcoef; uniform highp vec4 u_cullRangeMin; uniform highp vec4 u_cullRangeMax; 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); vec4 outPos = 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 = vec3(texcoord.xy * u_uvscaleoffset.xy, 0.0); v_fogdepth = (viewPos.z + u_fogcoef.x) * u_fogcoef.y; vec3 projPos = outPos.xyz / outPos.w; if (u_cullRangeMin.w <= 0.0f || (projPos.z >= u_cullRangeMin.z && projPos.z <= u_cullRangeMax.z)) { if (projPos.x < u_cullRangeMin.x || projPos.y < u_cullRangeMin.y || projPos.z < u_cullRangeMin.z || projPos.x > u_cullRangeMax.x || projPos.y > u_cullRangeMax.y || projPos.z > u_cullRangeMax.z) { outPos.w = u_cullRangeMax.w; } } gl_Position = outPos; }
God of War®: Ghost of Sparta v1.6.3-492-g9fddfff66 2020-01-15 Error in shader program link: info: Link Error: Vertex 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; v.rgb = clamp(v.rgb * 2.0, 0.0, 1.0); float fogCoef = clamp(v_fogdepth, 0.0, 1.0); v = mix(vec4(u_fogcolor, v.a), v, fogCoef); float aResult = texture(testtex, vec2(v.a * 0.996094 + 0.001953, 0)).a; if (aResult < 0.5) discard; fragColor0 = vec4(v.rgb, u_stencilReplaceValue); } vs: 01730005:00000b1d HWX C T N LM Fog Tex Light: 0: c:1 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 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 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; uniform highp vec4 u_cullRangeMin; uniform highp vec4 u_cullRangeMax; 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); vec4 outPos = 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; 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 = 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; vec3 projPos = outPos.xyz / outPos.w; if (u_cullRangeMin.w <= 0.0f || (projPos.z >= u_cullRangeMin.z && projPos.z <= u_cullRangeMax.z)) { if (projPos.x < u_cullRangeMin.x || projPos.y < u_cullRangeMin.y || projPos.z < u_cullRangeMin.z || projPos.x > u_cullRangeMax.x || projPos.y > u_cullRangeMax.y || projPos.z > u_cullRangeMax.z) { outPos.w = u_cullRangeMax.w; } } gl_Position = outPos; }
God of War®: Ghost of Sparta v1.6.3-492-g9fddfff66 2020-01-15 Error in shader program link: info: Link Error: Vertex 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 = clamp(v.rgb * 2.0, 0.0, 1.0); float fogCoef = clamp(v_fogdepth, 0.0, 1.0); v = mix(vec4(u_fogcolor, v.a), v, fogCoef); fragColor0 = v; } vs: 01730004:00000b1d HWX C T N LM Fog Tex 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 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; uniform highp vec2 u_fogcoef; uniform highp vec4 u_cullRangeMin; uniform highp vec4 u_cullRangeMax; 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); vec4 outPos = 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 = vec3(texcoord.xy * u_uvscaleoffset.xy, 0.0); v_fogdepth = (viewPos.z + u_fogcoef.x) * u_fogcoef.y; vec3 projPos = outPos.xyz / outPos.w; if (u_cullRangeMin.w <= 0.0f || (projPos.z >= u_cullRangeMin.z && projPos.z <= u_cullRangeMax.z)) { if (projPos.x < u_cullRangeMin.x || projPos.y < u_cullRangeMin.y || projPos.z < u_cullRangeMin.z || projPos.x > u_cullRangeMax.x || projPos.y > u_cullRangeMax.y || projPos.z > u_cullRangeMax.z) { outPos.w = u_cullRangeMax.w; } } gl_Position = outPos; }
God of War®: Ghost of Sparta v1.6.3-492-g9fddfff66 2020-01-15 Error in shader program link: info: Link Error: Vertex 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 = clamp(v.rgb * 2.0, 0.0, 1.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; uniform highp vec4 u_cullRangeMin; uniform highp vec4 u_cullRangeMax; 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); vec4 outPos = 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; vec3 projPos = outPos.xyz / outPos.w; if (u_cullRangeMin.w <= 0.0f || (projPos.z >= u_cullRangeMin.z && projPos.z <= u_cullRangeMax.z)) { if (projPos.x < u_cullRangeMin.x || projPos.y < u_cullRangeMin.y || projPos.z < u_cullRangeMin.z || projPos.x > u_cullRangeMax.x || projPos.y > u_cullRangeMax.y || projPos.z > u_cullRangeMax.z) { outPos.w = u_cullRangeMax.w; } } gl_Position = outPos; }