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 |
| eFootball 2024 By RH12 Official |
v1.19.3 |
2026-02-28 |
Unknown instruction 01010101 at 0800011c |
| eFootball 2024 By RH12 Official |
v1.19.3 |
2026-02-28 |
Unknown instruction 01010101 at 08000114 |
| eFootball 2024 By RH12 Official |
v1.19.3 |
2026-02-28 |
Unknown instruction 01010101 at 08000128 |
| eFootball 2024 By RH12 Official |
v1.19.3 |
2026-02-28 |
Unknown instruction 01010101 at 08000154 |
| eFootball 2024 By RH12 Official |
v1.19.3 |
2026-02-28 |
Unknown instruction 01010101 at 080000fc |
| eFootball 2024 By RH12 Official |
v1.19.3 |
2026-02-28 |
Unknown instruction 01010101 at 08000130 |
| eFootball 2024 By RH12 Official |
v1.19.3 |
2026-02-28 |
Unknown instruction 01010101 at 08000144 |
| eFootball 2024 By RH12 Official |
v1.19.3 |
2026-02-28 |
Unknown instruction 01010101 at 08000150 |
| eFootball 2024 By RH12 Official |
v1.19.3 |
2026-02-28 |
Unknown instruction 01010101 at 0800015c |
| eFootball 2024 By RH12 Official |
v1.19.3 |
2026-02-28 |
Unknown instruction 01010101 at 0800013c |
| eFootball 2024 By RH12 Official |
v1.19.3 |
2026-02-28 |
Unknown instruction 01010101 at 08000104 |
| eFootball 2024 By RH12 Official |
v1.19.3 |
2026-02-28 |
Unknown instruction 01010101 at 08000148 |
| eFootball 2024 By RH12 Official |
v1.19.3 |
2026-02-28 |
Unknown instruction 01010101 at 0800012c |
| eFootball 2024 By RH12 Official |
v1.19.3 |
2026-02-28 |
Unknown instruction 01010101 at 08000138 |
| eFootball 2024 By RH12 Official |
v1.19.3 |
2026-02-28 |
Unknown instruction 01010101 at 08000158 |
| eFootball 2024 By RH12 Official |
v1.19.3 |
2026-02-28 |
Unknown instruction 01010101 at 08000124 |
| eFootball 2024 By RH12 Official |
v1.19.3 |
2026-02-28 |
Unknown instruction 01010101 at 08000110 |
| eFootball 2024 By RH12 Official |
v1.19.3 |
2026-02-28 |
Unknown instruction 01010101 at 08000164 |
| eFootball 2024 By RH12 Official |
v1.19.3 |
2026-02-28 |
Unknown instruction 01010101 at 0800010c |
| eFootball 2024 By RH12 Official |
v1.19.3 |
2026-02-28 |
Unknown instruction 01010101 at 08000140 |
| eFootball 2024 By RH12 Official |
v1.19.3 |
2026-02-28 |
Unknown instruction 01010101 at 08000120 |
| eFootball 2024 By RH12 Official |
v1.19.3 |
2026-02-28 |
Unknown instruction 01010101 at 08000134 |
| eFootball 2024 By RH12 Official |
v1.19.3 |
2026-02-28 |
Unknown instruction 01010101 at 0800014c |
| eFootball 2024 By RH12 Official |
v1.19.3 |
2026-02-28 |
Unknown instruction 01010101 at 08000108 |
| eFootball 2024 By RH12 Official |
v1.19.3 |
2026-02-28 |
Unknown instruction 01010101 at 080000f0 |
| eFootball 2024 By RH12 Official |
v1.19.3 |
2026-02-28 |
Unknown instruction 01010101 at 08000118 |
| eFootball 2024 By RH12 Official |
v1.19.3 |
2026-02-28 |
Unknown instruction 01010101 at 080000f8 |
| eFootball 2024 By RH12 Official |
v1.19.3 |
2026-02-28 |
Unknown instruction 01010101 at 08000100 |
| eFootball 2024 By RH12 Official |
v1.19.3 |
2026-02-28 |
Unknown instruction 01010101 at 08000160 |
| eFootball 2024 By RH12 Official |
v1.19.3 |
2026-02-28 |
Unknown instruction 01010101 at 08000074 |
| eFootball 2024 By RH12 Official |
v1.19.3 |
2026-02-28 |
Unknown instruction 01010101 at 080000c4 |
| eFootball 2024 By RH12 Official |
v1.19.3 |
2026-02-28 |
Unknown instruction 01010101 at 08000068 |
| eFootball 2024 By RH12 Official |
v1.19.3 |
2026-02-28 |
Unknown instruction 01010101 at 08000060 |
| eFootball 2024 By RH12 Official |
v1.19.3 |
2026-02-28 |
Unknown instruction 01010101 at 08000168 |
| eFootball 2024 By RH12 Official |
v1.19.3 |
2026-02-28 |
Unknown instruction 01010101 at 08000184 |
| eFootball 2024 By RH12 Official |
v1.19.3 |
2026-02-28 |
Unknown instruction 01010101 at 08000040 |
| eFootball 2024 By RH12 Official |
v1.19.3 |
2026-02-28 |
Unknown instruction 01010101 at 08000180 |
| eFootball 2024 By RH12 Official |
v1.19.3 |
2026-02-28 |
Unknown instruction 01010101 at 080000e8 |
| eFootball 2024 By RH12 Official |
v1.19.3 |
2026-02-28 |
Unknown instruction 01010101 at 08000178 |
| eFootball 2024 By RH12 Official |
v1.19.3 |
2026-02-28 |
Unknown instruction 01010101 at 08000194 |
| eFootball 2024 By RH12 Official |
v1.19.3 |
2026-02-28 |
Unknown instruction 01010101 at 080000e0 |
| eFootball 2024 By RH12 Official |
v1.19.3 |
2026-02-28 |
Unknown instruction 01010101 at 080000f4 |
| eFootball 2024 By RH12 Official |
v1.19.3 |
2026-02-28 |
Unknown instruction 01010101 at 0800018c |
| eFootball 2024 By RH12 Official |
v1.19.3 |
2026-02-28 |
Unknown instruction 01010101 at 0800003c |
| eFootball 2024 By RH12 Official |
v1.19.3 |
2026-02-28 |
Unknown instruction 01010101 at 08000048 |
| eFootball 2024 By RH12 Official |
v1.19.3 |
2026-02-28 |
Unknown instruction 01010101 at 08000094 |
| eFootball 2024 By RH12 Official |
v1.19.3 |
2026-02-28 |
Unknown instruction 01010101 at 08000188 |
| eFootball 2024 By RH12 Official |
v1.19.3 |
2026-02-28 |
Unknown instruction 01010101 at 08000028 |
| eFootball 2024 By RH12 Official |
v1.19.3 |
2026-02-28 |
Unknown instruction 01010101 at 08000044 |
| eFootball 2024 By RH12 Official |
v1.19.3 |
2026-02-28 |
Unknown instruction 01010101 at 08000090 |
| eFootball 2024 By RH12 Official |
v1.19.3 |
2026-02-28 |
Unknown instruction 01010101 at 0800004c |
| eFootball 2024 By RH12 Official |
v1.19.3 |
2026-02-28 |
Unknown instruction 01010101 at 0800005c |
| eFootball 2024 By RH12 Official |
v1.19.3 |
2026-02-28 |
Unknown instruction 01010101 at 08000020 |
| eFootball 2024 By RH12 Official |
v1.19.3 |
2026-02-28 |
Unknown instruction 01010101 at 0800009c |
| eFootball 2024 By RH12 Official |
v1.19.3 |
2026-02-28 |
Unknown instruction 01010101 at 08000198 |
| eFootball 2024 By RH12 Official |
v1.19.3 |
2026-02-28 |
Unknown instruction 01010101 at 08000190 |
| eFootball 2024 By RH12 Official |
v1.19.3 |
2026-02-28 |
Unknown instruction 01010101 at 08000170 |
| eFootball 2024 By RH12 Official |
v1.19.3 |
2026-02-28 |
Unknown instruction 01010101 at 0800017c |
| eFootball 2024 By RH12 Official |
v1.19.3 |
2026-02-28 |
Unknown instruction 01010101 at 0800016c |
| eFootball 2024 By RH12 Official |
v1.19.3 |
2026-02-28 |
Unknown instruction 01010101 at 080000dc |
| eFootball 2024 By RH12 Official |
v1.19.3 |
2026-02-28 |
Unknown instruction 01010101 at 080000d4 |
| eFootball 2024 By RH12 Official |
v1.19.3 |
2026-02-28 |
Unknown instruction 01010101 at 080000cc |
| eFootball 2024 By RH12 Official |
v1.19.3 |
2026-02-28 |
Unknown instruction 01010101 at 080000b0 |
| eFootball 2024 By RH12 Official |
v1.19.3 |
2026-02-28 |
Unknown instruction 01010101 at 080000ec |
| eFootball 2024 By RH12 Official |
v1.19.3 |
2026-02-28 |
Unknown instruction 01010101 at 080000b4 |
| eFootball 2024 By RH12 Official |
v1.19.3 |
2026-02-28 |
Unknown instruction 01010101 at 08000174 |
| eFootball 2024 By RH12 Official |
v1.19.3 |
2026-02-28 |
Unknown instruction 01010101 at 080000a8 |
| eFootball 2024 By RH12 Official |
v1.19.3 |
2026-02-28 |
Unknown instruction 01010101 at 080000a4 |
| eFootball 2024 By RH12 Official |
v1.19.3 |
2026-02-28 |
Unknown instruction 01010101 at 080000c0 |
| eFootball 2024 By RH12 Official |
v1.19.3 |
2026-02-28 |
Unknown instruction 01010101 at 080000ac |
| eFootball 2024 By RH12 Official |
v1.19.3 |
2026-02-28 |
Unknown instruction 01010101 at 0800008c |
| eFootball 2024 By RH12 Official |
v1.19.3 |
2026-02-28 |
Unknown instruction 01010101 at 0800019c |
| eFootball 2024 By RH12 Official |
v1.19.3 |
2026-02-28 |
Unknown instruction 01010101 at 080000e4 |
| eFootball 2024 By RH12 Official |
v1.19.3 |
2026-02-28 |
Unknown instruction 01010101 at 080000bc |
| eFootball 2024 By RH12 Official |
v1.19.3 |
2026-02-28 |
Unknown instruction 01010101 at 0800007c |
| eFootball 2024 By RH12 Official |
v1.19.3 |
2026-02-28 |
Unknown instruction 01010101 at 08000078 |
| eFootball 2024 By RH12 Official |
v1.19.3 |
2026-02-28 |
Unknown instruction 01010101 at 080000d0 |
| eFootball 2024 By RH12 Official |
v1.19.3 |
2026-02-28 |
Unknown instruction 01010101 at 080000d8 |
| eFootball 2024 By RH12 Official |
v1.19.3 |
2026-02-28 |
Unknown instruction 01010101 at 080000b8 |
| eFootball 2024 By RH12 Official |
v1.19.3 |
2026-02-28 |
Unknown instruction 01010101 at 08000030 |
| eFootball 2024 By RH12 Official |
v1.19.3 |
2026-02-28 |
Unknown instruction 01010101 at 08000098 |
| eFootball 2024 By RH12 Official |
v1.19.3 |
2026-02-28 |
Unknown instruction 01010101 at 0800002c |
| eFootball 2024 By RH12 Official |
v1.19.3 |
2026-02-28 |
Unknown instruction 01010101 at 08000064 |
| eFootball 2024 By RH12 Official |
v1.19.3 |
2026-02-28 |
Unknown instruction 01010101 at 08000088 |
| eFootball 2024 By RH12 Official |
v1.19.3 |
2026-02-28 |
Unknown instruction 01010101 at 08000080 |
| eFootball 2024 By RH12 Official |
v1.19.3 |
2026-02-28 |
Unknown instruction 01010101 at 08000070 |
| eFootball 2024 By RH12 Official |
v1.19.3 |
2026-02-28 |
Unknown instruction 01010101 at 0800006c |
| eFootball 2024 By RH12 Official |
v1.19.3 |
2026-02-28 |
Unknown instruction 01010101 at 08000084 |
| eFootball 2024 By RH12 Official |
v1.19.3 |
2026-02-28 |
Unknown instruction 01010101 at 08000024 |
| eFootball 2024 By RH12 Official |
v1.19.3 |
2026-02-28 |
Unknown instruction 01010101 at 08000058 |
| eFootball 2024 By RH12 Official |
v1.19.3 |
2026-02-28 |
Unknown instruction 01010101 at 08000054 |
| eFootball 2024 By RH12 Official |
v1.19.3 |
2026-02-28 |
Unknown instruction 01010101 at 080000c8 |
| eFootball 2024 By RH12 Official |
v1.19.3 |
2026-02-28 |
Unknown instruction 01010101 at 080000a0 |
| eFootball 2024 By RH12 Official |
v1.19.3 |
2026-02-28 |
Unknown instruction 01010101 at 08000038 |
| eFootball 2024 By RH12 Official |
v1.19.3 |
2026-02-28 |
Unknown instruction 01010101 at 08000034 |
| eFootball 2024 By RH12 Official |
v1.19.3 |
2026-02-28 |
Unknown instruction 01010101 at 08000050 |
| eFootball 2024 By RH12 Official |
v1.18.1 |
2026-02-21 |
Unknown GetPointer 00000000 PC 0884d7cc LR 0884d7d4 |
| eFootball 2024 By RH12 Official |
v1.19.3 |
2026-02-16 |
Vulkan error in shader compilation: info: ERROR: 0:39: 'gl_Position' : identifier not previously declared
ERROR: 1 compilation errors. No code generated.
/ code: #version 450
#extension GL_ARB_separate_shader_objects : enable
#extension GL_ARB_shading_language_420pack : enable
#define mul(x, y) ((x) * (y))
#define splat3(x) vec3(x)
precision highp float;
// 00000000:00000928 HWX C T Cull
layout (std140, set = 0, binding = 3) uniform baseVars {
mat4 u_proj;
mat4 u_proj_through;
mat3x4 u_view;
mat3x4 u_world;
mat3x4 u_texmtx;
vec4 u_uvscaleoffset;
vec4 u_depthRange;
vec4 u_matambientalpha;
vec4 u_cullRangeMin;
vec4 u_cullRangeMax;
uint u_spline_counts;
uint u_depal_mask_shift_off_fmt;
uint u_colorWriteMask;
float u_mipBias;
vec2 u_texNoAlphaMul; float pad1; float pad2;
vec3 u_fogcolor; uint u_alphacolorref;
vec3 u_texenv; uint u_alphacolormask;
vec4 u_texclamp;
vec2 u_texclampoff; vec2 u_fogcoef;
vec3 u_blendFixA; float u_stencilReplaceValue;
vec3 u_blendFixB; float u_rotation;
};
layout (location = 0) in vec3 position;
layout (location = 1) in vec2 texcoord;
layout (location = 5) in vec4 color0;
layout (location = 1) out lowp vec4 v_color0;
layout (location = 0) out highp vec3 v_texcoord;
layout (location = 3) out highp float v_fogdepth;
invariant gl_Position;
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(0.0, 0.0, 1.0, 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 = u_matambientalpha;
v_color0 = color0;
v_texcoord = vec3(texcoord.xy * u_uvscaleoffset.xy, 0.0);
v_fogdepth = (viewPos.z + u_fogcoef.x) * u_fogcoef.y;
if (u_depthRange.y >= 1.0) {
gl_ClipDistance[0] = outPos.z;
} else if (u_depthRange.x + u_depthRange.y <= 65534.0) {
gl_ClipDistance[0] = outPos.w - outPos.z;
} else {
gl_ClipDistance[0] = 0.0;
}
vec3 projPos = outPos.xyz / outPos.w;
float projZ = (projPos.z - u_depthRange.z) * u_depthRange.w;
if (u_cullRangeMin.w <= 0.0 || projZ * outPos.w > -outPos.w) {
if ((projPos.x < u_cullRangeMin.x || projPos.y < u_cullRangeMin.y) || (projPos.x > u_cullRangeMax.x || projPos.y > u_cullRangeMax.y)) {
outPos.xyzw = u_cullRangeMax.wwww;
}
}
if (u_cullRangeMin.w <= 0.0) {
if (projPos.z < u_cullRangeMin.z || projPos.z > u_cullRangeMax.z) {
outPos.xyzw = u_cullRangeMax.wwww;
}
}
gl_ClipDistance[1] = projZ * outPos.w + outPos.w + 0.000001;
if (u_cullRangeMin.w > 0.0 && u_depthRange.w != 0.0f) {
gl_CullDistance[0] = projPos.z - u_cullRangeMin.z;
gl_CullDistance[1] = u_cullRangeMax.z - projPos.z;
} else {
gl_CullDistance[0] = 0.0;
gl_CullDistance[1] = 0.0;
}
gl_Position = outPos;
}
|
| eFootball 2024 By RH12 Official |
v1.19.3 |
2026-02-16 |
Vulkan error in shader compilation: info: ERROR: 0:39: 'gl_Position' : identifier not previously declared
ERROR: 1 compilation errors. No code generated.
/ code: #version 450
#extension GL_ARB_separate_shader_objects : enable
#extension GL_ARB_shading_language_420pack : enable
#define mul(x, y) ((x) * (y))
#define splat3(x) vec3(x)
precision highp float;
// 40000000:00000928 HWX C T Flat Cull
layout (std140, set = 0, binding = 3) uniform baseVars {
mat4 u_proj;
mat4 u_proj_through;
mat3x4 u_view;
mat3x4 u_world;
mat3x4 u_texmtx;
vec4 u_uvscaleoffset;
vec4 u_depthRange;
vec4 u_matambientalpha;
vec4 u_cullRangeMin;
vec4 u_cullRangeMax;
uint u_spline_counts;
uint u_depal_mask_shift_off_fmt;
uint u_colorWriteMask;
float u_mipBias;
vec2 u_texNoAlphaMul; float pad1; float pad2;
vec3 u_fogcolor; uint u_alphacolorref;
vec3 u_texenv; uint u_alphacolormask;
vec4 u_texclamp;
vec2 u_texclampoff; vec2 u_fogcoef;
vec3 u_blendFixA; float u_stencilReplaceValue;
vec3 u_blendFixB; float u_rotation;
};
layout (location = 0) in vec3 position;
layout (location = 1) in vec2 texcoord;
layout (location = 5) in vec4 color0;
layout (location = 1) flat out lowp vec4 v_color0;
layout (location = 0) out highp vec3 v_texcoord;
layout (location = 3) out highp float v_fogdepth;
invariant gl_Position;
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(0.0, 0.0, 1.0, 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 = u_matambientalpha;
v_color0 = color0;
v_texcoord = vec3(texcoord.xy * u_uvscaleoffset.xy, 0.0);
v_fogdepth = (viewPos.z + u_fogcoef.x) * u_fogcoef.y;
if (u_depthRange.y >= 1.0) {
gl_ClipDistance[0] = outPos.z;
} else if (u_depthRange.x + u_depthRange.y <= 65534.0) {
gl_ClipDistance[0] = outPos.w - outPos.z;
} else {
gl_ClipDistance[0] = 0.0;
}
vec3 projPos = outPos.xyz / outPos.w;
float projZ = (projPos.z - u_depthRange.z) * u_depthRange.w;
if (u_cullRangeMin.w <= 0.0 || projZ * outPos.w > -outPos.w) {
if ((projPos.x < u_cullRangeMin.x || projPos.y < u_cullRangeMin.y) || (projPos.x > u_cullRangeMax.x || projPos.y > u_cullRangeMax.y)) {
outPos.xyzw = u_cullRangeMax.wwww;
}
}
if (u_cullRangeMin.w <= 0.0) {
if (projPos.z < u_cullRangeMin.z || projPos.z > u_cullRangeMax.z) {
outPos.xyzw = u_cullRangeMax.wwww;
}
}
gl_ClipDistance[1] = projZ * outPos.w + outPos.w + 0.000001;
if (u_cullRangeMin.w > 0.0 && u_depthRange.w != 0.0f) {
gl_CullDistance[0] = projPos.z - u_cullRangeMin.z;
gl_CullDistance[1] = u_cullRangeMax.z - projPos.z;
} else {
gl_CullDistance[0] = 0.0;
gl_CullDistance[1] = 0.0;
}
gl_Position = outPos;
}
|
| eFootball 2024 By RH12 Official |
v1.19.3 |
2026-02-16 |
Vulkan error in shader compilation: info: ERROR: 0:53: 'gl_Position' : identifier not previously declared
ERROR: 1 compilation errors. No code generated.
/ code: #version 450
#extension GL_ARB_separate_shader_objects : enable
#extension GL_ARB_shading_language_420pack : enable
#define mul(x, y) ((x) * (y))
#define splat3(x) vec3(x)
precision highp float;
// 01000000:80000b20 HWX T N Light: LightUberShader Cull
layout (std140, set = 0, binding = 3) uniform baseVars {
mat4 u_proj;
mat4 u_proj_through;
mat3x4 u_view;
mat3x4 u_world;
mat3x4 u_texmtx;
vec4 u_uvscaleoffset;
vec4 u_depthRange;
vec4 u_matambientalpha;
vec4 u_cullRangeMin;
vec4 u_cullRangeMax;
uint u_spline_counts;
uint u_depal_mask_shift_off_fmt;
uint u_colorWriteMask;
float u_mipBias;
vec2 u_texNoAlphaMul; float pad1; float pad2;
vec3 u_fogcolor; uint u_alphacolorref;
vec3 u_texenv; uint u_alphacolormask;
vec4 u_texclamp;
vec2 u_texclampoff; vec2 u_fogcoef;
vec3 u_blendFixA; float u_stencilReplaceValue;
vec3 u_blendFixB; float u_rotation;
};
layout (std140, set = 0, binding = 4) uniform lightVars {
vec4 u_ambient;
vec3 u_matdiffuse;
vec4 u_matspecular;
vec3 u_matemissive;
uint u_lightControl; // light ubershader control bits
vec3 u_lightpos[4];
vec3 u_lightdir[4];
vec3 u_lightatt[4];
vec4 u_lightangle_spotCoef[4];
vec3 u_lightambient[4];
vec3 u_lightdiffuse[4];
vec3 u_lightspecular[4];
};
layout (location = 0) in vec3 position;
layout (location = 2) in vec3 normal;
layout (location = 1) in vec2 texcoord;
layout (location = 1) out lowp vec4 v_color0;
layout (location = 0) out highp vec3 v_texcoord;
layout (location = 3) out highp float v_fogdepth;
invariant gl_Position;
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 = u_matambientalpha;
vec3 diffuseColor = u_matdiffuse.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;
lowp float angle;
uint comp; uint type; float attenuation;
for (uint i = 0; i < 4; i++) {
if ((u_lightControl & (0x1u << i)) != 0x0u) {
comp = (u_lightControl >> uint(0x4u + 0x4u * i)) & 0x3u;
type = (u_lightControl >> uint(0x4u + 0x4u * i + 0x2u)) & 0x3u;
toLight = u_lightpos[i];
if (type != 0x0u) {
toLight -= worldpos;
distance = length(toLight);
toLight /= distance;
attenuation = clamp(1.0 / dot(u_lightatt[i], vec3(1.0, distance, distance*distance)), 0.0, 1.0);
if (type == 0x01u) {
lightScale = attenuation;
} else {
angle = dot(u_lightdir[i], toLight);
if (angle >= u_lightangle_spotCoef[i].x) {
lightScale = attenuation * (u_lightangle_spotCoef[i].y <= 0.0 ? 1.0 : pow(angle, u_lightangle_spotCoef[i].y));
} else {
lightScale = 0.0;
}
}
} else {
lightScale = 1.0;
}
ldot = dot(toLight, worldnormal);
if (comp == 0x2u) {
ldot = u_matspecular.a > 0.0 ? pow(max(ldot, 0.0), u_matspecular.a) : 1.0;
}
diffuse = (u_lightdiffuse[i] * diffuseColor) * max(ldot, 0.0);
if (comp == 0x1u && 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;
}
lightSum1 += u_lightspecular[i] * specularColor * ldot * lightScale;
}
lightSum0.rgb += (u_lightambient[i] * ambientColor.rgb + diffuse) * lightScale;
}
} v_color0 = clamp(clamp(lightSum0, 0.0, 1.0) + vec4(lightSum1, 0.0), 0.0, 1.0);
v_texcoord = vec3(texcoord.xy * u_u |