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.14.4 |
2024-03-18 |
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 r4p0-00rel0 [Revision 96995].
07f34511:41000b39 HWX C T N LM Tex Bones:5 Light: 0: c:1 t:0 1: c:1 t:0 2: c:1 t:1 3: c:0 t:1 MatUp:3 WScale 3 Cull
#version 100
// Driver: Mali-450 MP - GLSL 100
precision highp float;
#define gl_VertexIndex gl_VertexID
#define splat3(x) vec3(x)
#define mul(x, y) ((x) * (y))
// 07f34511:41000b39 HWX C T N LM Tex Bones:5 Light: 0: c:1 t:0 1: c:1 t:0 2: c:1 t:1 3: c:0 t:1 MatUp:3 WScale 3 Cull
attribute mediump vec4 w1;
attribute mediump float w2;
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 mat4 u_bone0;
uniform mat4 u_bone1;
uniform mat4 u_bone2;
uniform mat4 u_bone3;
uniform mat4 u_bone4;
uniform vec4 u_uvscaleoffset;
uniform vec3 u_lightpos0;
uniform lowp vec3 u_lightambient0;
uniform lowp vec3 u_lightdiffuse0;
uniform lowp vec3 u_lightspecular0;
uniform vec3 u_lightpos1;
uniform lowp vec3 u_lightambient1;
uniform lowp vec3 u_lightdiffuse1;
uniform lowp vec3 u_lightspecular1;
uniform vec3 u_lightpos2;
uniform mediump vec3 u_lightatt2;
uniform lowp vec3 u_lightambient2;
uniform lowp vec3 u_lightdiffuse2;
uniform lowp vec3 u_lightspecular2;
uniform vec3 u_lightpos3;
uniform mediump vec3 u_lightatt3;
uniform lowp vec3 u_lightambient3;
uniform lowp vec3 u_lightdiffuse3;
uniform lowp vec4 u_ambient;
uniform lowp vec4 u_matspecular;
uniform lowp vec3 u_matemissive;
uniform lowp vec4 u_matambientalpha;
uniform highp vec2 u_fogcoef;
uniform highp vec4 u_depthRange;
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;
vec3 normalizeOr001(vec3 v) {
return length(v) == 0.0 ? vec3(0.0, 0.0, 1.0) : normalize(v);
}
void main() {
mat4 skinMatrix = mul(w1.x, u_bone0) + mul(w1.y, u_bone1) + mul(w1.z, u_bone2) + mul(w1.w, u_bone3) + mul(w2, u_bone4);
vec3 skinnedpos = mul(vec4(position, 1.0), skinMatrix).xyz;
vec3 worldpos = mul(vec4(skinnedpos, 1.0), u_world).xyz;
mediump vec3 skinnednormal = mul(vec4(normal, 0.0), skinMatrix).xyz;
mediump vec3 worldnormal = normalizeOr001(mul(vec4(skinnednormal, 0.0), u_world).xyz);
vec4 viewPos = vec4(mul(vec4(worldpos, 1.0), u_view).xyz, 1.0);
vec4 outPos = mul(u_proj, viewPos);
vec4 ambientColor = color0;
vec3 diffuseColor = color0.rgb;
vec3 specularColor = u_matspecular.rgb;
lowp vec4 lightSum0 = u_ambient * ambientColor + vec4(u_matemissive, 0.0);
lowp vec3 lightSum1 = splat3(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 * diffuseColor) * 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 * specularColor * ldot ;
}
lightSum0.rgb += (u_lightambient0 * ambientColor.rgb + diffuse);
toLight = u_lightpos1;
ldot = dot(toLight, worldnormal);
diffuse = (u_lightdiffuse1 * diffuseColor) * 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 * specularColor * ldot ;
}
lightSum0.rgb += (u_lightambient1 * ambientColor.rgb + diffuse);
toLight = u_lightpos2 - worldpos;
distance = length(toLight);
toLight /= distance;
ldot = dot(toLight, worldnormal);
lightScale = clamp(1.0 / dot(u_l |
God of War™: Ghost of Sparta |
v1.14.4 |
2024-03-18 |
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 r4p0-00rel0 [Revision 96995].
07f34004:40c00b39 HWX C T N LM Tex Bones:4 Light: 0: c:0 t:1 1: c:0 t:0 2: c:0 t:0 3: c:0 t:1 MatUp:3 WScale 3 Cull
#version 100
// Driver: Mali-450 MP - GLSL 100
precision highp float;
#define gl_VertexIndex gl_VertexID
#define splat3(x) vec3(x)
#define mul(x, y) ((x) * (y))
// 07f34004:40c00b39 HWX C T N LM Tex Bones:4 Light: 0: c:0 t:1 1: c:0 t:0 2: c:0 t:0 3: c:0 t:1 MatUp:3 WScale 3 Cull
attribute mediump vec4 w1;
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 mat4 u_bone0;
uniform mat4 u_bone1;
uniform mat4 u_bone2;
uniform mat4 u_bone3;
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_depthRange;
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;
vec3 normalizeOr001(vec3 v) {
return length(v) == 0.0 ? vec3(0.0, 0.0, 1.0) : normalize(v);
}
void main() {
mat4 skinMatrix = mul(w1.x, u_bone0) + mul(w1.y, u_bone1) + mul(w1.z, u_bone2) + mul(w1.w, u_bone3);
vec3 skinnedpos = mul(vec4(position, 1.0), skinMatrix).xyz;
vec3 worldpos = mul(vec4(skinnedpos, 1.0), u_world).xyz;
mediump vec3 skinnednormal = mul(vec4(normal, 0.0), skinMatrix).xyz;
mediump vec3 worldnormal = normalizeOr001(mul(vec4(skinnednormal, 0.0), u_world).xyz);
vec4 viewPos = vec4(mul(vec4(worldpos, 1.0), u_view).xyz, 1.0);
vec4 outPos = mul(u_proj, viewPos);
vec4 ambientColor = color0;
vec3 diffuseColor = color0.rgb;
vec3 specularColor = u_matspecular.rgb;
lowp vec4 lightSum0 = u_ambient * ambientColor + 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 = dot(toLight, worldnormal);
lightScale = clamp(1.0 / dot(u_lightatt0, vec3(1.0, distance, distance*distance)), 0.0, 1.0);
diffuse = (u_lightdiffuse0 * diffuseColor) * max(ldot, 0.0);
lightSum0.rgb += (u_lightambient0 * ambientColor.rgb + diffuse) * lightScale;
toLight = u_lightpos1;
ldot = dot(toLight, worldnormal);
diffuse = (u_lightdiffuse1 * diffuseColor) * max(ldot, 0.0);
lightSum0.rgb += (u_lightambient1 * ambientColor.rgb + diffuse);
toLight = u_lightpos2;
ldot = dot(toLight, worldnormal);
diffuse = (u_lightdiffuse2 * diffuseColor) * max(ldot, 0.0);
lightSum0.rgb += (u_lightambient2 * ambientColor.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 * diffuseColor) * max(ldot, 0.0);
lightSum0.rgb += (u_lightambient3 * ambientColor.rgb + diffuse) * lightScale;
v_color0 = clamp(lightSum0, 0.0, 1.0);
v_color1 = splat3(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;
float projZ = (pro |
God of War™: Ghost of Sparta |
v1.17.1 |
2024-03-17 |
Unknown GE command : efef12f1 |
God of War™: Ghost of Sparta |
v1.17.1 |
2024-03-19 |
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 r7p0-00rel1 [Revision 96995].
01730551:00000f09 HWX C T N LM RevN Light: 0: c:1 t:0 1: c:1 t:1 2: c:1 t:1 MatUp:3
#version 100
// Driver: Mali-400 MP - GLSL 100
precision highp float;
#define gl_VertexIndex gl_VertexID
#define splat3(x) vec3(x)
#define mul(x, y) ((x) * (y))
// 01730551:00000f09 HWX C T N LM RevN Light: 0: c:1 t:0 1: c:1 t:1 2: c:1 t:1 MatUp:3
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 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_depthRange;
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;
vec3 normalizeOr001(vec3 v) {
return length(v) == 0.0 ? vec3(0.0, 0.0, 1.0) : normalize(v);
}
void main() {
vec3 worldpos = mul(vec4(position, 1.0), u_world).xyz;
mediump vec3 worldnormal = normalizeOr001(mul(vec4(-normal, 0.0), u_world).xyz);
vec4 viewPos = vec4(mul(vec4(worldpos, 1.0), u_view).xyz, 1.0);
vec4 outPos = mul(u_proj, viewPos);
vec4 ambientColor = color0;
vec3 diffuseColor = color0.rgb;
vec3 specularColor = u_matspecular.rgb;
lowp vec4 lightSum0 = u_ambient * ambientColor + vec4(u_matemissive, 0.0);
lowp vec3 lightSum1 = splat3(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 * diffuseColor) * max(ldot, 0.0);
if (ldot >= 0.0) {
if (u_matspecular.a > 0.0) {
ldot = dot(normalize(toLight + vec3(0.0, 0.0, 1.0)), worldnormal);
ldot = pow(max(ldot, 0.0), u_matspecular.a);
} else {
ldot = 1.0;
}
if (ldot > 0.0)
lightSum1 += u_lightspecular0 * specularColor * ldot ;
}
lightSum0.rgb += (u_lightambient0 * ambientColor.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 * diffuseColor) * max(ldot, 0.0);
if (ldot >= 0.0) {
if (u_matspecular.a > 0.0) {
ldot = dot(normalize(toLight + vec3(0.0, 0.0, 1.0)), worldnormal);
ldot = pow(max(ldot, 0.0), u_matspecular.a);
} else {
ldot = 1.0;
}
if (ldot > 0.0)
lightSum1 += u_lightspecular1 * specularColor * ldot * lightScale;
}
lightSum0.rgb += (u_lightambient1 * ambientColor.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 * diffuseColor) * max(ldot, 0.0);
if (ldot >= 0.0) {
if (u_matspecular.a > 0.0) {
ldot = dot(normalize(toLight + vec3(0.0, 0.0, 1.0)), worldnormal);
ldot = pow(max(ldot, 0.0), u_matspecular.a);
} else {
ldot = 1.0;
}
if (ldot > 0.0)
lightSum1 += u_lightspecular2 * |
God of War™: Ghost of Sparta |
v1.17.1 |
2024-03-19 |
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 r7p0-00rel1 [Revision 96995].
01730551:00000b09 HWX C T N LM Light: 0: c:1 t:0 1: c:1 t:1 2: c:1 t:1 MatUp:3
#version 100
// Driver: Mali-400 MP - GLSL 100
precision highp float;
#define gl_VertexIndex gl_VertexID
#define splat3(x) vec3(x)
#define mul(x, y) ((x) * (y))
// 01730551:00000b09 HWX C T N LM Light: 0: c:1 t:0 1: c:1 t:1 2: c:1 t:1 MatUp:3
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 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_depthRange;
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;
vec3 normalizeOr001(vec3 v) {
return length(v) == 0.0 ? vec3(0.0, 0.0, 1.0) : normalize(v);
}
void main() {
vec3 worldpos = mul(vec4(position, 1.0), u_world).xyz;
mediump vec3 worldnormal = normalizeOr001(mul(vec4(normal, 0.0), u_world).xyz);
vec4 viewPos = vec4(mul(vec4(worldpos, 1.0), u_view).xyz, 1.0);
vec4 outPos = mul(u_proj, viewPos);
vec4 ambientColor = color0;
vec3 diffuseColor = color0.rgb;
vec3 specularColor = u_matspecular.rgb;
lowp vec4 lightSum0 = u_ambient * ambientColor + vec4(u_matemissive, 0.0);
lowp vec3 lightSum1 = splat3(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 * diffuseColor) * max(ldot, 0.0);
if (ldot >= 0.0) {
if (u_matspecular.a > 0.0) {
ldot = dot(normalize(toLight + vec3(0.0, 0.0, 1.0)), worldnormal);
ldot = pow(max(ldot, 0.0), u_matspecular.a);
} else {
ldot = 1.0;
}
if (ldot > 0.0)
lightSum1 += u_lightspecular0 * specularColor * ldot ;
}
lightSum0.rgb += (u_lightambient0 * ambientColor.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 * diffuseColor) * max(ldot, 0.0);
if (ldot >= 0.0) {
if (u_matspecular.a > 0.0) {
ldot = dot(normalize(toLight + vec3(0.0, 0.0, 1.0)), worldnormal);
ldot = pow(max(ldot, 0.0), u_matspecular.a);
} else {
ldot = 1.0;
}
if (ldot > 0.0)
lightSum1 += u_lightspecular1 * specularColor * ldot * lightScale;
}
lightSum0.rgb += (u_lightambient1 * ambientColor.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 * diffuseColor) * max(ldot, 0.0);
if (ldot >= 0.0) {
if (u_matspecular.a > 0.0) {
ldot = dot(normalize(toLight + vec3(0.0, 0.0, 1.0)), worldnormal);
ldot = pow(max(ldot, 0.0), u_matspecular.a);
} else {
ldot = 1.0;
}
if (ldot > 0.0)
lightSum1 += u_lightspecular2 * specularCol |
God of War™: Ghost of Sparta |
v1.17.1 |
2024-03-19 |
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 r7p0-00rel1 [Revision 96995].
01f34515:00000f09 HWX C T N LM RevN Light: 0: c:1 t:1 1: c:1 t:0 2: c:1 t:1 3: c:0 t:1 MatUp:3
#version 100
// Driver: Mali-400 MP - GLSL 100
precision highp float;
#define gl_VertexIndex gl_VertexID
#define splat3(x) vec3(x)
#define mul(x, y) ((x) * (y))
// 01f34515:00000f09 HWX C T N LM RevN Light: 0: c:1 t:1 1: c:1 t:0 2: c:1 t:1 3: c:0 t:1 MatUp:3
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 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 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_depthRange;
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;
vec3 normalizeOr001(vec3 v) {
return length(v) == 0.0 ? vec3(0.0, 0.0, 1.0) : normalize(v);
}
void main() {
vec3 worldpos = mul(vec4(position, 1.0), u_world).xyz;
mediump vec3 worldnormal = normalizeOr001(mul(vec4(-normal, 0.0), u_world).xyz);
vec4 viewPos = vec4(mul(vec4(worldpos, 1.0), u_view).xyz, 1.0);
vec4 outPos = mul(u_proj, viewPos);
vec4 ambientColor = color0;
vec3 diffuseColor = color0.rgb;
vec3 specularColor = u_matspecular.rgb;
lowp vec4 lightSum0 = u_ambient * ambientColor + vec4(u_matemissive, 0.0);
lowp vec3 lightSum1 = splat3(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 = dot(toLight, worldnormal);
lightScale = clamp(1.0 / dot(u_lightatt0, vec3(1.0, distance, distance*distance)), 0.0, 1.0);
diffuse = (u_lightdiffuse0 * diffuseColor) * max(ldot, 0.0);
if (ldot >= 0.0) {
if (u_matspecular.a > 0.0) {
ldot = dot(normalize(toLight + vec3(0.0, 0.0, 1.0)), worldnormal);
ldot = pow(max(ldot, 0.0), u_matspecular.a);
} else {
ldot = 1.0;
}
if (ldot > 0.0)
lightSum1 += u_lightspecular0 * specularColor * ldot * lightScale;
}
lightSum0.rgb += (u_lightambient0 * ambientColor.rgb + diffuse) * lightScale;
toLight = u_lightpos1;
ldot = dot(toLight, worldnormal);
diffuse = (u_lightdiffuse1 * diffuseColor) * max(ldot, 0.0);
if (ldot >= 0.0) {
if (u_matspecular.a > 0.0) {
ldot = dot(normalize(toLight + vec3(0.0, 0.0, 1.0)), worldnormal);
ldot = pow(max(ldot, 0.0), u_matspecular.a);
} else {
ldot = 1.0;
}
if (ldot > 0.0)
lightSum1 += u_lightspecular1 * specularColor * ldot ;
}
lightSum0.rgb += (u_lightambient1 * ambientColor.rgb + diffuse);
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 * diffuseColor) * max(ldot, 0.0);
if (ldot >= 0.0) {
if (u_matspecular.a > 0.0) {
ldot = dot(normalize(toLight + vec3(0.0, 0.0, 1.0)), worldnor |
God of War™: Ghost of Sparta |
v1.17.1 |
2024-03-19 |
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 r7p0-00rel1 [Revision 96995].
01f34515:00000b09 HWX C T N LM Light: 0: c:1 t:1 1: c:1 t:0 2: c:1 t:1 3: c:0 t:1 MatUp:3
#version 100
// Driver: Mali-400 MP - GLSL 100
precision highp float;
#define gl_VertexIndex gl_VertexID
#define splat3(x) vec3(x)
#define mul(x, y) ((x) * (y))
// 01f34515:00000b09 HWX C T N LM Light: 0: c:1 t:1 1: c:1 t:0 2: c:1 t:1 3: c:0 t:1 MatUp:3
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 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 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_depthRange;
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;
vec3 normalizeOr001(vec3 v) {
return length(v) == 0.0 ? vec3(0.0, 0.0, 1.0) : normalize(v);
}
void main() {
vec3 worldpos = mul(vec4(position, 1.0), u_world).xyz;
mediump vec3 worldnormal = normalizeOr001(mul(vec4(normal, 0.0), u_world).xyz);
vec4 viewPos = vec4(mul(vec4(worldpos, 1.0), u_view).xyz, 1.0);
vec4 outPos = mul(u_proj, viewPos);
vec4 ambientColor = color0;
vec3 diffuseColor = color0.rgb;
vec3 specularColor = u_matspecular.rgb;
lowp vec4 lightSum0 = u_ambient * ambientColor + vec4(u_matemissive, 0.0);
lowp vec3 lightSum1 = splat3(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 = dot(toLight, worldnormal);
lightScale = clamp(1.0 / dot(u_lightatt0, vec3(1.0, distance, distance*distance)), 0.0, 1.0);
diffuse = (u_lightdiffuse0 * diffuseColor) * max(ldot, 0.0);
if (ldot >= 0.0) {
if (u_matspecular.a > 0.0) {
ldot = dot(normalize(toLight + vec3(0.0, 0.0, 1.0)), worldnormal);
ldot = pow(max(ldot, 0.0), u_matspecular.a);
} else {
ldot = 1.0;
}
if (ldot > 0.0)
lightSum1 += u_lightspecular0 * specularColor * ldot * lightScale;
}
lightSum0.rgb += (u_lightambient0 * ambientColor.rgb + diffuse) * lightScale;
toLight = u_lightpos1;
ldot = dot(toLight, worldnormal);
diffuse = (u_lightdiffuse1 * diffuseColor) * max(ldot, 0.0);
if (ldot >= 0.0) {
if (u_matspecular.a > 0.0) {
ldot = dot(normalize(toLight + vec3(0.0, 0.0, 1.0)), worldnormal);
ldot = pow(max(ldot, 0.0), u_matspecular.a);
} else {
ldot = 1.0;
}
if (ldot > 0.0)
lightSum1 += u_lightspecular1 * specularColor * ldot ;
}
lightSum0.rgb += (u_lightambient1 * ambientColor.rgb + diffuse);
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 * diffuseColor) * max(ldot, 0.0);
if (ldot >= 0.0) {
if (u_matspecular.a > 0.0) {
ldot = dot(normalize(toLight + vec3(0.0, 0.0, 1.0)), worldnormal);
|
God of War™: Ghost of Sparta |
v1.17.1 |
2024-03-14 |
ReadFromHardware: Invalid address f9bef690 near PC 08af6d5c LR 08af6d28 |
God of War™: Ghost of Sparta |
v1.17.1 |
2024-03-19 |
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 r7p0-00rel1 [Revision 96995].
01f34511:00000f09 HWX C T N LM RevN Light: 0: c:1 t:0 1: c:1 t:0 2: c:1 t:1 3: c:0 t:1 MatUp:3
#version 100
// Driver: Mali-400 MP - GLSL 100
precision highp float;
#define gl_VertexIndex gl_VertexID
#define splat3(x) vec3(x)
#define mul(x, y) ((x) * (y))
// 01f34511:00000f09 HWX C T N LM RevN Light: 0: c:1 t:0 1: c:1 t:0 2: c:1 t:1 3: c:0 t:1 MatUp:3
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 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_depthRange;
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;
vec3 normalizeOr001(vec3 v) {
return length(v) == 0.0 ? vec3(0.0, 0.0, 1.0) : normalize(v);
}
void main() {
vec3 worldpos = mul(vec4(position, 1.0), u_world).xyz;
mediump vec3 worldnormal = normalizeOr001(mul(vec4(-normal, 0.0), u_world).xyz);
vec4 viewPos = vec4(mul(vec4(worldpos, 1.0), u_view).xyz, 1.0);
vec4 outPos = mul(u_proj, viewPos);
vec4 ambientColor = color0;
vec3 diffuseColor = color0.rgb;
vec3 specularColor = u_matspecular.rgb;
lowp vec4 lightSum0 = u_ambient * ambientColor + vec4(u_matemissive, 0.0);
lowp vec3 lightSum1 = splat3(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 * diffuseColor) * max(ldot, 0.0);
if (ldot >= 0.0) {
if (u_matspecular.a > 0.0) {
ldot = dot(normalize(toLight + vec3(0.0, 0.0, 1.0)), worldnormal);
ldot = pow(max(ldot, 0.0), u_matspecular.a);
} else {
ldot = 1.0;
}
if (ldot > 0.0)
lightSum1 += u_lightspecular0 * specularColor * ldot ;
}
lightSum0.rgb += (u_lightambient0 * ambientColor.rgb + diffuse);
toLight = u_lightpos1;
ldot = dot(toLight, worldnormal);
diffuse = (u_lightdiffuse1 * diffuseColor) * max(ldot, 0.0);
if (ldot >= 0.0) {
if (u_matspecular.a > 0.0) {
ldot = dot(normalize(toLight + vec3(0.0, 0.0, 1.0)), worldnormal);
ldot = pow(max(ldot, 0.0), u_matspecular.a);
} else {
ldot = 1.0;
}
if (ldot > 0.0)
lightSum1 += u_lightspecular1 * specularColor * ldot ;
}
lightSum0.rgb += (u_lightambient1 * ambientColor.rgb + diffuse);
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 * diffuseColor) * max(ldot, 0.0);
if (ldot >= 0.0) {
if (u_matspecular.a > 0.0) {
ldot = dot(normalize(toLight + vec3(0.0, 0.0, 1.0)), worldnormal);
ldot = pow(max(ldot, 0.0), u_matspecular.a);
} else {
ldot = 1.0;
}
if (ldot > 0.0)
lightSum1 += u_lightspecular2 * specularColor * ldot * lightScale;
}
lightSum0.rgb += (u_lighta |
God of War™: Ghost of Sparta |
v1.17.1 |
2024-03-19 |
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 r7p0-00rel1 [Revision 96995].
01f34511:00000b09 HWX C T N LM Light: 0: c:1 t:0 1: c:1 t:0 2: c:1 t:1 3: c:0 t:1 MatUp:3
#version 100
// Driver: Mali-400 MP - GLSL 100
precision highp float;
#define gl_VertexIndex gl_VertexID
#define splat3(x) vec3(x)
#define mul(x, y) ((x) * (y))
// 01f34511:00000b09 HWX C T N LM Light: 0: c:1 t:0 1: c:1 t:0 2: c:1 t:1 3: c:0 t:1 MatUp:3
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 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_depthRange;
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;
vec3 normalizeOr001(vec3 v) {
return length(v) == 0.0 ? vec3(0.0, 0.0, 1.0) : normalize(v);
}
void main() {
vec3 worldpos = mul(vec4(position, 1.0), u_world).xyz;
mediump vec3 worldnormal = normalizeOr001(mul(vec4(normal, 0.0), u_world).xyz);
vec4 viewPos = vec4(mul(vec4(worldpos, 1.0), u_view).xyz, 1.0);
vec4 outPos = mul(u_proj, viewPos);
vec4 ambientColor = color0;
vec3 diffuseColor = color0.rgb;
vec3 specularColor = u_matspecular.rgb;
lowp vec4 lightSum0 = u_ambient * ambientColor + vec4(u_matemissive, 0.0);
lowp vec3 lightSum1 = splat3(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 * diffuseColor) * max(ldot, 0.0);
if (ldot >= 0.0) {
if (u_matspecular.a > 0.0) {
ldot = dot(normalize(toLight + vec3(0.0, 0.0, 1.0)), worldnormal);
ldot = pow(max(ldot, 0.0), u_matspecular.a);
} else {
ldot = 1.0;
}
if (ldot > 0.0)
lightSum1 += u_lightspecular0 * specularColor * ldot ;
}
lightSum0.rgb += (u_lightambient0 * ambientColor.rgb + diffuse);
toLight = u_lightpos1;
ldot = dot(toLight, worldnormal);
diffuse = (u_lightdiffuse1 * diffuseColor) * max(ldot, 0.0);
if (ldot >= 0.0) {
if (u_matspecular.a > 0.0) {
ldot = dot(normalize(toLight + vec3(0.0, 0.0, 1.0)), worldnormal);
ldot = pow(max(ldot, 0.0), u_matspecular.a);
} else {
ldot = 1.0;
}
if (ldot > 0.0)
lightSum1 += u_lightspecular1 * specularColor * ldot ;
}
lightSum0.rgb += (u_lightambient1 * ambientColor.rgb + diffuse);
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 * diffuseColor) * max(ldot, 0.0);
if (ldot >= 0.0) {
if (u_matspecular.a > 0.0) {
ldot = dot(normalize(toLight + vec3(0.0, 0.0, 1.0)), worldnormal);
ldot = pow(max(ldot, 0.0), u_matspecular.a);
} else {
ldot = 1.0;
}
if (ldot > 0.0)
lightSum1 += u_lightspecular2 * specularColor * ldot * lightScale;
}
lightSum0.rgb += (u_lightambient2 * a |
God of War™: Ghost of Sparta |
v1.17.1 |
2024-03-19 |
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 r7p0-00rel1 [Revision 96995].
01f34044:00000f09 HWX C T N LM RevN Light: 0: c:0 t:1 1: c:0 t:1 2: c:0 t:0 3: c:0 t:1 MatUp:3
#version 100
// Driver: Mali-400 MP - GLSL 100
precision highp float;
#define gl_VertexIndex gl_VertexID
#define splat3(x) vec3(x)
#define mul(x, y) ((x) * (y))
// 01f34044:00000f09 HWX C T N LM RevN Light: 0: c:0 t:1 1: c:0 t:1 2: c:0 t:0 3: c:0 t:1 MatUp:3
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 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_depthRange;
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;
vec3 normalizeOr001(vec3 v) {
return length(v) == 0.0 ? vec3(0.0, 0.0, 1.0) : normalize(v);
}
void main() {
vec3 worldpos = mul(vec4(position, 1.0), u_world).xyz;
mediump vec3 worldnormal = normalizeOr001(mul(vec4(-normal, 0.0), u_world).xyz);
vec4 viewPos = vec4(mul(vec4(worldpos, 1.0), u_view).xyz, 1.0);
vec4 outPos = mul(u_proj, viewPos);
vec4 ambientColor = color0;
vec3 diffuseColor = color0.rgb;
vec3 specularColor = u_matspecular.rgb;
lowp vec4 lightSum0 = u_ambient * ambientColor + 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 = dot(toLight, worldnormal);
lightScale = clamp(1.0 / dot(u_lightatt0, vec3(1.0, distance, distance*distance)), 0.0, 1.0);
diffuse = (u_lightdiffuse0 * diffuseColor) * max(ldot, 0.0);
lightSum0.rgb += (u_lightambient0 * ambientColor.rgb + diffuse) * lightScale;
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 * diffuseColor) * max(ldot, 0.0);
lightSum0.rgb += (u_lightambient1 * ambientColor.rgb + diffuse) * lightScale;
toLight = u_lightpos2;
ldot = dot(toLight, worldnormal);
diffuse = (u_lightdiffuse2 * diffuseColor) * max(ldot, 0.0);
lightSum0.rgb += (u_lightambient2 * ambientColor.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 * diffuseColor) * max(ldot, 0.0);
lightSum0.rgb += (u_lightambient3 * ambientColor.rgb + diffuse) * lightScale;
v_color0 = clamp(lightSum0, 0.0, 1.0);
v_color1 = splat3(0.0);
v_texcoord = vec3(texcoord.xy * u_uvscaleoffset.xy, 0.0);
v_fogdepth = (viewPos.z + u_fogcoef.x) * u_fogcoef.y;
gl_Position = outPos;
}
|
God of War™: Ghost of Sparta |
v1.17.1 |
2024-03-13 |
Branch in Jump delay slot at 09e11e40 in block starting at 09e11e40 |
God of War™: Ghost of Sparta |
v1.17.1 |
2024-03-13 |
Jump to invalid address: 07847900 |
God of War™: Ghost of Sparta |
v1.17.1 |
2024-03-19 |
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 r7p0-00rel1 [Revision 96995].
01f34044:00000b09 HWX C T N LM Light: 0: c:0 t:1 1: c:0 t:1 2: c:0 t:0 3: c:0 t:1 MatUp:3
#version 100
// Driver: Mali-400 MP - GLSL 100
precision highp float;
#define gl_VertexIndex gl_VertexID
#define splat3(x) vec3(x)
#define mul(x, y) ((x) * (y))
// 01f34044:00000b09 HWX C T N LM Light: 0: c:0 t:1 1: c:0 t:1 2: c:0 t:0 3: c:0 t:1 MatUp:3
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 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_depthRange;
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;
vec3 normalizeOr001(vec3 v) {
return length(v) == 0.0 ? vec3(0.0, 0.0, 1.0) : normalize(v);
}
void main() {
vec3 worldpos = mul(vec4(position, 1.0), u_world).xyz;
mediump vec3 worldnormal = normalizeOr001(mul(vec4(normal, 0.0), u_world).xyz);
vec4 viewPos = vec4(mul(vec4(worldpos, 1.0), u_view).xyz, 1.0);
vec4 outPos = mul(u_proj, viewPos);
vec4 ambientColor = color0;
vec3 diffuseColor = color0.rgb;
vec3 specularColor = u_matspecular.rgb;
lowp vec4 lightSum0 = u_ambient * ambientColor + 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 = dot(toLight, worldnormal);
lightScale = clamp(1.0 / dot(u_lightatt0, vec3(1.0, distance, distance*distance)), 0.0, 1.0);
diffuse = (u_lightdiffuse0 * diffuseColor) * max(ldot, 0.0);
lightSum0.rgb += (u_lightambient0 * ambientColor.rgb + diffuse) * lightScale;
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 * diffuseColor) * max(ldot, 0.0);
lightSum0.rgb += (u_lightambient1 * ambientColor.rgb + diffuse) * lightScale;
toLight = u_lightpos2;
ldot = dot(toLight, worldnormal);
diffuse = (u_lightdiffuse2 * diffuseColor) * max(ldot, 0.0);
lightSum0.rgb += (u_lightambient2 * ambientColor.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 * diffuseColor) * max(ldot, 0.0);
lightSum0.rgb += (u_lightambient3 * ambientColor.rgb + diffuse) * lightScale;
v_color0 = clamp(lightSum0, 0.0, 1.0);
v_color1 = splat3(0.0);
v_texcoord = vec3(texcoord.xy * u_uvscaleoffset.xy, 0.0);
v_fogdepth = (viewPos.z + u_fogcoef.x) * u_fogcoef.y;
gl_Position = outPos;
}
|
God of War™: Ghost of Sparta |
v1.17.1 |
2024-03-11 |
WriteToHardware: Invalid address 0000004c near PC 08abeea0 LR 08abeea0 |
God of War™: Ghost of Sparta |
v1.17.1 |
2024-03-11 |
WriteToHardware: Invalid address 00000029 near PC 08ad1bbc LR 08ad1be8 |
God of War™: Ghost of Sparta |
v1.11.3 |
2024-03-09 |
Unimplemented HLE function sceHprmRegisterCallback |
God of War™: Ghost of Sparta |
v1.17.1 |
2024-03-09 |
Unknown GE command : 0d2d22de |
God of War™: Ghost of Sparta |
v1.12.1 |
2024-03-08 |
WriteToHardware: Invalid address 0000004c near PC 08bd8e30 LR 08bd8e08 |
God of War™: Ghost of Sparta |
v1.17.1 |
2024-03-04 |
sceKernelRegisterSubIntrHandler(30, 0, 0884f9c4, 00000000): duplicate handler |
God of War™: Ghost of Sparta |
v1.16.4 |
2024-03-03 |
ReadFromHardware: Invalid address 027e003f near PC 08a64c00 LR 08a65414 |
God of War™: Ghost of Sparta |
v1.16.4 |
2024-03-03 |
ReadFromHardware: Invalid address 1828ddf8 near PC 08a64c1c LR 08a65414 |
God of War™: Ghost of Sparta |
v1.17.1 |
2024-03-03 |
ReadFromHardware: Invalid address 252e644d near PC 08a6b0d0 LR 08a6b0d0 |
God of War™: Ghost of Sparta |
v1.17.1 |
2024-03-03 |
WriteToHardware: Invalid address 00000001 near PC 08a69e8c LR 08a69e78 |
God of War™: Ghost of Sparta |
v1.17.1 |
2024-03-03 |
ReadFromHardware: Invalid address 00000000 near PC 08a69d70 LR 08a69fc0 |
God of War™: Ghost of Sparta |
v1.14.4 |
2024-02-25 |
Unknown GE command : 393bc30e |
God of War™: Ghost of Sparta |
v1.11.3-1233-g9de942087 |
2024-02-25 |
avcodec_send_packet: Error decoding audio -1094995529 / bebbb1b7 |
God of War™: Ghost of Sparta |
v1.16.6 |
2024-02-22 |
ReadFromHardware: Invalid address b5e5e6ce near PC b5e5e6ce LR b5e5e6ce |
God of War™: Ghost of Sparta |
v1.17.1 |
2024-02-17 |
sceKernelLoadModule: unsupported options size=00000014, flags=08806b20, pos=0, access=-80, data=0, text=0 |
God of War™: Ghost of Sparta |
v1.4.2-425-g7a7ccee5e |
2024-03-17 |
Error in shader compilation: info: ERROR: 0:19: 'u_proj' : undeclared identifier
/ code: #version 130
#define lowp
#define mediump
#define highp
attribute vec3 position;
attribute mediump vec3 normal;
attribute lowp vec4 color0;
uniform mat4 u_proj_through;
uniform mat4 u_world;
uniform mat4 u_view;
uniform lowp vec4 u_matambientalpha;
uniform highp vec2 u_fogcoef;
varying lowp vec4 v_color0;
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);
gl_Position = u_proj * viewPos;
v_color0 = color0;
v_fogdepth = (viewPos.z + u_fogcoef.x) * u_fogcoef.y;
}
|
God of War™: Ghost of Sparta |
v1.4.2-425-g7a7ccee5e |
2024-02-16 |
Error in shader compilation: info: ERROR: 0:16: 'u_proj' : undeclared identifier
/ code: #version 130
#define lowp
#define mediump
#define highp
attribute vec3 position;
attribute mediump vec3 normal;
uniform mat4 u_proj_through;
uniform mat4 u_world;
uniform mat4 u_view;
uniform lowp vec4 u_matambientalpha;
varying lowp vec4 v_color0;
void main() {
vec3 worldpos = (u_world * vec4(position.xyz, 1.0)).xyz;
mediump vec3 worldnormal = normalize((u_world * vec4(normal, 0.0)).xyz);
vec4 viewPos = u_view * vec4(worldpos, 1.0);
gl_Position = u_proj * viewPos;
v_color0 = u_matambientalpha;
}
|
God of War™: Ghost of Sparta |
v1.9.4 |
2024-02-13 |
Unknown GE command : 34c6999a |
God of War™: Ghost of Sparta |
v1.9.4 |
2024-02-13 |
Bad bounding box data: c20001 |
God of War™: Ghost of Sparta |
v1.17.1 |
2024-02-12 |
Jump to invalid address: 063d2540 |
God of War™: Ghost of Sparta |
v1.16.6-775-g1f8191ec9 |
2024-02-10 |
sceKernelLoadModuleByID: unsupported options size=00000014, flags=00000000, pos=0, access=0, data=0, text=2 |
God of War™: Ghost of Sparta |
v1.17.1 |
2024-02-09 |
80630006=sceAtracSetData(2, 08d13140, 00000aec): invalid RIFF header |
God of War™: Ghost of Sparta |
v1.17.1 |
2024-02-09 |
WriteToHardware: Invalid address 00000029 near PC 08815af4 LR 08a8c0e0 |
God of War™: Ghost of Sparta |
v1.10-6-g8ac4efd3c |
2024-02-06 |
Render to area containing texture at 040cc000 +0x64 |
God of War™: Ghost of Sparta |
v1.16.6 |
2024-02-05 |
Branch in Jump delay slot at 09dd4950 in block starting at 09dd4680 |
God of War™: Ghost of Sparta |
v1.16.6 |
2024-02-05 |
Jump to invalid address: 07752520 |
God of War™: Ghost of Sparta |
v1.16.6 |
2024-02-05 |
Jump to invalid address: 0789d9e0 |
God of War™: Ghost of Sparta |
v1.16.6 |
2024-02-05 |
Branch in Jump delay slot at 09dd4910 in block starting at 09dd4680 |
God of War™: Ghost of Sparta |
v1.16.6 |
2024-02-05 |
Jump to invalid address: 07752420 |
God of War™: Ghost of Sparta |
v1.16.6 |
2024-02-05 |
MIPSCompileOp: Invalid instruction 42340000 |
God of War™: Ghost of Sparta |
v1.16.6 |
2024-02-05 |
MIPSCompileOp: Invalid instruction 407670ae |
God of War™: Ghost of Sparta |
v1.16.6 |
2024-02-05 |
Jump to invalid address: 03182d00 |
God of War™: Ghost of Sparta |
v1.16.6 |
2024-02-05 |
MIPSCompileOp: Invalid instruction 000ccae8 |
God of War™: Ghost of Sparta |
v1.16.6 |
2024-02-05 |
Jump to invalid address: 030faa40 |
God of War™: Ghost of Sparta |
v1.16.6 |
2024-02-05 |
Jump to invalid address: 0787d700 |
God of War™: Ghost of Sparta |
v1.16.6 |
2024-02-05 |
Jump to invalid address: 07885300 |
God of War™: Ghost of Sparta |
v1.16.6 |
2024-02-05 |
Jump to invalid address: 079579c0 |
God of War™: Ghost of Sparta |
v1.16.6 |
2024-02-05 |
Jump to invalid address: 03251b80 |
God of War™: Ghost of Sparta |
v1.16.6 |
2024-02-05 |
Jump to invalid address: 07887d00 |
God of War™: Ghost of Sparta |
v1.16.6 |
2024-02-05 |
Jump to invalid address: 0787dd80 |
God of War™: Ghost of Sparta |
v1.16.6 |
2024-02-05 |
Jump to invalid address: 078bd1c0 |
God of War™: Ghost of Sparta |
v1.16.6 |
2024-02-05 |
Jump to invalid address: 07900d80 |
God of War™: Ghost of Sparta |
v1.16.6 |
2024-02-05 |
Jump to invalid address: 07852a00 |
God of War™: Ghost of Sparta |
v1.16.6 |
2024-02-05 |
Jump to invalid address: 078e1bc0 |
God of War™: Ghost of Sparta |
v1.16.6 |
2024-02-05 |
Jump to invalid address: 078484c0 |
God of War™: Ghost of Sparta |
v1.16.6 |
2024-02-05 |
Jump to invalid address: 0785c940 |
God of War™: Ghost of Sparta |
v1.16.6 |
2024-02-05 |
Jump to invalid address: 07931140 |
God of War™: Ghost of Sparta |
v1.16.6 |
2024-02-05 |
Jump to invalid address: 07931a80 |
God of War™: Ghost of Sparta |
v1.16.6 |
2024-02-05 |
Jump to invalid address: 0785d180 |
God of War™: Ghost of Sparta |
v1.16.6 |
2024-02-05 |
Jump to invalid address: 06d7bc40 |
God of War™: Ghost of Sparta |
v1.16.6 |
2024-02-05 |
Jump to invalid address: 0792f440 |
God of War™: Ghost of Sparta |
v1.16.6 |
2024-02-05 |
Jump to invalid address: 07780040 |
God of War™: Ghost of Sparta |
v1.16.6 |
2024-02-05 |
Jump to invalid address: 06d7c280 |
God of War™: Ghost of Sparta |
v1.16.6 |
2024-02-05 |
Jump to invalid address: 0792eac0 |
God of War™: Ghost of Sparta |
v1.16.6 |
2024-02-05 |
Jump to invalid address: 06d7b400 |
God of War™: Ghost of Sparta |
v1.16.6 |
2024-02-05 |
Jump to invalid address: 07830e40 |
God of War™: Ghost of Sparta |
v1.16.6 |
2024-02-05 |
Jump to invalid address: 0785d800 |
God of War™: Ghost of Sparta |
v1.16.6 |
2024-02-05 |
Jump to invalid address: 078abec0 |
God of War™: Ghost of Sparta |
v1.16.6 |
2024-02-05 |
Jump to invalid address: 03252200 |
God of War™: Ghost of Sparta |
v1.16.6 |
2024-02-05 |
Jump to invalid address: 078d5740 |
God of War™: Ghost of Sparta |
v1.16.6 |
2024-02-05 |
Jump to invalid address: 07907e00 |
God of War™: Ghost of Sparta |
v1.16.6 |
2024-02-05 |
Jump to invalid address: 07963500 |
God of War™: Ghost of Sparta |
v1.16.6 |
2024-02-05 |
Jump to invalid address: 07828100 |
God of War™: Ghost of Sparta |
v1.16.6 |
2024-02-05 |
Jump to invalid address: 07ad64c0 |
God of War™: Ghost of Sparta |
v1.16.6 |
2024-02-05 |
Jump to invalid address: 079858c0 |
God of War™: Ghost of Sparta |
v1.16.6 |
2024-02-05 |
Jump to invalid address: 078af180 |
God of War™: Ghost of Sparta |
v1.16.6 |
2024-02-05 |
Jump to invalid address: 078250c0 |
God of War™: Ghost of Sparta |
v1.16.6 |
2024-02-05 |
Jump to invalid address: 0774e580 |
God of War™: Ghost of Sparta |
v1.16.6 |
2024-02-05 |
Jump to invalid address: 078a1b40 |
God of War™: Ghost of Sparta |
v1.16.6 |
2024-02-05 |
Jump to invalid address: 079fb7c0 |
God of War™: Ghost of Sparta |
v1.16.6 |
2024-02-05 |
Jump to invalid address: 078322c0 |
God of War™: Ghost of Sparta |
v1.16.6 |
2024-02-05 |
Jump to invalid address: 079082c0 |
God of War™: Ghost of Sparta |
v1.16.6 |
2024-02-05 |
Jump to invalid address: 07885780 |
God of War™: Ghost of Sparta |
v1.16.6 |
2024-02-05 |
Jump to invalid address: 07848a40 |
God of War™: Ghost of Sparta |
v1.16.6 |
2024-02-05 |
Jump to invalid address: 07a0d700 |
God of War™: Ghost of Sparta |
v1.16.6 |
2024-02-05 |
Jump to invalid address: 07774180 |
God of War™: Ghost of Sparta |
v1.17 |
2024-02-05 |
Could not setup streams, unexpected stream count: 46230 |
God of War™: Ghost of Sparta |
v1.17-58-g2a69c96a4 |
2024-02-01 |
WriteToHardware: Invalid address 00000029 near PC 08a7ad18 LR 08a7ad18 |
God of War™: Ghost of Sparta |
v1.17 |
2024-02-01 |
sceKernelLoadModule: unsupported options size=00000014, flags=08821c30, pos=0, access=1, data=1, text=1 |
God of War™: Ghost of Sparta |
v1.17 |
2024-02-01 |
sceKernelLoadModule: unsupported options size=00000014, flags=0881d51c, pos=0, access=1, data=1, text=1 |
God of War™: Ghost of Sparta |
v1.16.6 |
2024-01-28 |
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 r8p0-00dev0 [Revision 96995].
01f34154:00000b29 HWX C T N LM Light: 0: c:0 t:1 1: c:1 t:1 2: c:1 t:0 3: c:0 t:1 MatUp:3 Cull
#version 100
// Driver: Mali-400 MP - GLSL 100
precision highp float;
#define gl_VertexIndex gl_VertexID
#define splat3(x) vec3(x)
#define mul(x, y) ((x) * (y))
// 01f34154:00000b29 HWX C T N LM Light: 0: c:0 t:1 1: c:1 t:1 2: c:1 t:0 3: c:0 t:1 MatUp:3 Cull
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 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 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_depthRange;
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;
vec3 normalizeOr001(vec3 v) {
return length(v) == 0.0 ? vec3(0.0, 0.0, 1.0) : normalize(v);
}
void main() {
vec3 worldpos = mul(vec4(position, 1.0), u_world).xyz;
mediump vec3 worldnormal = normalizeOr001(mul(vec4(normal, 0.0), u_world).xyz);
vec4 viewPos = vec4(mul(vec4(worldpos, 1.0), u_view).xyz, 1.0);
vec4 outPos = mul(u_proj, viewPos);
vec4 ambientColor = color0;
vec3 diffuseColor = color0.rgb;
vec3 specularColor = u_matspecular.rgb;
lowp vec4 lightSum0 = u_ambient * ambientColor + vec4(u_matemissive, 0.0);
lowp vec3 lightSum1 = splat3(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 = dot(toLight, worldnormal);
lightScale = clamp(1.0 / dot(u_lightatt0, vec3(1.0, distance, distance*distance)), 0.0, 1.0);
diffuse = (u_lightdiffuse0 * diffuseColor) * max(ldot, 0.0);
lightSum0.rgb += (u_lightambient0 * ambientColor.rgb + diffuse) * lightScale;
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 * diffuseColor) * max(ldot, 0.0);
if (ldot >= 0.0) {
if (u_matspecular.a > 0.0) {
ldot = dot(normalize(toLight + vec3(0.0, 0.0, 1.0)), worldnormal);
ldot = pow(max(ldot, 0.0), u_matspecular.a);
} else {
ldot = 1.0;
}
if (ldot > 0.0)
lightSum1 += u_lightspecular1 * specularColor * ldot * lightScale;
}
lightSum0.rgb += (u_lightambient1 * ambientColor.rgb + diffuse) * lightScale;
toLight = u_lightpos2;
ldot = dot(toLight, worldnormal);
diffuse = (u_lightdiffuse2 * diffuseColor) * max(ldot, 0.0);
if (ldot >= 0.0) {
if (u_matspecular.a > 0.0) {
ldot = dot(normalize(toLight + vec3(0.0, 0.0, 1.0)), worldnormal);
ldot = pow(max(ldot, 0.0), u_matspecular.a);
} else {
ldot = 1.0;
}
if (ldot > 0.0)
lightSum1 += u_lightspecular2 * specularColor * ldot ;
}
lightSum0.rgb += (u_lightambient2 * ambientColor.rgb + diffuse);
toLight = u_lightpos3 - worldpos;
distance = length(toLight);
toLight /= |
God of War™: Ghost of Sparta |
v1.16.6 |
2024-01-28 |
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 r8p0-00dev0 [Revision 96995].
01730445:00010b29 HWX C T N LM TexProjPos UVMtx Light: 0: c:1 t:1 1: c:0 t:1 2: c:0 t:1 MatUp:3 Cull
#version 100
// Driver: Mali-400 MP - GLSL 100
precision highp float;
#define gl_VertexIndex gl_VertexID
#define splat3(x) vec3(x)
#define mul(x, y) ((x) * (y))
// 01730445:00010b29 HWX C T N LM TexProjPos UVMtx Light: 0: c:1 t:1 1: c:0 t:1 2: c:0 t:1 MatUp:3 Cull
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 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 lowp vec3 u_lightspecular0;
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_depthRange;
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;
vec3 normalizeOr001(vec3 v) {
return length(v) == 0.0 ? vec3(0.0, 0.0, 1.0) : normalize(v);
}
void main() {
vec3 worldpos = mul(vec4(position, 1.0), u_world).xyz;
mediump vec3 worldnormal = normalizeOr001(mul(vec4(normal, 0.0), u_world).xyz);
vec4 viewPos = vec4(mul(vec4(worldpos, 1.0), u_view).xyz, 1.0);
vec4 outPos = mul(u_proj, viewPos);
vec4 ambientColor = color0;
vec3 diffuseColor = color0.rgb;
vec3 specularColor = u_matspecular.rgb;
lowp vec4 lightSum0 = u_ambient * ambientColor + vec4(u_matemissive, 0.0);
lowp vec3 lightSum1 = splat3(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 = dot(toLight, worldnormal);
lightScale = clamp(1.0 / dot(u_lightatt0, vec3(1.0, distance, distance*distance)), 0.0, 1.0);
diffuse = (u_lightdiffuse0 * diffuseColor) * max(ldot, 0.0);
if (ldot >= 0.0) {
if (u_matspecular.a > 0.0) {
ldot = dot(normalize(toLight + vec3(0.0, 0.0, 1.0)), worldnormal);
ldot = pow(max(ldot, 0.0), u_matspecular.a);
} else {
ldot = 1.0;
}
if (ldot > 0.0)
lightSum1 += u_lightspecular0 * specularColor * ldot * lightScale;
}
lightSum0.rgb += (u_lightambient0 * ambientColor.rgb + diffuse) * lightScale;
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 * diffuseColor) * max(ldot, 0.0);
lightSum0.rgb += (u_lightambient1 * ambientColor.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 * diffuseColor) * max(ldot, 0.0);
lightSum0.rgb += (u_lightambient2 * ambientColor.rgb + diffuse) * lightScale;
v_color0 = clamp(lightSum0, 0.0, 1.0);
v_color1 = clamp(lightSum1, 0.0, 1.0);
v_texcoord = mul(vec4(position, 1.0), u_texmtx).xyz * vec3(u_uvscaleoffset.xy, 1.0);
v_fogdepth = (viewPos.z + u_fogcoef.x) * u_fogcoef.y;
vec3 projPos = outPos.xyz / outPos.w;
float projZ = (projPos.z - |
God of War™: Ghost of Sparta |
v1.16.6 |
2024-01-27 |
WriteToHardware: Invalid address 0000004c near PC 08a88b40 LR 08a88a4c |
God of War™: Ghost of Sparta |
v1.16.6 |
2024-01-26 |
Jump to invalid address: 07795100 |
God of War™: Ghost of Sparta |
v1.16.6 |
2024-01-26 |
Jump to invalid address: 079ffc00 |
God of War™: Ghost of Sparta |
v1.16.6 |
2024-01-26 |
Jump to invalid address: 07975980 |