Message #2411548 - D3D error in shader compilation: info: %s / code: %s

Kind #687: D3D error in shader compilation: info: %s / code: %s

Game: Resistance: Retribution™ (UCES01184_1.00)

D3D error in shader compilation: info: C:\Program Files\PPSSPP\Shader@0x00000153BF5448E0(100,16-55): error X4505: maximum temp register index exceeded
C:\Program Files\PPSSPP\Shader@0x00000153BF5448E0(100,12-69): error X4505: maximum temp register index exceeded
 / code: #define vec2 float2
#define vec3 float3
#define vec4 float4
#define ivec2 int2
#define ivec4 int4
#define mat4 float4x4
#define mat3x4 float4x3
#define splat3(x) vec3(x, x, x)
#define lowp
#define mediump
#define highp

#pragma warning( disable : 3571 )
mat4 u_proj : register(c0);
vec2 u_fogcoef : register(c18);
vec4 u_matambientalpha : register(c20);
mat3x4 u_world : register(c11);
mat3x4 u_view : register(c8);
vec4 u_uvscaleoffset : register(c17);
vec3 u_lightpos0 : register(c24);
vec3 u_lightambient0 : register(c48);
vec3 u_lightdiffuse0 : register(c40);
vec3 u_lightspecular0 : register(c44);
vec3 u_lightpos1 : register(c25);
vec3 u_lightatt1 : register(c33);
vec3 u_lightambient1 : register(c49);
vec3 u_lightdiffuse1 : register(c41);
vec3 u_lightspecular1 : register(c45);
vec3 u_lightpos2 : register(c26);
vec3 u_lightatt2 : register(c34);
vec3 u_lightdir2 : register(c30);
vec4 u_lightangle_spotCoef2 : register(c38);
vec3 u_lightambient2 : register(c50);
vec3 u_lightdiffuse2 : register(c42);
vec3 u_lightspecular2 : register(c46);
vec3 u_lightpos3 : register(c27);
vec3 u_lightatt3 : register(c35);
vec3 u_lightambient3 : register(c51);
vec3 u_lightdiffuse3 : register(c43);
vec3 u_lightspecular3 : register(c47);
vec4 u_ambient : register(c19);
vec3 u_matdiffuse : register(c21);
vec4 u_matspecular : register(c22);
vec3 u_matemissive : register(c23);
vec4 u_cullRangeMin : register(c80);
vec4 u_cullRangeMax : register(c81);
struct VS_IN {                              
  vec2 texcoord : TEXCOORD0;
  vec3 normal : NORMAL;
  vec3 position : POSITION;
};
struct VS_OUT {
  vec3 v_texcoord : TEXCOORD0;
  vec4 v_color0    : COLOR0;
  vec3 v_color1    : COLOR1;
  float v_fogdepth: TEXCOORD1;
  vec4 gl_Position   : POSITION;
};
vec3 normalizeOr001(vec3 v) {
   return length(v) == 0.0 ? vec3(0.0, 0.0, 1.0) : normalize(v);
}
VS_OUT main(VS_IN In) {
  VS_OUT Out;
  vec2 texcoord = In.texcoord;
  vec3 normal = In.normal;
  vec3 position = In.position;
  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);
  lowp vec4 lightSum0 = u_ambient * u_matambientalpha + 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;
  toLight = u_lightpos0;
  ldot = dot(toLight, worldnormal);
  diffuse = (u_lightdiffuse0 * u_matdiffuse) * 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 * u_matambientalpha.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 * u_matdiffuse) * 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 * u_matambientalpha.rgb + diffuse) * lightScale;
  toLight = u_lightpos2 - worldpos;
  distance = length(toLight);
  toLight /= distance;
  ldot = dot(toLight, worldnormal);
  angle = length(u_lightdir2) == 0.0 ? 0.0 : dot(normalize(u_l

Status: new. 12 hits from 2023-11-07 22:32:11 to 2023-11-07 22:32:17 UTC. Message #2411548.

Individual reports are stored since 2026-11-12, the newest 100 per message; none for this message yet. Older hits only exist as the counters above. Hover a cell for details.