| Message |
# of games |
Rows |
Hits |
Latest Report |
| D3D error in shader compilation: info: C:\RomStation\app\emulators\downloads\PPSSPP\files\PPSSPP 1.10.3 (x86)\Shader@0x13C7AD10(95,31-45): error X3004: undeclared identifier 'u_spline_counts'
/ code: #pragma warning( disable : 3571 )
float4x4 u_proj : register(c0);
float4 u_matambientalpha : register(c20);
float4x3 u_world : register(c11);
float4x3 u_view : register(c8);
float4 u_uvscaleoffset : register(c17);
float4 u_cullRangeMin : register(c80);
float4 u_cullRangeMax : register(c81);
struct VS_IN {
float2 texcoord : TEXCOORD0;
float4 color0 : COLOR0;
float3 normal : NORMAL;
float3 position : POSITION;
};
struct VS_OUT {
float3 v_texcoord : TEXCOORD0;
float4 v_color0 : COLOR0;
float4 gl_Position : POSITION;
};
float2 tess_sample(in float2 points[16], float4x4 weights) {
float2 pos = float2(0.0, 0.0);
pos += weights[0][0] * points[0];
pos += weights[0][1] * points[1];
pos += weights[0][2] * points[2];
pos += weights[0][3] * points[3];
pos += weights[1][0] * points[4];
pos += weights[1][1] * points[5];
pos += weights[1][2] * points[6];
pos += weights[1][3] * points[7];
pos += weights[2][0] * points[8];
pos += weights[2][1] * points[9];
pos += weights[2][2] * points[10];
pos += weights[2][3] * points[11];
pos += weights[3][0] * points[12];
pos += weights[3][1] * points[13];
pos += weights[3][2] * points[14];
pos += weights[3][3] * points[15];
return pos;
}
float3 tess_sample(in float3 points[16], float4x4 weights) {
float3 pos = float3(0.0, 0.0, 0.0);
pos += weights[0][0] * points[0];
pos += weights[0][1] * points[1];
pos += weights[0][2] * points[2];
pos += weights[0][3] * points[3];
pos += weights[1][0] * points[4];
pos += weights[1][1] * points[5];
pos += weights[1][2] * points[6];
pos += weights[1][3] * points[7];
pos += weights[2][0] * points[8];
pos += weights[2][1] * points[9];
pos += weights[2][2] * points[10];
pos += weights[2][3] * points[11];
pos += weights[3][0] * points[12];
pos += weights[3][1] * points[13];
pos += weights[3][2] * points[14];
pos += weights[3][3] * points[15];
return pos;
}
float4 tess_sample(in float4 points[16], float4x4 weights) {
float4 pos = float4(0.0, 0.0, 0.0, 0.0);
pos += weights[0][0] * points[0];
pos += weights[0][1] * points[1];
pos += weights[0][2] * points[2];
pos += weights[0][3] * points[3];
pos += weights[1][0] * points[4];
pos += weights[1][1] * points[5];
pos += weights[1][2] * points[6];
pos += weights[1][3] * points[7];
pos += weights[2][0] * points[8];
pos += weights[2][1] * points[9];
pos += weights[2][2] * points[10];
pos += weights[2][3] * points[11];
pos += weights[3][0] * points[12];
pos += weights[3][1] * points[13];
pos += weights[3][2] * points[14];
pos += weights[3][3] * points[15];
return pos;
}
float4x4 outerProduct(float4 u, float4 v) {
return mul((float4x1)v, (float1x4)u);
}
struct Tess {
float3 pos;
float2 tex;
float4 col;
};
void tessellate(in VS_IN In, out Tess tess) {
int2 point_pos = int2(In.position.z, In.normal.z) * 3;
int2 weight_idx = int2(In.position.xy);
float3 _pos[16];
float2 _tex[16];
float4 _col[16];
int index;
index = (0 + point_pos.y) * u_spline_counts + (0 + point_pos.x);
_pos[0] = tess_data[index].pos;
index = (0 + point_pos.y) * u_spline_counts + (1 + point_pos.x);
_pos[1] = tess_data[index].pos;
index = (0 + point_pos.y) * u_spline_counts + (2 + point_pos.x);
_pos[2] = tess_data[index].pos;
index = (0 + point_pos.y) * u_spline_counts + (3 + point_pos.x);
_pos[3] = tess_data[index].pos;
index = (1 + point_pos.y) * u_spline_counts + (0 + point_pos.x);
_pos[4] = tess_data[index].pos;
index = (1 + point_pos.y) * u_spline_counts + (1 + point_pos.x);
_pos[5] = tess_data[index].pos;
index = (1 + point_pos.y) * u_spline_counts + (2 + point_pos.x);
_pos[6] = tess_data[index].pos;
index = (1 + point_pos.y) * u_spline_counts + (3 + point_pos.x);
_pos[7] = tess_data[index].pos;
index = (2 + point_pos.y) * u_spline_counts + (0 + point_pos.x) |
1 |
1 |
91 |
2022-09-09 |
| D3D error in shader compilation: info: F:\PPSSPP\Shader@0x000000000FE0C2A0(100,16-55): error X4505: maximum temp register index exceeded
F:\PPSSPP\Shader@0x000000000FE0C2A0(100,12-69): error X4505: maximum temp register index exceeded
F:\PPSSPP\Shader@0x000000000FE0C2A0(144,16-55): error X4505: maximum temp register index exceeded
F:\PPSSPP\Shader@0x000000000FE0C2A0(144,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);
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_lightdir3 : register(c31);
vec4 u_lightangle_spotCoef3 : register(c39);
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;
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;
t |
1 |
1 |
91 |
2022-05-17 |
| D3D error in shader compilation: info: C:\Users\King Saad\Downloads\ppsspp_win\Shader@0x14D41CF8(108,16-57): error X4505: maximum temp register index exceeded
C:\Users\King Saad\Downloads\ppsspp_win\Shader@0x14D41CF8(108,12-71): error X4505: maximum temp register index exceeded
/ code: #pragma warning( disable : 3571 )
float4x4 u_proj : register(c0);
float4 u_matambientalpha : register(c20);
float4x3 u_world : register(c11);
float4x3 u_view : register(c8);
float4 u_uvscaleoffset : register(c17);
float3 u_lightpos0 : register(c24);
float3 u_lightambient0 : register(c48);
float3 u_lightdiffuse0 : register(c40);
float3 u_lightspecular0 : register(c44);
float3 u_lightpos1 : register(c25);
float3 u_lightatt1 : register(c33);
float3 u_lightdir1 : register(c29);
float4 u_lightangle_spotCoef1 : register(c37);
float3 u_lightambient1 : register(c49);
float3 u_lightdiffuse1 : register(c41);
float3 u_lightspecular1 : register(c45);
float3 u_lightpos2 : register(c26);
float3 u_lightatt2 : register(c34);
float3 u_lightdir2 : register(c30);
float4 u_lightangle_spotCoef2 : register(c38);
float3 u_lightambient2 : register(c50);
float3 u_lightdiffuse2 : register(c42);
float3 u_lightspecular2 : register(c46);
float3 u_lightpos3 : register(c27);
float3 u_lightambient3 : register(c51);
float3 u_lightdiffuse3 : register(c43);
float3 u_lightspecular3 : register(c47);
float4 u_ambient : register(c19);
float3 u_matdiffuse : register(c21);
float4 u_matspecular : register(c22);
float3 u_matemissive : register(c23);
float4 u_cullRangeMin : register(c80);
float4 u_cullRangeMax : register(c81);
struct VS_IN {
float2 texcoord : TEXCOORD0;
float3 normal : NORMAL;
float3 position : POSITION;
};
struct VS_OUT {
float3 v_texcoord : TEXCOORD0;
float4 v_color0 : COLOR0;
float3 v_color1 : COLOR1;
float4 gl_Position : POSITION;
};
VS_OUT main(VS_IN In) {
VS_OUT Out;
float3 worldpos = mul(float4(In.position.xyz, 1.0), u_world);
float3 worldnormal = normalize(mul(float4(In.normal, 0.0), u_world));
float4 viewPos = float4(mul(float4(worldpos, 1.0), u_view), 1.0);
float4 outPos = mul(viewPos, u_proj);
float4 lightSum0 = u_ambient * u_matambientalpha + float4(u_matemissive, 0.0);
float3 lightSum1 = 0;
float3 toLight;
float3 diffuse;
float distance;
float lightScale;
float ldot;
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 + float3(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);
angle = length(u_lightdir1) == 0.0 ? 0.0 : dot(normalize(u_lightdir1), toLight);
if (angle >= u_lightangle_spotCoef1.x) {
lightScale = clamp(1.0 / dot(u_lightatt1, float3(1.0, distance, distance*distance)), 0.0, 1.0) * (u_lightangle_spotCoef1.y <= 0.0 ? 1.0 : pow(angle, u_lightangle_spotCoef1.y));
} else {
lightScale = 0.0;
}
diffuse = (u_lightdiffuse1 * u_matdiffuse) * max(ldot, 0.0);
if (ldot >= 0.0) {
ldot = dot(normalize(toLight + float3(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_lightdir2), toLight);
if (angle >= u_lightangle_spotCoef2.x) {
lightScale = clamp(1.0 / dot(u_lightat |
1 |
1 |
91 |
2021-03-12 |
| D3D error in shader compilation: info: E:\PLAY GAMES\Nueva carpeta\Shader@0x0DF59CA0(108,16-57): error X4505: maximum temp register index exceeded
E:\PLAY GAMES\Nueva carpeta\Shader@0x0DF59CA0(108,12-71): error X4505: maximum temp register index exceeded
/ code: #pragma warning( disable : 3571 )
float4x4 u_proj : register(c0);
float4 u_matambientalpha : register(c20);
float4x3 u_world : register(c11);
float4x3 u_view : register(c8);
float4 u_uvscaleoffset : register(c17);
float3 u_lightpos0 : register(c24);
float3 u_lightambient0 : register(c48);
float3 u_lightdiffuse0 : register(c40);
float3 u_lightspecular0 : register(c44);
float3 u_lightpos1 : register(c25);
float3 u_lightatt1 : register(c33);
float3 u_lightdir1 : register(c29);
float4 u_lightangle_spotCoef1 : register(c37);
float3 u_lightambient1 : register(c49);
float3 u_lightdiffuse1 : register(c41);
float3 u_lightspecular1 : register(c45);
float3 u_lightpos2 : register(c26);
float3 u_lightatt2 : register(c34);
float3 u_lightdir2 : register(c30);
float4 u_lightangle_spotCoef2 : register(c38);
float3 u_lightambient2 : register(c50);
float3 u_lightdiffuse2 : register(c42);
float3 u_lightspecular2 : register(c46);
float3 u_lightpos3 : register(c27);
float3 u_lightambient3 : register(c51);
float3 u_lightdiffuse3 : register(c43);
float3 u_lightspecular3 : register(c47);
float4 u_ambient : register(c19);
float3 u_matdiffuse : register(c21);
float4 u_matspecular : register(c22);
float3 u_matemissive : register(c23);
float4 u_cullRangeMin : register(c80);
float4 u_cullRangeMax : register(c81);
struct VS_IN {
float2 texcoord : TEXCOORD0;
float3 normal : NORMAL;
float3 position : POSITION;
};
struct VS_OUT {
float3 v_texcoord : TEXCOORD0;
float4 v_color0 : COLOR0;
float3 v_color1 : COLOR1;
float4 gl_Position : POSITION;
};
VS_OUT main(VS_IN In) {
VS_OUT Out;
float3 worldpos = mul(float4(In.position.xyz, 1.0), u_world);
float3 worldnormal = normalize(mul(float4(In.normal, 0.0), u_world));
float4 viewPos = float4(mul(float4(worldpos, 1.0), u_view), 1.0);
float4 outPos = mul(viewPos, u_proj);
float4 lightSum0 = u_ambient * u_matambientalpha + float4(u_matemissive, 0.0);
float3 lightSum1 = 0;
float3 toLight;
float3 diffuse;
float distance;
float lightScale;
float ldot;
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 + float3(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);
angle = length(u_lightdir1) == 0.0 ? 0.0 : dot(normalize(u_lightdir1), toLight);
if (angle >= u_lightangle_spotCoef1.x) {
lightScale = clamp(1.0 / dot(u_lightatt1, float3(1.0, distance, distance*distance)), 0.0, 1.0) * (u_lightangle_spotCoef1.y <= 0.0 ? 1.0 : pow(angle, u_lightangle_spotCoef1.y));
} else {
lightScale = 0.0;
}
diffuse = (u_lightdiffuse1 * u_matdiffuse) * max(ldot, 0.0);
if (ldot >= 0.0) {
ldot = dot(normalize(toLight + float3(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_lightdir2), toLight);
if (angle >= u_lightangle_spotCoef2.x) {
lightScale = clamp(1.0 / dot(u_lightatt2, float3(1.0, distan |
1 |
1 |
91 |
2020-11-30 |
| D3D error in shader compilation: info: C:\Users\JOSE LUIS\Downloads\ppsspp_win\Shader@0x000000D8C3487BA0(95,31-45): error X3004: undeclared identifier 'u_spline_counts'
/ code: #pragma warning( disable : 3571 )
float4x4 u_proj : register(c0);
float4 u_matambientalpha : register(c20);
float4x3 u_world : register(c11);
float4x3 u_view : register(c8);
float4 u_uvscaleoffset : register(c17);
float4 u_cullRangeMin : register(c80);
float4 u_cullRangeMax : register(c81);
struct VS_IN {
float2 texcoord : TEXCOORD0;
float4 color0 : COLOR0;
float3 normal : NORMAL;
float3 position : POSITION;
};
struct VS_OUT {
float3 v_texcoord : TEXCOORD0;
float4 v_color0 : COLOR0;
float4 gl_Position : POSITION;
};
float2 tess_sample(in float2 points[16], float4x4 weights) {
float2 pos = float2(0.0, 0.0);
pos += weights[0][0] * points[0];
pos += weights[0][1] * points[1];
pos += weights[0][2] * points[2];
pos += weights[0][3] * points[3];
pos += weights[1][0] * points[4];
pos += weights[1][1] * points[5];
pos += weights[1][2] * points[6];
pos += weights[1][3] * points[7];
pos += weights[2][0] * points[8];
pos += weights[2][1] * points[9];
pos += weights[2][2] * points[10];
pos += weights[2][3] * points[11];
pos += weights[3][0] * points[12];
pos += weights[3][1] * points[13];
pos += weights[3][2] * points[14];
pos += weights[3][3] * points[15];
return pos;
}
float3 tess_sample(in float3 points[16], float4x4 weights) {
float3 pos = float3(0.0, 0.0, 0.0);
pos += weights[0][0] * points[0];
pos += weights[0][1] * points[1];
pos += weights[0][2] * points[2];
pos += weights[0][3] * points[3];
pos += weights[1][0] * points[4];
pos += weights[1][1] * points[5];
pos += weights[1][2] * points[6];
pos += weights[1][3] * points[7];
pos += weights[2][0] * points[8];
pos += weights[2][1] * points[9];
pos += weights[2][2] * points[10];
pos += weights[2][3] * points[11];
pos += weights[3][0] * points[12];
pos += weights[3][1] * points[13];
pos += weights[3][2] * points[14];
pos += weights[3][3] * points[15];
return pos;
}
float4 tess_sample(in float4 points[16], float4x4 weights) {
float4 pos = float4(0.0, 0.0, 0.0, 0.0);
pos += weights[0][0] * points[0];
pos += weights[0][1] * points[1];
pos += weights[0][2] * points[2];
pos += weights[0][3] * points[3];
pos += weights[1][0] * points[4];
pos += weights[1][1] * points[5];
pos += weights[1][2] * points[6];
pos += weights[1][3] * points[7];
pos += weights[2][0] * points[8];
pos += weights[2][1] * points[9];
pos += weights[2][2] * points[10];
pos += weights[2][3] * points[11];
pos += weights[3][0] * points[12];
pos += weights[3][1] * points[13];
pos += weights[3][2] * points[14];
pos += weights[3][3] * points[15];
return pos;
}
float4x4 outerProduct(float4 u, float4 v) {
return mul((float4x1)v, (float1x4)u);
}
struct Tess {
float3 pos;
float2 tex;
float4 col;
};
void tessellate(in VS_IN In, out Tess tess) {
int2 point_pos = int2(In.position.z, In.normal.z) * 3;
int2 weight_idx = int2(In.position.xy);
float3 _pos[16];
float2 _tex[16];
float4 _col[16];
int index;
index = (0 + point_pos.y) * u_spline_counts + (0 + point_pos.x);
_pos[0] = tess_data[index].pos;
index = (0 + point_pos.y) * u_spline_counts + (1 + point_pos.x);
_pos[1] = tess_data[index].pos;
index = (0 + point_pos.y) * u_spline_counts + (2 + point_pos.x);
_pos[2] = tess_data[index].pos;
index = (0 + point_pos.y) * u_spline_counts + (3 + point_pos.x);
_pos[3] = tess_data[index].pos;
index = (1 + point_pos.y) * u_spline_counts + (0 + point_pos.x);
_pos[4] = tess_data[index].pos;
index = (1 + point_pos.y) * u_spline_counts + (1 + point_pos.x);
_pos[5] = tess_data[index].pos;
index = (1 + point_pos.y) * u_spline_counts + (2 + point_pos.x);
_pos[6] = tess_data[index].pos;
index = (1 + point_pos.y) * u_spline_counts + (3 + point_pos.x);
_pos[7] = tess_data[index].pos;
index = (2 + point_pos.y) * u_spline_counts + (0 + point_pos.x);
_pos[8] = tess_data |
1 |
1 |
91 |
2020-11-23 |
| D3D error in shader compilation: info: C:\Users\power lion\Downloads\ppsspp-1-10-3\Shader@0x10C76E50(108,16-57): error X4505: maximum temp register index exceeded
C:\Users\power lion\Downloads\ppsspp-1-10-3\Shader@0x10C76E50(108,12-71): error X4505: maximum temp register index exceeded
/ code: #pragma warning( disable : 3571 )
float4x4 u_proj : register(c0);
float4 u_matambientalpha : register(c20);
float4x3 u_world : register(c11);
float4x3 u_view : register(c8);
float4 u_uvscaleoffset : register(c17);
float3 u_lightpos0 : register(c24);
float3 u_lightambient0 : register(c48);
float3 u_lightdiffuse0 : register(c40);
float3 u_lightspecular0 : register(c44);
float3 u_lightpos1 : register(c25);
float3 u_lightatt1 : register(c33);
float3 u_lightdir1 : register(c29);
float4 u_lightangle_spotCoef1 : register(c37);
float3 u_lightambient1 : register(c49);
float3 u_lightdiffuse1 : register(c41);
float3 u_lightspecular1 : register(c45);
float3 u_lightpos2 : register(c26);
float3 u_lightatt2 : register(c34);
float3 u_lightdir2 : register(c30);
float4 u_lightangle_spotCoef2 : register(c38);
float3 u_lightambient2 : register(c50);
float3 u_lightdiffuse2 : register(c42);
float3 u_lightspecular2 : register(c46);
float3 u_lightpos3 : register(c27);
float3 u_lightambient3 : register(c51);
float3 u_lightdiffuse3 : register(c43);
float3 u_lightspecular3 : register(c47);
float4 u_ambient : register(c19);
float3 u_matdiffuse : register(c21);
float4 u_matspecular : register(c22);
float3 u_matemissive : register(c23);
float4 u_cullRangeMin : register(c80);
float4 u_cullRangeMax : register(c81);
struct VS_IN {
float2 texcoord : TEXCOORD0;
float3 normal : NORMAL;
float3 position : POSITION;
};
struct VS_OUT {
float3 v_texcoord : TEXCOORD0;
float4 v_color0 : COLOR0;
float3 v_color1 : COLOR1;
float4 gl_Position : POSITION;
};
VS_OUT main(VS_IN In) {
VS_OUT Out;
float3 worldpos = mul(float4(In.position.xyz, 1.0), u_world);
float3 worldnormal = normalize(mul(float4(In.normal, 0.0), u_world));
float4 viewPos = float4(mul(float4(worldpos, 1.0), u_view), 1.0);
float4 outPos = mul(viewPos, u_proj);
float4 lightSum0 = u_ambient * u_matambientalpha + float4(u_matemissive, 0.0);
float3 lightSum1 = 0;
float3 toLight;
float3 diffuse;
float distance;
float lightScale;
float ldot;
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 + float3(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);
angle = length(u_lightdir1) == 0.0 ? 0.0 : dot(normalize(u_lightdir1), toLight);
if (angle >= u_lightangle_spotCoef1.x) {
lightScale = clamp(1.0 / dot(u_lightatt1, float3(1.0, distance, distance*distance)), 0.0, 1.0) * (u_lightangle_spotCoef1.y <= 0.0 ? 1.0 : pow(angle, u_lightangle_spotCoef1.y));
} else {
lightScale = 0.0;
}
diffuse = (u_lightdiffuse1 * u_matdiffuse) * max(ldot, 0.0);
if (ldot >= 0.0) {
ldot = dot(normalize(toLight + float3(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_lightdir2), toLight);
if (angle >= u_lightangle_spotCoef2.x) {
lightScale = clamp(1.0 / dot(u |
1 |
1 |
91 |
2020-10-11 |
| D3D error in shader compilation: info: C:\Users\Deznan\Desktop\psp\Shader@0x1073E4A8(95,31-45): error X3004: undeclared identifier 'u_spline_counts'
/ code: #pragma warning( disable : 3571 )
float4x4 u_proj : register(c0);
float4 u_matambientalpha : register(c20);
float4x3 u_world : register(c11);
float4x3 u_view : register(c8);
float4 u_uvscaleoffset : register(c17);
float4 u_cullRangeMin : register(c80);
float4 u_cullRangeMax : register(c81);
struct VS_IN {
float2 texcoord : TEXCOORD0;
float4 color0 : COLOR0;
float3 normal : NORMAL;
float3 position : POSITION;
};
struct VS_OUT {
float3 v_texcoord : TEXCOORD0;
float4 v_color0 : COLOR0;
float4 gl_Position : POSITION;
};
float2 tess_sample(in float2 points[16], float4x4 weights) {
float2 pos = float2(0.0, 0.0);
pos += weights[0][0] * points[0];
pos += weights[0][1] * points[1];
pos += weights[0][2] * points[2];
pos += weights[0][3] * points[3];
pos += weights[1][0] * points[4];
pos += weights[1][1] * points[5];
pos += weights[1][2] * points[6];
pos += weights[1][3] * points[7];
pos += weights[2][0] * points[8];
pos += weights[2][1] * points[9];
pos += weights[2][2] * points[10];
pos += weights[2][3] * points[11];
pos += weights[3][0] * points[12];
pos += weights[3][1] * points[13];
pos += weights[3][2] * points[14];
pos += weights[3][3] * points[15];
return pos;
}
float3 tess_sample(in float3 points[16], float4x4 weights) {
float3 pos = float3(0.0, 0.0, 0.0);
pos += weights[0][0] * points[0];
pos += weights[0][1] * points[1];
pos += weights[0][2] * points[2];
pos += weights[0][3] * points[3];
pos += weights[1][0] * points[4];
pos += weights[1][1] * points[5];
pos += weights[1][2] * points[6];
pos += weights[1][3] * points[7];
pos += weights[2][0] * points[8];
pos += weights[2][1] * points[9];
pos += weights[2][2] * points[10];
pos += weights[2][3] * points[11];
pos += weights[3][0] * points[12];
pos += weights[3][1] * points[13];
pos += weights[3][2] * points[14];
pos += weights[3][3] * points[15];
return pos;
}
float4 tess_sample(in float4 points[16], float4x4 weights) {
float4 pos = float4(0.0, 0.0, 0.0, 0.0);
pos += weights[0][0] * points[0];
pos += weights[0][1] * points[1];
pos += weights[0][2] * points[2];
pos += weights[0][3] * points[3];
pos += weights[1][0] * points[4];
pos += weights[1][1] * points[5];
pos += weights[1][2] * points[6];
pos += weights[1][3] * points[7];
pos += weights[2][0] * points[8];
pos += weights[2][1] * points[9];
pos += weights[2][2] * points[10];
pos += weights[2][3] * points[11];
pos += weights[3][0] * points[12];
pos += weights[3][1] * points[13];
pos += weights[3][2] * points[14];
pos += weights[3][3] * points[15];
return pos;
}
float4x4 outerProduct(float4 u, float4 v) {
return mul((float4x1)v, (float1x4)u);
}
struct Tess {
float3 pos;
float2 tex;
float4 col;
};
void tessellate(in VS_IN In, out Tess tess) {
int2 point_pos = int2(In.position.z, In.normal.z) * 3;
int2 weight_idx = int2(In.position.xy);
float3 _pos[16];
float2 _tex[16];
float4 _col[16];
int index;
index = (0 + point_pos.y) * u_spline_counts + (0 + point_pos.x);
_pos[0] = tess_data[index].pos;
_tex[0] = tess_data[index].tex;
index = (0 + point_pos.y) * u_spline_counts + (1 + point_pos.x);
_pos[1] = tess_data[index].pos;
_tex[1] = tess_data[index].tex;
index = (0 + point_pos.y) * u_spline_counts + (2 + point_pos.x);
_pos[2] = tess_data[index].pos;
_tex[2] = tess_data[index].tex;
index = (0 + point_pos.y) * u_spline_counts + (3 + point_pos.x);
_pos[3] = tess_data[index].pos;
_tex[3] = tess_data[index].tex;
index = (1 + point_pos.y) * u_spline_counts + (0 + point_pos.x);
_pos[4] = tess_data[index].pos;
_tex[4] = tess_data[index].tex;
index = (1 + point_pos.y) * u_spline_counts + (1 + point_pos.x);
_pos[5] = tess_data[index].pos;
_tex[5] = tess_data[index].tex;
index = (1 + point_pos.y) * u_spline_counts + (2 + point_pos.x);
_pos[6] = tess_data[index].pos;
_te |
2 |
2 |
91 |
2020-09-21 |
| D3D error in shader compilation: info: C:\Users\HOME\Downloads\ppsspp_win (1)\Shader@0x000002090F099710(133,16-57): error X4505: maximum temp register index exceeded
C:\Users\HOME\Downloads\ppsspp_win (1)\Shader@0x000002090F099710(133,12-71): error X4505: maximum temp register index exceeded
/ code: #pragma warning( disable : 3571 )
float4x4 u_proj : register(c0);
float4 u_matambientalpha : register(c20);
float4x3 u_world : register(c11);
float4x3 u_view : register(c8);
float4 u_uvscaleoffset : register(c17);
float3 u_lightpos0 : register(c24);
float3 u_lightambient0 : register(c48);
float3 u_lightdiffuse0 : register(c40);
float3 u_lightspecular0 : register(c44);
float3 u_lightpos1 : register(c25);
float3 u_lightatt1 : register(c33);
float3 u_lightdir1 : register(c29);
float4 u_lightangle_spotCoef1 : register(c37);
float3 u_lightambient1 : register(c49);
float3 u_lightdiffuse1 : register(c41);
float3 u_lightspecular1 : register(c45);
float3 u_lightpos2 : register(c26);
float3 u_lightatt2 : register(c34);
float3 u_lightdir2 : register(c30);
float4 u_lightangle_spotCoef2 : register(c38);
float3 u_lightambient2 : register(c50);
float3 u_lightdiffuse2 : register(c42);
float3 u_lightspecular2 : register(c46);
float3 u_lightpos3 : register(c27);
float3 u_lightatt3 : register(c35);
float3 u_lightdir3 : register(c31);
float4 u_lightangle_spotCoef3 : register(c39);
float3 u_lightambient3 : register(c51);
float3 u_lightdiffuse3 : register(c43);
float3 u_lightspecular3 : register(c47);
float4 u_ambient : register(c19);
float3 u_matdiffuse : register(c21);
float4 u_matspecular : register(c22);
float3 u_matemissive : register(c23);
float4 u_cullRangeMin : register(c80);
float4 u_cullRangeMax : register(c81);
struct VS_IN {
float2 texcoord : TEXCOORD0;
float3 normal : NORMAL;
float3 position : POSITION;
};
struct VS_OUT {
float3 v_texcoord : TEXCOORD0;
float4 v_color0 : COLOR0;
float3 v_color1 : COLOR1;
float4 gl_Position : POSITION;
};
VS_OUT main(VS_IN In) {
VS_OUT Out;
float3 worldpos = mul(float4(In.position.xyz, 1.0), u_world);
float3 worldnormal = normalize(mul(float4(In.normal, 0.0), u_world));
float4 viewPos = float4(mul(float4(worldpos, 1.0), u_view), 1.0);
float4 outPos = mul(viewPos, u_proj);
float4 lightSum0 = u_ambient * u_matambientalpha + float4(u_matemissive, 0.0);
float3 lightSum1 = 0;
float3 toLight;
float3 diffuse;
float distance;
float lightScale;
float ldot;
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 + float3(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);
angle = length(u_lightdir1) == 0.0 ? 0.0 : dot(normalize(u_lightdir1), toLight);
if (angle >= u_lightangle_spotCoef1.x) {
lightScale = clamp(1.0 / dot(u_lightatt1, float3(1.0, distance, distance*distance)), 0.0, 1.0) * (u_lightangle_spotCoef1.y == 0.0 ? 1.0 : pow(angle, u_lightangle_spotCoef1.y));
} else {
lightScale = 0.0;
}
diffuse = (u_lightdiffuse1 * u_matdiffuse) * max(ldot, 0.0);
if (ldot >= 0.0) {
ldot = dot(normalize(toLight + float3(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. |
1 |
1 |
91 |
2020-01-10 |
| D3D error in shader compilation: info: C:\Users\HOME\Downloads\ppsspp_win (1)\Shader@0x0000020E52CE4520(133,16-57): error X4505: maximum temp register index exceeded
C:\Users\HOME\Downloads\ppsspp_win (1)\Shader@0x0000020E52CE4520(133,12-71): error X4505: maximum temp register index exceeded
/ code: #pragma warning( disable : 3571 )
float4x4 u_proj : register(c0);
float4 u_matambientalpha : register(c20);
float4x3 u_world : register(c11);
float4x3 u_view : register(c8);
float4 u_uvscaleoffset : register(c17);
float3 u_lightpos0 : register(c24);
float3 u_lightambient0 : register(c48);
float3 u_lightdiffuse0 : register(c40);
float3 u_lightspecular0 : register(c44);
float3 u_lightpos1 : register(c25);
float3 u_lightatt1 : register(c33);
float3 u_lightdir1 : register(c29);
float4 u_lightangle_spotCoef1 : register(c37);
float3 u_lightambient1 : register(c49);
float3 u_lightdiffuse1 : register(c41);
float3 u_lightspecular1 : register(c45);
float3 u_lightpos2 : register(c26);
float3 u_lightatt2 : register(c34);
float3 u_lightdir2 : register(c30);
float4 u_lightangle_spotCoef2 : register(c38);
float3 u_lightambient2 : register(c50);
float3 u_lightdiffuse2 : register(c42);
float3 u_lightspecular2 : register(c46);
float3 u_lightpos3 : register(c27);
float3 u_lightatt3 : register(c35);
float3 u_lightdir3 : register(c31);
float4 u_lightangle_spotCoef3 : register(c39);
float3 u_lightambient3 : register(c51);
float3 u_lightdiffuse3 : register(c43);
float3 u_lightspecular3 : register(c47);
float4 u_ambient : register(c19);
float3 u_matdiffuse : register(c21);
float4 u_matspecular : register(c22);
float3 u_matemissive : register(c23);
float4 u_cullRangeMin : register(c80);
float4 u_cullRangeMax : register(c81);
struct VS_IN {
float2 texcoord : TEXCOORD0;
float3 normal : NORMAL;
float3 position : POSITION;
};
struct VS_OUT {
float3 v_texcoord : TEXCOORD0;
float4 v_color0 : COLOR0;
float3 v_color1 : COLOR1;
float4 gl_Position : POSITION;
};
VS_OUT main(VS_IN In) {
VS_OUT Out;
float3 worldpos = mul(float4(In.position.xyz, 1.0), u_world);
float3 worldnormal = normalize(mul(float4(In.normal, 0.0), u_world));
float4 viewPos = float4(mul(float4(worldpos, 1.0), u_view), 1.0);
float4 outPos = mul(viewPos, u_proj);
float4 lightSum0 = u_ambient * u_matambientalpha + float4(u_matemissive, 0.0);
float3 lightSum1 = 0;
float3 toLight;
float3 diffuse;
float distance;
float lightScale;
float ldot;
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 + float3(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);
angle = length(u_lightdir1) == 0.0 ? 0.0 : dot(normalize(u_lightdir1), toLight);
if (angle >= u_lightangle_spotCoef1.x) {
lightScale = clamp(1.0 / dot(u_lightatt1, float3(1.0, distance, distance*distance)), 0.0, 1.0) * (u_lightangle_spotCoef1.y == 0.0 ? 1.0 : pow(angle, u_lightangle_spotCoef1.y));
} else {
lightScale = 0.0;
}
diffuse = (u_lightdiffuse1 * u_matdiffuse) * max(ldot, 0.0);
if (ldot >= 0.0) {
ldot = dot(normalize(toLight + float3(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. |
1 |
1 |
91 |
2019-12-17 |
| D3D error in shader compilation: info: C:\Users\HOME\Downloads\ppsspp_win (1)\Shader@0x000001BB82FDEE30(133,16-57): error X4505: maximum temp register index exceeded
C:\Users\HOME\Downloads\ppsspp_win (1)\Shader@0x000001BB82FDEE30(133,12-71): error X4505: maximum temp register index exceeded
/ code: #pragma warning( disable : 3571 )
float4x4 u_proj : register(c0);
float4 u_matambientalpha : register(c20);
float4x3 u_world : register(c11);
float4x3 u_view : register(c8);
float4 u_uvscaleoffset : register(c17);
float3 u_lightpos0 : register(c24);
float3 u_lightambient0 : register(c48);
float3 u_lightdiffuse0 : register(c40);
float3 u_lightspecular0 : register(c44);
float3 u_lightpos1 : register(c25);
float3 u_lightatt1 : register(c33);
float3 u_lightdir1 : register(c29);
float4 u_lightangle_spotCoef1 : register(c37);
float3 u_lightambient1 : register(c49);
float3 u_lightdiffuse1 : register(c41);
float3 u_lightspecular1 : register(c45);
float3 u_lightpos2 : register(c26);
float3 u_lightatt2 : register(c34);
float3 u_lightdir2 : register(c30);
float4 u_lightangle_spotCoef2 : register(c38);
float3 u_lightambient2 : register(c50);
float3 u_lightdiffuse2 : register(c42);
float3 u_lightspecular2 : register(c46);
float3 u_lightpos3 : register(c27);
float3 u_lightatt3 : register(c35);
float3 u_lightdir3 : register(c31);
float4 u_lightangle_spotCoef3 : register(c39);
float3 u_lightambient3 : register(c51);
float3 u_lightdiffuse3 : register(c43);
float3 u_lightspecular3 : register(c47);
float4 u_ambient : register(c19);
float3 u_matdiffuse : register(c21);
float4 u_matspecular : register(c22);
float3 u_matemissive : register(c23);
float4 u_cullRangeMin : register(c80);
float4 u_cullRangeMax : register(c81);
struct VS_IN {
float2 texcoord : TEXCOORD0;
float3 normal : NORMAL;
float3 position : POSITION;
};
struct VS_OUT {
float3 v_texcoord : TEXCOORD0;
float4 v_color0 : COLOR0;
float3 v_color1 : COLOR1;
float4 gl_Position : POSITION;
};
VS_OUT main(VS_IN In) {
VS_OUT Out;
float3 worldpos = mul(float4(In.position.xyz, 1.0), u_world);
float3 worldnormal = normalize(mul(float4(In.normal, 0.0), u_world));
float4 viewPos = float4(mul(float4(worldpos, 1.0), u_view), 1.0);
float4 outPos = mul(viewPos, u_proj);
float4 lightSum0 = u_ambient * u_matambientalpha + float4(u_matemissive, 0.0);
float3 lightSum1 = 0;
float3 toLight;
float3 diffuse;
float distance;
float lightScale;
float ldot;
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 + float3(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);
angle = length(u_lightdir1) == 0.0 ? 0.0 : dot(normalize(u_lightdir1), toLight);
if (angle >= u_lightangle_spotCoef1.x) {
lightScale = clamp(1.0 / dot(u_lightatt1, float3(1.0, distance, distance*distance)), 0.0, 1.0) * (u_lightangle_spotCoef1.y == 0.0 ? 1.0 : pow(angle, u_lightangle_spotCoef1.y));
} else {
lightScale = 0.0;
}
diffuse = (u_lightdiffuse1 * u_matdiffuse) * max(ldot, 0.0);
if (ldot >= 0.0) {
ldot = dot(normalize(toLight + float3(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. |
1 |
1 |
91 |
2019-12-13 |
| D3D error in shader compilation: info: C:\Users\King Saad\Downloads\ppsspp_win\Shader@0x16E4BCA8(109,16-57): error X4505: maximum temp register index exceeded
C:\Users\King Saad\Downloads\ppsspp_win\Shader@0x16E4BCA8(109,12-71): error X4505: maximum temp register index exceeded
/ code: #pragma warning( disable : 3571 )
float4x4 u_proj : register(c0);
float4 u_matambientalpha : register(c20);
float4x3 u_world : register(c11);
float4x3 u_view : register(c8);
float4 u_uvscaleoffset : register(c17);
float3 u_lightpos0 : register(c24);
float3 u_lightambient0 : register(c48);
float3 u_lightdiffuse0 : register(c40);
float3 u_lightspecular0 : register(c44);
float3 u_lightpos1 : register(c25);
float3 u_lightatt1 : register(c33);
float3 u_lightdir1 : register(c29);
float4 u_lightangle_spotCoef1 : register(c37);
float3 u_lightambient1 : register(c49);
float3 u_lightdiffuse1 : register(c41);
float3 u_lightspecular1 : register(c45);
float3 u_lightpos2 : register(c26);
float3 u_lightatt2 : register(c34);
float3 u_lightdir2 : register(c30);
float4 u_lightangle_spotCoef2 : register(c38);
float3 u_lightambient2 : register(c50);
float3 u_lightdiffuse2 : register(c42);
float3 u_lightspecular2 : register(c46);
float3 u_lightpos3 : register(c27);
float3 u_lightatt3 : register(c35);
float3 u_lightambient3 : register(c51);
float3 u_lightdiffuse3 : register(c43);
float3 u_lightspecular3 : register(c47);
float4 u_ambient : register(c19);
float3 u_matdiffuse : register(c21);
float4 u_matspecular : register(c22);
float3 u_matemissive : register(c23);
float4 u_cullRangeMin : register(c80);
float4 u_cullRangeMax : register(c81);
struct VS_IN {
float2 texcoord : TEXCOORD0;
float3 normal : NORMAL;
float3 position : POSITION;
};
struct VS_OUT {
float3 v_texcoord : TEXCOORD0;
float4 v_color0 : COLOR0;
float3 v_color1 : COLOR1;
float4 gl_Position : POSITION;
};
VS_OUT main(VS_IN In) {
VS_OUT Out;
float3 worldpos = mul(float4(In.position.xyz, 1.0), u_world);
float3 worldnormal = normalize(mul(float4(In.normal, 0.0), u_world));
float4 viewPos = float4(mul(float4(worldpos, 1.0), u_view), 1.0);
float4 outPos = mul(viewPos, u_proj);
float4 lightSum0 = u_ambient * u_matambientalpha + float4(u_matemissive, 0.0);
float3 lightSum1 = 0;
float3 toLight;
float3 diffuse;
float distance;
float lightScale;
float ldot;
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 + float3(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);
angle = length(u_lightdir1) == 0.0 ? 0.0 : dot(normalize(u_lightdir1), toLight);
if (angle >= u_lightangle_spotCoef1.x) {
lightScale = clamp(1.0 / dot(u_lightatt1, float3(1.0, distance, distance*distance)), 0.0, 1.0) * (u_lightangle_spotCoef1.y <= 0.0 ? 1.0 : pow(angle, u_lightangle_spotCoef1.y));
} else {
lightScale = 0.0;
}
diffuse = (u_lightdiffuse1 * u_matdiffuse) * max(ldot, 0.0);
if (ldot >= 0.0) {
ldot = dot(normalize(toLight + float3(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_lightdir2), toLight);
if (angle >= u_lightangle_spotCoef2.x) {
li |
1 |
1 |
90 |
2021-03-12 |
| D3D error in shader compilation: info: C:\Program Files\PPSSPP\Shader@0x000000000A5CB240(110,16-57): error X4505: maximum temp register index exceeded
C:\Program Files\PPSSPP\Shader@0x000000000A5CB240(110,12-71): error X4505: maximum temp register index exceeded
/ code: #pragma warning( disable : 3571 )
float4x4 u_proj : register(c0);
float2 u_fogcoef : register(c18);
float4 u_matambientalpha : register(c20);
float4x3 u_world : register(c11);
float4x3 u_view : register(c8);
float4 u_uvscaleoffset : register(c17);
float3 u_lightpos0 : register(c24);
float3 u_lightambient0 : register(c48);
float3 u_lightdiffuse0 : register(c40);
float3 u_lightspecular0 : register(c44);
float3 u_lightpos1 : register(c25);
float3 u_lightatt1 : register(c33);
float3 u_lightdir1 : register(c29);
float4 u_lightangle_spotCoef1 : register(c37);
float3 u_lightambient1 : register(c49);
float3 u_lightdiffuse1 : register(c41);
float3 u_lightspecular1 : register(c45);
float3 u_lightpos2 : register(c26);
float3 u_lightatt2 : register(c34);
float3 u_lightdir2 : register(c30);
float4 u_lightangle_spotCoef2 : register(c38);
float3 u_lightambient2 : register(c50);
float3 u_lightdiffuse2 : register(c42);
float3 u_lightspecular2 : register(c46);
float3 u_lightpos3 : register(c27);
float3 u_lightambient3 : register(c51);
float3 u_lightdiffuse3 : register(c43);
float3 u_lightspecular3 : register(c47);
float4 u_ambient : register(c19);
float3 u_matdiffuse : register(c21);
float4 u_matspecular : register(c22);
float3 u_matemissive : register(c23);
float4 u_cullRangeMin : register(c80);
float4 u_cullRangeMax : register(c81);
struct VS_IN {
float2 texcoord : TEXCOORD0;
float3 normal : NORMAL;
float3 position : POSITION;
};
struct VS_OUT {
float3 v_texcoord : TEXCOORD0;
float4 v_color0 : COLOR0;
float3 v_color1 : COLOR1;
float v_fogdepth: TEXCOORD1;
float4 gl_Position : POSITION;
};
VS_OUT main(VS_IN In) {
VS_OUT Out;
float3 worldpos = mul(float4(In.position.xyz, 1.0), u_world);
float3 worldnormal = normalize(mul(float4(In.normal, 0.0), u_world));
float4 viewPos = float4(mul(float4(worldpos, 1.0), u_view), 1.0);
float4 outPos = mul(viewPos, u_proj);
float4 lightSum0 = u_ambient * u_matambientalpha + float4(u_matemissive, 0.0);
float3 lightSum1 = 0;
float3 toLight;
float3 diffuse;
float distance;
float lightScale;
float ldot;
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 + float3(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);
angle = length(u_lightdir1) == 0.0 ? 0.0 : dot(normalize(u_lightdir1), toLight);
if (angle >= u_lightangle_spotCoef1.x) {
lightScale = clamp(1.0 / dot(u_lightatt1, float3(1.0, distance, distance*distance)), 0.0, 1.0) * (u_lightangle_spotCoef1.y <= 0.0 ? 1.0 : pow(angle, u_lightangle_spotCoef1.y));
} else {
lightScale = 0.0;
}
diffuse = (u_lightdiffuse1 * u_matdiffuse) * max(ldot, 0.0);
if (ldot >= 0.0) {
ldot = dot(normalize(toLight + float3(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_lightdir2), toLight);
if (angle >= u_lightangle_spotCoef |
1 |
1 |
89 |
2020-11-11 |
| D3D error in shader compilation: info: C:\Users\power lion\Downloads\ppsspp-1-10-3\Shader@0x0FF72598(108,16-57): error X4505: maximum temp register index exceeded
C:\Users\power lion\Downloads\ppsspp-1-10-3\Shader@0x0FF72598(108,12-71): error X4505: maximum temp register index exceeded
/ code: #pragma warning( disable : 3571 )
float4x4 u_proj : register(c0);
float4 u_matambientalpha : register(c20);
float4x3 u_world : register(c11);
float4x3 u_view : register(c8);
float4 u_uvscaleoffset : register(c17);
float3 u_lightpos0 : register(c24);
float3 u_lightambient0 : register(c48);
float3 u_lightdiffuse0 : register(c40);
float3 u_lightspecular0 : register(c44);
float3 u_lightpos1 : register(c25);
float3 u_lightatt1 : register(c33);
float3 u_lightdir1 : register(c29);
float4 u_lightangle_spotCoef1 : register(c37);
float3 u_lightambient1 : register(c49);
float3 u_lightdiffuse1 : register(c41);
float3 u_lightspecular1 : register(c45);
float3 u_lightpos2 : register(c26);
float3 u_lightatt2 : register(c34);
float3 u_lightdir2 : register(c30);
float4 u_lightangle_spotCoef2 : register(c38);
float3 u_lightambient2 : register(c50);
float3 u_lightdiffuse2 : register(c42);
float3 u_lightspecular2 : register(c46);
float3 u_lightpos3 : register(c27);
float3 u_lightambient3 : register(c51);
float3 u_lightdiffuse3 : register(c43);
float3 u_lightspecular3 : register(c47);
float4 u_ambient : register(c19);
float3 u_matdiffuse : register(c21);
float4 u_matspecular : register(c22);
float3 u_matemissive : register(c23);
float4 u_cullRangeMin : register(c80);
float4 u_cullRangeMax : register(c81);
struct VS_IN {
float2 texcoord : TEXCOORD0;
float3 normal : NORMAL;
float3 position : POSITION;
};
struct VS_OUT {
float3 v_texcoord : TEXCOORD0;
float4 v_color0 : COLOR0;
float3 v_color1 : COLOR1;
float4 gl_Position : POSITION;
};
VS_OUT main(VS_IN In) {
VS_OUT Out;
float3 worldpos = mul(float4(In.position.xyz, 1.0), u_world);
float3 worldnormal = normalize(mul(float4(In.normal, 0.0), u_world));
float4 viewPos = float4(mul(float4(worldpos, 1.0), u_view), 1.0);
float4 outPos = mul(viewPos, u_proj);
float4 lightSum0 = u_ambient * u_matambientalpha + float4(u_matemissive, 0.0);
float3 lightSum1 = 0;
float3 toLight;
float3 diffuse;
float distance;
float lightScale;
float ldot;
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 + float3(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);
angle = length(u_lightdir1) == 0.0 ? 0.0 : dot(normalize(u_lightdir1), toLight);
if (angle >= u_lightangle_spotCoef1.x) {
lightScale = clamp(1.0 / dot(u_lightatt1, float3(1.0, distance, distance*distance)), 0.0, 1.0) * (u_lightangle_spotCoef1.y <= 0.0 ? 1.0 : pow(angle, u_lightangle_spotCoef1.y));
} else {
lightScale = 0.0;
}
diffuse = (u_lightdiffuse1 * u_matdiffuse) * max(ldot, 0.0);
if (ldot >= 0.0) {
ldot = dot(normalize(toLight + float3(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_lightdir2), toLight);
if (angle >= u_lightangle_spotCoef2.x) {
lightScale = clamp(1.0 / dot(u |
2 |
2 |
89 |
2020-10-12 |
| D3D error in shader compilation: info: C:\Users\laar2\Desktop\ppsspp\Shader@0x000001AF05F29040(110,16-57): error X4505: maximum temp register index exceeded
C:\Users\laar2\Desktop\ppsspp\Shader@0x000001AF05F29040(110,12-71): error X4505: maximum temp register index exceeded
/ code: #pragma warning( disable : 3571 )
float4x4 u_proj : register(c0);
float2 u_fogcoef : register(c18);
float4 u_matambientalpha : register(c20);
float4x3 u_world : register(c11);
float4x3 u_view : register(c8);
float4 u_uvscaleoffset : register(c17);
float3 u_lightpos0 : register(c24);
float3 u_lightambient0 : register(c48);
float3 u_lightdiffuse0 : register(c40);
float3 u_lightspecular0 : register(c44);
float3 u_lightpos1 : register(c25);
float3 u_lightatt1 : register(c33);
float3 u_lightdir1 : register(c29);
float4 u_lightangle_spotCoef1 : register(c37);
float3 u_lightambient1 : register(c49);
float3 u_lightdiffuse1 : register(c41);
float3 u_lightspecular1 : register(c45);
float3 u_lightpos2 : register(c26);
float3 u_lightatt2 : register(c34);
float3 u_lightdir2 : register(c30);
float4 u_lightangle_spotCoef2 : register(c38);
float3 u_lightambient2 : register(c50);
float3 u_lightdiffuse2 : register(c42);
float3 u_lightspecular2 : register(c46);
float3 u_lightpos3 : register(c27);
float3 u_lightambient3 : register(c51);
float3 u_lightdiffuse3 : register(c43);
float3 u_lightspecular3 : register(c47);
float4 u_ambient : register(c19);
float3 u_matdiffuse : register(c21);
float4 u_matspecular : register(c22);
float3 u_matemissive : register(c23);
float4 u_cullRangeMin : register(c80);
float4 u_cullRangeMax : register(c81);
struct VS_IN {
float2 texcoord : TEXCOORD0;
float3 normal : NORMAL;
float3 position : POSITION;
};
struct VS_OUT {
float3 v_texcoord : TEXCOORD0;
float4 v_color0 : COLOR0;
float3 v_color1 : COLOR1;
float v_fogdepth: TEXCOORD1;
float4 gl_Position : POSITION;
};
VS_OUT main(VS_IN In) {
VS_OUT Out;
float3 worldpos = mul(float4(In.position.xyz, 1.0), u_world);
float3 worldnormal = normalize(mul(float4(In.normal, 0.0), u_world));
float4 viewPos = float4(mul(float4(worldpos, 1.0), u_view), 1.0);
float4 outPos = mul(viewPos, u_proj);
float4 lightSum0 = u_ambient * u_matambientalpha + float4(u_matemissive, 0.0);
float3 lightSum1 = 0;
float3 toLight;
float3 diffuse;
float distance;
float lightScale;
float ldot;
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 + float3(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);
angle = length(u_lightdir1) == 0.0 ? 0.0 : dot(normalize(u_lightdir1), toLight);
if (angle >= u_lightangle_spotCoef1.x) {
lightScale = clamp(1.0 / dot(u_lightatt1, float3(1.0, distance, distance*distance)), 0.0, 1.0) * (u_lightangle_spotCoef1.y <= 0.0 ? 1.0 : pow(angle, u_lightangle_spotCoef1.y));
} else {
lightScale = 0.0;
}
diffuse = (u_lightdiffuse1 * u_matdiffuse) * max(ldot, 0.0);
if (ldot >= 0.0) {
ldot = dot(normalize(toLight + float3(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_lightdir2), toLight);
if (angle >= u_lightan |
1 |
1 |
89 |
2020-09-19 |
| D3D error in shader compilation: info: C:\Program Files\PPSSPP\Shader@0x0000016786A6F0A0(97,31-45): error X3004: undeclared identifier 'u_spline_counts'
/ code: #pragma warning( disable : 3571 )
float4x4 u_proj : register(c0);
float2 u_fogcoef : register(c18);
float4 u_matambientalpha : register(c20);
float4x3 u_world : register(c11);
float4x3 u_view : register(c8);
float4 u_uvscaleoffset : register(c17);
float4 u_cullRangeMin : register(c80);
float4 u_cullRangeMax : register(c81);
struct VS_IN {
float2 texcoord : TEXCOORD0;
float4 color0 : COLOR0;
float3 normal : NORMAL;
float3 position : POSITION;
};
struct VS_OUT {
float3 v_texcoord : TEXCOORD0;
float4 v_color0 : COLOR0;
float v_fogdepth: TEXCOORD1;
float4 gl_Position : POSITION;
};
float2 tess_sample(in float2 points[16], float4x4 weights) {
float2 pos = float2(0.0, 0.0);
pos += weights[0][0] * points[0];
pos += weights[0][1] * points[1];
pos += weights[0][2] * points[2];
pos += weights[0][3] * points[3];
pos += weights[1][0] * points[4];
pos += weights[1][1] * points[5];
pos += weights[1][2] * points[6];
pos += weights[1][3] * points[7];
pos += weights[2][0] * points[8];
pos += weights[2][1] * points[9];
pos += weights[2][2] * points[10];
pos += weights[2][3] * points[11];
pos += weights[3][0] * points[12];
pos += weights[3][1] * points[13];
pos += weights[3][2] * points[14];
pos += weights[3][3] * points[15];
return pos;
}
float3 tess_sample(in float3 points[16], float4x4 weights) {
float3 pos = float3(0.0, 0.0, 0.0);
pos += weights[0][0] * points[0];
pos += weights[0][1] * points[1];
pos += weights[0][2] * points[2];
pos += weights[0][3] * points[3];
pos += weights[1][0] * points[4];
pos += weights[1][1] * points[5];
pos += weights[1][2] * points[6];
pos += weights[1][3] * points[7];
pos += weights[2][0] * points[8];
pos += weights[2][1] * points[9];
pos += weights[2][2] * points[10];
pos += weights[2][3] * points[11];
pos += weights[3][0] * points[12];
pos += weights[3][1] * points[13];
pos += weights[3][2] * points[14];
pos += weights[3][3] * points[15];
return pos;
}
float4 tess_sample(in float4 points[16], float4x4 weights) {
float4 pos = float4(0.0, 0.0, 0.0, 0.0);
pos += weights[0][0] * points[0];
pos += weights[0][1] * points[1];
pos += weights[0][2] * points[2];
pos += weights[0][3] * points[3];
pos += weights[1][0] * points[4];
pos += weights[1][1] * points[5];
pos += weights[1][2] * points[6];
pos += weights[1][3] * points[7];
pos += weights[2][0] * points[8];
pos += weights[2][1] * points[9];
pos += weights[2][2] * points[10];
pos += weights[2][3] * points[11];
pos += weights[3][0] * points[12];
pos += weights[3][1] * points[13];
pos += weights[3][2] * points[14];
pos += weights[3][3] * points[15];
return pos;
}
float4x4 outerProduct(float4 u, float4 v) {
return mul((float4x1)v, (float1x4)u);
}
struct Tess {
float3 pos;
float2 tex;
float4 col;
};
void tessellate(in VS_IN In, out Tess tess) {
int2 point_pos = int2(In.position.z, In.normal.z);
int2 weight_idx = int2(In.position.xy);
float3 _pos[16];
float2 _tex[16];
float4 _col[16];
int index;
index = (0 + point_pos.y) * u_spline_counts + (0 + point_pos.x);
_pos[0] = tess_data[index].pos;
_tex[0] = tess_data[index].tex;
_col[0] = tess_data[index].col;
index = (0 + point_pos.y) * u_spline_counts + (1 + point_pos.x);
_pos[1] = tess_data[index].pos;
_tex[1] = tess_data[index].tex;
_col[1] = tess_data[index].col;
index = (0 + point_pos.y) * u_spline_counts + (2 + point_pos.x);
_pos[2] = tess_data[index].pos;
_tex[2] = tess_data[index].tex;
_col[2] = tess_data[index].col;
index = (0 + point_pos.y) * u_spline_counts + (3 + point_pos.x);
_pos[3] = tess_data[index].pos;
_tex[3] = tess_data[index].tex;
_col[3] = tess_data[index].col;
index = (1 + point_pos.y) * u_spline_counts + (0 + point_pos.x);
_pos[4] = tess_data[index].pos;
_tex[4] = tess_data[index].tex;
_col[4] = tess_data[index].col;
inde |
1 |
1 |
89 |
2020-09-15 |
| D3D error in shader compilation: info: C:\Program Files\PPSSPP\Shader@0x000001E720322C80(74,14-28): error X4505: maximum temp register index exceeded
C:\Program Files\PPSSPP\Shader@0x000001E720322C80(80,16-55): error X4505: maximum temp register index exceeded
C:\Program Files\PPSSPP\Shader@0x000001E720322C80(80,12-69): error X4505: maximum temp register index exceeded
C:\Program Files\PPSSPP\Shader@0x000001E720322C80(77,28-83): error X4505: maximum temp register index exceeded
C:\Program Files\PPSSPP\Shader@0x000001E720322C80(77,65-81): error X4505: maximum temp register index exceeded
C:\Program Files\PPSSPP\Shader@0x000001E720322C80(77,28-83): error X4505: maximum temp register index exceeded
/ code: #define vec2 float2
#define vec3 float3
#define vec4 float4
#define ivec2 int2
#define ivec4 int4
#define mat2 float2x2
#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);
vec4 u_matambientalpha : register(c20);
mat3x4 u_world : register(c11);
mat3x4 u_view : register(c8);
mat3x4 u_texmtx : register(c14);
vec4 u_uvscaleoffset : register(c17);
vec3 u_lightpos0 : register(c24);
vec3 u_lightatt0 : register(c32);
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_lightdir1 : register(c29);
vec4 u_lightangle_spotCoef1 : register(c37);
vec3 u_lightambient1 : register(c49);
vec3 u_lightdiffuse1 : register(c41);
vec3 u_lightspecular1 : register(c45);
vec4 u_ambient : register(c19);
vec3 u_matdiffuse : register(c21);
vec4 u_matspecular : register(c22);
vec3 u_matemissive : register(c23);
vec4 u_depthRange : register(c52);
vec4 u_cullRangeMin : register(c80);
vec4 u_cullRangeMax : register(c81);
struct VS_IN {
vec2 texcoord : TEXCOORD0;
vec4 color0 : COLOR0;
vec3 normal : NORMAL;
vec3 position : POSITION;
};
struct VS_OUT {
vec3 v_texcoord : TEXCOORD0;
vec4 v_color0 : COLOR0;
vec3 v_color1 : COLOR1;
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;
vec4 color0 = In.color0;
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 * color0 + 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 - 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 * 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 * lightScale;
}
lightSum0.rgb += (u_lightambient0 * color0.rgb + diffuse) * lightScale;
toLight = u_lightpos1 - worldpos;
distance = length(toLight);
toLight /= distance;
ldot = dot(toLight, worldnormal);
angle = length(u_lightdir1) == 0.0 ? 0.0 : dot(normalize(u_lightdir1), toLight);
if (angle >= u_lightangle_spotCoef1.x) {
lightScale = clamp(1.0 / dot(u_lightatt1, vec3(1.0, distance, distance*distance)), 0.0, 1.0) * (u_lightangle_spotCoef1.y <= 0.0 ? 1.0 : pow(angle, u_lightangle_spotCoef1.y));
} else {
lightScale = 0.0;
}
diffuse = (u_lightdiffuse1 * u_matdiffuse) * max(ld |
1 |
1 |
88 |
2026-06-10 |
| D3D error in shader compilation: info: C:\Users\3dvan\Documents\PSP Capit?o capcom\Shader@0x000002B1C4219F50(95,31-45): error X3004: undeclared identifier 'u_spline_counts'
/ code: #pragma warning( disable : 3571 )
float4x4 u_proj : register(c0);
float4 u_matambientalpha : register(c20);
float4x3 u_world : register(c11);
float4x3 u_view : register(c8);
float4 u_uvscaleoffset : register(c17);
float4 u_cullRangeMin : register(c80);
float4 u_cullRangeMax : register(c81);
struct VS_IN {
float2 texcoord : TEXCOORD0;
float4 color0 : COLOR0;
float3 normal : NORMAL;
float3 position : POSITION;
};
struct VS_OUT {
float3 v_texcoord : TEXCOORD0;
float4 v_color0 : COLOR0;
float4 gl_Position : POSITION;
};
float2 tess_sample(in float2 points[16], float4x4 weights) {
float2 pos = float2(0.0, 0.0);
pos += weights[0][0] * points[0];
pos += weights[0][1] * points[1];
pos += weights[0][2] * points[2];
pos += weights[0][3] * points[3];
pos += weights[1][0] * points[4];
pos += weights[1][1] * points[5];
pos += weights[1][2] * points[6];
pos += weights[1][3] * points[7];
pos += weights[2][0] * points[8];
pos += weights[2][1] * points[9];
pos += weights[2][2] * points[10];
pos += weights[2][3] * points[11];
pos += weights[3][0] * points[12];
pos += weights[3][1] * points[13];
pos += weights[3][2] * points[14];
pos += weights[3][3] * points[15];
return pos;
}
float3 tess_sample(in float3 points[16], float4x4 weights) {
float3 pos = float3(0.0, 0.0, 0.0);
pos += weights[0][0] * points[0];
pos += weights[0][1] * points[1];
pos += weights[0][2] * points[2];
pos += weights[0][3] * points[3];
pos += weights[1][0] * points[4];
pos += weights[1][1] * points[5];
pos += weights[1][2] * points[6];
pos += weights[1][3] * points[7];
pos += weights[2][0] * points[8];
pos += weights[2][1] * points[9];
pos += weights[2][2] * points[10];
pos += weights[2][3] * points[11];
pos += weights[3][0] * points[12];
pos += weights[3][1] * points[13];
pos += weights[3][2] * points[14];
pos += weights[3][3] * points[15];
return pos;
}
float4 tess_sample(in float4 points[16], float4x4 weights) {
float4 pos = float4(0.0, 0.0, 0.0, 0.0);
pos += weights[0][0] * points[0];
pos += weights[0][1] * points[1];
pos += weights[0][2] * points[2];
pos += weights[0][3] * points[3];
pos += weights[1][0] * points[4];
pos += weights[1][1] * points[5];
pos += weights[1][2] * points[6];
pos += weights[1][3] * points[7];
pos += weights[2][0] * points[8];
pos += weights[2][1] * points[9];
pos += weights[2][2] * points[10];
pos += weights[2][3] * points[11];
pos += weights[3][0] * points[12];
pos += weights[3][1] * points[13];
pos += weights[3][2] * points[14];
pos += weights[3][3] * points[15];
return pos;
}
float4x4 outerProduct(float4 u, float4 v) {
return mul((float4x1)v, (float1x4)u);
}
struct Tess {
float3 pos;
float2 tex;
float4 col;
};
void tessellate(in VS_IN In, out Tess tess) {
int2 point_pos = int2(In.position.z, In.normal.z) * 3;
int2 weight_idx = int2(In.position.xy);
float3 _pos[16];
float2 _tex[16];
float4 _col[16];
int index;
index = (0 + point_pos.y) * u_spline_counts + (0 + point_pos.x);
_pos[0] = tess_data[index].pos;
index = (0 + point_pos.y) * u_spline_counts + (1 + point_pos.x);
_pos[1] = tess_data[index].pos;
index = (0 + point_pos.y) * u_spline_counts + (2 + point_pos.x);
_pos[2] = tess_data[index].pos;
index = (0 + point_pos.y) * u_spline_counts + (3 + point_pos.x);
_pos[3] = tess_data[index].pos;
index = (1 + point_pos.y) * u_spline_counts + (0 + point_pos.x);
_pos[4] = tess_data[index].pos;
index = (1 + point_pos.y) * u_spline_counts + (1 + point_pos.x);
_pos[5] = tess_data[index].pos;
index = (1 + point_pos.y) * u_spline_counts + (2 + point_pos.x);
_pos[6] = tess_data[index].pos;
index = (1 + point_pos.y) * u_spline_counts + (3 + point_pos.x);
_pos[7] = tess_data[index].pos;
index = (2 + point_pos.y) * u_spline_counts + (0 + point_pos.x);
_pos[8] = tess_ |
1 |
1 |
88 |
2025-12-25 |
| D3D error in shader compilation: info: C:\Program Files\PPSSPP\Shader@0x0F02A910(110,16-57): error X4505: maximum temp register index exceeded
C:\Program Files\PPSSPP\Shader@0x0F02A910(110,12-71): error X4505: maximum temp register index exceeded
/ code: #pragma warning( disable : 3571 )
float4x4 u_proj : register(c0);
float2 u_fogcoef : register(c18);
float4 u_matambientalpha : register(c20);
float4x3 u_world : register(c11);
float4x3 u_view : register(c8);
float4 u_uvscaleoffset : register(c17);
float3 u_lightpos0 : register(c24);
float3 u_lightambient0 : register(c48);
float3 u_lightdiffuse0 : register(c40);
float3 u_lightspecular0 : register(c44);
float3 u_lightpos1 : register(c25);
float3 u_lightatt1 : register(c33);
float3 u_lightdir1 : register(c29);
float4 u_lightangle_spotCoef1 : register(c37);
float3 u_lightambient1 : register(c49);
float3 u_lightdiffuse1 : register(c41);
float3 u_lightspecular1 : register(c45);
float3 u_lightpos2 : register(c26);
float3 u_lightatt2 : register(c34);
float3 u_lightdir2 : register(c30);
float4 u_lightangle_spotCoef2 : register(c38);
float3 u_lightambient2 : register(c50);
float3 u_lightdiffuse2 : register(c42);
float3 u_lightspecular2 : register(c46);
float3 u_lightpos3 : register(c27);
float3 u_lightambient3 : register(c51);
float3 u_lightdiffuse3 : register(c43);
float3 u_lightspecular3 : register(c47);
float4 u_ambient : register(c19);
float3 u_matdiffuse : register(c21);
float4 u_matspecular : register(c22);
float3 u_matemissive : register(c23);
float4 u_cullRangeMin : register(c80);
float4 u_cullRangeMax : register(c81);
struct VS_IN {
float2 texcoord : TEXCOORD0;
float3 normal : NORMAL;
float3 position : POSITION;
};
struct VS_OUT {
float3 v_texcoord : TEXCOORD0;
float4 v_color0 : COLOR0;
float3 v_color1 : COLOR1;
float v_fogdepth: TEXCOORD1;
float4 gl_Position : POSITION;
};
VS_OUT main(VS_IN In) {
VS_OUT Out;
float3 worldpos = mul(float4(In.position.xyz, 1.0), u_world);
float3 worldnormal = normalize(mul(float4(In.normal, 0.0), u_world));
float4 viewPos = float4(mul(float4(worldpos, 1.0), u_view), 1.0);
float4 outPos = mul(viewPos, u_proj);
float4 lightSum0 = u_ambient * u_matambientalpha + float4(u_matemissive, 0.0);
float3 lightSum1 = 0;
float3 toLight;
float3 diffuse;
float distance;
float lightScale;
float ldot;
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 + float3(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);
angle = length(u_lightdir1) == 0.0 ? 0.0 : dot(normalize(u_lightdir1), toLight);
if (angle >= u_lightangle_spotCoef1.x) {
lightScale = clamp(1.0 / dot(u_lightatt1, float3(1.0, distance, distance*distance)), 0.0, 1.0) * (u_lightangle_spotCoef1.y <= 0.0 ? 1.0 : pow(angle, u_lightangle_spotCoef1.y));
} else {
lightScale = 0.0;
}
diffuse = (u_lightdiffuse1 * u_matdiffuse) * max(ldot, 0.0);
if (ldot >= 0.0) {
ldot = dot(normalize(toLight + float3(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_lightdir2), toLight);
if (angle >= u_lightangle_spotCoef2.x) {
light |
1 |
1 |
88 |
2021-11-01 |
| D3D error in shader compilation: info: C:\Program Files\PPSSPP\Shader@0x12A7ED10(126,16-55): error X4505: maximum temp register index exceeded
C:\Program Files\PPSSPP\Shader@0x12A7ED10(126,12-69): error X4505: maximum temp register index exceeded
C:\Program Files\PPSSPP\Shader@0x12A7ED10(148,16-55): error X4505: maximum temp register index exceeded
C:\Program Files\PPSSPP\Shader@0x12A7ED10(148,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);
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_lightdir1 : register(c29);
vec4 u_lightangle_spotCoef1 : register(c37);
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_lightdir3 : register(c31);
vec4 u_lightangle_spotCoef3 : register(c39);
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;
vec4 gl_Position : POSITION;
};
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 = normalize(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);
angle = length(u_lightdir1) == 0.0 ? 0.0 : dot(normalize(u_lightdir1), toLight);
if (angle >= u_lightangle_spotCoef1.x) {
lightScale = clamp(1.0 / dot(u_lightatt1, vec3(1.0, distance, distance*distance)), 0.0, 1.0) * (u_lightangle_spotCoef1.y <= 0.0 ? 1.0 : pow(angle, u_lightangle_spotCoef1.y));
} else {
lightScale = 0.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 {
|
2 |
2 |
88 |
2021-04-17 |
| D3D error in shader compilation: info: C:\Program Files\PPSSPP\Shader@0x0EDFDD48(123,16-55): error X4505: maximum temp register index exceeded
C:\Program Files\PPSSPP\Shader@0x0EDFDD48(123,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);
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_lightdir1 : register(c29);
vec4 u_lightangle_spotCoef1 : register(c37);
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_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;
vec4 gl_Position : POSITION;
};
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 = normalize(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);
angle = length(u_lightdir1) == 0.0 ? 0.0 : dot(normalize(u_lightdir1), toLight);
if (angle >= u_lightangle_spotCoef1.x) {
lightScale = clamp(1.0 / dot(u_lightatt1, vec3(1.0, distance, distance*distance)), 0.0, 1.0) * (u_lightangle_spotCoef1.y <= 0.0 ? 1.0 : pow(angle, u_lightangle_spotCoef1.y));
} else {
lightScale = 0.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 / |
1 |
1 |
88 |
2021-04-01 |
| D3D error in shader compilation: info: C:\Users\vic20\Documents\psp\Shader@0x0E7DCC40(77,16-55): error X4505: maximum temp register index exceeded
C:\Users\vic20\Documents\psp\Shader@0x0E7DCC40(77,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_lightatt0 : register(c32);
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_lightdir1 : register(c29);
vec4 u_lightangle_spotCoef1 : register(c37);
vec3 u_lightambient1 : register(c49);
vec3 u_lightdiffuse1 : register(c41);
vec3 u_lightspecular1 : register(c45);
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 - 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 * 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 * lightScale;
}
lightSum0.rgb += (u_lightambient0 * u_matambientalpha.rgb + diffuse) * lightScale;
toLight = u_lightpos1 - worldpos;
distance = length(toLight);
toLight /= distance;
ldot = dot(toLight, worldnormal);
angle = length(u_lightdir1) == 0.0 ? 0.0 : dot(normalize(u_lightdir1), toLight);
if (angle >= u_lightangle_spotCoef1.x) {
lightScale = clamp(1.0 / dot(u_lightatt1, vec3(1.0, distance, distance*distance)), 0.0, 1.0) * (u_lightangle_spotCoef1.y <= 0.0 ? 1.0 : pow(angle, u_lightangle_spotCoef1.y));
} else {
lightScale = 0.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;
Out.v_color0 = clamp(lightSum0, 0.0, 1.0);
Out.v_color1 = clamp(lightSum1, 0.0, 1.0);
Out |
1 |
1 |
87 |
2023-02-24 |
| D3D error in shader compilation: info: C:\Program Files\PPSSPP\Shader@0x1041B140(110,16-57): error X4505: maximum temp register index exceeded
C:\Program Files\PPSSPP\Shader@0x1041B140(110,12-71): error X4505: maximum temp register index exceeded
/ code: #pragma warning( disable : 3571 )
float4x4 u_proj : register(c0);
float2 u_fogcoef : register(c18);
float4 u_matambientalpha : register(c20);
float4x3 u_world : register(c11);
float4x3 u_view : register(c8);
float4 u_uvscaleoffset : register(c17);
float3 u_lightpos0 : register(c24);
float3 u_lightambient0 : register(c48);
float3 u_lightdiffuse0 : register(c40);
float3 u_lightspecular0 : register(c44);
float3 u_lightpos1 : register(c25);
float3 u_lightatt1 : register(c33);
float3 u_lightdir1 : register(c29);
float4 u_lightangle_spotCoef1 : register(c37);
float3 u_lightambient1 : register(c49);
float3 u_lightdiffuse1 : register(c41);
float3 u_lightspecular1 : register(c45);
float3 u_lightpos2 : register(c26);
float3 u_lightatt2 : register(c34);
float3 u_lightdir2 : register(c30);
float4 u_lightangle_spotCoef2 : register(c38);
float3 u_lightambient2 : register(c50);
float3 u_lightdiffuse2 : register(c42);
float3 u_lightspecular2 : register(c46);
float3 u_lightpos3 : register(c27);
float3 u_lightambient3 : register(c51);
float3 u_lightdiffuse3 : register(c43);
float3 u_lightspecular3 : register(c47);
float4 u_ambient : register(c19);
float3 u_matdiffuse : register(c21);
float4 u_matspecular : register(c22);
float3 u_matemissive : register(c23);
float4 u_cullRangeMin : register(c80);
float4 u_cullRangeMax : register(c81);
struct VS_IN {
float2 texcoord : TEXCOORD0;
float3 normal : NORMAL;
float3 position : POSITION;
};
struct VS_OUT {
float3 v_texcoord : TEXCOORD0;
float4 v_color0 : COLOR0;
float3 v_color1 : COLOR1;
float v_fogdepth: TEXCOORD1;
float4 gl_Position : POSITION;
};
VS_OUT main(VS_IN In) {
VS_OUT Out;
float3 worldpos = mul(float4(In.position.xyz, 1.0), u_world);
float3 worldnormal = normalize(mul(float4(In.normal, 0.0), u_world));
float4 viewPos = float4(mul(float4(worldpos, 1.0), u_view), 1.0);
float4 outPos = mul(viewPos, u_proj);
float4 lightSum0 = u_ambient * u_matambientalpha + float4(u_matemissive, 0.0);
float3 lightSum1 = 0;
float3 toLight;
float3 diffuse;
float distance;
float lightScale;
float ldot;
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 + float3(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);
angle = length(u_lightdir1) == 0.0 ? 0.0 : dot(normalize(u_lightdir1), toLight);
if (angle >= u_lightangle_spotCoef1.x) {
lightScale = clamp(1.0 / dot(u_lightatt1, float3(1.0, distance, distance*distance)), 0.0, 1.0) * (u_lightangle_spotCoef1.y <= 0.0 ? 1.0 : pow(angle, u_lightangle_spotCoef1.y));
} else {
lightScale = 0.0;
}
diffuse = (u_lightdiffuse1 * u_matdiffuse) * max(ldot, 0.0);
if (ldot >= 0.0) {
ldot = dot(normalize(toLight + float3(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_lightdir2), toLight);
if (angle >= u_lightangle_spotCoef2.x) {
light |
1 |
1 |
87 |
2021-10-31 |
| D3D error in shader compilation: info: G:\Grand Theft Auto??Liberty city stories\Shader@0x0A04E048(135,16-57): error X4505: maximum temp register index exceeded
G:\Grand Theft Auto??Liberty city stories\Shader@0x0A04E048(135,12-71): error X4505: maximum temp register index exceeded
/ code: #pragma warning( disable : 3571 )
float4x4 u_proj : register(c0);
float2 u_fogcoef : register(c18);
float4 u_matambientalpha : register(c20);
float4x3 u_world : register(c11);
float4x3 u_view : register(c8);
float4 u_uvscaleoffset : register(c17);
float3 u_lightpos0 : register(c24);
float3 u_lightambient0 : register(c48);
float3 u_lightdiffuse0 : register(c40);
float3 u_lightspecular0 : register(c44);
float3 u_lightpos1 : register(c25);
float3 u_lightatt1 : register(c33);
float3 u_lightdir1 : register(c29);
float4 u_lightangle_spotCoef1 : register(c37);
float3 u_lightambient1 : register(c49);
float3 u_lightdiffuse1 : register(c41);
float3 u_lightspecular1 : register(c45);
float3 u_lightpos2 : register(c26);
float3 u_lightatt2 : register(c34);
float3 u_lightdir2 : register(c30);
float4 u_lightangle_spotCoef2 : register(c38);
float3 u_lightambient2 : register(c50);
float3 u_lightdiffuse2 : register(c42);
float3 u_lightspecular2 : register(c46);
float3 u_lightpos3 : register(c27);
float3 u_lightatt3 : register(c35);
float3 u_lightdir3 : register(c31);
float4 u_lightangle_spotCoef3 : register(c39);
float3 u_lightambient3 : register(c51);
float3 u_lightdiffuse3 : register(c43);
float3 u_lightspecular3 : register(c47);
float4 u_ambient : register(c19);
float3 u_matdiffuse : register(c21);
float4 u_matspecular : register(c22);
float3 u_matemissive : register(c23);
float4 u_cullRangeMin : register(c80);
float4 u_cullRangeMax : register(c81);
struct VS_IN {
float2 texcoord : TEXCOORD0;
float3 normal : NORMAL;
float3 position : POSITION;
};
struct VS_OUT {
float3 v_texcoord : TEXCOORD0;
float4 v_color0 : COLOR0;
float3 v_color1 : COLOR1;
float v_fogdepth: TEXCOORD1;
float4 gl_Position : POSITION;
};
VS_OUT main(VS_IN In) {
VS_OUT Out;
float3 worldpos = mul(float4(In.position.xyz, 1.0), u_world);
float3 worldnormal = normalize(mul(float4(In.normal, 0.0), u_world));
float4 viewPos = float4(mul(float4(worldpos, 1.0), u_view), 1.0);
float4 outPos = mul(viewPos, u_proj);
float4 lightSum0 = u_ambient * u_matambientalpha + float4(u_matemissive, 0.0);
float3 lightSum1 = 0;
float3 toLight;
float3 diffuse;
float distance;
float lightScale;
float ldot;
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 + float3(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);
angle = length(u_lightdir1) == 0.0 ? 0.0 : dot(normalize(u_lightdir1), toLight);
if (angle >= u_lightangle_spotCoef1.x) {
lightScale = clamp(1.0 / dot(u_lightatt1, float3(1.0, distance, distance*distance)), 0.0, 1.0) * (u_lightangle_spotCoef1.y == 0.0 ? 1.0 : pow(angle, u_lightangle_spotCoef1.y));
} else {
lightScale = 0.0;
}
diffuse = (u_lightdiffuse1 * u_matdiffuse) * max(ldot, 0.0);
if (ldot >= 0.0) {
ldot = dot(normalize(toLight + float3(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(toL |
1 |
1 |
87 |
2020-04-02 |
| D3D error in shader compilation: info: F:\PSP\ppsspp_v1.9.3\Shader@0x0000016D3C4C0770(135,16-57): error X4505: maximum temp register index exceeded
F:\PSP\ppsspp_v1.9.3\Shader@0x0000016D3C4C0770(135,12-71): error X4505: maximum temp register index exceeded
/ code: #pragma warning( disable : 3571 )
float4x4 u_proj : register(c0);
float2 u_fogcoef : register(c18);
float4 u_matambientalpha : register(c20);
float4x3 u_world : register(c11);
float4x3 u_view : register(c8);
float4 u_uvscaleoffset : register(c17);
float3 u_lightpos0 : register(c24);
float3 u_lightambient0 : register(c48);
float3 u_lightdiffuse0 : register(c40);
float3 u_lightspecular0 : register(c44);
float3 u_lightpos1 : register(c25);
float3 u_lightatt1 : register(c33);
float3 u_lightdir1 : register(c29);
float4 u_lightangle_spotCoef1 : register(c37);
float3 u_lightambient1 : register(c49);
float3 u_lightdiffuse1 : register(c41);
float3 u_lightspecular1 : register(c45);
float3 u_lightpos2 : register(c26);
float3 u_lightatt2 : register(c34);
float3 u_lightdir2 : register(c30);
float4 u_lightangle_spotCoef2 : register(c38);
float3 u_lightambient2 : register(c50);
float3 u_lightdiffuse2 : register(c42);
float3 u_lightspecular2 : register(c46);
float3 u_lightpos3 : register(c27);
float3 u_lightatt3 : register(c35);
float3 u_lightdir3 : register(c31);
float4 u_lightangle_spotCoef3 : register(c39);
float3 u_lightambient3 : register(c51);
float3 u_lightdiffuse3 : register(c43);
float3 u_lightspecular3 : register(c47);
float4 u_ambient : register(c19);
float3 u_matdiffuse : register(c21);
float4 u_matspecular : register(c22);
float3 u_matemissive : register(c23);
float4 u_cullRangeMin : register(c80);
float4 u_cullRangeMax : register(c81);
struct VS_IN {
float2 texcoord : TEXCOORD0;
float3 normal : NORMAL;
float3 position : POSITION;
};
struct VS_OUT {
float3 v_texcoord : TEXCOORD0;
float4 v_color0 : COLOR0;
float3 v_color1 : COLOR1;
float v_fogdepth: TEXCOORD1;
float4 gl_Position : POSITION;
};
VS_OUT main(VS_IN In) {
VS_OUT Out;
float3 worldpos = mul(float4(In.position.xyz, 1.0), u_world);
float3 worldnormal = normalize(mul(float4(In.normal, 0.0), u_world));
float4 viewPos = float4(mul(float4(worldpos, 1.0), u_view), 1.0);
float4 outPos = mul(viewPos, u_proj);
float4 lightSum0 = u_ambient * u_matambientalpha + float4(u_matemissive, 0.0);
float3 lightSum1 = 0;
float3 toLight;
float3 diffuse;
float distance;
float lightScale;
float ldot;
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 + float3(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);
angle = length(u_lightdir1) == 0.0 ? 0.0 : dot(normalize(u_lightdir1), toLight);
if (angle >= u_lightangle_spotCoef1.x) {
lightScale = clamp(1.0 / dot(u_lightatt1, float3(1.0, distance, distance*distance)), 0.0, 1.0) * (u_lightangle_spotCoef1.y == 0.0 ? 1.0 : pow(angle, u_lightangle_spotCoef1.y));
} else {
lightScale = 0.0;
}
diffuse = (u_lightdiffuse1 * u_matdiffuse) * max(ldot, 0.0);
if (ldot >= 0.0) {
ldot = dot(normalize(toLight + float3(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);
angl |
1 |
1 |
87 |
2020-02-22 |
| D3D error in shader compilation: info: C:\Program Files\PPSSPP\Shader@0x0E279118(108,16-57): error X4505: maximum temp register index exceeded
C:\Program Files\PPSSPP\Shader@0x0E279118(108,12-71): error X4505: maximum temp register index exceeded
/ code: #pragma warning( disable : 3571 )
float4x4 u_proj : register(c0);
float4 u_matambientalpha : register(c20);
float4x3 u_world : register(c11);
float4x3 u_view : register(c8);
float4 u_uvscaleoffset : register(c17);
float3 u_lightpos0 : register(c24);
float3 u_lightambient0 : register(c48);
float3 u_lightdiffuse0 : register(c40);
float3 u_lightspecular0 : register(c44);
float3 u_lightpos1 : register(c25);
float3 u_lightatt1 : register(c33);
float3 u_lightdir1 : register(c29);
float4 u_lightangle_spotCoef1 : register(c37);
float3 u_lightambient1 : register(c49);
float3 u_lightdiffuse1 : register(c41);
float3 u_lightspecular1 : register(c45);
float3 u_lightpos2 : register(c26);
float3 u_lightatt2 : register(c34);
float3 u_lightdir2 : register(c30);
float4 u_lightangle_spotCoef2 : register(c38);
float3 u_lightambient2 : register(c50);
float3 u_lightdiffuse2 : register(c42);
float3 u_lightspecular2 : register(c46);
float3 u_lightpos3 : register(c27);
float3 u_lightambient3 : register(c51);
float3 u_lightdiffuse3 : register(c43);
float3 u_lightspecular3 : register(c47);
float4 u_ambient : register(c19);
float3 u_matdiffuse : register(c21);
float4 u_matspecular : register(c22);
float3 u_matemissive : register(c23);
float4 u_cullRangeMin : register(c80);
float4 u_cullRangeMax : register(c81);
struct VS_IN {
float2 texcoord : TEXCOORD0;
float3 normal : NORMAL;
float3 position : POSITION;
};
struct VS_OUT {
float3 v_texcoord : TEXCOORD0;
float4 v_color0 : COLOR0;
float3 v_color1 : COLOR1;
float4 gl_Position : POSITION;
};
VS_OUT main(VS_IN In) {
VS_OUT Out;
float3 worldpos = mul(float4(In.position.xyz, 1.0), u_world);
float3 worldnormal = normalize(mul(float4(In.normal, 0.0), u_world));
float4 viewPos = float4(mul(float4(worldpos, 1.0), u_view), 1.0);
float4 outPos = mul(viewPos, u_proj);
float4 lightSum0 = u_ambient * u_matambientalpha + float4(u_matemissive, 0.0);
float3 lightSum1 = 0;
float3 toLight;
float3 diffuse;
float distance;
float lightScale;
float ldot;
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 + float3(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);
angle = length(u_lightdir1) == 0.0 ? 0.0 : dot(normalize(u_lightdir1), toLight);
if (angle >= u_lightangle_spotCoef1.x) {
lightScale = clamp(1.0 / dot(u_lightatt1, float3(1.0, distance, distance*distance)), 0.0, 1.0) * (u_lightangle_spotCoef1.y <= 0.0 ? 1.0 : pow(angle, u_lightangle_spotCoef1.y));
} else {
lightScale = 0.0;
}
diffuse = (u_lightdiffuse1 * u_matdiffuse) * max(ldot, 0.0);
if (ldot >= 0.0) {
ldot = dot(normalize(toLight + float3(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_lightdir2), toLight);
if (angle >= u_lightangle_spotCoef2.x) {
lightScale = clamp(1.0 / dot(u_lightatt2, float3(1.0, distance, distan |
1 |
1 |
86 |
2021-10-31 |
| D3D error in shader compilation: info: C:\Program Files\PPSSPP\Shader@0x0EA0DCB8(123,16-55): error X4505: maximum temp register index exceeded
C:\Program Files\PPSSPP\Shader@0x0EA0DCB8(123,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);
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_lightdir1 : register(c29);
vec4 u_lightangle_spotCoef1 : register(c37);
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_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;
vec4 gl_Position : POSITION;
};
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 = normalize(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);
angle = length(u_lightdir1) == 0.0 ? 0.0 : dot(normalize(u_lightdir1), toLight);
if (angle >= u_lightangle_spotCoef1.x) {
lightScale = clamp(1.0 / dot(u_lightatt1, vec3(1.0, distance, distance*distance)), 0.0, 1.0) * (u_lightangle_spotCoef1.y <= 0.0 ? 1.0 : pow(angle, u_lightangle_spotCoef1.y));
} else {
lightScale = 0.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 / |
1 |
1 |
86 |
2021-04-10 |
| D3D error in shader compilation: info: C:\Program Files\PPSSPP\Shader@0x0F20CCB8(94,16-55): error X4505: maximum temp register index exceeded
C:\Program Files\PPSSPP\Shader@0x0F20CCB8(94,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);
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_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;
vec4 gl_Position : POSITION;
};
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 = normalize(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_lightdir2), toLight);
if (angle >= u_lightangle_spotCoef2.x) {
lightScale = clamp(1.0 / dot(u_lightatt2, vec3(1.0, distance, distance*distance)), 0.0, 1.0) * (u_lightangle_spotCoef2.y <= 0.0 ? 1.0 : pow(angle, u_ |
2 |
2 |
86 |
2021-03-31 |
| D3D error in shader compilation: info: C:\Users\lenovo\Desktop\Shader@0x000002CEF50031E0(125,16-55): error X4505: maximum temp register index exceeded
C:\Users\lenovo\Desktop\Shader@0x000002CEF50031E0(125,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_lightdir1 : register(c29);
vec4 u_lightangle_spotCoef1 : register(c37);
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_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;
};
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 = normalize(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);
angle = length(u_lightdir1) == 0.0 ? 0.0 : dot(normalize(u_lightdir1), toLight);
if (angle >= u_lightangle_spotCoef1.x) {
lightScale = clamp(1.0 / dot(u_lightatt1, vec3(1.0, distance, distance*distance)), 0.0, 1.0) * (u_lightangle_spotCoef1.y <= 0.0 ? 1.0 : pow(angle, u_lightangle_spotCoef1.y));
} else {
lightScale = 0.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 |
1 |
1 |
86 |
2021-02-27 |
| D3D error in shader compilation: info: C:\Users\Deznan\Desktop\psp\Shader@0x10190448(97,31-45): error X3004: undeclared identifier 'u_spline_counts'
/ code: #pragma warning( disable : 3571 )
float4x4 u_proj : register(c0);
float2 u_fogcoef : register(c18);
float4 u_matambientalpha : register(c20);
float4x3 u_world : register(c11);
float4x3 u_view : register(c8);
float4 u_uvscaleoffset : register(c17);
float4 u_cullRangeMin : register(c80);
float4 u_cullRangeMax : register(c81);
struct VS_IN {
float2 texcoord : TEXCOORD0;
float4 color0 : COLOR0;
float3 normal : NORMAL;
float3 position : POSITION;
};
struct VS_OUT {
float3 v_texcoord : TEXCOORD0;
float4 v_color0 : COLOR0;
float v_fogdepth: TEXCOORD1;
float4 gl_Position : POSITION;
};
float2 tess_sample(in float2 points[16], float4x4 weights) {
float2 pos = float2(0.0, 0.0);
pos += weights[0][0] * points[0];
pos += weights[0][1] * points[1];
pos += weights[0][2] * points[2];
pos += weights[0][3] * points[3];
pos += weights[1][0] * points[4];
pos += weights[1][1] * points[5];
pos += weights[1][2] * points[6];
pos += weights[1][3] * points[7];
pos += weights[2][0] * points[8];
pos += weights[2][1] * points[9];
pos += weights[2][2] * points[10];
pos += weights[2][3] * points[11];
pos += weights[3][0] * points[12];
pos += weights[3][1] * points[13];
pos += weights[3][2] * points[14];
pos += weights[3][3] * points[15];
return pos;
}
float3 tess_sample(in float3 points[16], float4x4 weights) {
float3 pos = float3(0.0, 0.0, 0.0);
pos += weights[0][0] * points[0];
pos += weights[0][1] * points[1];
pos += weights[0][2] * points[2];
pos += weights[0][3] * points[3];
pos += weights[1][0] * points[4];
pos += weights[1][1] * points[5];
pos += weights[1][2] * points[6];
pos += weights[1][3] * points[7];
pos += weights[2][0] * points[8];
pos += weights[2][1] * points[9];
pos += weights[2][2] * points[10];
pos += weights[2][3] * points[11];
pos += weights[3][0] * points[12];
pos += weights[3][1] * points[13];
pos += weights[3][2] * points[14];
pos += weights[3][3] * points[15];
return pos;
}
float4 tess_sample(in float4 points[16], float4x4 weights) {
float4 pos = float4(0.0, 0.0, 0.0, 0.0);
pos += weights[0][0] * points[0];
pos += weights[0][1] * points[1];
pos += weights[0][2] * points[2];
pos += weights[0][3] * points[3];
pos += weights[1][0] * points[4];
pos += weights[1][1] * points[5];
pos += weights[1][2] * points[6];
pos += weights[1][3] * points[7];
pos += weights[2][0] * points[8];
pos += weights[2][1] * points[9];
pos += weights[2][2] * points[10];
pos += weights[2][3] * points[11];
pos += weights[3][0] * points[12];
pos += weights[3][1] * points[13];
pos += weights[3][2] * points[14];
pos += weights[3][3] * points[15];
return pos;
}
float4x4 outerProduct(float4 u, float4 v) {
return mul((float4x1)v, (float1x4)u);
}
struct Tess {
float3 pos;
float2 tex;
float4 col;
};
void tessellate(in VS_IN In, out Tess tess) {
int2 point_pos = int2(In.position.z, In.normal.z);
int2 weight_idx = int2(In.position.xy);
float3 _pos[16];
float2 _tex[16];
float4 _col[16];
int index;
index = (0 + point_pos.y) * u_spline_counts + (0 + point_pos.x);
_pos[0] = tess_data[index].pos;
_tex[0] = tess_data[index].tex;
_col[0] = tess_data[index].col;
index = (0 + point_pos.y) * u_spline_counts + (1 + point_pos.x);
_pos[1] = tess_data[index].pos;
_tex[1] = tess_data[index].tex;
_col[1] = tess_data[index].col;
index = (0 + point_pos.y) * u_spline_counts + (2 + point_pos.x);
_pos[2] = tess_data[index].pos;
_tex[2] = tess_data[index].tex;
_col[2] = tess_data[index].col;
index = (0 + point_pos.y) * u_spline_counts + (3 + point_pos.x);
_pos[3] = tess_data[index].pos;
_tex[3] = tess_data[index].tex;
_col[3] = tess_data[index].col;
index = (1 + point_pos.y) * u_spline_counts + (0 + point_pos.x);
_pos[4] = tess_data[index].pos;
_tex[4] = tess_data[index].tex;
_col[4] = tess_data[index].col;
index = |
1 |
1 |
86 |
2020-09-21 |
| D3D error in shader compilation: info: C:\games\emulator\ps\psp\1.PPSSPP\Shader@0x0DA1A520(123,16-55): error X4505: maximum temp register index exceeded
C:\games\emulator\ps\psp\1.PPSSPP\Shader@0x0DA1A520(123,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);
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_lightdir1 : register(c29);
vec4 u_lightangle_spotCoef1 : register(c37);
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_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;
vec4 gl_Position : POSITION;
};
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 = normalize(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);
angle = length(u_lightdir1) == 0.0 ? 0.0 : dot(normalize(u_lightdir1), toLight);
if (angle >= u_lightangle_spotCoef1.x) {
lightScale = clamp(1.0 / dot(u_lightatt1, vec3(1.0, distance, distance*distance)), 0.0, 1.0) * (u_lightangle_spotCoef1.y <= 0.0 ? 1.0 : pow(angle, u_lightangle_spotCoef1.y));
} else {
lightScale = 0.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(t |
1 |
1 |
85 |
2021-11-04 |
| D3D error in shader compilation: info: C:\Users\power lion\Downloads\ppsspp-1-10-3\Shader@0x0F3F8D18(111,16-57): error X4505: maximum temp register index exceeded
C:\Users\power lion\Downloads\ppsspp-1-10-3\Shader@0x0F3F8D18(111,12-71): error X4505: maximum temp register index exceeded
C:\Users\power lion\Downloads\ppsspp-1-10-3\Shader@0x0F3F8D18(133,16-57): error X4505: maximum temp register index exceeded
C:\Users\power lion\Downloads\ppsspp-1-10-3\Shader@0x0F3F8D18(133,12-71): error X4505: maximum temp register index exceeded
/ code: #pragma warning( disable : 3571 )
float4x4 u_proj : register(c0);
float4 u_matambientalpha : register(c20);
float4x3 u_world : register(c11);
float4x3 u_view : register(c8);
float4 u_uvscaleoffset : register(c17);
float3 u_lightpos0 : register(c24);
float3 u_lightambient0 : register(c48);
float3 u_lightdiffuse0 : register(c40);
float3 u_lightspecular0 : register(c44);
float3 u_lightpos1 : register(c25);
float3 u_lightatt1 : register(c33);
float3 u_lightdir1 : register(c29);
float4 u_lightangle_spotCoef1 : register(c37);
float3 u_lightambient1 : register(c49);
float3 u_lightdiffuse1 : register(c41);
float3 u_lightspecular1 : register(c45);
float3 u_lightpos2 : register(c26);
float3 u_lightatt2 : register(c34);
float3 u_lightdir2 : register(c30);
float4 u_lightangle_spotCoef2 : register(c38);
float3 u_lightambient2 : register(c50);
float3 u_lightdiffuse2 : register(c42);
float3 u_lightspecular2 : register(c46);
float3 u_lightpos3 : register(c27);
float3 u_lightatt3 : register(c35);
float3 u_lightdir3 : register(c31);
float4 u_lightangle_spotCoef3 : register(c39);
float3 u_lightambient3 : register(c51);
float3 u_lightdiffuse3 : register(c43);
float3 u_lightspecular3 : register(c47);
float4 u_ambient : register(c19);
float3 u_matdiffuse : register(c21);
float4 u_matspecular : register(c22);
float3 u_matemissive : register(c23);
float4 u_cullRangeMin : register(c80);
float4 u_cullRangeMax : register(c81);
struct VS_IN {
float2 texcoord : TEXCOORD0;
float3 normal : NORMAL;
float3 position : POSITION;
};
struct VS_OUT {
float3 v_texcoord : TEXCOORD0;
float4 v_color0 : COLOR0;
float3 v_color1 : COLOR1;
float4 gl_Position : POSITION;
};
VS_OUT main(VS_IN In) {
VS_OUT Out;
float3 worldpos = mul(float4(In.position.xyz, 1.0), u_world);
float3 worldnormal = normalize(mul(float4(In.normal, 0.0), u_world));
float4 viewPos = float4(mul(float4(worldpos, 1.0), u_view), 1.0);
float4 outPos = mul(viewPos, u_proj);
float4 lightSum0 = u_ambient * u_matambientalpha + float4(u_matemissive, 0.0);
float3 lightSum1 = 0;
float3 toLight;
float3 diffuse;
float distance;
float lightScale;
float ldot;
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 + float3(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);
angle = length(u_lightdir1) == 0.0 ? 0.0 : dot(normalize(u_lightdir1), toLight);
if (angle >= u_lightangle_spotCoef1.x) {
lightScale = clamp(1.0 / dot(u_lightatt1, float3(1.0, distance, distance*distance)), 0.0, 1.0) * (u_lightangle_spotCoef1.y <= 0.0 ? 1.0 : pow(angle, u_lightangle_spotCoef1.y));
} else {
lightScale = 0.0;
}
diffuse = (u_lightdiffuse1 * u_matdiffuse) * max(ldot, 0.0);
if (ldot >= 0.0) {
ldot = dot(normalize(toLight + float3(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;
}
l |
1 |
1 |
85 |
2020-10-16 |
| D3D error in shader compilation: info: E:\ppsspp\Shader@0x0000000007626EC0(95,31-45): error X3004: undeclared identifier 'u_spline_counts'
/ code: #pragma warning( disable : 3571 )
float4x4 u_proj : register(c0);
float4 u_matambientalpha : register(c20);
float4x3 u_world : register(c11);
float4x3 u_view : register(c8);
float4 u_uvscaleoffset : register(c17);
float4 u_cullRangeMin : register(c80);
float4 u_cullRangeMax : register(c81);
struct VS_IN {
float2 texcoord : TEXCOORD0;
float4 color0 : COLOR0;
float3 normal : NORMAL;
float3 position : POSITION;
};
struct VS_OUT {
float3 v_texcoord : TEXCOORD0;
float4 v_color0 : COLOR0;
float4 gl_Position : POSITION;
};
float2 tess_sample(in float2 points[16], float4x4 weights) {
float2 pos = float2(0.0, 0.0);
pos += weights[0][0] * points[0];
pos += weights[0][1] * points[1];
pos += weights[0][2] * points[2];
pos += weights[0][3] * points[3];
pos += weights[1][0] * points[4];
pos += weights[1][1] * points[5];
pos += weights[1][2] * points[6];
pos += weights[1][3] * points[7];
pos += weights[2][0] * points[8];
pos += weights[2][1] * points[9];
pos += weights[2][2] * points[10];
pos += weights[2][3] * points[11];
pos += weights[3][0] * points[12];
pos += weights[3][1] * points[13];
pos += weights[3][2] * points[14];
pos += weights[3][3] * points[15];
return pos;
}
float3 tess_sample(in float3 points[16], float4x4 weights) {
float3 pos = float3(0.0, 0.0, 0.0);
pos += weights[0][0] * points[0];
pos += weights[0][1] * points[1];
pos += weights[0][2] * points[2];
pos += weights[0][3] * points[3];
pos += weights[1][0] * points[4];
pos += weights[1][1] * points[5];
pos += weights[1][2] * points[6];
pos += weights[1][3] * points[7];
pos += weights[2][0] * points[8];
pos += weights[2][1] * points[9];
pos += weights[2][2] * points[10];
pos += weights[2][3] * points[11];
pos += weights[3][0] * points[12];
pos += weights[3][1] * points[13];
pos += weights[3][2] * points[14];
pos += weights[3][3] * points[15];
return pos;
}
float4 tess_sample(in float4 points[16], float4x4 weights) {
float4 pos = float4(0.0, 0.0, 0.0, 0.0);
pos += weights[0][0] * points[0];
pos += weights[0][1] * points[1];
pos += weights[0][2] * points[2];
pos += weights[0][3] * points[3];
pos += weights[1][0] * points[4];
pos += weights[1][1] * points[5];
pos += weights[1][2] * points[6];
pos += weights[1][3] * points[7];
pos += weights[2][0] * points[8];
pos += weights[2][1] * points[9];
pos += weights[2][2] * points[10];
pos += weights[2][3] * points[11];
pos += weights[3][0] * points[12];
pos += weights[3][1] * points[13];
pos += weights[3][2] * points[14];
pos += weights[3][3] * points[15];
return pos;
}
float4x4 outerProduct(float4 u, float4 v) {
return mul((float4x1)v, (float1x4)u);
}
struct Tess {
float3 pos;
float2 tex;
float4 col;
};
void tessellate(in VS_IN In, out Tess tess) {
int2 point_pos = int2(In.position.z, In.normal.z) * 3;
int2 weight_idx = int2(In.position.xy);
float3 _pos[16];
float2 _tex[16];
float4 _col[16];
int index;
index = (0 + point_pos.y) * u_spline_counts + (0 + point_pos.x);
_pos[0] = tess_data[index].pos;
_tex[0] = tess_data[index].tex;
_col[0] = tess_data[index].col;
index = (0 + point_pos.y) * u_spline_counts + (1 + point_pos.x);
_pos[1] = tess_data[index].pos;
_tex[1] = tess_data[index].tex;
_col[1] = tess_data[index].col;
index = (0 + point_pos.y) * u_spline_counts + (2 + point_pos.x);
_pos[2] = tess_data[index].pos;
_tex[2] = tess_data[index].tex;
_col[2] = tess_data[index].col;
index = (0 + point_pos.y) * u_spline_counts + (3 + point_pos.x);
_pos[3] = tess_data[index].pos;
_tex[3] = tess_data[index].tex;
_col[3] = tess_data[index].col;
index = (1 + point_pos.y) * u_spline_counts + (0 + point_pos.x);
_pos[4] = tess_data[index].pos;
_tex[4] = tess_data[index].tex;
_col[4] = tess_data[index].col;
index = (1 + point_pos.y) * u_spline_counts + (1 + point_pos.x);
_pos[5] = te |
1 |
1 |
83 |
2022-06-05 |
| D3D error in shader compilation: info: D:\PPSSPP\Shader@0x0000022E64906F60(133,16-57): error X4505: maximum temp register index exceeded
D:\PPSSPP\Shader@0x0000022E64906F60(133,12-71): error X4505: maximum temp register index exceeded
/ code: #pragma warning( disable : 3571 )
float4x4 u_proj : register(c0);
float4 u_matambientalpha : register(c20);
float4x3 u_world : register(c11);
float4x3 u_view : register(c8);
float4 u_uvscaleoffset : register(c17);
float3 u_lightpos0 : register(c24);
float3 u_lightambient0 : register(c48);
float3 u_lightdiffuse0 : register(c40);
float3 u_lightspecular0 : register(c44);
float3 u_lightpos1 : register(c25);
float3 u_lightatt1 : register(c33);
float3 u_lightdir1 : register(c29);
float4 u_lightangle_spotCoef1 : register(c37);
float3 u_lightambient1 : register(c49);
float3 u_lightdiffuse1 : register(c41);
float3 u_lightspecular1 : register(c45);
float3 u_lightpos2 : register(c26);
float3 u_lightatt2 : register(c34);
float3 u_lightdir2 : register(c30);
float4 u_lightangle_spotCoef2 : register(c38);
float3 u_lightambient2 : register(c50);
float3 u_lightdiffuse2 : register(c42);
float3 u_lightspecular2 : register(c46);
float3 u_lightpos3 : register(c27);
float3 u_lightatt3 : register(c35);
float3 u_lightdir3 : register(c31);
float4 u_lightangle_spotCoef3 : register(c39);
float3 u_lightambient3 : register(c51);
float3 u_lightdiffuse3 : register(c43);
float3 u_lightspecular3 : register(c47);
float4 u_ambient : register(c19);
float3 u_matdiffuse : register(c21);
float4 u_matspecular : register(c22);
float3 u_matemissive : register(c23);
float4 u_cullRangeMin : register(c80);
float4 u_cullRangeMax : register(c81);
struct VS_IN {
float2 texcoord : TEXCOORD0;
float3 normal : NORMAL;
float3 position : POSITION;
};
struct VS_OUT {
float3 v_texcoord : TEXCOORD0;
float4 v_color0 : COLOR0;
float3 v_color1 : COLOR1;
float4 gl_Position : POSITION;
};
VS_OUT main(VS_IN In) {
VS_OUT Out;
float3 worldpos = mul(float4(In.position.xyz, 1.0), u_world);
float3 worldnormal = normalize(mul(float4(In.normal, 0.0), u_world));
float4 viewPos = float4(mul(float4(worldpos, 1.0), u_view), 1.0);
float4 outPos = mul(viewPos, u_proj);
float4 lightSum0 = u_ambient * u_matambientalpha + float4(u_matemissive, 0.0);
float3 lightSum1 = 0;
float3 toLight;
float3 diffuse;
float distance;
float lightScale;
float ldot;
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 + float3(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);
angle = length(u_lightdir1) == 0.0 ? 0.0 : dot(normalize(u_lightdir1), toLight);
if (angle >= u_lightangle_spotCoef1.x) {
lightScale = clamp(1.0 / dot(u_lightatt1, float3(1.0, distance, distance*distance)), 0.0, 1.0) * (u_lightangle_spotCoef1.y == 0.0 ? 1.0 : pow(angle, u_lightangle_spotCoef1.y));
} else {
lightScale = 0.0;
}
diffuse = (u_lightdiffuse1 * u_matdiffuse) * max(ldot, 0.0);
if (ldot >= 0.0) {
ldot = dot(normalize(toLight + float3(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_lightdir2), toLight);
if (angl |
1 |
1 |
83 |
2020-07-27 |
| D3D error in shader compilation: info: F:\PPSSPP\Shader@0x000000000EDA3EB0(97,16-55): error X4505: maximum temp register index exceeded
F:\PPSSPP\Shader@0x000000000EDA3EB0(97,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);
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_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;
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_lightdir2), toLight);
if (angle >= u_lightangle_spotCoef2.x) {
lightScale = clamp(1.0 / dot(u_lightatt2, vec3(1.0, distanc |
1 |
1 |
81 |
2022-06-04 |
| D3D error in shader compilation: info: C:\Users\Familia Arrieta\Downloads\PPSSPP\Shader@0x0000025481813350(122,16-57): error X4505: maximum temp register index exceeded
C:\Users\Familia Arrieta\Downloads\PPSSPP\Shader@0x0000025481813350(122,12-71): error X4505: maximum temp register index exceeded
/ code: #pragma warning( disable : 3571 )
float4x4 u_proj : register(c0);
float4 u_matambientalpha : register(c20);
float4x3 u_world : register(c11);
float4x3 u_view : register(c8);
float4 u_uvscaleoffset : register(c17);
float3 u_lightpos0 : register(c24);
float3 u_lightatt0 : register(c32);
float3 u_lightdir0 : register(c28);
float4 u_lightangle_spotCoef0 : register(c36);
float3 u_lightambient0 : register(c48);
float3 u_lightdiffuse0 : register(c40);
float3 u_lightspecular0 : register(c44);
float3 u_lightpos1 : register(c25);
float3 u_lightatt1 : register(c33);
float3 u_lightdir1 : register(c29);
float4 u_lightangle_spotCoef1 : register(c37);
float3 u_lightambient1 : register(c49);
float3 u_lightdiffuse1 : register(c41);
float3 u_lightspecular1 : register(c45);
float3 u_lightpos2 : register(c26);
float3 u_lightatt2 : register(c34);
float3 u_lightdir2 : register(c30);
float4 u_lightangle_spotCoef2 : register(c38);
float3 u_lightambient2 : register(c50);
float3 u_lightdiffuse2 : register(c42);
float3 u_lightspecular2 : register(c46);
float3 u_lightpos3 : register(c27);
float3 u_lightatt3 : register(c35);
float3 u_lightdir3 : register(c31);
float4 u_lightangle_spotCoef3 : register(c39);
float3 u_lightambient3 : register(c51);
float3 u_lightdiffuse3 : register(c43);
float3 u_lightspecular3 : register(c47);
float4 u_ambient : register(c19);
float3 u_matdiffuse : register(c21);
float4 u_matspecular : register(c22);
float3 u_matemissive : register(c23);
float4 u_cullRangeMin : register(c80);
float4 u_cullRangeMax : register(c81);
struct VS_IN {
float2 texcoord : TEXCOORD0;
float3 normal : NORMAL;
float3 position : POSITION;
};
struct VS_OUT {
float3 v_texcoord : TEXCOORD0;
float4 v_color0 : COLOR0;
float3 v_color1 : COLOR1;
float4 gl_Position : POSITION;
};
VS_OUT main(VS_IN In) {
VS_OUT Out;
float3 worldpos = mul(float4(In.position.xyz, 1.0), u_world);
float3 worldnormal = normalize(mul(float4(In.normal, 0.0), u_world));
float4 viewPos = float4(mul(float4(worldpos, 1.0), u_view), 1.0);
float4 outPos = mul(viewPos, u_proj);
float4 lightSum0 = u_ambient * u_matambientalpha + float4(u_matemissive, 0.0);
float3 lightSum1 = 0;
float3 toLight;
float3 diffuse;
float distance;
float lightScale;
float ldot;
float angle;
toLight = u_lightpos0 - worldpos;
distance = length(toLight);
toLight /= distance;
ldot = dot(toLight, worldnormal);
angle = length(u_lightdir0) == 0.0 ? 0.0 : dot(normalize(u_lightdir0), toLight);
if (angle >= u_lightangle_spotCoef0.x) {
lightScale = clamp(1.0 / dot(u_lightatt0, float3(1.0, distance, distance*distance)), 0.0, 1.0) * (u_lightangle_spotCoef0.y <= 0.0 ? 1.0 : pow(angle, u_lightangle_spotCoef0.y));
} else {
lightScale = 0.0;
}
diffuse = (u_lightdiffuse0 * u_matdiffuse) * max(ldot, 0.0);
if (ldot >= 0.0) {
ldot = dot(normalize(toLight + float3(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 * lightScale;
}
lightSum0.rgb += (u_lightambient0 * u_matambientalpha.rgb + diffuse) * lightScale;
toLight = u_lightpos1 - worldpos;
distance = length(toLight);
toLight /= distance;
ldot = dot(toLight, worldnormal);
angle = length(u_lightdir1) == 0.0 ? 0.0 : dot(normalize(u_lightdir1), toLight);
if (angle >= u_lightangle_spotCoef1.x) {
lightScale = clamp(1.0 / dot(u_lightatt1, float3(1.0, distance, distance*distance)), 0.0, 1.0) * (u_lightangle_spotCoef1.y <= 0.0 ? 1.0 : pow(angle, u_lightangle_spotCoef1.y));
} else {
lightScale = 0.0;
}
diffuse = (u_lightdiffuse1 * u_matdiffuse) * max(ldot, 0.0);
if |
1 |
1 |
81 |
2021-11-11 |
| D3D error in shader compilation: info: C:\Users\power lion\Downloads\ppsspp-1-10-3\Shader@0x0C84F0C8(108,16-57): error X4505: maximum temp register index exceeded
C:\Users\power lion\Downloads\ppsspp-1-10-3\Shader@0x0C84F0C8(108,12-71): error X4505: maximum temp register index exceeded
/ code: #pragma warning( disable : 3571 )
float4x4 u_proj : register(c0);
float4 u_matambientalpha : register(c20);
float4x3 u_world : register(c11);
float4x3 u_view : register(c8);
float4 u_uvscaleoffset : register(c17);
float3 u_lightpos0 : register(c24);
float3 u_lightambient0 : register(c48);
float3 u_lightdiffuse0 : register(c40);
float3 u_lightspecular0 : register(c44);
float3 u_lightpos1 : register(c25);
float3 u_lightatt1 : register(c33);
float3 u_lightdir1 : register(c29);
float4 u_lightangle_spotCoef1 : register(c37);
float3 u_lightambient1 : register(c49);
float3 u_lightdiffuse1 : register(c41);
float3 u_lightspecular1 : register(c45);
float3 u_lightpos2 : register(c26);
float3 u_lightatt2 : register(c34);
float3 u_lightdir2 : register(c30);
float4 u_lightangle_spotCoef2 : register(c38);
float3 u_lightambient2 : register(c50);
float3 u_lightdiffuse2 : register(c42);
float3 u_lightspecular2 : register(c46);
float3 u_lightpos3 : register(c27);
float3 u_lightambient3 : register(c51);
float3 u_lightdiffuse3 : register(c43);
float3 u_lightspecular3 : register(c47);
float4 u_ambient : register(c19);
float3 u_matdiffuse : register(c21);
float4 u_matspecular : register(c22);
float3 u_matemissive : register(c23);
float4 u_cullRangeMin : register(c80);
float4 u_cullRangeMax : register(c81);
struct VS_IN {
float2 texcoord : TEXCOORD0;
float3 normal : NORMAL;
float3 position : POSITION;
};
struct VS_OUT {
float3 v_texcoord : TEXCOORD0;
float4 v_color0 : COLOR0;
float3 v_color1 : COLOR1;
float4 gl_Position : POSITION;
};
VS_OUT main(VS_IN In) {
VS_OUT Out;
float3 worldpos = mul(float4(In.position.xyz, 1.0), u_world);
float3 worldnormal = normalize(mul(float4(In.normal, 0.0), u_world));
float4 viewPos = float4(mul(float4(worldpos, 1.0), u_view), 1.0);
float4 outPos = mul(viewPos, u_proj);
float4 lightSum0 = u_ambient * u_matambientalpha + float4(u_matemissive, 0.0);
float3 lightSum1 = 0;
float3 toLight;
float3 diffuse;
float distance;
float lightScale;
float ldot;
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 + float3(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);
angle = length(u_lightdir1) == 0.0 ? 0.0 : dot(normalize(u_lightdir1), toLight);
if (angle >= u_lightangle_spotCoef1.x) {
lightScale = clamp(1.0 / dot(u_lightatt1, float3(1.0, distance, distance*distance)), 0.0, 1.0) * (u_lightangle_spotCoef1.y <= 0.0 ? 1.0 : pow(angle, u_lightangle_spotCoef1.y));
} else {
lightScale = 0.0;
}
diffuse = (u_lightdiffuse1 * u_matdiffuse) * max(ldot, 0.0);
if (ldot >= 0.0) {
ldot = dot(normalize(toLight + float3(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_lightdir2), toLight);
if (angle >= u_lightangle_spotCoef2.x) {
lightScale = clamp(1.0 / dot(u |
1 |
1 |
81 |
2020-10-11 |
| D3D error in shader compilation: info: C:\Program Files\PPSSPP\Shader@0x000000462FD49090(122,16-57): error X4505: maximum temp register index exceeded
C:\Program Files\PPSSPP\Shader@0x000000462FD49090(122,12-71): error X4505: maximum temp register index exceeded
/ code: #pragma warning( disable : 3571 )
float4x4 u_proj : register(c0);
float4 u_matambientalpha : register(c20);
float4x3 u_world : register(c11);
float4x3 u_view : register(c8);
float4 u_uvscaleoffset : register(c17);
float3 u_lightpos0 : register(c24);
float3 u_lightatt0 : register(c32);
float3 u_lightdir0 : register(c28);
float4 u_lightangle_spotCoef0 : register(c36);
float3 u_lightambient0 : register(c48);
float3 u_lightdiffuse0 : register(c40);
float3 u_lightspecular0 : register(c44);
float3 u_lightpos1 : register(c25);
float3 u_lightatt1 : register(c33);
float3 u_lightdir1 : register(c29);
float4 u_lightangle_spotCoef1 : register(c37);
float3 u_lightambient1 : register(c49);
float3 u_lightdiffuse1 : register(c41);
float3 u_lightspecular1 : register(c45);
float3 u_lightpos2 : register(c26);
float3 u_lightatt2 : register(c34);
float3 u_lightdir2 : register(c30);
float4 u_lightangle_spotCoef2 : register(c38);
float3 u_lightambient2 : register(c50);
float3 u_lightdiffuse2 : register(c42);
float3 u_lightspecular2 : register(c46);
float3 u_lightpos3 : register(c27);
float3 u_lightatt3 : register(c35);
float3 u_lightdir3 : register(c31);
float4 u_lightangle_spotCoef3 : register(c39);
float3 u_lightambient3 : register(c51);
float3 u_lightdiffuse3 : register(c43);
float3 u_lightspecular3 : register(c47);
float4 u_ambient : register(c19);
float3 u_matdiffuse : register(c21);
float4 u_matspecular : register(c22);
float3 u_matemissive : register(c23);
float4 u_cullRangeMin : register(c80);
float4 u_cullRangeMax : register(c81);
struct VS_IN {
float2 texcoord : TEXCOORD0;
float3 normal : NORMAL;
float3 position : POSITION;
};
struct VS_OUT {
float3 v_texcoord : TEXCOORD0;
float4 v_color0 : COLOR0;
float3 v_color1 : COLOR1;
float4 gl_Position : POSITION;
};
VS_OUT main(VS_IN In) {
VS_OUT Out;
float3 worldpos = mul(float4(In.position.xyz, 1.0), u_world);
float3 worldnormal = normalize(mul(float4(In.normal, 0.0), u_world));
float4 viewPos = float4(mul(float4(worldpos, 1.0), u_view), 1.0);
float4 outPos = mul(viewPos, u_proj);
float4 lightSum0 = u_ambient * u_matambientalpha + float4(u_matemissive, 0.0);
float3 lightSum1 = 0;
float3 toLight;
float3 diffuse;
float distance;
float lightScale;
float ldot;
float angle;
toLight = u_lightpos0 - worldpos;
distance = length(toLight);
toLight /= distance;
ldot = dot(toLight, worldnormal);
angle = length(u_lightdir0) == 0.0 ? 0.0 : dot(normalize(u_lightdir0), toLight);
if (angle >= u_lightangle_spotCoef0.x) {
lightScale = clamp(1.0 / dot(u_lightatt0, float3(1.0, distance, distance*distance)), 0.0, 1.0) * (u_lightangle_spotCoef0.y <= 0.0 ? 1.0 : pow(angle, u_lightangle_spotCoef0.y));
} else {
lightScale = 0.0;
}
diffuse = (u_lightdiffuse0 * u_matdiffuse) * max(ldot, 0.0);
if (ldot >= 0.0) {
ldot = dot(normalize(toLight + float3(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 * lightScale;
}
lightSum0.rgb += (u_lightambient0 * u_matambientalpha.rgb + diffuse) * lightScale;
toLight = u_lightpos1 - worldpos;
distance = length(toLight);
toLight /= distance;
ldot = dot(toLight, worldnormal);
angle = length(u_lightdir1) == 0.0 ? 0.0 : dot(normalize(u_lightdir1), toLight);
if (angle >= u_lightangle_spotCoef1.x) {
lightScale = clamp(1.0 / dot(u_lightatt1, float3(1.0, distance, distance*distance)), 0.0, 1.0) * (u_lightangle_spotCoef1.y <= 0.0 ? 1.0 : pow(angle, u_lightangle_spotCoef1.y));
} else {
lightScale = 0.0;
}
diffuse = (u_lightdiffuse1 * u_matdiffuse) * max(ldot, 0.0);
if (ldot >= 0.0) {
ldot = dot(norm |
1 |
1 |
81 |
2020-08-24 |
| D3D error in shader compilation: info: C:\Program Files\PPSSPP\Shader@0x0C0B0520(95,31-45): error X3004: undeclared identifier 'u_spline_counts'
/ code: #pragma warning( disable : 3571 )
float4x4 u_proj : register(c0);
float4 u_matambientalpha : register(c20);
float4x3 u_world : register(c11);
float4x3 u_view : register(c8);
float4 u_uvscaleoffset : register(c17);
float4 u_cullRangeMin : register(c80);
float4 u_cullRangeMax : register(c81);
struct VS_IN {
float2 texcoord : TEXCOORD0;
float4 color0 : COLOR0;
float3 normal : NORMAL;
float3 position : POSITION;
};
struct VS_OUT {
float3 v_texcoord : TEXCOORD0;
float4 v_color0 : COLOR0;
float4 gl_Position : POSITION;
};
float2 tess_sample(in float2 points[16], float4x4 weights) {
float2 pos = float2(0.0, 0.0);
pos += weights[0][0] * points[0];
pos += weights[0][1] * points[1];
pos += weights[0][2] * points[2];
pos += weights[0][3] * points[3];
pos += weights[1][0] * points[4];
pos += weights[1][1] * points[5];
pos += weights[1][2] * points[6];
pos += weights[1][3] * points[7];
pos += weights[2][0] * points[8];
pos += weights[2][1] * points[9];
pos += weights[2][2] * points[10];
pos += weights[2][3] * points[11];
pos += weights[3][0] * points[12];
pos += weights[3][1] * points[13];
pos += weights[3][2] * points[14];
pos += weights[3][3] * points[15];
return pos;
}
float3 tess_sample(in float3 points[16], float4x4 weights) {
float3 pos = float3(0.0, 0.0, 0.0);
pos += weights[0][0] * points[0];
pos += weights[0][1] * points[1];
pos += weights[0][2] * points[2];
pos += weights[0][3] * points[3];
pos += weights[1][0] * points[4];
pos += weights[1][1] * points[5];
pos += weights[1][2] * points[6];
pos += weights[1][3] * points[7];
pos += weights[2][0] * points[8];
pos += weights[2][1] * points[9];
pos += weights[2][2] * points[10];
pos += weights[2][3] * points[11];
pos += weights[3][0] * points[12];
pos += weights[3][1] * points[13];
pos += weights[3][2] * points[14];
pos += weights[3][3] * points[15];
return pos;
}
float4 tess_sample(in float4 points[16], float4x4 weights) {
float4 pos = float4(0.0, 0.0, 0.0, 0.0);
pos += weights[0][0] * points[0];
pos += weights[0][1] * points[1];
pos += weights[0][2] * points[2];
pos += weights[0][3] * points[3];
pos += weights[1][0] * points[4];
pos += weights[1][1] * points[5];
pos += weights[1][2] * points[6];
pos += weights[1][3] * points[7];
pos += weights[2][0] * points[8];
pos += weights[2][1] * points[9];
pos += weights[2][2] * points[10];
pos += weights[2][3] * points[11];
pos += weights[3][0] * points[12];
pos += weights[3][1] * points[13];
pos += weights[3][2] * points[14];
pos += weights[3][3] * points[15];
return pos;
}
float4x4 outerProduct(float4 u, float4 v) {
return mul((float4x1)v, (float1x4)u);
}
struct Tess {
float3 pos;
float2 tex;
float4 col;
};
void tessellate(in VS_IN In, out Tess tess) {
int2 point_pos = int2(In.position.z, In.normal.z) * 3;
int2 weight_idx = int2(In.position.xy);
float3 _pos[16];
float2 _tex[16];
float4 _col[16];
int index;
index = (0 + point_pos.y) * u_spline_counts + (0 + point_pos.x);
_pos[0] = tess_data[index].pos;
index = (0 + point_pos.y) * u_spline_counts + (1 + point_pos.x);
_pos[1] = tess_data[index].pos;
index = (0 + point_pos.y) * u_spline_counts + (2 + point_pos.x);
_pos[2] = tess_data[index].pos;
index = (0 + point_pos.y) * u_spline_counts + (3 + point_pos.x);
_pos[3] = tess_data[index].pos;
index = (1 + point_pos.y) * u_spline_counts + (0 + point_pos.x);
_pos[4] = tess_data[index].pos;
index = (1 + point_pos.y) * u_spline_counts + (1 + point_pos.x);
_pos[5] = tess_data[index].pos;
index = (1 + point_pos.y) * u_spline_counts + (2 + point_pos.x);
_pos[6] = tess_data[index].pos;
index = (1 + point_pos.y) * u_spline_counts + (3 + point_pos.x);
_pos[7] = tess_data[index].pos;
index = (2 + point_pos.y) * u_spline_counts + (0 + point_pos.x);
_pos[8] = tess_data[index].pos;
index = ( |
1 |
1 |
80 |
2021-04-11 |
| D3D error in shader compilation: info: E:\Game\PSP\ppsspp_win\Shader@0x000001FEE7A37FD0(95,31-45): error X3004: undeclared identifier 'u_spline_counts'
/ code: #pragma warning( disable : 3571 )
float4x4 u_proj : register(c0);
float4 u_matambientalpha : register(c20);
float4x3 u_world : register(c11);
float4x3 u_view : register(c8);
float4 u_uvscaleoffset : register(c17);
float4 u_cullRangeMin : register(c80);
float4 u_cullRangeMax : register(c81);
struct VS_IN {
float2 texcoord : TEXCOORD0;
float4 color0 : COLOR0;
float3 normal : NORMAL;
float3 position : POSITION;
};
struct VS_OUT {
float3 v_texcoord : TEXCOORD0;
float4 v_color0 : COLOR0;
float4 gl_Position : POSITION;
};
float2 tess_sample(in float2 points[16], float4x4 weights) {
float2 pos = float2(0.0, 0.0);
pos += weights[0][0] * points[0];
pos += weights[0][1] * points[1];
pos += weights[0][2] * points[2];
pos += weights[0][3] * points[3];
pos += weights[1][0] * points[4];
pos += weights[1][1] * points[5];
pos += weights[1][2] * points[6];
pos += weights[1][3] * points[7];
pos += weights[2][0] * points[8];
pos += weights[2][1] * points[9];
pos += weights[2][2] * points[10];
pos += weights[2][3] * points[11];
pos += weights[3][0] * points[12];
pos += weights[3][1] * points[13];
pos += weights[3][2] * points[14];
pos += weights[3][3] * points[15];
return pos;
}
float3 tess_sample(in float3 points[16], float4x4 weights) {
float3 pos = float3(0.0, 0.0, 0.0);
pos += weights[0][0] * points[0];
pos += weights[0][1] * points[1];
pos += weights[0][2] * points[2];
pos += weights[0][3] * points[3];
pos += weights[1][0] * points[4];
pos += weights[1][1] * points[5];
pos += weights[1][2] * points[6];
pos += weights[1][3] * points[7];
pos += weights[2][0] * points[8];
pos += weights[2][1] * points[9];
pos += weights[2][2] * points[10];
pos += weights[2][3] * points[11];
pos += weights[3][0] * points[12];
pos += weights[3][1] * points[13];
pos += weights[3][2] * points[14];
pos += weights[3][3] * points[15];
return pos;
}
float4 tess_sample(in float4 points[16], float4x4 weights) {
float4 pos = float4(0.0, 0.0, 0.0, 0.0);
pos += weights[0][0] * points[0];
pos += weights[0][1] * points[1];
pos += weights[0][2] * points[2];
pos += weights[0][3] * points[3];
pos += weights[1][0] * points[4];
pos += weights[1][1] * points[5];
pos += weights[1][2] * points[6];
pos += weights[1][3] * points[7];
pos += weights[2][0] * points[8];
pos += weights[2][1] * points[9];
pos += weights[2][2] * points[10];
pos += weights[2][3] * points[11];
pos += weights[3][0] * points[12];
pos += weights[3][1] * points[13];
pos += weights[3][2] * points[14];
pos += weights[3][3] * points[15];
return pos;
}
float4x4 outerProduct(float4 u, float4 v) {
return mul((float4x1)v, (float1x4)u);
}
struct Tess {
float3 pos;
float2 tex;
float4 col;
};
void tessellate(in VS_IN In, out Tess tess) {
int2 point_pos = int2(In.position.z, In.normal.z) * 3;
int2 weight_idx = int2(In.position.xy);
float3 _pos[16];
float2 _tex[16];
float4 _col[16];
int index;
index = (0 + point_pos.y) * u_spline_counts + (0 + point_pos.x);
_pos[0] = tess_data[index].pos;
_tex[0] = tess_data[index].tex;
_col[0] = tess_data[index].col;
index = (0 + point_pos.y) * u_spline_counts + (1 + point_pos.x);
_pos[1] = tess_data[index].pos;
_tex[1] = tess_data[index].tex;
_col[1] = tess_data[index].col;
index = (0 + point_pos.y) * u_spline_counts + (2 + point_pos.x);
_pos[2] = tess_data[index].pos;
_tex[2] = tess_data[index].tex;
_col[2] = tess_data[index].col;
index = (0 + point_pos.y) * u_spline_counts + (3 + point_pos.x);
_pos[3] = tess_data[index].pos;
_tex[3] = tess_data[index].tex;
_col[3] = tess_data[index].col;
index = (1 + point_pos.y) * u_spline_counts + (0 + point_pos.x);
_pos[4] = tess_data[index].pos;
_tex[4] = tess_data[index].tex;
_col[4] = tess_data[index].col;
index = (1 + point_pos.y) * u_spline_counts + (1 + point_pos.x);
|
1 |
1 |
79 |
2020-09-26 |
| D3D error in shader compilation: info: G:\Program Files (x86)\PPSSPP\Shader@0x000002820DB751D0(91,31-45): error X3004: undeclared identifier 'u_spline_counts'
/ code: #pragma warning( disable : 3571 )
float4x4 u_proj : register(c0);
float4 u_matambientalpha : register(c20);
float4x3 u_world : register(c11);
float4x3 u_view : register(c8);
float4 u_cullRangeMin : register(c80);
float4 u_cullRangeMax : register(c81);
struct VS_IN {
float4 color0 : COLOR0;
float3 normal : NORMAL;
float3 position : POSITION;
};
struct VS_OUT {
float4 v_color0 : COLOR0;
float4 gl_Position : POSITION;
};
float2 tess_sample(in float2 points[16], float4x4 weights) {
float2 pos = float2(0.0, 0.0);
pos += weights[0][0] * points[0];
pos += weights[0][1] * points[1];
pos += weights[0][2] * points[2];
pos += weights[0][3] * points[3];
pos += weights[1][0] * points[4];
pos += weights[1][1] * points[5];
pos += weights[1][2] * points[6];
pos += weights[1][3] * points[7];
pos += weights[2][0] * points[8];
pos += weights[2][1] * points[9];
pos += weights[2][2] * points[10];
pos += weights[2][3] * points[11];
pos += weights[3][0] * points[12];
pos += weights[3][1] * points[13];
pos += weights[3][2] * points[14];
pos += weights[3][3] * points[15];
return pos;
}
float3 tess_sample(in float3 points[16], float4x4 weights) {
float3 pos = float3(0.0, 0.0, 0.0);
pos += weights[0][0] * points[0];
pos += weights[0][1] * points[1];
pos += weights[0][2] * points[2];
pos += weights[0][3] * points[3];
pos += weights[1][0] * points[4];
pos += weights[1][1] * points[5];
pos += weights[1][2] * points[6];
pos += weights[1][3] * points[7];
pos += weights[2][0] * points[8];
pos += weights[2][1] * points[9];
pos += weights[2][2] * points[10];
pos += weights[2][3] * points[11];
pos += weights[3][0] * points[12];
pos += weights[3][1] * points[13];
pos += weights[3][2] * points[14];
pos += weights[3][3] * points[15];
return pos;
}
float4 tess_sample(in float4 points[16], float4x4 weights) {
float4 pos = float4(0.0, 0.0, 0.0, 0.0);
pos += weights[0][0] * points[0];
pos += weights[0][1] * points[1];
pos += weights[0][2] * points[2];
pos += weights[0][3] * points[3];
pos += weights[1][0] * points[4];
pos += weights[1][1] * points[5];
pos += weights[1][2] * points[6];
pos += weights[1][3] * points[7];
pos += weights[2][0] * points[8];
pos += weights[2][1] * points[9];
pos += weights[2][2] * points[10];
pos += weights[2][3] * points[11];
pos += weights[3][0] * points[12];
pos += weights[3][1] * points[13];
pos += weights[3][2] * points[14];
pos += weights[3][3] * points[15];
return pos;
}
float4x4 outerProduct(float4 u, float4 v) {
return mul((float4x1)v, (float1x4)u);
}
struct Tess {
float3 pos;
float4 col;
};
void tessellate(in VS_IN In, out Tess tess) {
int2 point_pos = int2(In.position.z, In.normal.z);
int2 weight_idx = int2(In.position.xy);
float3 _pos[16];
float2 _tex[16];
float4 _col[16];
int index;
index = (0 + point_pos.y) * u_spline_counts + (0 + point_pos.x);
_pos[0] = tess_data[index].pos;
index = (0 + point_pos.y) * u_spline_counts + (1 + point_pos.x);
_pos[1] = tess_data[index].pos;
index = (0 + point_pos.y) * u_spline_counts + (2 + point_pos.x);
_pos[2] = tess_data[index].pos;
index = (0 + point_pos.y) * u_spline_counts + (3 + point_pos.x);
_pos[3] = tess_data[index].pos;
index = (1 + point_pos.y) * u_spline_counts + (0 + point_pos.x);
_pos[4] = tess_data[index].pos;
index = (1 + point_pos.y) * u_spline_counts + (1 + point_pos.x);
_pos[5] = tess_data[index].pos;
index = (1 + point_pos.y) * u_spline_counts + (2 + point_pos.x);
_pos[6] = tess_data[index].pos;
index = (1 + point_pos.y) * u_spline_counts + (3 + point_pos.x);
_pos[7] = tess_data[index].pos;
index = (2 + point_pos.y) * u_spline_counts + (0 + point_pos.x);
_pos[8] = tess_data[index].pos;
index = (2 + point_pos.y) * u_spline_counts + (1 + point_pos.x);
_pos[9] = tess_data[index].pos;
index = (2 + poi |
1 |
1 |
76 |
2020-11-23 |
| D3D error in shader compilation: info: F:\PPSSPP\Shader@0x000000000E6A22A0(97,16-55): error X4505: maximum temp register index exceeded
F:\PPSSPP\Shader@0x000000000E6A22A0(97,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);
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_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;
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_lightdir2), toLight);
if (angle >= u_lightangle_spotCoef2.x) {
lightScale = clamp(1.0 / dot(u_lightatt2, vec3(1.0, distanc |
1 |
1 |
75 |
2022-05-20 |
| D3D error in shader compilation: info: C:\Program Files\PPSSPP\Shader@0x115C9C90(95,31-45): error X3004: undeclared identifier 'u_spline_counts'
/ code: #pragma warning( disable : 3571 )
float4x4 u_proj : register(c0);
float4 u_matambientalpha : register(c20);
float4x3 u_world : register(c11);
float4x3 u_view : register(c8);
float4 u_uvscaleoffset : register(c17);
float4 u_cullRangeMin : register(c80);
float4 u_cullRangeMax : register(c81);
struct VS_IN {
float2 texcoord : TEXCOORD0;
float4 color0 : COLOR0;
float3 normal : NORMAL;
float3 position : POSITION;
};
struct VS_OUT {
float3 v_texcoord : TEXCOORD0;
float4 v_color0 : COLOR0;
float4 gl_Position : POSITION;
};
float2 tess_sample(in float2 points[16], float4x4 weights) {
float2 pos = float2(0.0, 0.0);
pos += weights[0][0] * points[0];
pos += weights[0][1] * points[1];
pos += weights[0][2] * points[2];
pos += weights[0][3] * points[3];
pos += weights[1][0] * points[4];
pos += weights[1][1] * points[5];
pos += weights[1][2] * points[6];
pos += weights[1][3] * points[7];
pos += weights[2][0] * points[8];
pos += weights[2][1] * points[9];
pos += weights[2][2] * points[10];
pos += weights[2][3] * points[11];
pos += weights[3][0] * points[12];
pos += weights[3][1] * points[13];
pos += weights[3][2] * points[14];
pos += weights[3][3] * points[15];
return pos;
}
float3 tess_sample(in float3 points[16], float4x4 weights) {
float3 pos = float3(0.0, 0.0, 0.0);
pos += weights[0][0] * points[0];
pos += weights[0][1] * points[1];
pos += weights[0][2] * points[2];
pos += weights[0][3] * points[3];
pos += weights[1][0] * points[4];
pos += weights[1][1] * points[5];
pos += weights[1][2] * points[6];
pos += weights[1][3] * points[7];
pos += weights[2][0] * points[8];
pos += weights[2][1] * points[9];
pos += weights[2][2] * points[10];
pos += weights[2][3] * points[11];
pos += weights[3][0] * points[12];
pos += weights[3][1] * points[13];
pos += weights[3][2] * points[14];
pos += weights[3][3] * points[15];
return pos;
}
float4 tess_sample(in float4 points[16], float4x4 weights) {
float4 pos = float4(0.0, 0.0, 0.0, 0.0);
pos += weights[0][0] * points[0];
pos += weights[0][1] * points[1];
pos += weights[0][2] * points[2];
pos += weights[0][3] * points[3];
pos += weights[1][0] * points[4];
pos += weights[1][1] * points[5];
pos += weights[1][2] * points[6];
pos += weights[1][3] * points[7];
pos += weights[2][0] * points[8];
pos += weights[2][1] * points[9];
pos += weights[2][2] * points[10];
pos += weights[2][3] * points[11];
pos += weights[3][0] * points[12];
pos += weights[3][1] * points[13];
pos += weights[3][2] * points[14];
pos += weights[3][3] * points[15];
return pos;
}
float4x4 outerProduct(float4 u, float4 v) {
return mul((float4x1)v, (float1x4)u);
}
struct Tess {
float3 pos;
float2 tex;
float4 col;
};
void tessellate(in VS_IN In, out Tess tess) {
int2 point_pos = int2(In.position.z, In.normal.z) * 3;
int2 weight_idx = int2(In.position.xy);
float3 _pos[16];
float2 _tex[16];
float4 _col[16];
int index;
index = (0 + point_pos.y) * u_spline_counts + (0 + point_pos.x);
_pos[0] = tess_data[index].pos;
index = (0 + point_pos.y) * u_spline_counts + (1 + point_pos.x);
_pos[1] = tess_data[index].pos;
index = (0 + point_pos.y) * u_spline_counts + (2 + point_pos.x);
_pos[2] = tess_data[index].pos;
index = (0 + point_pos.y) * u_spline_counts + (3 + point_pos.x);
_pos[3] = tess_data[index].pos;
index = (1 + point_pos.y) * u_spline_counts + (0 + point_pos.x);
_pos[4] = tess_data[index].pos;
index = (1 + point_pos.y) * u_spline_counts + (1 + point_pos.x);
_pos[5] = tess_data[index].pos;
index = (1 + point_pos.y) * u_spline_counts + (2 + point_pos.x);
_pos[6] = tess_data[index].pos;
index = (1 + point_pos.y) * u_spline_counts + (3 + point_pos.x);
_pos[7] = tess_data[index].pos;
index = (2 + point_pos.y) * u_spline_counts + (0 + point_pos.x);
_pos[8] = tess_data[index].pos;
index = ( |
1 |
1 |
75 |
2020-08-11 |
| D3D error in shader compilation: info: C:\Program Files\PPSSPP\Shader@0x0000000008685FD0(110,16-57): error X4505: maximum temp register index exceeded
C:\Program Files\PPSSPP\Shader@0x0000000008685FD0(110,12-71): error X4505: maximum temp register index exceeded
/ code: #pragma warning( disable : 3571 )
float4x4 u_proj : register(c0);
float2 u_fogcoef : register(c18);
float4 u_matambientalpha : register(c20);
float4x3 u_world : register(c11);
float4x3 u_view : register(c8);
float4 u_uvscaleoffset : register(c17);
float3 u_lightpos0 : register(c24);
float3 u_lightambient0 : register(c48);
float3 u_lightdiffuse0 : register(c40);
float3 u_lightspecular0 : register(c44);
float3 u_lightpos1 : register(c25);
float3 u_lightatt1 : register(c33);
float3 u_lightdir1 : register(c29);
float4 u_lightangle_spotCoef1 : register(c37);
float3 u_lightambient1 : register(c49);
float3 u_lightdiffuse1 : register(c41);
float3 u_lightspecular1 : register(c45);
float3 u_lightpos2 : register(c26);
float3 u_lightatt2 : register(c34);
float3 u_lightdir2 : register(c30);
float4 u_lightangle_spotCoef2 : register(c38);
float3 u_lightambient2 : register(c50);
float3 u_lightdiffuse2 : register(c42);
float3 u_lightspecular2 : register(c46);
float3 u_lightpos3 : register(c27);
float3 u_lightambient3 : register(c51);
float3 u_lightdiffuse3 : register(c43);
float3 u_lightspecular3 : register(c47);
float4 u_ambient : register(c19);
float3 u_matdiffuse : register(c21);
float4 u_matspecular : register(c22);
float3 u_matemissive : register(c23);
float4 u_cullRangeMin : register(c80);
float4 u_cullRangeMax : register(c81);
struct VS_IN {
float2 texcoord : TEXCOORD0;
float3 normal : NORMAL;
float3 position : POSITION;
};
struct VS_OUT {
float3 v_texcoord : TEXCOORD0;
float4 v_color0 : COLOR0;
float3 v_color1 : COLOR1;
float v_fogdepth: TEXCOORD1;
float4 gl_Position : POSITION;
};
VS_OUT main(VS_IN In) {
VS_OUT Out;
float3 worldpos = mul(float4(In.position.xyz, 1.0), u_world);
float3 worldnormal = normalize(mul(float4(In.normal, 0.0), u_world));
float4 viewPos = float4(mul(float4(worldpos, 1.0), u_view), 1.0);
float4 outPos = mul(viewPos, u_proj);
float4 lightSum0 = u_ambient * u_matambientalpha + float4(u_matemissive, 0.0);
float3 lightSum1 = 0;
float3 toLight;
float3 diffuse;
float distance;
float lightScale;
float ldot;
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 + float3(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);
angle = length(u_lightdir1) == 0.0 ? 0.0 : dot(normalize(u_lightdir1), toLight);
if (angle >= u_lightangle_spotCoef1.x) {
lightScale = clamp(1.0 / dot(u_lightatt1, float3(1.0, distance, distance*distance)), 0.0, 1.0) * (u_lightangle_spotCoef1.y <= 0.0 ? 1.0 : pow(angle, u_lightangle_spotCoef1.y));
} else {
lightScale = 0.0;
}
diffuse = (u_lightdiffuse1 * u_matdiffuse) * max(ldot, 0.0);
if (ldot >= 0.0) {
ldot = dot(normalize(toLight + float3(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_lightdir2), toLight);
if (angle >= u_lightangle_spotCoef |
2 |
2 |
74 |
2020-11-12 |
| D3D error in shader compilation: info: C:\Program Files\PPSSPP\Shader@0x000001EA217E6020(140,16-55): error X4505: maximum temp register index exceeded
C:\Program Files\PPSSPP\Shader@0x000001EA217E6020(140,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);
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_lightatt0 : register(c32);
vec3 u_lightdir0 : register(c28);
vec4 u_lightangle_spotCoef0 : register(c36);
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_lightdir1 : register(c29);
vec4 u_lightangle_spotCoef1 : register(c37);
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_lightdir3 : register(c31);
vec4 u_lightangle_spotCoef3 : register(c39);
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;
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 - worldpos;
distance = length(toLight);
toLight /= distance;
ldot = dot(toLight, worldnormal);
angle = length(u_lightdir0) == 0.0 ? 0.0 : dot(normalize(u_lightdir0), toLight);
if (angle >= u_lightangle_spotCoef0.x) {
lightScale = clamp(1.0 / dot(u_lightatt0, vec3(1.0, distance, distance*distance)), 0.0, 1.0) * (u_lightangle_spotCoef0.y <= 0.0 ? 1.0 : pow(angle, u_lightangle_spotCoef0.y));
} else {
lightScale = 0.0;
}
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 * lightScale;
}
lightSum0.rgb += (u_lightambient0 * u_matambientalpha.rgb + diffuse) * lightScale;
toLight = u_lightpos1 - worldpos;
distance = length(toLight);
toLight /= distance;
ldot = dot(toLight, worldnormal);
angle = length(u_lightdir1) == 0.0 ? 0.0 : dot(normalize(u_lightdir1), toLight);
if (angle >= u_lightan |
1 |
1 |
73 |
2023-04-06 |
| D3D error in shader compilation: info: F:\PPSSPP\Shader@0x000000000E615270(97,16-55): error X4505: maximum temp register index exceeded
F:\PPSSPP\Shader@0x000000000E615270(97,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);
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_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;
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_lightdir2), toLight);
if (angle >= u_lightangle_spotCoef2.x) {
lightScale = clamp(1.0 / dot(u_lightatt2, vec3(1.0, distanc |
1 |
1 |
73 |
2022-05-20 |
| D3D error in shader compilation: info: (94): error X4004: program too complex; there are more active values than registers
/ code: #pragma warning( disable : 3571 )
float4x4 u_proj : register(c0);
float4 u_matambientalpha : register(c20);
float4x3 u_world : register(c11);
float4x3 u_view : register(c8);
float4 u_uvscaleoffset : register(c17);
float3 u_lightpos0 : register(c24);
float3 u_lightatt0 : register(c32);
float3 u_lightambient0 : register(c48);
float3 u_lightdiffuse0 : register(c40);
float3 u_lightspecular0 : register(c44);
float3 u_lightpos1 : register(c25);
float3 u_lightatt1 : register(c33);
float3 u_lightambient1 : register(c49);
float3 u_lightdiffuse1 : register(c41);
float3 u_lightspecular1 : register(c45);
float3 u_lightpos2 : register(c26);
float3 u_lightatt2 : register(c34);
float3 u_lightdir2 : register(c30);
float4 u_lightangle_spotCoef2 : register(c38);
float3 u_lightambient2 : register(c50);
float3 u_lightdiffuse2 : register(c42);
float3 u_lightspecular2 : register(c46);
float3 u_lightpos3 : register(c27);
float3 u_lightatt3 : register(c35);
float3 u_lightambient3 : register(c51);
float3 u_lightdiffuse3 : register(c43);
float3 u_lightspecular3 : register(c47);
float4 u_ambient : register(c19);
float3 u_matdiffuse : register(c21);
float4 u_matspecular : register(c22);
float3 u_matemissive : register(c23);
float4 u_cullRangeMin : register(c80);
float4 u_cullRangeMax : register(c81);
struct VS_IN {
float2 texcoord : TEXCOORD0;
float3 normal : NORMAL;
float3 position : POSITION;
};
struct VS_OUT {
float3 v_texcoord : TEXCOORD0;
float4 v_color0 : COLOR0;
float3 v_color1 : COLOR1;
float4 gl_Position : POSITION;
};
VS_OUT main(VS_IN In) {
VS_OUT Out;
float3 worldpos = mul(float4(In.position.xyz, 1.0), u_world);
float3 worldnormal = normalize(mul(float4(In.normal, 0.0), u_world));
float4 viewPos = float4(mul(float4(worldpos, 1.0), u_view), 1.0);
float4 outPos = mul(viewPos, u_proj);
float4 lightSum0 = u_ambient * u_matambientalpha + float4(u_matemissive, 0.0);
float3 lightSum1 = 0;
float3 toLight;
float3 diffuse;
float distance;
float lightScale;
float ldot;
float angle;
toLight = u_lightpos0 - worldpos;
distance = length(toLight);
toLight /= distance;
ldot = max(dot(toLight, worldnormal), 0.0);
lightScale = clamp(1.0 / dot(u_lightatt0, float3(1.0, distance, distance*distance)), 0.0, 1.0);
diffuse = (u_lightdiffuse0 * u_matdiffuse) * ldot;
ldot = dot(normalize(toLight + float3(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 * u_matambientalpha.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, float3(1.0, distance, distance*distance)), 0.0, 1.0);
diffuse = (u_lightdiffuse1 * u_matdiffuse) * ldot;
ldot = dot(normalize(toLight + float3(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 * u_matambientalpha.rgb + diffuse) * lightScale;
toLight = u_lightpos2 - worldpos;
distance = length(toLight);
toLight /= distance;
ldot = max(dot(toLight, worldnormal), 0.0);
angle = dot(normalize(u_lightdir2), toLight);
if (angle >= u_lightangle_spotCoef2.x) {
lightScale = clamp(1.0 / dot(u_lightatt2, float3(1.0, distance, distance*distance)), 0.0, 1.0) * pow(angle, u_lightangle_spotCoef2.y);
} else {
lightScale = 0.0;
}
diffuse = (u_lightdiffuse2 * u_matdiffuse) * ldot;
ldot = dot(normalize(toLight + float3(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 * u_matambientalpha.rgb + diffuse) * lightScale;
toLight = u_lightpos3 - worldpos;
distance |
1 |
1 |
73 |
2019-02-03 |
| D3D error in shader compilation: info: C:\Users\username\Documents\Emulators\Shader@0x000001DD72E52480(95,31-45): error X3004: undeclared identifier 'u_spline_counts'
/ code: #pragma warning( disable : 3571 )
float4x4 u_proj : register(c0);
float4 u_matambientalpha : register(c20);
float4x3 u_world : register(c11);
float4x3 u_view : register(c8);
float4 u_uvscaleoffset : register(c17);
float4 u_cullRangeMin : register(c80);
float4 u_cullRangeMax : register(c81);
struct VS_IN {
float2 texcoord : TEXCOORD0;
float4 color0 : COLOR0;
float3 normal : NORMAL;
float3 position : POSITION;
};
struct VS_OUT {
float3 v_texcoord : TEXCOORD0;
float4 v_color0 : COLOR0;
float4 gl_Position : POSITION;
};
float2 tess_sample(in float2 points[16], float4x4 weights) {
float2 pos = float2(0.0, 0.0);
pos += weights[0][0] * points[0];
pos += weights[0][1] * points[1];
pos += weights[0][2] * points[2];
pos += weights[0][3] * points[3];
pos += weights[1][0] * points[4];
pos += weights[1][1] * points[5];
pos += weights[1][2] * points[6];
pos += weights[1][3] * points[7];
pos += weights[2][0] * points[8];
pos += weights[2][1] * points[9];
pos += weights[2][2] * points[10];
pos += weights[2][3] * points[11];
pos += weights[3][0] * points[12];
pos += weights[3][1] * points[13];
pos += weights[3][2] * points[14];
pos += weights[3][3] * points[15];
return pos;
}
float3 tess_sample(in float3 points[16], float4x4 weights) {
float3 pos = float3(0.0, 0.0, 0.0);
pos += weights[0][0] * points[0];
pos += weights[0][1] * points[1];
pos += weights[0][2] * points[2];
pos += weights[0][3] * points[3];
pos += weights[1][0] * points[4];
pos += weights[1][1] * points[5];
pos += weights[1][2] * points[6];
pos += weights[1][3] * points[7];
pos += weights[2][0] * points[8];
pos += weights[2][1] * points[9];
pos += weights[2][2] * points[10];
pos += weights[2][3] * points[11];
pos += weights[3][0] * points[12];
pos += weights[3][1] * points[13];
pos += weights[3][2] * points[14];
pos += weights[3][3] * points[15];
return pos;
}
float4 tess_sample(in float4 points[16], float4x4 weights) {
float4 pos = float4(0.0, 0.0, 0.0, 0.0);
pos += weights[0][0] * points[0];
pos += weights[0][1] * points[1];
pos += weights[0][2] * points[2];
pos += weights[0][3] * points[3];
pos += weights[1][0] * points[4];
pos += weights[1][1] * points[5];
pos += weights[1][2] * points[6];
pos += weights[1][3] * points[7];
pos += weights[2][0] * points[8];
pos += weights[2][1] * points[9];
pos += weights[2][2] * points[10];
pos += weights[2][3] * points[11];
pos += weights[3][0] * points[12];
pos += weights[3][1] * points[13];
pos += weights[3][2] * points[14];
pos += weights[3][3] * points[15];
return pos;
}
float4x4 outerProduct(float4 u, float4 v) {
return mul((float4x1)v, (float1x4)u);
}
struct Tess {
float3 pos;
float2 tex;
float4 col;
};
void tessellate(in VS_IN In, out Tess tess) {
int2 point_pos = int2(In.position.z, In.normal.z) * 3;
int2 weight_idx = int2(In.position.xy);
float3 _pos[16];
float2 _tex[16];
float4 _col[16];
int index;
index = (0 + point_pos.y) * u_spline_counts + (0 + point_pos.x);
_pos[0] = tess_data[index].pos;
_tex[0] = tess_data[index].tex;
index = (0 + point_pos.y) * u_spline_counts + (1 + point_pos.x);
_pos[1] = tess_data[index].pos;
_tex[1] = tess_data[index].tex;
index = (0 + point_pos.y) * u_spline_counts + (2 + point_pos.x);
_pos[2] = tess_data[index].pos;
_tex[2] = tess_data[index].tex;
index = (0 + point_pos.y) * u_spline_counts + (3 + point_pos.x);
_pos[3] = tess_data[index].pos;
_tex[3] = tess_data[index].tex;
index = (1 + point_pos.y) * u_spline_counts + (0 + point_pos.x);
_pos[4] = tess_data[index].pos;
_tex[4] = tess_data[index].tex;
index = (1 + point_pos.y) * u_spline_counts + (1 + point_pos.x);
_pos[5] = tess_data[index].pos;
_tex[5] = tess_data[index].tex;
index = (1 + point_pos.y) * u_spline_counts + (2 + point_pos.x);
_pos[6] = tess_data |
1 |
1 |
72 |
2021-08-21 |
| D3D error in shader compilation: info: C:\Program Files\PPSSPP\Shader@0x1015ACB0(125,16-55): error X4505: maximum temp register index exceeded
C:\Program Files\PPSSPP\Shader@0x1015ACB0(125,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_lightdir1 : register(c29);
vec4 u_lightangle_spotCoef1 : register(c37);
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_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;
};
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 = normalize(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);
angle = length(u_lightdir1) == 0.0 ? 0.0 : dot(normalize(u_lightdir1), toLight);
if (angle >= u_lightangle_spotCoef1.x) {
lightScale = clamp(1.0 / dot(u_lightatt1, vec3(1.0, distance, distance*distance)), 0.0, 1.0) * (u_lightangle_spotCoef1.y <= 0.0 ? 1.0 : pow(angle, u_lightangle_spotCoef1.y));
} else {
lightScale = 0.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_ |
1 |
1 |
72 |
2021-04-14 |
| D3D error in shader compilation: info: D:\psp\memory(59,10): error X4505: maximum temp register index exceeded
D:\psp\memory(59,10): error X4505: maximum temp register index exceeded
/ code: #pragma warning( disable : 3571 )
float4x4 u_proj : register(c0);
float2 u_fogcoef : register(c18);
float4 u_matambientalpha : register(c20);
float4x3 u_world : register(c11);
float4x3 u_view : register(c8);
float4 u_uvscaleoffset : register(c17);
float3 u_lightpos0 : register(c24);
float3 u_lightatt0 : register(c32);
float3 u_lightambient0 : register(c48);
float3 u_lightdiffuse0 : register(c40);
float3 u_lightspecular0 : register(c44);
float3 u_lightpos1 : register(c25);
float3 u_lightatt1 : register(c33);
float3 u_lightdir1 : register(c29);
float4 u_lightangle_spotCoef1 : register(c37);
float3 u_lightambient1 : register(c49);
float3 u_lightdiffuse1 : register(c41);
float3 u_lightspecular1 : register(c45);
float4 u_ambient : register(c19);
float3 u_matdiffuse : register(c21);
float4 u_matspecular : register(c22);
float3 u_matemissive : register(c23);
float4 u_cullRangeMin : register(c80);
float4 u_cullRangeMax : register(c81);
struct VS_IN {
float2 texcoord : TEXCOORD0;
float3 normal : NORMAL;
float3 position : POSITION;
};
struct VS_OUT {
float3 v_texcoord : TEXCOORD0;
float4 v_color0 : COLOR0;
float3 v_color1 : COLOR1;
float v_fogdepth: TEXCOORD1;
float4 gl_Position : POSITION;
};
VS_OUT main(VS_IN In) {
VS_OUT Out;
float3 worldpos = mul(float4(In.position.xyz, 1.0), u_world);
float3 worldnormal = normalize(mul(float4(In.normal, 0.0), u_world));
float4 viewPos = float4(mul(float4(worldpos, 1.0), u_view), 1.0);
float4 outPos = mul(viewPos, u_proj);
float4 lightSum0 = u_ambient * u_matambientalpha + float4(u_matemissive, 0.0);
float3 lightSum1 = 0;
float3 toLight;
float3 diffuse;
float distance;
float lightScale;
float ldot;
float angle;
toLight = u_lightpos0 - worldpos;
distance = length(toLight);
toLight /= distance;
ldot = dot(toLight, worldnormal);
lightScale = clamp(1.0 / dot(u_lightatt0, float3(1.0, distance, distance*distance)), 0.0, 1.0);
diffuse = (u_lightdiffuse0 * u_matdiffuse) * max(ldot, 0.0);
if (ldot >= 0.0) {
ldot = dot(normalize(toLight + float3(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 * lightScale;
}
lightSum0.rgb += (u_lightambient0 * u_matambientalpha.rgb + diffuse) * lightScale;
toLight = u_lightpos1 - worldpos;
distance = length(toLight);
toLight /= distance;
ldot = dot(toLight, worldnormal);
angle = length(u_lightdir1) == 0.0 ? 0.0 : dot(normalize(u_lightdir1), toLight);
if (angle >= u_lightangle_spotCoef1.x) {
lightScale = clamp(1.0 / dot(u_lightatt1, float3(1.0, distance, distance*distance)), 0.0, 1.0) * (u_lightangle_spotCoef1.y == 0.0 ? 1.0 : pow(angle, u_lightangle_spotCoef1.y));
} else {
lightScale = 0.0;
}
diffuse = (u_lightdiffuse1 * u_matdiffuse) * max(ldot, 0.0);
if (ldot >= 0.0) {
ldot = dot(normalize(toLight + float3(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;
Out.v_color0 = clamp(lightSum0, 0.0, 1.0);
Out.v_color1 = clamp(lightSum1, 0.0, 1.0);
Out.v_texcoord = float3(In.texcoord.xy * u_uvscaleoffset.xy, 0.0);
Out.v_fogdepth = (viewPos.z + u_fogcoef.x) * u_fogcoef.y;
float3 projPos = outPos.xyz / outPos.w;
if (u_cullRangeMin.w <= 0.0 || (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 || pro |
1 |
1 |
71 |
2019-07-05 |
| D3D error in shader compilation: info: C:\Users\PC\Videos\WWE-2K14-PC-PSP\WWE-2K14-DownloadComputerGames.net\Shader@0x12C5ACA0(122,16-57): error X4505: maximum temp register index exceeded
C:\Users\PC\Videos\WWE-2K14-PC-PSP\WWE-2K14-DownloadComputerGames.net\Shader@0x12C5ACA0(122,12-71): error X4505: maximum temp register index exceeded
/ code: #pragma warning( disable : 3571 )
float4x4 u_proj : register(c0);
float4 u_matambientalpha : register(c20);
float4x3 u_world : register(c11);
float4x3 u_view : register(c8);
float4 u_uvscaleoffset : register(c17);
float3 u_lightpos0 : register(c24);
float3 u_lightatt0 : register(c32);
float3 u_lightdir0 : register(c28);
float4 u_lightangle_spotCoef0 : register(c36);
float3 u_lightambient0 : register(c48);
float3 u_lightdiffuse0 : register(c40);
float3 u_lightspecular0 : register(c44);
float3 u_lightpos1 : register(c25);
float3 u_lightatt1 : register(c33);
float3 u_lightdir1 : register(c29);
float4 u_lightangle_spotCoef1 : register(c37);
float3 u_lightambient1 : register(c49);
float3 u_lightdiffuse1 : register(c41);
float3 u_lightspecular1 : register(c45);
float3 u_lightpos2 : register(c26);
float3 u_lightatt2 : register(c34);
float3 u_lightdir2 : register(c30);
float4 u_lightangle_spotCoef2 : register(c38);
float3 u_lightambient2 : register(c50);
float3 u_lightdiffuse2 : register(c42);
float3 u_lightspecular2 : register(c46);
float3 u_lightpos3 : register(c27);
float3 u_lightatt3 : register(c35);
float3 u_lightdir3 : register(c31);
float4 u_lightangle_spotCoef3 : register(c39);
float3 u_lightambient3 : register(c51);
float3 u_lightdiffuse3 : register(c43);
float3 u_lightspecular3 : register(c47);
float4 u_ambient : register(c19);
float3 u_matdiffuse : register(c21);
float4 u_matspecular : register(c22);
float3 u_matemissive : register(c23);
float4 u_cullRangeMin : register(c80);
float4 u_cullRangeMax : register(c81);
struct VS_IN {
float2 texcoord : TEXCOORD0;
float3 normal : NORMAL;
float3 position : POSITION;
};
struct VS_OUT {
float3 v_texcoord : TEXCOORD0;
float4 v_color0 : COLOR0;
float3 v_color1 : COLOR1;
float4 gl_Position : POSITION;
};
VS_OUT main(VS_IN In) {
VS_OUT Out;
float3 worldpos = mul(float4(In.position.xyz, 1.0), u_world);
float3 worldnormal = normalize(mul(float4(In.normal, 0.0), u_world));
float4 viewPos = float4(mul(float4(worldpos, 1.0), u_view), 1.0);
float4 outPos = mul(viewPos, u_proj);
float4 lightSum0 = u_ambient * u_matambientalpha + float4(u_matemissive, 0.0);
float3 lightSum1 = 0;
float3 toLight;
float3 diffuse;
float distance;
float lightScale;
float ldot;
float angle;
toLight = u_lightpos0 - worldpos;
distance = length(toLight);
toLight /= distance;
ldot = dot(toLight, worldnormal);
angle = length(u_lightdir0) == 0.0 ? 0.0 : dot(normalize(u_lightdir0), toLight);
if (angle >= u_lightangle_spotCoef0.x) {
lightScale = clamp(1.0 / dot(u_lightatt0, float3(1.0, distance, distance*distance)), 0.0, 1.0) * (u_lightangle_spotCoef0.y == 0.0 ? 1.0 : pow(angle, u_lightangle_spotCoef0.y));
} else {
lightScale = 0.0;
}
diffuse = (u_lightdiffuse0 * u_matdiffuse) * max(ldot, 0.0);
if (ldot >= 0.0) {
ldot = dot(normalize(toLight + float3(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 * lightScale;
}
lightSum0.rgb += (u_lightambient0 * u_matambientalpha.rgb + diffuse) * lightScale;
toLight = u_lightpos1 - worldpos;
distance = length(toLight);
toLight /= distance;
ldot = dot(toLight, worldnormal);
angle = length(u_lightdir1) == 0.0 ? 0.0 : dot(normalize(u_lightdir1), toLight);
if (angle >= u_lightangle_spotCoef1.x) {
lightScale = clamp(1.0 / dot(u_lightatt1, float3(1.0, distance, distance*distance)), 0.0, 1.0) * (u_lightangle_spotCoef1.y == 0.0 ? 1.0 : pow(angle, u_lightangle_spotCoef1.y));
} else {
lightScale = 0.0;
}
diffuse = (u_lightdiffuse |
1 |
1 |
70 |
2024-03-16 |
| D3D error in shader compilation: info: C:\Users\power lion\Downloads\ppsspp-1-10-3\Shader@0x13928510(108,16-57): error X4505: maximum temp register index exceeded
C:\Users\power lion\Downloads\ppsspp-1-10-3\Shader@0x13928510(108,12-71): error X4505: maximum temp register index exceeded
/ code: #pragma warning( disable : 3571 )
float4x4 u_proj : register(c0);
float4 u_matambientalpha : register(c20);
float4x3 u_world : register(c11);
float4x3 u_view : register(c8);
float4 u_uvscaleoffset : register(c17);
float3 u_lightpos0 : register(c24);
float3 u_lightambient0 : register(c48);
float3 u_lightdiffuse0 : register(c40);
float3 u_lightspecular0 : register(c44);
float3 u_lightpos1 : register(c25);
float3 u_lightatt1 : register(c33);
float3 u_lightdir1 : register(c29);
float4 u_lightangle_spotCoef1 : register(c37);
float3 u_lightambient1 : register(c49);
float3 u_lightdiffuse1 : register(c41);
float3 u_lightspecular1 : register(c45);
float3 u_lightpos2 : register(c26);
float3 u_lightatt2 : register(c34);
float3 u_lightdir2 : register(c30);
float4 u_lightangle_spotCoef2 : register(c38);
float3 u_lightambient2 : register(c50);
float3 u_lightdiffuse2 : register(c42);
float3 u_lightspecular2 : register(c46);
float3 u_lightpos3 : register(c27);
float3 u_lightambient3 : register(c51);
float3 u_lightdiffuse3 : register(c43);
float3 u_lightspecular3 : register(c47);
float4 u_ambient : register(c19);
float3 u_matdiffuse : register(c21);
float4 u_matspecular : register(c22);
float3 u_matemissive : register(c23);
float4 u_cullRangeMin : register(c80);
float4 u_cullRangeMax : register(c81);
struct VS_IN {
float2 texcoord : TEXCOORD0;
float3 normal : NORMAL;
float3 position : POSITION;
};
struct VS_OUT {
float3 v_texcoord : TEXCOORD0;
float4 v_color0 : COLOR0;
float3 v_color1 : COLOR1;
float4 gl_Position : POSITION;
};
VS_OUT main(VS_IN In) {
VS_OUT Out;
float3 worldpos = mul(float4(In.position.xyz, 1.0), u_world);
float3 worldnormal = normalize(mul(float4(In.normal, 0.0), u_world));
float4 viewPos = float4(mul(float4(worldpos, 1.0), u_view), 1.0);
float4 outPos = mul(viewPos, u_proj);
float4 lightSum0 = u_ambient * u_matambientalpha + float4(u_matemissive, 0.0);
float3 lightSum1 = 0;
float3 toLight;
float3 diffuse;
float distance;
float lightScale;
float ldot;
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 + float3(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);
angle = length(u_lightdir1) == 0.0 ? 0.0 : dot(normalize(u_lightdir1), toLight);
if (angle >= u_lightangle_spotCoef1.x) {
lightScale = clamp(1.0 / dot(u_lightatt1, float3(1.0, distance, distance*distance)), 0.0, 1.0) * (u_lightangle_spotCoef1.y <= 0.0 ? 1.0 : pow(angle, u_lightangle_spotCoef1.y));
} else {
lightScale = 0.0;
}
diffuse = (u_lightdiffuse1 * u_matdiffuse) * max(ldot, 0.0);
if (ldot >= 0.0) {
ldot = dot(normalize(toLight + float3(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_lightdir2), toLight);
if (angle >= u_lightangle_spotCoef2.x) {
lightScale = clamp(1.0 / dot(u |
2 |
2 |
70 |
2020-10-15 |
| D3D error in shader compilation: info: C:\Program Files\PPSSPP\Shader@0x0000000008BC6FD0(110,16-57): error X4505: maximum temp register index exceeded
C:\Program Files\PPSSPP\Shader@0x0000000008BC6FD0(110,12-71): error X4505: maximum temp register index exceeded
/ code: #pragma warning( disable : 3571 )
float4x4 u_proj : register(c0);
float2 u_fogcoef : register(c18);
float4 u_matambientalpha : register(c20);
float4x3 u_world : register(c11);
float4x3 u_view : register(c8);
float4 u_uvscaleoffset : register(c17);
float3 u_lightpos0 : register(c24);
float3 u_lightambient0 : register(c48);
float3 u_lightdiffuse0 : register(c40);
float3 u_lightspecular0 : register(c44);
float3 u_lightpos1 : register(c25);
float3 u_lightatt1 : register(c33);
float3 u_lightdir1 : register(c29);
float4 u_lightangle_spotCoef1 : register(c37);
float3 u_lightambient1 : register(c49);
float3 u_lightdiffuse1 : register(c41);
float3 u_lightspecular1 : register(c45);
float3 u_lightpos2 : register(c26);
float3 u_lightatt2 : register(c34);
float3 u_lightdir2 : register(c30);
float4 u_lightangle_spotCoef2 : register(c38);
float3 u_lightambient2 : register(c50);
float3 u_lightdiffuse2 : register(c42);
float3 u_lightspecular2 : register(c46);
float3 u_lightpos3 : register(c27);
float3 u_lightambient3 : register(c51);
float3 u_lightdiffuse3 : register(c43);
float3 u_lightspecular3 : register(c47);
float4 u_ambient : register(c19);
float3 u_matdiffuse : register(c21);
float4 u_matspecular : register(c22);
float3 u_matemissive : register(c23);
float4 u_cullRangeMin : register(c80);
float4 u_cullRangeMax : register(c81);
struct VS_IN {
float2 texcoord : TEXCOORD0;
float3 normal : NORMAL;
float3 position : POSITION;
};
struct VS_OUT {
float3 v_texcoord : TEXCOORD0;
float4 v_color0 : COLOR0;
float3 v_color1 : COLOR1;
float v_fogdepth: TEXCOORD1;
float4 gl_Position : POSITION;
};
VS_OUT main(VS_IN In) {
VS_OUT Out;
float3 worldpos = mul(float4(In.position.xyz, 1.0), u_world);
float3 worldnormal = normalize(mul(float4(In.normal, 0.0), u_world));
float4 viewPos = float4(mul(float4(worldpos, 1.0), u_view), 1.0);
float4 outPos = mul(viewPos, u_proj);
float4 lightSum0 = u_ambient * u_matambientalpha + float4(u_matemissive, 0.0);
float3 lightSum1 = 0;
float3 toLight;
float3 diffuse;
float distance;
float lightScale;
float ldot;
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 + float3(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);
angle = length(u_lightdir1) == 0.0 ? 0.0 : dot(normalize(u_lightdir1), toLight);
if (angle >= u_lightangle_spotCoef1.x) {
lightScale = clamp(1.0 / dot(u_lightatt1, float3(1.0, distance, distance*distance)), 0.0, 1.0) * (u_lightangle_spotCoef1.y <= 0.0 ? 1.0 : pow(angle, u_lightangle_spotCoef1.y));
} else {
lightScale = 0.0;
}
diffuse = (u_lightdiffuse1 * u_matdiffuse) * max(ldot, 0.0);
if (ldot >= 0.0) {
ldot = dot(normalize(toLight + float3(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_lightdir2), toLight);
if (angle >= u_lightangle_spotCoef |
1 |
1 |
68 |
2020-11-12 |
| D3D error in shader compilation: info: C:\Users\Familia Arrieta\Downloads\PPSSPP\Shader@0x000001E9A0891E10(122,16-57): error X4505: maximum temp register index exceeded
C:\Users\Familia Arrieta\Downloads\PPSSPP\Shader@0x000001E9A0891E10(122,12-71): error X4505: maximum temp register index exceeded
/ code: #pragma warning( disable : 3571 )
float4x4 u_proj : register(c0);
float4 u_matambientalpha : register(c20);
float4x3 u_world : register(c11);
float4x3 u_view : register(c8);
float4 u_uvscaleoffset : register(c17);
float3 u_lightpos0 : register(c24);
float3 u_lightatt0 : register(c32);
float3 u_lightdir0 : register(c28);
float4 u_lightangle_spotCoef0 : register(c36);
float3 u_lightambient0 : register(c48);
float3 u_lightdiffuse0 : register(c40);
float3 u_lightspecular0 : register(c44);
float3 u_lightpos1 : register(c25);
float3 u_lightatt1 : register(c33);
float3 u_lightdir1 : register(c29);
float4 u_lightangle_spotCoef1 : register(c37);
float3 u_lightambient1 : register(c49);
float3 u_lightdiffuse1 : register(c41);
float3 u_lightspecular1 : register(c45);
float3 u_lightpos2 : register(c26);
float3 u_lightatt2 : register(c34);
float3 u_lightdir2 : register(c30);
float4 u_lightangle_spotCoef2 : register(c38);
float3 u_lightambient2 : register(c50);
float3 u_lightdiffuse2 : register(c42);
float3 u_lightspecular2 : register(c46);
float3 u_lightpos3 : register(c27);
float3 u_lightatt3 : register(c35);
float3 u_lightdir3 : register(c31);
float4 u_lightangle_spotCoef3 : register(c39);
float3 u_lightambient3 : register(c51);
float3 u_lightdiffuse3 : register(c43);
float3 u_lightspecular3 : register(c47);
float4 u_ambient : register(c19);
float3 u_matdiffuse : register(c21);
float4 u_matspecular : register(c22);
float3 u_matemissive : register(c23);
float4 u_cullRangeMin : register(c80);
float4 u_cullRangeMax : register(c81);
struct VS_IN {
float2 texcoord : TEXCOORD0;
float3 normal : NORMAL;
float3 position : POSITION;
};
struct VS_OUT {
float3 v_texcoord : TEXCOORD0;
float4 v_color0 : COLOR0;
float3 v_color1 : COLOR1;
float4 gl_Position : POSITION;
};
VS_OUT main(VS_IN In) {
VS_OUT Out;
float3 worldpos = mul(float4(In.position.xyz, 1.0), u_world);
float3 worldnormal = normalize(mul(float4(In.normal, 0.0), u_world));
float4 viewPos = float4(mul(float4(worldpos, 1.0), u_view), 1.0);
float4 outPos = mul(viewPos, u_proj);
float4 lightSum0 = u_ambient * u_matambientalpha + float4(u_matemissive, 0.0);
float3 lightSum1 = 0;
float3 toLight;
float3 diffuse;
float distance;
float lightScale;
float ldot;
float angle;
toLight = u_lightpos0 - worldpos;
distance = length(toLight);
toLight /= distance;
ldot = dot(toLight, worldnormal);
angle = length(u_lightdir0) == 0.0 ? 0.0 : dot(normalize(u_lightdir0), toLight);
if (angle >= u_lightangle_spotCoef0.x) {
lightScale = clamp(1.0 / dot(u_lightatt0, float3(1.0, distance, distance*distance)), 0.0, 1.0) * (u_lightangle_spotCoef0.y <= 0.0 ? 1.0 : pow(angle, u_lightangle_spotCoef0.y));
} else {
lightScale = 0.0;
}
diffuse = (u_lightdiffuse0 * u_matdiffuse) * max(ldot, 0.0);
if (ldot >= 0.0) {
ldot = dot(normalize(toLight + float3(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 * lightScale;
}
lightSum0.rgb += (u_lightambient0 * u_matambientalpha.rgb + diffuse) * lightScale;
toLight = u_lightpos1 - worldpos;
distance = length(toLight);
toLight /= distance;
ldot = dot(toLight, worldnormal);
angle = length(u_lightdir1) == 0.0 ? 0.0 : dot(normalize(u_lightdir1), toLight);
if (angle >= u_lightangle_spotCoef1.x) {
lightScale = clamp(1.0 / dot(u_lightatt1, float3(1.0, distance, distance*distance)), 0.0, 1.0) * (u_lightangle_spotCoef1.y <= 0.0 ? 1.0 : pow(angle, u_lightangle_spotCoef1.y));
} else {
lightScale = 0.0;
}
diffuse = (u_lightdiffuse1 * u_matdiffuse) * max(ldot, 0.0);
if |
1 |
1 |
67 |
2021-11-10 |
| D3D error in shader compilation: info: C:\RomStation\app\emulators\downloads\PPSSPP\files\PPSSPP 1.10.3 (x86)\Shader@0x08497F20(95,31-45): error X3004: undeclared identifier 'u_spline_counts'
/ code: #pragma warning( disable : 3571 )
float4x4 u_proj : register(c0);
float4 u_matambientalpha : register(c20);
float4x3 u_world : register(c11);
float4x3 u_view : register(c8);
float4 u_uvscaleoffset : register(c17);
float4 u_cullRangeMin : register(c80);
float4 u_cullRangeMax : register(c81);
struct VS_IN {
float2 texcoord : TEXCOORD0;
float4 color0 : COLOR0;
float3 normal : NORMAL;
float3 position : POSITION;
};
struct VS_OUT {
float3 v_texcoord : TEXCOORD0;
float4 v_color0 : COLOR0;
float4 gl_Position : POSITION;
};
float2 tess_sample(in float2 points[16], float4x4 weights) {
float2 pos = float2(0.0, 0.0);
pos += weights[0][0] * points[0];
pos += weights[0][1] * points[1];
pos += weights[0][2] * points[2];
pos += weights[0][3] * points[3];
pos += weights[1][0] * points[4];
pos += weights[1][1] * points[5];
pos += weights[1][2] * points[6];
pos += weights[1][3] * points[7];
pos += weights[2][0] * points[8];
pos += weights[2][1] * points[9];
pos += weights[2][2] * points[10];
pos += weights[2][3] * points[11];
pos += weights[3][0] * points[12];
pos += weights[3][1] * points[13];
pos += weights[3][2] * points[14];
pos += weights[3][3] * points[15];
return pos;
}
float3 tess_sample(in float3 points[16], float4x4 weights) {
float3 pos = float3(0.0, 0.0, 0.0);
pos += weights[0][0] * points[0];
pos += weights[0][1] * points[1];
pos += weights[0][2] * points[2];
pos += weights[0][3] * points[3];
pos += weights[1][0] * points[4];
pos += weights[1][1] * points[5];
pos += weights[1][2] * points[6];
pos += weights[1][3] * points[7];
pos += weights[2][0] * points[8];
pos += weights[2][1] * points[9];
pos += weights[2][2] * points[10];
pos += weights[2][3] * points[11];
pos += weights[3][0] * points[12];
pos += weights[3][1] * points[13];
pos += weights[3][2] * points[14];
pos += weights[3][3] * points[15];
return pos;
}
float4 tess_sample(in float4 points[16], float4x4 weights) {
float4 pos = float4(0.0, 0.0, 0.0, 0.0);
pos += weights[0][0] * points[0];
pos += weights[0][1] * points[1];
pos += weights[0][2] * points[2];
pos += weights[0][3] * points[3];
pos += weights[1][0] * points[4];
pos += weights[1][1] * points[5];
pos += weights[1][2] * points[6];
pos += weights[1][3] * points[7];
pos += weights[2][0] * points[8];
pos += weights[2][1] * points[9];
pos += weights[2][2] * points[10];
pos += weights[2][3] * points[11];
pos += weights[3][0] * points[12];
pos += weights[3][1] * points[13];
pos += weights[3][2] * points[14];
pos += weights[3][3] * points[15];
return pos;
}
float4x4 outerProduct(float4 u, float4 v) {
return mul((float4x1)v, (float1x4)u);
}
struct Tess {
float3 pos;
float2 tex;
float4 col;
};
void tessellate(in VS_IN In, out Tess tess) {
int2 point_pos = int2(In.position.z, In.normal.z) * 3;
int2 weight_idx = int2(In.position.xy);
float3 _pos[16];
float2 _tex[16];
float4 _col[16];
int index;
index = (0 + point_pos.y) * u_spline_counts + (0 + point_pos.x);
_pos[0] = tess_data[index].pos;
index = (0 + point_pos.y) * u_spline_counts + (1 + point_pos.x);
_pos[1] = tess_data[index].pos;
index = (0 + point_pos.y) * u_spline_counts + (2 + point_pos.x);
_pos[2] = tess_data[index].pos;
index = (0 + point_pos.y) * u_spline_counts + (3 + point_pos.x);
_pos[3] = tess_data[index].pos;
index = (1 + point_pos.y) * u_spline_counts + (0 + point_pos.x);
_pos[4] = tess_data[index].pos;
index = (1 + point_pos.y) * u_spline_counts + (1 + point_pos.x);
_pos[5] = tess_data[index].pos;
index = (1 + point_pos.y) * u_spline_counts + (2 + point_pos.x);
_pos[6] = tess_data[index].pos;
index = (1 + point_pos.y) * u_spline_counts + (3 + point_pos.x);
_pos[7] = tess_data[index].pos;
index = (2 + point_pos.y) * u_spline_counts + (0 + point_pos.x) |
1 |
1 |
66 |
2022-09-04 |
| D3D error in shader compilation: info: F:\PPSSPP\Shader@0x000000000F627140(97,16-55): error X4505: maximum temp register index exceeded
F:\PPSSPP\Shader@0x000000000F627140(97,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);
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_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;
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_lightdir2), toLight);
if (angle >= u_lightangle_spotCoef2.x) {
lightScale = clamp(1.0 / dot(u_lightatt2, vec3(1.0, distanc |
1 |
1 |
66 |
2022-05-21 |
| D3D error in shader compilation: info: C:\Program Files\PPSSPP\Shader@0x000000000975F2D0(95,31-45): error X3004: undeclared identifier 'u_spline_counts'
/ code: #pragma warning( disable : 3571 )
float4x4 u_proj : register(c0);
float4 u_matambientalpha : register(c20);
float4x3 u_world : register(c11);
float4x3 u_view : register(c8);
float4 u_uvscaleoffset : register(c17);
float4 u_cullRangeMin : register(c80);
float4 u_cullRangeMax : register(c81);
struct VS_IN {
float2 texcoord : TEXCOORD0;
float4 color0 : COLOR0;
float3 normal : NORMAL;
float3 position : POSITION;
};
struct VS_OUT {
float3 v_texcoord : TEXCOORD0;
float4 v_color0 : COLOR0;
float4 gl_Position : POSITION;
};
float2 tess_sample(in float2 points[16], float4x4 weights) {
float2 pos = float2(0.0, 0.0);
pos += weights[0][0] * points[0];
pos += weights[0][1] * points[1];
pos += weights[0][2] * points[2];
pos += weights[0][3] * points[3];
pos += weights[1][0] * points[4];
pos += weights[1][1] * points[5];
pos += weights[1][2] * points[6];
pos += weights[1][3] * points[7];
pos += weights[2][0] * points[8];
pos += weights[2][1] * points[9];
pos += weights[2][2] * points[10];
pos += weights[2][3] * points[11];
pos += weights[3][0] * points[12];
pos += weights[3][1] * points[13];
pos += weights[3][2] * points[14];
pos += weights[3][3] * points[15];
return pos;
}
float3 tess_sample(in float3 points[16], float4x4 weights) {
float3 pos = float3(0.0, 0.0, 0.0);
pos += weights[0][0] * points[0];
pos += weights[0][1] * points[1];
pos += weights[0][2] * points[2];
pos += weights[0][3] * points[3];
pos += weights[1][0] * points[4];
pos += weights[1][1] * points[5];
pos += weights[1][2] * points[6];
pos += weights[1][3] * points[7];
pos += weights[2][0] * points[8];
pos += weights[2][1] * points[9];
pos += weights[2][2] * points[10];
pos += weights[2][3] * points[11];
pos += weights[3][0] * points[12];
pos += weights[3][1] * points[13];
pos += weights[3][2] * points[14];
pos += weights[3][3] * points[15];
return pos;
}
float4 tess_sample(in float4 points[16], float4x4 weights) {
float4 pos = float4(0.0, 0.0, 0.0, 0.0);
pos += weights[0][0] * points[0];
pos += weights[0][1] * points[1];
pos += weights[0][2] * points[2];
pos += weights[0][3] * points[3];
pos += weights[1][0] * points[4];
pos += weights[1][1] * points[5];
pos += weights[1][2] * points[6];
pos += weights[1][3] * points[7];
pos += weights[2][0] * points[8];
pos += weights[2][1] * points[9];
pos += weights[2][2] * points[10];
pos += weights[2][3] * points[11];
pos += weights[3][0] * points[12];
pos += weights[3][1] * points[13];
pos += weights[3][2] * points[14];
pos += weights[3][3] * points[15];
return pos;
}
float4x4 outerProduct(float4 u, float4 v) {
return mul((float4x1)v, (float1x4)u);
}
struct Tess {
float3 pos;
float2 tex;
float4 col;
};
void tessellate(in VS_IN In, out Tess tess) {
int2 point_pos = int2(In.position.z, In.normal.z) * 3;
int2 weight_idx = int2(In.position.xy);
float3 _pos[16];
float2 _tex[16];
float4 _col[16];
int index;
index = (0 + point_pos.y) * u_spline_counts + (0 + point_pos.x);
_pos[0] = tess_data[index].pos;
_tex[0] = tess_data[index].tex;
index = (0 + point_pos.y) * u_spline_counts + (1 + point_pos.x);
_pos[1] = tess_data[index].pos;
_tex[1] = tess_data[index].tex;
index = (0 + point_pos.y) * u_spline_counts + (2 + point_pos.x);
_pos[2] = tess_data[index].pos;
_tex[2] = tess_data[index].tex;
index = (0 + point_pos.y) * u_spline_counts + (3 + point_pos.x);
_pos[3] = tess_data[index].pos;
_tex[3] = tess_data[index].tex;
index = (1 + point_pos.y) * u_spline_counts + (0 + point_pos.x);
_pos[4] = tess_data[index].pos;
_tex[4] = tess_data[index].tex;
index = (1 + point_pos.y) * u_spline_counts + (1 + point_pos.x);
_pos[5] = tess_data[index].pos;
_tex[5] = tess_data[index].tex;
index = (1 + point_pos.y) * u_spline_counts + (2 + point_pos.x);
_pos[6] = tess_data[index].pos;
|
1 |
1 |
66 |
2021-02-06 |
| D3D error in shader compilation: info: C:\Program Files\PPSSPP\Shader@0x0EAC2AE0(133,16-57): error X4505: maximum temp register index exceeded
C:\Program Files\PPSSPP\Shader@0x0EAC2AE0(133,12-71): error X4505: maximum temp register index exceeded
/ code: #pragma warning( disable : 3571 )
float4x4 u_proj : register(c0);
float4 u_matambientalpha : register(c20);
float4x3 u_world : register(c11);
float4x3 u_view : register(c8);
float4 u_uvscaleoffset : register(c17);
float3 u_lightpos0 : register(c24);
float3 u_lightambient0 : register(c48);
float3 u_lightdiffuse0 : register(c40);
float3 u_lightspecular0 : register(c44);
float3 u_lightpos1 : register(c25);
float3 u_lightatt1 : register(c33);
float3 u_lightdir1 : register(c29);
float4 u_lightangle_spotCoef1 : register(c37);
float3 u_lightambient1 : register(c49);
float3 u_lightdiffuse1 : register(c41);
float3 u_lightspecular1 : register(c45);
float3 u_lightpos2 : register(c26);
float3 u_lightatt2 : register(c34);
float3 u_lightdir2 : register(c30);
float4 u_lightangle_spotCoef2 : register(c38);
float3 u_lightambient2 : register(c50);
float3 u_lightdiffuse2 : register(c42);
float3 u_lightspecular2 : register(c46);
float3 u_lightpos3 : register(c27);
float3 u_lightatt3 : register(c35);
float3 u_lightdir3 : register(c31);
float4 u_lightangle_spotCoef3 : register(c39);
float3 u_lightambient3 : register(c51);
float3 u_lightdiffuse3 : register(c43);
float3 u_lightspecular3 : register(c47);
float4 u_ambient : register(c19);
float3 u_matdiffuse : register(c21);
float4 u_matspecular : register(c22);
float3 u_matemissive : register(c23);
float4 u_cullRangeMin : register(c80);
float4 u_cullRangeMax : register(c81);
struct VS_IN {
float2 texcoord : TEXCOORD0;
float3 normal : NORMAL;
float3 position : POSITION;
};
struct VS_OUT {
float3 v_texcoord : TEXCOORD0;
float4 v_color0 : COLOR0;
float3 v_color1 : COLOR1;
float4 gl_Position : POSITION;
};
VS_OUT main(VS_IN In) {
VS_OUT Out;
float3 worldpos = mul(float4(In.position.xyz, 1.0), u_world);
float3 worldnormal = normalize(mul(float4(In.normal, 0.0), u_world));
float4 viewPos = float4(mul(float4(worldpos, 1.0), u_view), 1.0);
float4 outPos = mul(viewPos, u_proj);
float4 lightSum0 = u_ambient * u_matambientalpha + float4(u_matemissive, 0.0);
float3 lightSum1 = 0;
float3 toLight;
float3 diffuse;
float distance;
float lightScale;
float ldot;
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 + float3(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);
angle = length(u_lightdir1) == 0.0 ? 0.0 : dot(normalize(u_lightdir1), toLight);
if (angle >= u_lightangle_spotCoef1.x) {
lightScale = clamp(1.0 / dot(u_lightatt1, float3(1.0, distance, distance*distance)), 0.0, 1.0) * (u_lightangle_spotCoef1.y == 0.0 ? 1.0 : pow(angle, u_lightangle_spotCoef1.y));
} else {
lightScale = 0.0;
}
diffuse = (u_lightdiffuse1 * u_matdiffuse) * max(ldot, 0.0);
if (ldot >= 0.0) {
ldot = dot(normalize(toLight + float3(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_lightdir2), toLight) |
1 |
1 |
66 |
2020-04-24 |
| D3D error in shader compilation: info: (91): error X4004: program too complex; there are more active values than registers
/ code: #pragma warning( disable : 3571 )
float4x4 u_proj : register(c0);
float4 u_matambientalpha : register(c20);
float4x3 u_world : register(c11);
float4x3 u_view : register(c8);
float4 u_uvscaleoffset : register(c17);
float3 u_lightpos0 : register(c24);
float3 u_lightatt0 : register(c32);
float3 u_lightambient0 : register(c48);
float3 u_lightdiffuse0 : register(c40);
float3 u_lightspecular0 : register(c44);
float3 u_lightpos1 : register(c25);
float3 u_lightatt1 : register(c33);
float3 u_lightambient1 : register(c49);
float3 u_lightdiffuse1 : register(c41);
float3 u_lightspecular1 : register(c45);
float3 u_lightpos2 : register(c26);
float3 u_lightatt2 : register(c34);
float3 u_lightambient2 : register(c50);
float3 u_lightdiffuse2 : register(c42);
float3 u_lightspecular2 : register(c46);
float3 u_lightpos3 : register(c27);
float3 u_lightatt3 : register(c35);
float3 u_lightambient3 : register(c51);
float3 u_lightdiffuse3 : register(c43);
float3 u_lightspecular3 : register(c47);
float4 u_ambient : register(c19);
float3 u_matdiffuse : register(c21);
float4 u_matspecular : register(c22);
float3 u_matemissive : register(c23);
float4 u_cullRangeMin : register(c80);
float4 u_cullRangeMax : register(c81);
struct VS_IN {
float2 texcoord : TEXCOORD0;
float3 normal : NORMAL;
float3 position : POSITION;
};
struct VS_OUT {
float3 v_texcoord : TEXCOORD0;
float4 v_color0 : COLOR0;
float3 v_color1 : COLOR1;
float4 gl_Position : POSITION;
};
VS_OUT main(VS_IN In) {
VS_OUT Out;
float3 worldpos = mul(float4(In.position.xyz, 1.0), u_world);
float3 worldnormal = normalize(mul(float4(In.normal, 0.0), u_world));
float4 viewPos = float4(mul(float4(worldpos, 1.0), u_view), 1.0);
float4 outPos = mul(viewPos, u_proj);
float4 lightSum0 = u_ambient * u_matambientalpha + float4(u_matemissive, 0.0);
float3 lightSum1 = 0;
float3 toLight;
float3 diffuse;
float distance;
float lightScale;
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, float3(1.0, distance, distance*distance)), 0.0, 1.0);
diffuse = (u_lightdiffuse0 * u_matdiffuse) * ldot;
ldot = dot(normalize(toLight + float3(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 * u_matambientalpha.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, float3(1.0, distance, distance*distance)), 0.0, 1.0);
diffuse = (u_lightdiffuse1 * u_matdiffuse) * ldot;
ldot = dot(normalize(toLight + float3(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 * u_matambientalpha.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, float3(1.0, distance, distance*distance)), 0.0, 1.0);
diffuse = (u_lightdiffuse2 * u_matdiffuse) * ldot;
ldot = dot(normalize(toLight + float3(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 * u_matambientalpha.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, float3(1.0, distance, distance*distance)), 0.0, 1.0);
diffuse = (u_lightdiffuse3 * u_matdiffuse) * ldot;
ldot = dot(normalize(toLig |
1 |
1 |
66 |
2020-04-11 |
| D3D error in shader compilation: info: F:\PPSSPP\Shader@0x000000000F7F1270(97,16-55): error X4505: maximum temp register index exceeded
F:\PPSSPP\Shader@0x000000000F7F1270(97,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);
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_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;
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_lightdir2), toLight);
if (angle >= u_lightangle_spotCoef2.x) {
lightScale = clamp(1.0 / dot(u_lightatt2, vec3(1.0, distanc |
1 |
1 |
65 |
2022-06-02 |
| D3D error in shader compilation: info: C:\Users\power lion\Downloads\ppsspp-1-10-3\Shader@0x0C5CA148(110,16-57): error X4505: maximum temp register index exceeded
C:\Users\power lion\Downloads\ppsspp-1-10-3\Shader@0x0C5CA148(110,12-71): error X4505: maximum temp register index exceeded
/ code: #pragma warning( disable : 3571 )
float4x4 u_proj : register(c0);
float2 u_fogcoef : register(c18);
float4 u_matambientalpha : register(c20);
float4x3 u_world : register(c11);
float4x3 u_view : register(c8);
float4 u_uvscaleoffset : register(c17);
float3 u_lightpos0 : register(c24);
float3 u_lightambient0 : register(c48);
float3 u_lightdiffuse0 : register(c40);
float3 u_lightspecular0 : register(c44);
float3 u_lightpos1 : register(c25);
float3 u_lightatt1 : register(c33);
float3 u_lightdir1 : register(c29);
float4 u_lightangle_spotCoef1 : register(c37);
float3 u_lightambient1 : register(c49);
float3 u_lightdiffuse1 : register(c41);
float3 u_lightspecular1 : register(c45);
float3 u_lightpos2 : register(c26);
float3 u_lightatt2 : register(c34);
float3 u_lightdir2 : register(c30);
float4 u_lightangle_spotCoef2 : register(c38);
float3 u_lightambient2 : register(c50);
float3 u_lightdiffuse2 : register(c42);
float3 u_lightspecular2 : register(c46);
float3 u_lightpos3 : register(c27);
float3 u_lightambient3 : register(c51);
float3 u_lightdiffuse3 : register(c43);
float3 u_lightspecular3 : register(c47);
float4 u_ambient : register(c19);
float3 u_matdiffuse : register(c21);
float4 u_matspecular : register(c22);
float3 u_matemissive : register(c23);
float4 u_cullRangeMin : register(c80);
float4 u_cullRangeMax : register(c81);
struct VS_IN {
float2 texcoord : TEXCOORD0;
float3 normal : NORMAL;
float3 position : POSITION;
};
struct VS_OUT {
float3 v_texcoord : TEXCOORD0;
float4 v_color0 : COLOR0;
float3 v_color1 : COLOR1;
float v_fogdepth: TEXCOORD1;
float4 gl_Position : POSITION;
};
VS_OUT main(VS_IN In) {
VS_OUT Out;
float3 worldpos = mul(float4(In.position.xyz, 1.0), u_world);
float3 worldnormal = normalize(mul(float4(In.normal, 0.0), u_world));
float4 viewPos = float4(mul(float4(worldpos, 1.0), u_view), 1.0);
float4 outPos = mul(viewPos, u_proj);
float4 lightSum0 = u_ambient * u_matambientalpha + float4(u_matemissive, 0.0);
float3 lightSum1 = 0;
float3 toLight;
float3 diffuse;
float distance;
float lightScale;
float ldot;
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 + float3(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);
angle = length(u_lightdir1) == 0.0 ? 0.0 : dot(normalize(u_lightdir1), toLight);
if (angle >= u_lightangle_spotCoef1.x) {
lightScale = clamp(1.0 / dot(u_lightatt1, float3(1.0, distance, distance*distance)), 0.0, 1.0) * (u_lightangle_spotCoef1.y <= 0.0 ? 1.0 : pow(angle, u_lightangle_spotCoef1.y));
} else {
lightScale = 0.0;
}
diffuse = (u_lightdiffuse1 * u_matdiffuse) * max(ldot, 0.0);
if (ldot >= 0.0) {
ldot = dot(normalize(toLight + float3(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_lightdir2), toLight);
if (angle |
1 |
1 |
65 |
2020-10-11 |
| D3D error in shader compilation: info: (98): error X4004: program too complex; there are more active values than registers
/ code: #pragma warning( disable : 3571 )
float4x4 u_proj : register(c0);
float2 u_fogcoef : register(c18);
float4 u_matambientalpha : register(c20);
float4x3 u_world : register(c11);
float4x3 u_view : register(c8);
float4 u_uvscaleoffset : register(c17);
float3 u_lightpos0 : register(c24);
float3 u_lightambient0 : register(c48);
float3 u_lightdiffuse0 : register(c40);
float3 u_lightspecular0 : register(c44);
float3 u_lightpos1 : register(c25);
float3 u_lightatt1 : register(c33);
float3 u_lightdir1 : register(c29);
float4 u_lightangle_spotCoef1 : register(c37);
float3 u_lightambient1 : register(c49);
float3 u_lightdiffuse1 : register(c41);
float3 u_lightspecular1 : register(c45);
float3 u_lightpos2 : register(c26);
float3 u_lightatt2 : register(c34);
float3 u_lightdir2 : register(c30);
float4 u_lightangle_spotCoef2 : register(c38);
float3 u_lightambient2 : register(c50);
float3 u_lightdiffuse2 : register(c42);
float3 u_lightspecular2 : register(c46);
float3 u_lightpos3 : register(c27);
float3 u_lightatt3 : register(c35);
float3 u_lightdir3 : register(c31);
float4 u_lightangle_spotCoef3 : register(c39);
float3 u_lightambient3 : register(c51);
float3 u_lightdiffuse3 : register(c43);
float3 u_lightspecular3 : register(c47);
float4 u_ambient : register(c19);
float3 u_matdiffuse : register(c21);
float4 u_matspecular : register(c22);
float3 u_matemissive : register(c23);
float4 u_cullRangeMin : register(c80);
float4 u_cullRangeMax : register(c81);
struct VS_IN {
float2 texcoord : TEXCOORD0;
float3 normal : NORMAL;
float3 position : POSITION;
};
struct VS_OUT {
float3 v_texcoord : TEXCOORD0;
float4 v_color0 : COLOR0;
float3 v_color1 : COLOR1;
float v_fogdepth: TEXCOORD1;
float4 gl_Position : POSITION;
};
VS_OUT main(VS_IN In) {
VS_OUT Out;
float3 worldpos = mul(float4(In.position.xyz, 1.0), u_world);
float3 worldnormal = normalize(mul(float4(In.normal, 0.0), u_world));
float4 viewPos = float4(mul(float4(worldpos, 1.0), u_view), 1.0);
float4 outPos = mul(viewPos, u_proj);
float4 lightSum0 = u_ambient * u_matambientalpha + float4(u_matemissive, 0.0);
float3 lightSum1 = 0;
float3 toLight;
float3 diffuse;
float distance;
float lightScale;
float ldot;
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 + float3(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);
angle = length(u_lightdir1) == 0.0 ? 0.0 : dot(normalize(u_lightdir1), toLight);
if (angle >= u_lightangle_spotCoef1.x) {
lightScale = clamp(1.0 / dot(u_lightatt1, float3(1.0, distance, distance*distance)), 0.0, 1.0) * (u_lightangle_spotCoef1.y == 0.0 ? 1.0 : pow(angle, u_lightangle_spotCoef1.y));
} else {
lightScale = 0.0;
}
diffuse = (u_lightdiffuse1 * u_matdiffuse) * max(ldot, 0.0);
if (ldot >= 0.0) {
ldot = dot(normalize(toLight + float3(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_lightdir2), toLight);
if (angle >= u_lightangle_spotCoef2.x) {
lightScale |
1 |
1 |
62 |
2019-07-20 |
| D3D error in shader compilation: info: C:\Program Files\PPSSPP\Shader@0x0EAA7020(123,16-55): error X4505: maximum temp register index exceeded
C:\Program Files\PPSSPP\Shader@0x0EAA7020(123,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);
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_lightdir1 : register(c29);
vec4 u_lightangle_spotCoef1 : register(c37);
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_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;
vec4 gl_Position : POSITION;
};
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 = normalize(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);
angle = length(u_lightdir1) == 0.0 ? 0.0 : dot(normalize(u_lightdir1), toLight);
if (angle >= u_lightangle_spotCoef1.x) {
lightScale = clamp(1.0 / dot(u_lightatt1, vec3(1.0, distance, distance*distance)), 0.0, 1.0) * (u_lightangle_spotCoef1.y <= 0.0 ? 1.0 : pow(angle, u_lightangle_spotCoef1.y));
} else {
lightScale = 0.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 / |
1 |
1 |
61 |
2021-04-27 |
| D3D error in shader compilation: info: F:\PPSSPP\Shader@0x000000000E8820E0(97,16-55): error X4505: maximum temp register index exceeded
F:\PPSSPP\Shader@0x000000000E8820E0(97,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);
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_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;
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_lightdir2), toLight);
if (angle >= u_lightangle_spotCoef2.x) {
lightScale = clamp(1.0 / dot(u_lightatt2, vec3(1.0, distanc |
1 |
1 |
60 |
2022-06-01 |
| D3D error in shader compilation: info: C:\Program Files\PPSSPP\Shader@0x00000175324DCF10(93,31-45): error X3004: undeclared identifier 'u_spline_counts'
/ code: #pragma warning( disable : 3571 )
float4x4 u_proj : register(c0);
float2 u_fogcoef : register(c18);
float4 u_matambientalpha : register(c20);
float4x3 u_world : register(c11);
float4x3 u_view : register(c8);
float4 u_cullRangeMin : register(c80);
float4 u_cullRangeMax : register(c81);
struct VS_IN {
float4 color0 : COLOR0;
float3 normal : NORMAL;
float3 position : POSITION;
};
struct VS_OUT {
float4 v_color0 : COLOR0;
float v_fogdepth: TEXCOORD1;
float4 gl_Position : POSITION;
};
float2 tess_sample(in float2 points[16], float4x4 weights) {
float2 pos = float2(0.0, 0.0);
pos += weights[0][0] * points[0];
pos += weights[0][1] * points[1];
pos += weights[0][2] * points[2];
pos += weights[0][3] * points[3];
pos += weights[1][0] * points[4];
pos += weights[1][1] * points[5];
pos += weights[1][2] * points[6];
pos += weights[1][3] * points[7];
pos += weights[2][0] * points[8];
pos += weights[2][1] * points[9];
pos += weights[2][2] * points[10];
pos += weights[2][3] * points[11];
pos += weights[3][0] * points[12];
pos += weights[3][1] * points[13];
pos += weights[3][2] * points[14];
pos += weights[3][3] * points[15];
return pos;
}
float3 tess_sample(in float3 points[16], float4x4 weights) {
float3 pos = float3(0.0, 0.0, 0.0);
pos += weights[0][0] * points[0];
pos += weights[0][1] * points[1];
pos += weights[0][2] * points[2];
pos += weights[0][3] * points[3];
pos += weights[1][0] * points[4];
pos += weights[1][1] * points[5];
pos += weights[1][2] * points[6];
pos += weights[1][3] * points[7];
pos += weights[2][0] * points[8];
pos += weights[2][1] * points[9];
pos += weights[2][2] * points[10];
pos += weights[2][3] * points[11];
pos += weights[3][0] * points[12];
pos += weights[3][1] * points[13];
pos += weights[3][2] * points[14];
pos += weights[3][3] * points[15];
return pos;
}
float4 tess_sample(in float4 points[16], float4x4 weights) {
float4 pos = float4(0.0, 0.0, 0.0, 0.0);
pos += weights[0][0] * points[0];
pos += weights[0][1] * points[1];
pos += weights[0][2] * points[2];
pos += weights[0][3] * points[3];
pos += weights[1][0] * points[4];
pos += weights[1][1] * points[5];
pos += weights[1][2] * points[6];
pos += weights[1][3] * points[7];
pos += weights[2][0] * points[8];
pos += weights[2][1] * points[9];
pos += weights[2][2] * points[10];
pos += weights[2][3] * points[11];
pos += weights[3][0] * points[12];
pos += weights[3][1] * points[13];
pos += weights[3][2] * points[14];
pos += weights[3][3] * points[15];
return pos;
}
float4x4 outerProduct(float4 u, float4 v) {
return mul((float4x1)v, (float1x4)u);
}
struct Tess {
float3 pos;
float4 col;
};
void tessellate(in VS_IN In, out Tess tess) {
int2 point_pos = int2(In.position.z, In.normal.z);
int2 weight_idx = int2(In.position.xy);
float3 _pos[16];
float2 _tex[16];
float4 _col[16];
int index;
index = (0 + point_pos.y) * u_spline_counts + (0 + point_pos.x);
_pos[0] = tess_data[index].pos;
_col[0] = tess_data[index].col;
index = (0 + point_pos.y) * u_spline_counts + (1 + point_pos.x);
_pos[1] = tess_data[index].pos;
_col[1] = tess_data[index].col;
index = (0 + point_pos.y) * u_spline_counts + (2 + point_pos.x);
_pos[2] = tess_data[index].pos;
_col[2] = tess_data[index].col;
index = (0 + point_pos.y) * u_spline_counts + (3 + point_pos.x);
_pos[3] = tess_data[index].pos;
_col[3] = tess_data[index].col;
index = (1 + point_pos.y) * u_spline_counts + (0 + point_pos.x);
_pos[4] = tess_data[index].pos;
_col[4] = tess_data[index].col;
index = (1 + point_pos.y) * u_spline_counts + (1 + point_pos.x);
_pos[5] = tess_data[index].pos;
_col[5] = tess_data[index].col;
index = (1 + point_pos.y) * u_spline_counts + (2 + point_pos.x);
_pos[6] = tess_data[index].pos;
_col[6] = tess_data[index].col;
index = (1 + point_pos |
1 |
1 |
60 |
2020-12-24 |
| D3D error in shader compilation: info: C:\Users\power lion\Downloads\ppsspp-1-10-3\Shader@0x0FD6AF68(79,16-57): error X4505: maximum temp register index exceeded
C:\Users\power lion\Downloads\ppsspp-1-10-3\Shader@0x0FD6AF68(79,12-71): error X4505: maximum temp register index exceeded
/ code: #pragma warning( disable : 3571 )
float4x4 u_proj : register(c0);
float4 u_matambientalpha : register(c20);
float4x3 u_world : register(c11);
float4x3 u_view : register(c8);
float4 u_uvscaleoffset : register(c17);
float3 u_lightpos0 : register(c24);
float3 u_lightambient0 : register(c48);
float3 u_lightdiffuse0 : register(c40);
float3 u_lightspecular0 : register(c44);
float3 u_lightpos1 : register(c25);
float3 u_lightatt1 : register(c33);
float3 u_lightambient1 : register(c49);
float3 u_lightdiffuse1 : register(c41);
float3 u_lightspecular1 : register(c45);
float3 u_lightpos2 : register(c26);
float3 u_lightatt2 : register(c34);
float3 u_lightdir2 : register(c30);
float4 u_lightangle_spotCoef2 : register(c38);
float3 u_lightambient2 : register(c50);
float3 u_lightdiffuse2 : register(c42);
float3 u_lightspecular2 : register(c46);
float3 u_lightpos3 : register(c27);
float3 u_lightambient3 : register(c51);
float3 u_lightdiffuse3 : register(c43);
float3 u_lightspecular3 : register(c47);
float4 u_ambient : register(c19);
float3 u_matdiffuse : register(c21);
float4 u_matspecular : register(c22);
float3 u_matemissive : register(c23);
float4 u_cullRangeMin : register(c80);
float4 u_cullRangeMax : register(c81);
struct VS_IN {
float2 texcoord : TEXCOORD0;
float3 normal : NORMAL;
float3 position : POSITION;
};
struct VS_OUT {
float3 v_texcoord : TEXCOORD0;
float4 v_color0 : COLOR0;
float3 v_color1 : COLOR1;
float4 gl_Position : POSITION;
};
VS_OUT main(VS_IN In) {
VS_OUT Out;
float3 worldpos = mul(float4(In.position.xyz, 1.0), u_world);
float3 worldnormal = normalize(mul(float4(In.normal, 0.0), u_world));
float4 viewPos = float4(mul(float4(worldpos, 1.0), u_view), 1.0);
float4 outPos = mul(viewPos, u_proj);
float4 lightSum0 = u_ambient * u_matambientalpha + float4(u_matemissive, 0.0);
float3 lightSum1 = 0;
float3 toLight;
float3 diffuse;
float distance;
float lightScale;
float ldot;
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 + float3(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, float3(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 + float3(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_lightdir2), toLight);
if (angle >= u_lightangle_spotCoef2.x) {
lightScale = clamp(1.0 / dot(u_lightatt2, float3(1.0, distance, distance*distance)), 0.0, 1.0) * (u_lightangle_spotCoef2.y <= 0.0 ? 1.0 : pow(angle, u_lightangle_spotCoef2.y));
} else {
lightScale = 0.0;
}
diffuse = (u_lightdiffuse2 * u_matdiffuse) * max(ldot, 0.0);
if (ldot >= 0.0) {
ldot = dot(normalize(toLight + float3(0.0, 0.0, 1.0)), worl |
1 |
1 |
58 |
2020-10-13 |
| D3D error in shader compilation: info: C:\Users\Smith\OneDrive\Desktop\Carpeta de Juegos\ppsspp-1-10-3\Shader@0x110E5D50(158,27): error X5615: Compiled shader code uses too many instruction slots (257). Max. allowed by the target (vs_2_0) is 256.
/ code: #pragma warning( disable : 3571 )
float4x4 u_proj : register(c0);
float2 u_fogcoef : register(c18);
float4 u_matambientalpha : register(c20);
float4x3 u_world : register(c11);
float4x3 u_view : register(c8);
float4 u_uvscaleoffset : register(c17);
float3 u_lightpos0 : register(c24);
float3 u_lightatt0 : register(c32);
float3 u_lightdir0 : register(c28);
float4 u_lightangle_spotCoef0 : register(c36);
float3 u_lightambient0 : register(c48);
float3 u_lightdiffuse0 : register(c40);
float3 u_lightspecular0 : register(c44);
float3 u_lightpos1 : register(c25);
float3 u_lightatt1 : register(c33);
float3 u_lightdir1 : register(c29);
float4 u_lightangle_spotCoef1 : register(c37);
float3 u_lightambient1 : register(c49);
float3 u_lightdiffuse1 : register(c41);
float3 u_lightspecular1 : register(c45);
float3 u_lightpos2 : register(c26);
float3 u_lightatt2 : register(c34);
float3 u_lightdir2 : register(c30);
float4 u_lightangle_spotCoef2 : register(c38);
float3 u_lightambient2 : register(c50);
float3 u_lightdiffuse2 : register(c42);
float3 u_lightspecular2 : register(c46);
float3 u_lightpos3 : register(c27);
float3 u_lightatt3 : register(c35);
float3 u_lightdir3 : register(c31);
float4 u_lightangle_spotCoef3 : register(c39);
float3 u_lightambient3 : register(c51);
float3 u_lightdiffuse3 : register(c43);
float3 u_lightspecular3 : register(c47);
float4 u_ambient : register(c19);
float4 u_matspecular : register(c22);
float3 u_matemissive : register(c23);
float4 u_cullRangeMin : register(c80);
float4 u_cullRangeMax : register(c81);
struct VS_IN {
float2 texcoord : TEXCOORD0;
float4 color0 : COLOR0;
float3 normal : NORMAL;
float3 position : POSITION;
};
struct VS_OUT {
float3 v_texcoord : TEXCOORD0;
float4 v_color0 : COLOR0;
float3 v_color1 : COLOR1;
float v_fogdepth: TEXCOORD1;
float4 gl_Position : POSITION;
};
VS_OUT main(VS_IN In) {
VS_OUT Out;
float3 worldpos = mul(float4(In.position.xyz, 1.0), u_world);
float3 worldnormal = normalize(mul(float4(In.normal, 0.0), u_world));
float4 viewPos = float4(mul(float4(worldpos, 1.0), u_view), 1.0);
float4 outPos = mul(viewPos, u_proj);
float4 lightSum0 = u_ambient * In.color0 + float4(u_matemissive, 0.0);
float3 lightSum1 = 0;
float3 toLight;
float3 diffuse;
float distance;
float lightScale;
float ldot;
float angle;
toLight = u_lightpos0 - worldpos;
distance = length(toLight);
toLight /= distance;
ldot = dot(toLight, worldnormal);
angle = length(u_lightdir0) == 0.0 ? 0.0 : dot(normalize(u_lightdir0), toLight);
if (angle >= u_lightangle_spotCoef0.x) {
lightScale = clamp(1.0 / dot(u_lightatt0, float3(1.0, distance, distance*distance)), 0.0, 1.0) * (u_lightangle_spotCoef0.y <= 0.0 ? 1.0 : pow(angle, u_lightangle_spotCoef0.y));
} else {
lightScale = 0.0;
}
diffuse = (u_lightdiffuse0 * In.color0.rgb) * max(ldot, 0.0);
if (ldot >= 0.0) {
ldot = dot(normalize(toLight + float3(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 * lightScale;
}
lightSum0.rgb += (u_lightambient0 * In.color0.rgb + diffuse) * lightScale;
toLight = u_lightpos1 - worldpos;
distance = length(toLight);
toLight /= distance;
ldot = dot(toLight, worldnormal);
angle = length(u_lightdir1) == 0.0 ? 0.0 : dot(normalize(u_lightdir1), toLight);
if (angle >= u_lightangle_spotCoef1.x) {
lightScale = clamp(1.0 / dot(u_lightatt1, float3(1.0, distance, distance*distance)), 0.0, 1.0) * (u_lightangle_spotCoef1.y <= 0.0 ? 1.0 : pow(angle, u_lightangle_spotCoef1.y));
} else {
lightScale = 0.0;
}
diffuse = (u_lightdiffuse1 * In.color0.rgb) * max(ldot, 0.0);
if (ldot >= 0. |
1 |
1 |
57 |
2023-02-23 |
| D3D error in shader compilation: info: F:\PPSSPP\Shader@0x000000000F3BF270(102,16-55): error X4505: maximum temp register index exceeded
F:\PPSSPP\Shader@0x000000000F3BF270(102,12-69): error X4505: maximum temp register index exceeded
F:\PPSSPP\Shader@0x000000000F3BF270(146,16-55): error X4505: maximum temp register index exceeded
F:\PPSSPP\Shader@0x000000000F3BF270(146,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_lightdir3 : register(c31);
vec4 u_lightangle_spotCoef3 : register(c39);
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_lig |
1 |
1 |
57 |
2022-06-05 |
| D3D error in shader compilation: info: D:\ROMS&EMULATORS\EMU\ppsspp\memory(122,10): error X4505: maximum temp register index exceeded
D:\ROMS&EMULATORS\EMU\ppsspp\memory(122,10): error X4505: maximum temp register index exceeded
/ code: #pragma warning( disable : 3571 )
float4x4 u_proj : register(c0);
float4 u_matambientalpha : register(c20);
float4x3 u_world : register(c11);
float4x3 u_view : register(c8);
float4 u_uvscaleoffset : register(c17);
float3 u_lightpos0 : register(c24);
float3 u_lightatt0 : register(c32);
float3 u_lightdir0 : register(c28);
float4 u_lightangle_spotCoef0 : register(c36);
float3 u_lightambient0 : register(c48);
float3 u_lightdiffuse0 : register(c40);
float3 u_lightspecular0 : register(c44);
float3 u_lightpos1 : register(c25);
float3 u_lightatt1 : register(c33);
float3 u_lightdir1 : register(c29);
float4 u_lightangle_spotCoef1 : register(c37);
float3 u_lightambient1 : register(c49);
float3 u_lightdiffuse1 : register(c41);
float3 u_lightspecular1 : register(c45);
float3 u_lightpos2 : register(c26);
float3 u_lightatt2 : register(c34);
float3 u_lightdir2 : register(c30);
float4 u_lightangle_spotCoef2 : register(c38);
float3 u_lightambient2 : register(c50);
float3 u_lightdiffuse2 : register(c42);
float3 u_lightspecular2 : register(c46);
float3 u_lightpos3 : register(c27);
float3 u_lightatt3 : register(c35);
float3 u_lightdir3 : register(c31);
float4 u_lightangle_spotCoef3 : register(c39);
float3 u_lightambient3 : register(c51);
float3 u_lightdiffuse3 : register(c43);
float3 u_lightspecular3 : register(c47);
float4 u_ambient : register(c19);
float3 u_matdiffuse : register(c21);
float4 u_matspecular : register(c22);
float3 u_matemissive : register(c23);
float4 u_cullRangeMin : register(c80);
float4 u_cullRangeMax : register(c81);
struct VS_IN {
float2 texcoord : TEXCOORD0;
float3 normal : NORMAL;
float3 position : POSITION;
};
struct VS_OUT {
float3 v_texcoord : TEXCOORD0;
float4 v_color0 : COLOR0;
float3 v_color1 : COLOR1;
float4 gl_Position : POSITION;
};
VS_OUT main(VS_IN In) {
VS_OUT Out;
float3 worldpos = mul(float4(In.position.xyz, 1.0), u_world);
float3 worldnormal = normalize(mul(float4(In.normal, 0.0), u_world));
float4 viewPos = float4(mul(float4(worldpos, 1.0), u_view), 1.0);
float4 outPos = mul(viewPos, u_proj);
float4 lightSum0 = u_ambient * u_matambientalpha + float4(u_matemissive, 0.0);
float3 lightSum1 = 0;
float3 toLight;
float3 diffuse;
float distance;
float lightScale;
float ldot;
float angle;
toLight = u_lightpos0 - worldpos;
distance = length(toLight);
toLight /= distance;
ldot = dot(toLight, worldnormal);
angle = length(u_lightdir0) == 0.0 ? 0.0 : dot(normalize(u_lightdir0), toLight);
if (angle >= u_lightangle_spotCoef0.x) {
lightScale = clamp(1.0 / dot(u_lightatt0, float3(1.0, distance, distance*distance)), 0.0, 1.0) * (u_lightangle_spotCoef0.y == 0.0 ? 1.0 : pow(angle, u_lightangle_spotCoef0.y));
} else {
lightScale = 0.0;
}
diffuse = (u_lightdiffuse0 * u_matdiffuse) * max(ldot, 0.0);
if (ldot >= 0.0) {
ldot = dot(normalize(toLight + float3(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 * lightScale;
}
lightSum0.rgb += (u_lightambient0 * u_matambientalpha.rgb + diffuse) * lightScale;
toLight = u_lightpos1 - worldpos;
distance = length(toLight);
toLight /= distance;
ldot = dot(toLight, worldnormal);
angle = length(u_lightdir1) == 0.0 ? 0.0 : dot(normalize(u_lightdir1), toLight);
if (angle >= u_lightangle_spotCoef1.x) {
lightScale = clamp(1.0 / dot(u_lightatt1, float3(1.0, distance, distance*distance)), 0.0, 1.0) * (u_lightangle_spotCoef1.y == 0.0 ? 1.0 : pow(angle, u_lightangle_spotCoef1.y));
} else {
lightScale = 0.0;
}
diffuse = (u_lightdiffuse1 * u_matdiffuse) * max(ldot, 0.0);
if (ldot >= 0.0) {
ldot = dot(normalize(toLight + float3(0.0, 0.0, 1 |
1 |
1 |
57 |
2019-05-29 |
| D3D error in shader compilation: info: C:\Users\HOME\Downloads\ppsspp_win (1)\Shader@0x000001DE8166F1C0(133,16-57): error X4505: maximum temp register index exceeded
C:\Users\HOME\Downloads\ppsspp_win (1)\Shader@0x000001DE8166F1C0(133,12-71): error X4505: maximum temp register index exceeded
/ code: #pragma warning( disable : 3571 )
float4x4 u_proj : register(c0);
float4 u_matambientalpha : register(c20);
float4x3 u_world : register(c11);
float4x3 u_view : register(c8);
float4 u_uvscaleoffset : register(c17);
float3 u_lightpos0 : register(c24);
float3 u_lightambient0 : register(c48);
float3 u_lightdiffuse0 : register(c40);
float3 u_lightspecular0 : register(c44);
float3 u_lightpos1 : register(c25);
float3 u_lightatt1 : register(c33);
float3 u_lightdir1 : register(c29);
float4 u_lightangle_spotCoef1 : register(c37);
float3 u_lightambient1 : register(c49);
float3 u_lightdiffuse1 : register(c41);
float3 u_lightspecular1 : register(c45);
float3 u_lightpos2 : register(c26);
float3 u_lightatt2 : register(c34);
float3 u_lightdir2 : register(c30);
float4 u_lightangle_spotCoef2 : register(c38);
float3 u_lightambient2 : register(c50);
float3 u_lightdiffuse2 : register(c42);
float3 u_lightspecular2 : register(c46);
float3 u_lightpos3 : register(c27);
float3 u_lightatt3 : register(c35);
float3 u_lightdir3 : register(c31);
float4 u_lightangle_spotCoef3 : register(c39);
float3 u_lightambient3 : register(c51);
float3 u_lightdiffuse3 : register(c43);
float3 u_lightspecular3 : register(c47);
float4 u_ambient : register(c19);
float3 u_matdiffuse : register(c21);
float4 u_matspecular : register(c22);
float3 u_matemissive : register(c23);
float4 u_cullRangeMin : register(c80);
float4 u_cullRangeMax : register(c81);
struct VS_IN {
float2 texcoord : TEXCOORD0;
float3 normal : NORMAL;
float3 position : POSITION;
};
struct VS_OUT {
float3 v_texcoord : TEXCOORD0;
float4 v_color0 : COLOR0;
float3 v_color1 : COLOR1;
float4 gl_Position : POSITION;
};
VS_OUT main(VS_IN In) {
VS_OUT Out;
float3 worldpos = mul(float4(In.position.xyz, 1.0), u_world);
float3 worldnormal = normalize(mul(float4(In.normal, 0.0), u_world));
float4 viewPos = float4(mul(float4(worldpos, 1.0), u_view), 1.0);
float4 outPos = mul(viewPos, u_proj);
float4 lightSum0 = u_ambient * u_matambientalpha + float4(u_matemissive, 0.0);
float3 lightSum1 = 0;
float3 toLight;
float3 diffuse;
float distance;
float lightScale;
float ldot;
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 + float3(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);
angle = length(u_lightdir1) == 0.0 ? 0.0 : dot(normalize(u_lightdir1), toLight);
if (angle >= u_lightangle_spotCoef1.x) {
lightScale = clamp(1.0 / dot(u_lightatt1, float3(1.0, distance, distance*distance)), 0.0, 1.0) * (u_lightangle_spotCoef1.y == 0.0 ? 1.0 : pow(angle, u_lightangle_spotCoef1.y));
} else {
lightScale = 0.0;
}
diffuse = (u_lightdiffuse1 * u_matdiffuse) * max(ldot, 0.0);
if (ldot >= 0.0) {
ldot = dot(normalize(toLight + float3(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. |
1 |
1 |
56 |
2020-01-15 |
| D3D error in shader compilation: info: C:\Program Files\PPSSPP\Shader@0x14620CD8(133,16-57): error X4505: maximum temp register index exceeded
C:\Program Files\PPSSPP\Shader@0x14620CD8(133,12-71): error X4505: maximum temp register index exceeded
/ code: #pragma warning( disable : 3571 )
float4x4 u_proj : register(c0);
float4 u_matambientalpha : register(c20);
float4x3 u_world : register(c11);
float4x3 u_view : register(c8);
float4 u_uvscaleoffset : register(c17);
float3 u_lightpos0 : register(c24);
float3 u_lightambient0 : register(c48);
float3 u_lightdiffuse0 : register(c40);
float3 u_lightspecular0 : register(c44);
float3 u_lightpos1 : register(c25);
float3 u_lightatt1 : register(c33);
float3 u_lightdir1 : register(c29);
float4 u_lightangle_spotCoef1 : register(c37);
float3 u_lightambient1 : register(c49);
float3 u_lightdiffuse1 : register(c41);
float3 u_lightspecular1 : register(c45);
float3 u_lightpos2 : register(c26);
float3 u_lightatt2 : register(c34);
float3 u_lightdir2 : register(c30);
float4 u_lightangle_spotCoef2 : register(c38);
float3 u_lightambient2 : register(c50);
float3 u_lightdiffuse2 : register(c42);
float3 u_lightspecular2 : register(c46);
float3 u_lightpos3 : register(c27);
float3 u_lightatt3 : register(c35);
float3 u_lightdir3 : register(c31);
float4 u_lightangle_spotCoef3 : register(c39);
float3 u_lightambient3 : register(c51);
float3 u_lightdiffuse3 : register(c43);
float3 u_lightspecular3 : register(c47);
float4 u_ambient : register(c19);
float3 u_matdiffuse : register(c21);
float4 u_matspecular : register(c22);
float3 u_matemissive : register(c23);
float4 u_cullRangeMin : register(c80);
float4 u_cullRangeMax : register(c81);
struct VS_IN {
float2 texcoord : TEXCOORD0;
float3 normal : NORMAL;
float3 position : POSITION;
};
struct VS_OUT {
float3 v_texcoord : TEXCOORD0;
float4 v_color0 : COLOR0;
float3 v_color1 : COLOR1;
float4 gl_Position : POSITION;
};
VS_OUT main(VS_IN In) {
VS_OUT Out;
float3 worldpos = mul(float4(In.position.xyz, 1.0), u_world);
float3 worldnormal = normalize(mul(float4(In.normal, 0.0), u_world));
float4 viewPos = float4(mul(float4(worldpos, 1.0), u_view), 1.0);
float4 outPos = mul(viewPos, u_proj);
float4 lightSum0 = u_ambient * u_matambientalpha + float4(u_matemissive, 0.0);
float3 lightSum1 = 0;
float3 toLight;
float3 diffuse;
float distance;
float lightScale;
float ldot;
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 + float3(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);
angle = length(u_lightdir1) == 0.0 ? 0.0 : dot(normalize(u_lightdir1), toLight);
if (angle >= u_lightangle_spotCoef1.x) {
lightScale = clamp(1.0 / dot(u_lightatt1, float3(1.0, distance, distance*distance)), 0.0, 1.0) * (u_lightangle_spotCoef1.y == 0.0 ? 1.0 : pow(angle, u_lightangle_spotCoef1.y));
} else {
lightScale = 0.0;
}
diffuse = (u_lightdiffuse1 * u_matdiffuse) * max(ldot, 0.0);
if (ldot >= 0.0) {
ldot = dot(normalize(toLight + float3(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_lightdir2), toLight) |
1 |
1 |
55 |
2020-04-26 |
| D3D error in shader compilation: info: C:\Program Files\PPSSPP\Shader@0x0000023A1133FC60(95,31-45): error X3004: undeclared identifier 'u_spline_counts'
/ code: #pragma warning( disable : 3571 )
float4x4 u_proj : register(c0);
float4 u_matambientalpha : register(c20);
float4x3 u_world : register(c11);
float4x3 u_view : register(c8);
float4 u_uvscaleoffset : register(c17);
float4 u_cullRangeMin : register(c80);
float4 u_cullRangeMax : register(c81);
struct VS_IN {
float2 texcoord : TEXCOORD0;
float4 color0 : COLOR0;
float3 normal : NORMAL;
float3 position : POSITION;
};
struct VS_OUT {
float3 v_texcoord : TEXCOORD0;
float4 v_color0 : COLOR0;
float4 gl_Position : POSITION;
};
float2 tess_sample(in float2 points[16], float4x4 weights) {
float2 pos = float2(0.0, 0.0);
pos += weights[0][0] * points[0];
pos += weights[0][1] * points[1];
pos += weights[0][2] * points[2];
pos += weights[0][3] * points[3];
pos += weights[1][0] * points[4];
pos += weights[1][1] * points[5];
pos += weights[1][2] * points[6];
pos += weights[1][3] * points[7];
pos += weights[2][0] * points[8];
pos += weights[2][1] * points[9];
pos += weights[2][2] * points[10];
pos += weights[2][3] * points[11];
pos += weights[3][0] * points[12];
pos += weights[3][1] * points[13];
pos += weights[3][2] * points[14];
pos += weights[3][3] * points[15];
return pos;
}
float3 tess_sample(in float3 points[16], float4x4 weights) {
float3 pos = float3(0.0, 0.0, 0.0);
pos += weights[0][0] * points[0];
pos += weights[0][1] * points[1];
pos += weights[0][2] * points[2];
pos += weights[0][3] * points[3];
pos += weights[1][0] * points[4];
pos += weights[1][1] * points[5];
pos += weights[1][2] * points[6];
pos += weights[1][3] * points[7];
pos += weights[2][0] * points[8];
pos += weights[2][1] * points[9];
pos += weights[2][2] * points[10];
pos += weights[2][3] * points[11];
pos += weights[3][0] * points[12];
pos += weights[3][1] * points[13];
pos += weights[3][2] * points[14];
pos += weights[3][3] * points[15];
return pos;
}
float4 tess_sample(in float4 points[16], float4x4 weights) {
float4 pos = float4(0.0, 0.0, 0.0, 0.0);
pos += weights[0][0] * points[0];
pos += weights[0][1] * points[1];
pos += weights[0][2] * points[2];
pos += weights[0][3] * points[3];
pos += weights[1][0] * points[4];
pos += weights[1][1] * points[5];
pos += weights[1][2] * points[6];
pos += weights[1][3] * points[7];
pos += weights[2][0] * points[8];
pos += weights[2][1] * points[9];
pos += weights[2][2] * points[10];
pos += weights[2][3] * points[11];
pos += weights[3][0] * points[12];
pos += weights[3][1] * points[13];
pos += weights[3][2] * points[14];
pos += weights[3][3] * points[15];
return pos;
}
float4x4 outerProduct(float4 u, float4 v) {
return mul((float4x1)v, (float1x4)u);
}
struct Tess {
float3 pos;
float2 tex;
float4 col;
};
void tessellate(in VS_IN In, out Tess tess) {
int2 point_pos = int2(In.position.z, In.normal.z) * 3;
int2 weight_idx = int2(In.position.xy);
float3 _pos[16];
float2 _tex[16];
float4 _col[16];
int index;
index = (0 + point_pos.y) * u_spline_counts + (0 + point_pos.x);
_pos[0] = tess_data[index].pos;
_tex[0] = tess_data[index].tex;
index = (0 + point_pos.y) * u_spline_counts + (1 + point_pos.x);
_pos[1] = tess_data[index].pos;
_tex[1] = tess_data[index].tex;
index = (0 + point_pos.y) * u_spline_counts + (2 + point_pos.x);
_pos[2] = tess_data[index].pos;
_tex[2] = tess_data[index].tex;
index = (0 + point_pos.y) * u_spline_counts + (3 + point_pos.x);
_pos[3] = tess_data[index].pos;
_tex[3] = tess_data[index].tex;
index = (1 + point_pos.y) * u_spline_counts + (0 + point_pos.x);
_pos[4] = tess_data[index].pos;
_tex[4] = tess_data[index].tex;
index = (1 + point_pos.y) * u_spline_counts + (1 + point_pos.x);
_pos[5] = tess_data[index].pos;
_tex[5] = tess_data[index].tex;
index = (1 + point_pos.y) * u_spline_counts + (2 + point_pos.x);
_pos[6] = tess_data[index].pos;
|
1 |
1 |
54 |
2020-09-14 |
| D3D error in shader compilation: info: C:\Users\Marcos\Desktop\Nueva carpeta\PSP\Shader@0x0F6A8D28(99,16-55): error X4505: maximum temp register index exceeded
C:\Users\Marcos\Desktop\Nueva carpeta\PSP\Shader@0x0F6A8D28(99,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 mat2 float2x2
#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);
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_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_depthRange : register(c52);
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;
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_lightdir2), toLight);
|
1 |
1 |
53 |
2023-07-19 |
| D3D error in shader compilation: info: C:\WWE-2K14-PC-PSP\WWE-2K14-DownloadComputerGames.net\Shader@0x00000000073D4050(122,16-57): error X4505: maximum temp register index exceeded
C:\WWE-2K14-PC-PSP\WWE-2K14-DownloadComputerGames.net\Shader@0x00000000073D4050(122,12-71): error X4505: maximum temp register index exceeded
/ code: #pragma warning( disable : 3571 )
float4x4 u_proj : register(c0);
float4 u_matambientalpha : register(c20);
float4x3 u_world : register(c11);
float4x3 u_view : register(c8);
float4 u_uvscaleoffset : register(c17);
float3 u_lightpos0 : register(c24);
float3 u_lightatt0 : register(c32);
float3 u_lightdir0 : register(c28);
float4 u_lightangle_spotCoef0 : register(c36);
float3 u_lightambient0 : register(c48);
float3 u_lightdiffuse0 : register(c40);
float3 u_lightspecular0 : register(c44);
float3 u_lightpos1 : register(c25);
float3 u_lightatt1 : register(c33);
float3 u_lightdir1 : register(c29);
float4 u_lightangle_spotCoef1 : register(c37);
float3 u_lightambient1 : register(c49);
float3 u_lightdiffuse1 : register(c41);
float3 u_lightspecular1 : register(c45);
float3 u_lightpos2 : register(c26);
float3 u_lightatt2 : register(c34);
float3 u_lightdir2 : register(c30);
float4 u_lightangle_spotCoef2 : register(c38);
float3 u_lightambient2 : register(c50);
float3 u_lightdiffuse2 : register(c42);
float3 u_lightspecular2 : register(c46);
float3 u_lightpos3 : register(c27);
float3 u_lightatt3 : register(c35);
float3 u_lightdir3 : register(c31);
float4 u_lightangle_spotCoef3 : register(c39);
float3 u_lightambient3 : register(c51);
float3 u_lightdiffuse3 : register(c43);
float3 u_lightspecular3 : register(c47);
float4 u_ambient : register(c19);
float3 u_matdiffuse : register(c21);
float4 u_matspecular : register(c22);
float3 u_matemissive : register(c23);
float4 u_cullRangeMin : register(c80);
float4 u_cullRangeMax : register(c81);
struct VS_IN {
float2 texcoord : TEXCOORD0;
float3 normal : NORMAL;
float3 position : POSITION;
};
struct VS_OUT {
float3 v_texcoord : TEXCOORD0;
float4 v_color0 : COLOR0;
float3 v_color1 : COLOR1;
float4 gl_Position : POSITION;
};
VS_OUT main(VS_IN In) {
VS_OUT Out;
float3 worldpos = mul(float4(In.position.xyz, 1.0), u_world);
float3 worldnormal = normalize(mul(float4(In.normal, 0.0), u_world));
float4 viewPos = float4(mul(float4(worldpos, 1.0), u_view), 1.0);
float4 outPos = mul(viewPos, u_proj);
float4 lightSum0 = u_ambient * u_matambientalpha + float4(u_matemissive, 0.0);
float3 lightSum1 = 0;
float3 toLight;
float3 diffuse;
float distance;
float lightScale;
float ldot;
float angle;
toLight = u_lightpos0 - worldpos;
distance = length(toLight);
toLight /= distance;
ldot = dot(toLight, worldnormal);
angle = length(u_lightdir0) == 0.0 ? 0.0 : dot(normalize(u_lightdir0), toLight);
if (angle >= u_lightangle_spotCoef0.x) {
lightScale = clamp(1.0 / dot(u_lightatt0, float3(1.0, distance, distance*distance)), 0.0, 1.0) * (u_lightangle_spotCoef0.y == 0.0 ? 1.0 : pow(angle, u_lightangle_spotCoef0.y));
} else {
lightScale = 0.0;
}
diffuse = (u_lightdiffuse0 * u_matdiffuse) * max(ldot, 0.0);
if (ldot >= 0.0) {
ldot = dot(normalize(toLight + float3(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 * lightScale;
}
lightSum0.rgb += (u_lightambient0 * u_matambientalpha.rgb + diffuse) * lightScale;
toLight = u_lightpos1 - worldpos;
distance = length(toLight);
toLight /= distance;
ldot = dot(toLight, worldnormal);
angle = length(u_lightdir1) == 0.0 ? 0.0 : dot(normalize(u_lightdir1), toLight);
if (angle >= u_lightangle_spotCoef1.x) {
lightScale = clamp(1.0 / dot(u_lightatt1, float3(1.0, distance, distance*distance)), 0.0, 1.0) * (u_lightangle_spotCoef1.y == 0.0 ? 1.0 : pow(angle, u_lightangle_spotCoef1.y));
} else {
lightScale = 0.0;
}
diffuse = (u_lightdiffuse1 * u_matdiffuse |
1 |
1 |
51 |
2023-11-18 |
| D3D error in shader compilation: info: C:\Users\Deznan\Desktop\psp\Shader@0x0C8A8EA8(101,31-45): error X3004: undeclared identifier 'u_spline_counts'
/ code: #pragma warning( disable : 3571 )
float4x4 u_proj : register(c0);
float2 u_fogcoef : register(c18);
float4 u_matambientalpha : register(c20);
float4x3 u_world : register(c11);
float4x3 u_view : register(c8);
float4 u_uvscaleoffset : register(c17);
float4 u_ambient : register(c19);
float4 u_matspecular : register(c22);
float3 u_matemissive : register(c23);
float4 u_cullRangeMin : register(c80);
float4 u_cullRangeMax : register(c81);
struct VS_IN {
float2 texcoord : TEXCOORD0;
float4 color0 : COLOR0;
float3 normal : NORMAL;
float3 position : POSITION;
};
struct VS_OUT {
float3 v_texcoord : TEXCOORD0;
float4 v_color0 : COLOR0;
float v_fogdepth: TEXCOORD1;
float4 gl_Position : POSITION;
};
float2 tess_sample(in float2 points[16], float4x4 weights) {
float2 pos = float2(0.0, 0.0);
pos += weights[0][0] * points[0];
pos += weights[0][1] * points[1];
pos += weights[0][2] * points[2];
pos += weights[0][3] * points[3];
pos += weights[1][0] * points[4];
pos += weights[1][1] * points[5];
pos += weights[1][2] * points[6];
pos += weights[1][3] * points[7];
pos += weights[2][0] * points[8];
pos += weights[2][1] * points[9];
pos += weights[2][2] * points[10];
pos += weights[2][3] * points[11];
pos += weights[3][0] * points[12];
pos += weights[3][1] * points[13];
pos += weights[3][2] * points[14];
pos += weights[3][3] * points[15];
return pos;
}
float3 tess_sample(in float3 points[16], float4x4 weights) {
float3 pos = float3(0.0, 0.0, 0.0);
pos += weights[0][0] * points[0];
pos += weights[0][1] * points[1];
pos += weights[0][2] * points[2];
pos += weights[0][3] * points[3];
pos += weights[1][0] * points[4];
pos += weights[1][1] * points[5];
pos += weights[1][2] * points[6];
pos += weights[1][3] * points[7];
pos += weights[2][0] * points[8];
pos += weights[2][1] * points[9];
pos += weights[2][2] * points[10];
pos += weights[2][3] * points[11];
pos += weights[3][0] * points[12];
pos += weights[3][1] * points[13];
pos += weights[3][2] * points[14];
pos += weights[3][3] * points[15];
return pos;
}
float4 tess_sample(in float4 points[16], float4x4 weights) {
float4 pos = float4(0.0, 0.0, 0.0, 0.0);
pos += weights[0][0] * points[0];
pos += weights[0][1] * points[1];
pos += weights[0][2] * points[2];
pos += weights[0][3] * points[3];
pos += weights[1][0] * points[4];
pos += weights[1][1] * points[5];
pos += weights[1][2] * points[6];
pos += weights[1][3] * points[7];
pos += weights[2][0] * points[8];
pos += weights[2][1] * points[9];
pos += weights[2][2] * points[10];
pos += weights[2][3] * points[11];
pos += weights[3][0] * points[12];
pos += weights[3][1] * points[13];
pos += weights[3][2] * points[14];
pos += weights[3][3] * points[15];
return pos;
}
float4x4 outerProduct(float4 u, float4 v) {
return mul((float4x1)v, (float1x4)u);
}
struct Tess {
float3 pos;
float2 tex;
float4 col;
float3 nrm;
};
void tessellate(in VS_IN In, out Tess tess) {
int2 point_pos = int2(In.position.z, In.normal.z) * 3;
int2 weight_idx = int2(In.position.xy);
float3 _pos[16];
float2 _tex[16];
float4 _col[16];
int index;
index = (0 + point_pos.y) * u_spline_counts + (0 + point_pos.x);
_pos[0] = tess_data[index].pos;
_tex[0] = tess_data[index].tex;
_col[0] = tess_data[index].col;
index = (0 + point_pos.y) * u_spline_counts + (1 + point_pos.x);
_pos[1] = tess_data[index].pos;
_tex[1] = tess_data[index].tex;
_col[1] = tess_data[index].col;
index = (0 + point_pos.y) * u_spline_counts + (2 + point_pos.x);
_pos[2] = tess_data[index].pos;
_tex[2] = tess_data[index].tex;
_col[2] = tess_data[index].col;
index = (0 + point_pos.y) * u_spline_counts + (3 + point_pos.x);
_pos[3] = tess_data[index].pos;
_tex[3] = tess_data[index].tex;
_col[3] = tess_data[index].col;
index = (1 + point_pos.y) * u_spline_counts + (0 |
1 |
1 |
51 |
2020-09-21 |
| D3D error in shader compilation: info: C:\Program Files\PPSSPP\Shader@0x081C5EE0(133,16-57): error X4505: maximum temp register index exceeded
C:\Program Files\PPSSPP\Shader@0x081C5EE0(133,12-71): error X4505: maximum temp register index exceeded
/ code: #pragma warning( disable : 3571 )
float4x4 u_proj : register(c0);
float4 u_matambientalpha : register(c20);
float4x3 u_world : register(c11);
float4x3 u_view : register(c8);
float4 u_uvscaleoffset : register(c17);
float3 u_lightpos0 : register(c24);
float3 u_lightambient0 : register(c48);
float3 u_lightdiffuse0 : register(c40);
float3 u_lightspecular0 : register(c44);
float3 u_lightpos1 : register(c25);
float3 u_lightatt1 : register(c33);
float3 u_lightdir1 : register(c29);
float4 u_lightangle_spotCoef1 : register(c37);
float3 u_lightambient1 : register(c49);
float3 u_lightdiffuse1 : register(c41);
float3 u_lightspecular1 : register(c45);
float3 u_lightpos2 : register(c26);
float3 u_lightatt2 : register(c34);
float3 u_lightdir2 : register(c30);
float4 u_lightangle_spotCoef2 : register(c38);
float3 u_lightambient2 : register(c50);
float3 u_lightdiffuse2 : register(c42);
float3 u_lightspecular2 : register(c46);
float3 u_lightpos3 : register(c27);
float3 u_lightatt3 : register(c35);
float3 u_lightdir3 : register(c31);
float4 u_lightangle_spotCoef3 : register(c39);
float3 u_lightambient3 : register(c51);
float3 u_lightdiffuse3 : register(c43);
float3 u_lightspecular3 : register(c47);
float4 u_ambient : register(c19);
float3 u_matdiffuse : register(c21);
float4 u_matspecular : register(c22);
float3 u_matemissive : register(c23);
float4 u_cullRangeMin : register(c80);
float4 u_cullRangeMax : register(c81);
struct VS_IN {
float2 texcoord : TEXCOORD0;
float3 normal : NORMAL;
float3 position : POSITION;
};
struct VS_OUT {
float3 v_texcoord : TEXCOORD0;
float4 v_color0 : COLOR0;
float3 v_color1 : COLOR1;
float4 gl_Position : POSITION;
};
VS_OUT main(VS_IN In) {
VS_OUT Out;
float3 worldpos = mul(float4(In.position.xyz, 1.0), u_world);
float3 worldnormal = normalize(mul(float4(In.normal, 0.0), u_world));
float4 viewPos = float4(mul(float4(worldpos, 1.0), u_view), 1.0);
float4 outPos = mul(viewPos, u_proj);
float4 lightSum0 = u_ambient * u_matambientalpha + float4(u_matemissive, 0.0);
float3 lightSum1 = 0;
float3 toLight;
float3 diffuse;
float distance;
float lightScale;
float ldot;
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 + float3(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);
angle = length(u_lightdir1) == 0.0 ? 0.0 : dot(normalize(u_lightdir1), toLight);
if (angle >= u_lightangle_spotCoef1.x) {
lightScale = clamp(1.0 / dot(u_lightatt1, float3(1.0, distance, distance*distance)), 0.0, 1.0) * (u_lightangle_spotCoef1.y == 0.0 ? 1.0 : pow(angle, u_lightangle_spotCoef1.y));
} else {
lightScale = 0.0;
}
diffuse = (u_lightdiffuse1 * u_matdiffuse) * max(ldot, 0.0);
if (ldot >= 0.0) {
ldot = dot(normalize(toLight + float3(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_lightdir2), toLight) |
1 |
1 |
50 |
2020-04-27 |
| D3D error in shader compilation: info: C:\Users\username\Documents\Emulators\Shader@0x000001FE7F6FF0D0(95,31-45): error X3004: undeclared identifier 'u_spline_counts'
/ code: #pragma warning( disable : 3571 )
float4x4 u_proj : register(c0);
float4 u_matambientalpha : register(c20);
float4x3 u_world : register(c11);
float4x3 u_view : register(c8);
float4 u_uvscaleoffset : register(c17);
float4 u_cullRangeMin : register(c80);
float4 u_cullRangeMax : register(c81);
struct VS_IN {
float2 texcoord : TEXCOORD0;
float4 color0 : COLOR0;
float3 normal : NORMAL;
float3 position : POSITION;
};
struct VS_OUT {
float3 v_texcoord : TEXCOORD0;
float4 v_color0 : COLOR0;
float4 gl_Position : POSITION;
};
float2 tess_sample(in float2 points[16], float4x4 weights) {
float2 pos = float2(0.0, 0.0);
pos += weights[0][0] * points[0];
pos += weights[0][1] * points[1];
pos += weights[0][2] * points[2];
pos += weights[0][3] * points[3];
pos += weights[1][0] * points[4];
pos += weights[1][1] * points[5];
pos += weights[1][2] * points[6];
pos += weights[1][3] * points[7];
pos += weights[2][0] * points[8];
pos += weights[2][1] * points[9];
pos += weights[2][2] * points[10];
pos += weights[2][3] * points[11];
pos += weights[3][0] * points[12];
pos += weights[3][1] * points[13];
pos += weights[3][2] * points[14];
pos += weights[3][3] * points[15];
return pos;
}
float3 tess_sample(in float3 points[16], float4x4 weights) {
float3 pos = float3(0.0, 0.0, 0.0);
pos += weights[0][0] * points[0];
pos += weights[0][1] * points[1];
pos += weights[0][2] * points[2];
pos += weights[0][3] * points[3];
pos += weights[1][0] * points[4];
pos += weights[1][1] * points[5];
pos += weights[1][2] * points[6];
pos += weights[1][3] * points[7];
pos += weights[2][0] * points[8];
pos += weights[2][1] * points[9];
pos += weights[2][2] * points[10];
pos += weights[2][3] * points[11];
pos += weights[3][0] * points[12];
pos += weights[3][1] * points[13];
pos += weights[3][2] * points[14];
pos += weights[3][3] * points[15];
return pos;
}
float4 tess_sample(in float4 points[16], float4x4 weights) {
float4 pos = float4(0.0, 0.0, 0.0, 0.0);
pos += weights[0][0] * points[0];
pos += weights[0][1] * points[1];
pos += weights[0][2] * points[2];
pos += weights[0][3] * points[3];
pos += weights[1][0] * points[4];
pos += weights[1][1] * points[5];
pos += weights[1][2] * points[6];
pos += weights[1][3] * points[7];
pos += weights[2][0] * points[8];
pos += weights[2][1] * points[9];
pos += weights[2][2] * points[10];
pos += weights[2][3] * points[11];
pos += weights[3][0] * points[12];
pos += weights[3][1] * points[13];
pos += weights[3][2] * points[14];
pos += weights[3][3] * points[15];
return pos;
}
float4x4 outerProduct(float4 u, float4 v) {
return mul((float4x1)v, (float1x4)u);
}
struct Tess {
float3 pos;
float2 tex;
float4 col;
};
void tessellate(in VS_IN In, out Tess tess) {
int2 point_pos = int2(In.position.z, In.normal.z) * 3;
int2 weight_idx = int2(In.position.xy);
float3 _pos[16];
float2 _tex[16];
float4 _col[16];
int index;
index = (0 + point_pos.y) * u_spline_counts + (0 + point_pos.x);
_pos[0] = tess_data[index].pos;
_tex[0] = tess_data[index].tex;
index = (0 + point_pos.y) * u_spline_counts + (1 + point_pos.x);
_pos[1] = tess_data[index].pos;
_tex[1] = tess_data[index].tex;
index = (0 + point_pos.y) * u_spline_counts + (2 + point_pos.x);
_pos[2] = tess_data[index].pos;
_tex[2] = tess_data[index].tex;
index = (0 + point_pos.y) * u_spline_counts + (3 + point_pos.x);
_pos[3] = tess_data[index].pos;
_tex[3] = tess_data[index].tex;
index = (1 + point_pos.y) * u_spline_counts + (0 + point_pos.x);
_pos[4] = tess_data[index].pos;
_tex[4] = tess_data[index].tex;
index = (1 + point_pos.y) * u_spline_counts + (1 + point_pos.x);
_pos[5] = tess_data[index].pos;
_tex[5] = tess_data[index].tex;
index = (1 + point_pos.y) * u_spline_counts + (2 + point_pos.x);
_pos[6] = tess_data |
1 |
1 |
49 |
2021-08-18 |
| D3D error in shader compilation: info: F:\PPSSPP\Shader@0x000001FC2CDBBA10(137,16-55): error X4505: maximum temp register index exceeded
F:\PPSSPP\Shader@0x000001FC2CDBBA10(137,12-69): error X4505: maximum temp register index exceeded
F:\PPSSPP\Shader@0x000001FC2CDBBA10(159,16-55): error X4505: maximum temp register index exceeded
F:\PPSSPP\Shader@0x000001FC2CDBBA10(159,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);
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_lightatt0 : register(c32);
vec3 u_lightdir0 : register(c28);
vec4 u_lightangle_spotCoef0 : register(c36);
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_lightdir1 : register(c29);
vec4 u_lightangle_spotCoef1 : register(c37);
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_lightdir3 : register(c31);
vec4 u_lightangle_spotCoef3 : register(c39);
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;
vec4 gl_Position : POSITION;
};
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 = normalize(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 - worldpos;
distance = length(toLight);
toLight /= distance;
ldot = dot(toLight, worldnormal);
angle = length(u_lightdir0) == 0.0 ? 0.0 : dot(normalize(u_lightdir0), toLight);
if (angle >= u_lightangle_spotCoef0.x) {
lightScale = clamp(1.0 / dot(u_lightatt0, vec3(1.0, distance, distance*distance)), 0.0, 1.0) * (u_lightangle_spotCoef0.y <= 0.0 ? 1.0 : pow(angle, u_lightangle_spotCoef0.y));
} else {
lightScale = 0.0;
}
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 * lightScale;
}
lightSum0.rgb += (u_lightambient0 * u_matambientalpha.rgb + diffuse) * lightScale;
toLight = u_lightpos1 - worldpos;
distance = length(toLight);
toLight /= distance;
ldot = dot(toLight, worldnormal);
angle = length(u_lightdir1) == 0.0 ? 0. |
1 |
1 |
49 |
2021-08-07 |
| D3D error in shader compilation: info: C:\Program Files\PPSSPP\Shader@0x000001AF2E15A080(97,31-45): error X3004: undeclared identifier 'u_spline_counts'
/ code: #pragma warning( disable : 3571 )
float4x4 u_proj : register(c0);
float2 u_fogcoef : register(c18);
float4 u_matambientalpha : register(c20);
float4x3 u_world : register(c11);
float4x3 u_view : register(c8);
float4 u_uvscaleoffset : register(c17);
float4 u_cullRangeMin : register(c80);
float4 u_cullRangeMax : register(c81);
struct VS_IN {
float2 texcoord : TEXCOORD0;
float4 color0 : COLOR0;
float3 normal : NORMAL;
float3 position : POSITION;
};
struct VS_OUT {
float3 v_texcoord : TEXCOORD0;
float4 v_color0 : COLOR0;
float v_fogdepth: TEXCOORD1;
float4 gl_Position : POSITION;
};
float2 tess_sample(in float2 points[16], float4x4 weights) {
float2 pos = float2(0.0, 0.0);
pos += weights[0][0] * points[0];
pos += weights[0][1] * points[1];
pos += weights[0][2] * points[2];
pos += weights[0][3] * points[3];
pos += weights[1][0] * points[4];
pos += weights[1][1] * points[5];
pos += weights[1][2] * points[6];
pos += weights[1][3] * points[7];
pos += weights[2][0] * points[8];
pos += weights[2][1] * points[9];
pos += weights[2][2] * points[10];
pos += weights[2][3] * points[11];
pos += weights[3][0] * points[12];
pos += weights[3][1] * points[13];
pos += weights[3][2] * points[14];
pos += weights[3][3] * points[15];
return pos;
}
float3 tess_sample(in float3 points[16], float4x4 weights) {
float3 pos = float3(0.0, 0.0, 0.0);
pos += weights[0][0] * points[0];
pos += weights[0][1] * points[1];
pos += weights[0][2] * points[2];
pos += weights[0][3] * points[3];
pos += weights[1][0] * points[4];
pos += weights[1][1] * points[5];
pos += weights[1][2] * points[6];
pos += weights[1][3] * points[7];
pos += weights[2][0] * points[8];
pos += weights[2][1] * points[9];
pos += weights[2][2] * points[10];
pos += weights[2][3] * points[11];
pos += weights[3][0] * points[12];
pos += weights[3][1] * points[13];
pos += weights[3][2] * points[14];
pos += weights[3][3] * points[15];
return pos;
}
float4 tess_sample(in float4 points[16], float4x4 weights) {
float4 pos = float4(0.0, 0.0, 0.0, 0.0);
pos += weights[0][0] * points[0];
pos += weights[0][1] * points[1];
pos += weights[0][2] * points[2];
pos += weights[0][3] * points[3];
pos += weights[1][0] * points[4];
pos += weights[1][1] * points[5];
pos += weights[1][2] * points[6];
pos += weights[1][3] * points[7];
pos += weights[2][0] * points[8];
pos += weights[2][1] * points[9];
pos += weights[2][2] * points[10];
pos += weights[2][3] * points[11];
pos += weights[3][0] * points[12];
pos += weights[3][1] * points[13];
pos += weights[3][2] * points[14];
pos += weights[3][3] * points[15];
return pos;
}
float4x4 outerProduct(float4 u, float4 v) {
return mul((float4x1)v, (float1x4)u);
}
struct Tess {
float3 pos;
float2 tex;
float4 col;
};
void tessellate(in VS_IN In, out Tess tess) {
int2 point_pos = int2(In.position.z, In.normal.z);
int2 weight_idx = int2(In.position.xy);
float3 _pos[16];
float2 _tex[16];
float4 _col[16];
int index;
index = (0 + point_pos.y) * u_spline_counts + (0 + point_pos.x);
_pos[0] = tess_data[index].pos;
_col[0] = tess_data[index].col;
index = (0 + point_pos.y) * u_spline_counts + (1 + point_pos.x);
_pos[1] = tess_data[index].pos;
_col[1] = tess_data[index].col;
index = (0 + point_pos.y) * u_spline_counts + (2 + point_pos.x);
_pos[2] = tess_data[index].pos;
_col[2] = tess_data[index].col;
index = (0 + point_pos.y) * u_spline_counts + (3 + point_pos.x);
_pos[3] = tess_data[index].pos;
_col[3] = tess_data[index].col;
index = (1 + point_pos.y) * u_spline_counts + (0 + point_pos.x);
_pos[4] = tess_data[index].pos;
_col[4] = tess_data[index].col;
index = (1 + point_pos.y) * u_spline_counts + (1 + point_pos.x);
_pos[5] = tess_data[index].pos;
_col[5] = tess_data[index].col;
index = (1 + point_pos.y) * u_spline_co |
1 |
1 |
49 |
2020-12-24 |
| D3D error in shader compilation: info: C:\Users\asrie\Documents\PPSSPP\Shader@0x000002E13739F1D0(108,16-57): error X4505: maximum temp register index exceeded
C:\Users\asrie\Documents\PPSSPP\Shader@0x000002E13739F1D0(108,12-71): error X4505: maximum temp register index exceeded
/ code: #pragma warning( disable : 3571 )
float4x4 u_proj : register(c0);
float4 u_matambientalpha : register(c20);
float4x3 u_world : register(c11);
float4x3 u_view : register(c8);
float4 u_uvscaleoffset : register(c17);
float3 u_lightpos0 : register(c24);
float3 u_lightambient0 : register(c48);
float3 u_lightdiffuse0 : register(c40);
float3 u_lightspecular0 : register(c44);
float3 u_lightpos1 : register(c25);
float3 u_lightatt1 : register(c33);
float3 u_lightdir1 : register(c29);
float4 u_lightangle_spotCoef1 : register(c37);
float3 u_lightambient1 : register(c49);
float3 u_lightdiffuse1 : register(c41);
float3 u_lightspecular1 : register(c45);
float3 u_lightpos2 : register(c26);
float3 u_lightatt2 : register(c34);
float3 u_lightdir2 : register(c30);
float4 u_lightangle_spotCoef2 : register(c38);
float3 u_lightambient2 : register(c50);
float3 u_lightdiffuse2 : register(c42);
float3 u_lightspecular2 : register(c46);
float3 u_lightpos3 : register(c27);
float3 u_lightambient3 : register(c51);
float3 u_lightdiffuse3 : register(c43);
float3 u_lightspecular3 : register(c47);
float4 u_ambient : register(c19);
float3 u_matdiffuse : register(c21);
float4 u_matspecular : register(c22);
float3 u_matemissive : register(c23);
float4 u_cullRangeMin : register(c80);
float4 u_cullRangeMax : register(c81);
struct VS_IN {
float2 texcoord : TEXCOORD0;
float3 normal : NORMAL;
float3 position : POSITION;
};
struct VS_OUT {
float3 v_texcoord : TEXCOORD0;
float4 v_color0 : COLOR0;
float3 v_color1 : COLOR1;
float4 gl_Position : POSITION;
};
VS_OUT main(VS_IN In) {
VS_OUT Out;
float3 worldpos = mul(float4(In.position.xyz, 1.0), u_world);
float3 worldnormal = normalize(mul(float4(In.normal, 0.0), u_world));
float4 viewPos = float4(mul(float4(worldpos, 1.0), u_view), 1.0);
float4 outPos = mul(viewPos, u_proj);
float4 lightSum0 = u_ambient * u_matambientalpha + float4(u_matemissive, 0.0);
float3 lightSum1 = 0;
float3 toLight;
float3 diffuse;
float distance;
float lightScale;
float ldot;
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 + float3(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);
angle = length(u_lightdir1) == 0.0 ? 0.0 : dot(normalize(u_lightdir1), toLight);
if (angle >= u_lightangle_spotCoef1.x) {
lightScale = clamp(1.0 / dot(u_lightatt1, float3(1.0, distance, distance*distance)), 0.0, 1.0) * (u_lightangle_spotCoef1.y <= 0.0 ? 1.0 : pow(angle, u_lightangle_spotCoef1.y));
} else {
lightScale = 0.0;
}
diffuse = (u_lightdiffuse1 * u_matdiffuse) * max(ldot, 0.0);
if (ldot >= 0.0) {
ldot = dot(normalize(toLight + float3(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_lightdir2), toLight);
if (angle >= u_lightangle_spotCoef2.x) {
lightScale = clamp(1.0 / dot(u_lightat |
1 |
1 |
48 |
2025-10-31 |
| D3D error in shader compilation: info: C:\Users\username\Documents\Emulators\Shader@0x000001D412202070(95,31-45): error X3004: undeclared identifier 'u_spline_counts'
/ code: #pragma warning( disable : 3571 )
float4x4 u_proj : register(c0);
float4 u_matambientalpha : register(c20);
float4x3 u_world : register(c11);
float4x3 u_view : register(c8);
float4 u_uvscaleoffset : register(c17);
float4 u_cullRangeMin : register(c80);
float4 u_cullRangeMax : register(c81);
struct VS_IN {
float2 texcoord : TEXCOORD0;
float4 color0 : COLOR0;
float3 normal : NORMAL;
float3 position : POSITION;
};
struct VS_OUT {
float3 v_texcoord : TEXCOORD0;
float4 v_color0 : COLOR0;
float4 gl_Position : POSITION;
};
float2 tess_sample(in float2 points[16], float4x4 weights) {
float2 pos = float2(0.0, 0.0);
pos += weights[0][0] * points[0];
pos += weights[0][1] * points[1];
pos += weights[0][2] * points[2];
pos += weights[0][3] * points[3];
pos += weights[1][0] * points[4];
pos += weights[1][1] * points[5];
pos += weights[1][2] * points[6];
pos += weights[1][3] * points[7];
pos += weights[2][0] * points[8];
pos += weights[2][1] * points[9];
pos += weights[2][2] * points[10];
pos += weights[2][3] * points[11];
pos += weights[3][0] * points[12];
pos += weights[3][1] * points[13];
pos += weights[3][2] * points[14];
pos += weights[3][3] * points[15];
return pos;
}
float3 tess_sample(in float3 points[16], float4x4 weights) {
float3 pos = float3(0.0, 0.0, 0.0);
pos += weights[0][0] * points[0];
pos += weights[0][1] * points[1];
pos += weights[0][2] * points[2];
pos += weights[0][3] * points[3];
pos += weights[1][0] * points[4];
pos += weights[1][1] * points[5];
pos += weights[1][2] * points[6];
pos += weights[1][3] * points[7];
pos += weights[2][0] * points[8];
pos += weights[2][1] * points[9];
pos += weights[2][2] * points[10];
pos += weights[2][3] * points[11];
pos += weights[3][0] * points[12];
pos += weights[3][1] * points[13];
pos += weights[3][2] * points[14];
pos += weights[3][3] * points[15];
return pos;
}
float4 tess_sample(in float4 points[16], float4x4 weights) {
float4 pos = float4(0.0, 0.0, 0.0, 0.0);
pos += weights[0][0] * points[0];
pos += weights[0][1] * points[1];
pos += weights[0][2] * points[2];
pos += weights[0][3] * points[3];
pos += weights[1][0] * points[4];
pos += weights[1][1] * points[5];
pos += weights[1][2] * points[6];
pos += weights[1][3] * points[7];
pos += weights[2][0] * points[8];
pos += weights[2][1] * points[9];
pos += weights[2][2] * points[10];
pos += weights[2][3] * points[11];
pos += weights[3][0] * points[12];
pos += weights[3][1] * points[13];
pos += weights[3][2] * points[14];
pos += weights[3][3] * points[15];
return pos;
}
float4x4 outerProduct(float4 u, float4 v) {
return mul((float4x1)v, (float1x4)u);
}
struct Tess {
float3 pos;
float2 tex;
float4 col;
};
void tessellate(in VS_IN In, out Tess tess) {
int2 point_pos = int2(In.position.z, In.normal.z) * 3;
int2 weight_idx = int2(In.position.xy);
float3 _pos[16];
float2 _tex[16];
float4 _col[16];
int index;
index = (0 + point_pos.y) * u_spline_counts + (0 + point_pos.x);
_pos[0] = tess_data[index].pos;
_tex[0] = tess_data[index].tex;
index = (0 + point_pos.y) * u_spline_counts + (1 + point_pos.x);
_pos[1] = tess_data[index].pos;
_tex[1] = tess_data[index].tex;
index = (0 + point_pos.y) * u_spline_counts + (2 + point_pos.x);
_pos[2] = tess_data[index].pos;
_tex[2] = tess_data[index].tex;
index = (0 + point_pos.y) * u_spline_counts + (3 + point_pos.x);
_pos[3] = tess_data[index].pos;
_tex[3] = tess_data[index].tex;
index = (1 + point_pos.y) * u_spline_counts + (0 + point_pos.x);
_pos[4] = tess_data[index].pos;
_tex[4] = tess_data[index].tex;
index = (1 + point_pos.y) * u_spline_counts + (1 + point_pos.x);
_pos[5] = tess_data[index].pos;
_tex[5] = tess_data[index].tex;
index = (1 + point_pos.y) * u_spline_counts + (2 + point_pos.x);
_pos[6] = tess_data |
1 |
1 |
48 |
2021-08-18 |
| D3D error in shader compilation: info: C:\Program Files\PPSSPP\Shader@0x10CCB4F0(95,31-45): error X3004: undeclared identifier 'u_spline_counts'
/ code: #pragma warning( disable : 3571 )
float4x4 u_proj : register(c0);
float4 u_matambientalpha : register(c20);
float4x3 u_world : register(c11);
float4x3 u_view : register(c8);
float4 u_uvscaleoffset : register(c17);
float4 u_cullRangeMin : register(c80);
float4 u_cullRangeMax : register(c81);
struct VS_IN {
float2 texcoord : TEXCOORD0;
float4 color0 : COLOR0;
float3 normal : NORMAL;
float3 position : POSITION;
};
struct VS_OUT {
float3 v_texcoord : TEXCOORD0;
float4 v_color0 : COLOR0;
float4 gl_Position : POSITION;
};
float2 tess_sample(in float2 points[16], float4x4 weights) {
float2 pos = float2(0.0, 0.0);
pos += weights[0][0] * points[0];
pos += weights[0][1] * points[1];
pos += weights[0][2] * points[2];
pos += weights[0][3] * points[3];
pos += weights[1][0] * points[4];
pos += weights[1][1] * points[5];
pos += weights[1][2] * points[6];
pos += weights[1][3] * points[7];
pos += weights[2][0] * points[8];
pos += weights[2][1] * points[9];
pos += weights[2][2] * points[10];
pos += weights[2][3] * points[11];
pos += weights[3][0] * points[12];
pos += weights[3][1] * points[13];
pos += weights[3][2] * points[14];
pos += weights[3][3] * points[15];
return pos;
}
float3 tess_sample(in float3 points[16], float4x4 weights) {
float3 pos = float3(0.0, 0.0, 0.0);
pos += weights[0][0] * points[0];
pos += weights[0][1] * points[1];
pos += weights[0][2] * points[2];
pos += weights[0][3] * points[3];
pos += weights[1][0] * points[4];
pos += weights[1][1] * points[5];
pos += weights[1][2] * points[6];
pos += weights[1][3] * points[7];
pos += weights[2][0] * points[8];
pos += weights[2][1] * points[9];
pos += weights[2][2] * points[10];
pos += weights[2][3] * points[11];
pos += weights[3][0] * points[12];
pos += weights[3][1] * points[13];
pos += weights[3][2] * points[14];
pos += weights[3][3] * points[15];
return pos;
}
float4 tess_sample(in float4 points[16], float4x4 weights) {
float4 pos = float4(0.0, 0.0, 0.0, 0.0);
pos += weights[0][0] * points[0];
pos += weights[0][1] * points[1];
pos += weights[0][2] * points[2];
pos += weights[0][3] * points[3];
pos += weights[1][0] * points[4];
pos += weights[1][1] * points[5];
pos += weights[1][2] * points[6];
pos += weights[1][3] * points[7];
pos += weights[2][0] * points[8];
pos += weights[2][1] * points[9];
pos += weights[2][2] * points[10];
pos += weights[2][3] * points[11];
pos += weights[3][0] * points[12];
pos += weights[3][1] * points[13];
pos += weights[3][2] * points[14];
pos += weights[3][3] * points[15];
return pos;
}
float4x4 outerProduct(float4 u, float4 v) {
return mul((float4x1)v, (float1x4)u);
}
struct Tess {
float3 pos;
float2 tex;
float4 col;
};
void tessellate(in VS_IN In, out Tess tess) {
int2 point_pos = int2(In.position.z, In.normal.z) * 3;
int2 weight_idx = int2(In.position.xy);
float3 _pos[16];
float2 _tex[16];
float4 _col[16];
int index;
index = (0 + point_pos.y) * u_spline_counts + (0 + point_pos.x);
_pos[0] = tess_data[index].pos;
index = (0 + point_pos.y) * u_spline_counts + (1 + point_pos.x);
_pos[1] = tess_data[index].pos;
index = (0 + point_pos.y) * u_spline_counts + (2 + point_pos.x);
_pos[2] = tess_data[index].pos;
index = (0 + point_pos.y) * u_spline_counts + (3 + point_pos.x);
_pos[3] = tess_data[index].pos;
index = (1 + point_pos.y) * u_spline_counts + (0 + point_pos.x);
_pos[4] = tess_data[index].pos;
index = (1 + point_pos.y) * u_spline_counts + (1 + point_pos.x);
_pos[5] = tess_data[index].pos;
index = (1 + point_pos.y) * u_spline_counts + (2 + point_pos.x);
_pos[6] = tess_data[index].pos;
index = (1 + point_pos.y) * u_spline_counts + (3 + point_pos.x);
_pos[7] = tess_data[index].pos;
index = (2 + point_pos.y) * u_spline_counts + (0 + point_pos.x);
_pos[8] = tess_data[index].pos;
index = ( |
1 |
1 |
48 |
2021-02-13 |
| D3D error in shader compilation: info: C:\Program Files\PPSSPP\Shader@0x0000004EACE58580(122,16-57): error X4505: maximum temp register index exceeded
C:\Program Files\PPSSPP\Shader@0x0000004EACE58580(122,12-71): error X4505: maximum temp register index exceeded
/ code: #pragma warning( disable : 3571 )
float4x4 u_proj : register(c0);
float4 u_matambientalpha : register(c20);
float4x3 u_world : register(c11);
float4x3 u_view : register(c8);
float4 u_uvscaleoffset : register(c17);
float3 u_lightpos0 : register(c24);
float3 u_lightatt0 : register(c32);
float3 u_lightdir0 : register(c28);
float4 u_lightangle_spotCoef0 : register(c36);
float3 u_lightambient0 : register(c48);
float3 u_lightdiffuse0 : register(c40);
float3 u_lightspecular0 : register(c44);
float3 u_lightpos1 : register(c25);
float3 u_lightatt1 : register(c33);
float3 u_lightdir1 : register(c29);
float4 u_lightangle_spotCoef1 : register(c37);
float3 u_lightambient1 : register(c49);
float3 u_lightdiffuse1 : register(c41);
float3 u_lightspecular1 : register(c45);
float3 u_lightpos2 : register(c26);
float3 u_lightatt2 : register(c34);
float3 u_lightdir2 : register(c30);
float4 u_lightangle_spotCoef2 : register(c38);
float3 u_lightambient2 : register(c50);
float3 u_lightdiffuse2 : register(c42);
float3 u_lightspecular2 : register(c46);
float3 u_lightpos3 : register(c27);
float3 u_lightatt3 : register(c35);
float3 u_lightdir3 : register(c31);
float4 u_lightangle_spotCoef3 : register(c39);
float3 u_lightambient3 : register(c51);
float3 u_lightdiffuse3 : register(c43);
float3 u_lightspecular3 : register(c47);
float4 u_ambient : register(c19);
float3 u_matdiffuse : register(c21);
float4 u_matspecular : register(c22);
float3 u_matemissive : register(c23);
float4 u_cullRangeMin : register(c80);
float4 u_cullRangeMax : register(c81);
struct VS_IN {
float2 texcoord : TEXCOORD0;
float3 normal : NORMAL;
float3 position : POSITION;
};
struct VS_OUT {
float3 v_texcoord : TEXCOORD0;
float4 v_color0 : COLOR0;
float3 v_color1 : COLOR1;
float4 gl_Position : POSITION;
};
VS_OUT main(VS_IN In) {
VS_OUT Out;
float3 worldpos = mul(float4(In.position.xyz, 1.0), u_world);
float3 worldnormal = normalize(mul(float4(In.normal, 0.0), u_world));
float4 viewPos = float4(mul(float4(worldpos, 1.0), u_view), 1.0);
float4 outPos = mul(viewPos, u_proj);
float4 lightSum0 = u_ambient * u_matambientalpha + float4(u_matemissive, 0.0);
float3 lightSum1 = 0;
float3 toLight;
float3 diffuse;
float distance;
float lightScale;
float ldot;
float angle;
toLight = u_lightpos0 - worldpos;
distance = length(toLight);
toLight /= distance;
ldot = dot(toLight, worldnormal);
angle = length(u_lightdir0) == 0.0 ? 0.0 : dot(normalize(u_lightdir0), toLight);
if (angle >= u_lightangle_spotCoef0.x) {
lightScale = clamp(1.0 / dot(u_lightatt0, float3(1.0, distance, distance*distance)), 0.0, 1.0) * (u_lightangle_spotCoef0.y <= 0.0 ? 1.0 : pow(angle, u_lightangle_spotCoef0.y));
} else {
lightScale = 0.0;
}
diffuse = (u_lightdiffuse0 * u_matdiffuse) * max(ldot, 0.0);
if (ldot >= 0.0) {
ldot = dot(normalize(toLight + float3(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 * lightScale;
}
lightSum0.rgb += (u_lightambient0 * u_matambientalpha.rgb + diffuse) * lightScale;
toLight = u_lightpos1 - worldpos;
distance = length(toLight);
toLight /= distance;
ldot = dot(toLight, worldnormal);
angle = length(u_lightdir1) == 0.0 ? 0.0 : dot(normalize(u_lightdir1), toLight);
if (angle >= u_lightangle_spotCoef1.x) {
lightScale = clamp(1.0 / dot(u_lightatt1, float3(1.0, distance, distance*distance)), 0.0, 1.0) * (u_lightangle_spotCoef1.y <= 0.0 ? 1.0 : pow(angle, u_lightangle_spotCoef1.y));
} else {
lightScale = 0.0;
}
diffuse = (u_lightdiffuse1 * u_matdiffuse) * max(ldot, 0.0);
if (ldot >= 0.0) {
ldot = dot(norm |
1 |
1 |
48 |
2020-08-26 |
| D3D error in shader compilation: info: C:\Program Files\PPSSPP\Shader@0x000000A3C8278390(122,16-57): error X4505: maximum temp register index exceeded
C:\Program Files\PPSSPP\Shader@0x000000A3C8278390(122,12-71): error X4505: maximum temp register index exceeded
/ code: #pragma warning( disable : 3571 )
float4x4 u_proj : register(c0);
float4 u_matambientalpha : register(c20);
float4x3 u_world : register(c11);
float4x3 u_view : register(c8);
float4 u_uvscaleoffset : register(c17);
float3 u_lightpos0 : register(c24);
float3 u_lightatt0 : register(c32);
float3 u_lightdir0 : register(c28);
float4 u_lightangle_spotCoef0 : register(c36);
float3 u_lightambient0 : register(c48);
float3 u_lightdiffuse0 : register(c40);
float3 u_lightspecular0 : register(c44);
float3 u_lightpos1 : register(c25);
float3 u_lightatt1 : register(c33);
float3 u_lightdir1 : register(c29);
float4 u_lightangle_spotCoef1 : register(c37);
float3 u_lightambient1 : register(c49);
float3 u_lightdiffuse1 : register(c41);
float3 u_lightspecular1 : register(c45);
float3 u_lightpos2 : register(c26);
float3 u_lightatt2 : register(c34);
float3 u_lightdir2 : register(c30);
float4 u_lightangle_spotCoef2 : register(c38);
float3 u_lightambient2 : register(c50);
float3 u_lightdiffuse2 : register(c42);
float3 u_lightspecular2 : register(c46);
float3 u_lightpos3 : register(c27);
float3 u_lightatt3 : register(c35);
float3 u_lightdir3 : register(c31);
float4 u_lightangle_spotCoef3 : register(c39);
float3 u_lightambient3 : register(c51);
float3 u_lightdiffuse3 : register(c43);
float3 u_lightspecular3 : register(c47);
float4 u_ambient : register(c19);
float3 u_matdiffuse : register(c21);
float4 u_matspecular : register(c22);
float3 u_matemissive : register(c23);
float4 u_cullRangeMin : register(c80);
float4 u_cullRangeMax : register(c81);
struct VS_IN {
float2 texcoord : TEXCOORD0;
float3 normal : NORMAL;
float3 position : POSITION;
};
struct VS_OUT {
float3 v_texcoord : TEXCOORD0;
float4 v_color0 : COLOR0;
float3 v_color1 : COLOR1;
float4 gl_Position : POSITION;
};
VS_OUT main(VS_IN In) {
VS_OUT Out;
float3 worldpos = mul(float4(In.position.xyz, 1.0), u_world);
float3 worldnormal = normalize(mul(float4(In.normal, 0.0), u_world));
float4 viewPos = float4(mul(float4(worldpos, 1.0), u_view), 1.0);
float4 outPos = mul(viewPos, u_proj);
float4 lightSum0 = u_ambient * u_matambientalpha + float4(u_matemissive, 0.0);
float3 lightSum1 = 0;
float3 toLight;
float3 diffuse;
float distance;
float lightScale;
float ldot;
float angle;
toLight = u_lightpos0 - worldpos;
distance = length(toLight);
toLight /= distance;
ldot = dot(toLight, worldnormal);
angle = length(u_lightdir0) == 0.0 ? 0.0 : dot(normalize(u_lightdir0), toLight);
if (angle >= u_lightangle_spotCoef0.x) {
lightScale = clamp(1.0 / dot(u_lightatt0, float3(1.0, distance, distance*distance)), 0.0, 1.0) * (u_lightangle_spotCoef0.y <= 0.0 ? 1.0 : pow(angle, u_lightangle_spotCoef0.y));
} else {
lightScale = 0.0;
}
diffuse = (u_lightdiffuse0 * u_matdiffuse) * max(ldot, 0.0);
if (ldot >= 0.0) {
ldot = dot(normalize(toLight + float3(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 * lightScale;
}
lightSum0.rgb += (u_lightambient0 * u_matambientalpha.rgb + diffuse) * lightScale;
toLight = u_lightpos1 - worldpos;
distance = length(toLight);
toLight /= distance;
ldot = dot(toLight, worldnormal);
angle = length(u_lightdir1) == 0.0 ? 0.0 : dot(normalize(u_lightdir1), toLight);
if (angle >= u_lightangle_spotCoef1.x) {
lightScale = clamp(1.0 / dot(u_lightatt1, float3(1.0, distance, distance*distance)), 0.0, 1.0) * (u_lightangle_spotCoef1.y <= 0.0 ? 1.0 : pow(angle, u_lightangle_spotCoef1.y));
} else {
lightScale = 0.0;
}
diffuse = (u_lightdiffuse1 * u_matdiffuse) * max(ldot, 0.0);
if (ldot >= 0.0) {
ldot = dot(norm |
1 |
1 |
48 |
2020-08-25 |
| D3D error in shader compilation: info: C:\Program Files\PPSSPP\Shader@0x08533478(95,31-45): error X3004: undeclared identifier 'u_spline_counts'
/ code: #pragma warning( disable : 3571 )
float4x4 u_proj : register(c0);
float4 u_matambientalpha : register(c20);
float4x3 u_world : register(c11);
float4x3 u_view : register(c8);
float4 u_uvscaleoffset : register(c17);
float4 u_cullRangeMin : register(c80);
float4 u_cullRangeMax : register(c81);
struct VS_IN {
float2 texcoord : TEXCOORD0;
float4 color0 : COLOR0;
float3 normal : NORMAL;
float3 position : POSITION;
};
struct VS_OUT {
float3 v_texcoord : TEXCOORD0;
float4 v_color0 : COLOR0;
float4 gl_Position : POSITION;
};
float2 tess_sample(in float2 points[16], float4x4 weights) {
float2 pos = float2(0.0, 0.0);
pos += weights[0][0] * points[0];
pos += weights[0][1] * points[1];
pos += weights[0][2] * points[2];
pos += weights[0][3] * points[3];
pos += weights[1][0] * points[4];
pos += weights[1][1] * points[5];
pos += weights[1][2] * points[6];
pos += weights[1][3] * points[7];
pos += weights[2][0] * points[8];
pos += weights[2][1] * points[9];
pos += weights[2][2] * points[10];
pos += weights[2][3] * points[11];
pos += weights[3][0] * points[12];
pos += weights[3][1] * points[13];
pos += weights[3][2] * points[14];
pos += weights[3][3] * points[15];
return pos;
}
float3 tess_sample(in float3 points[16], float4x4 weights) {
float3 pos = float3(0.0, 0.0, 0.0);
pos += weights[0][0] * points[0];
pos += weights[0][1] * points[1];
pos += weights[0][2] * points[2];
pos += weights[0][3] * points[3];
pos += weights[1][0] * points[4];
pos += weights[1][1] * points[5];
pos += weights[1][2] * points[6];
pos += weights[1][3] * points[7];
pos += weights[2][0] * points[8];
pos += weights[2][1] * points[9];
pos += weights[2][2] * points[10];
pos += weights[2][3] * points[11];
pos += weights[3][0] * points[12];
pos += weights[3][1] * points[13];
pos += weights[3][2] * points[14];
pos += weights[3][3] * points[15];
return pos;
}
float4 tess_sample(in float4 points[16], float4x4 weights) {
float4 pos = float4(0.0, 0.0, 0.0, 0.0);
pos += weights[0][0] * points[0];
pos += weights[0][1] * points[1];
pos += weights[0][2] * points[2];
pos += weights[0][3] * points[3];
pos += weights[1][0] * points[4];
pos += weights[1][1] * points[5];
pos += weights[1][2] * points[6];
pos += weights[1][3] * points[7];
pos += weights[2][0] * points[8];
pos += weights[2][1] * points[9];
pos += weights[2][2] * points[10];
pos += weights[2][3] * points[11];
pos += weights[3][0] * points[12];
pos += weights[3][1] * points[13];
pos += weights[3][2] * points[14];
pos += weights[3][3] * points[15];
return pos;
}
float4x4 outerProduct(float4 u, float4 v) {
return mul((float4x1)v, (float1x4)u);
}
struct Tess {
float3 pos;
float2 tex;
float4 col;
};
void tessellate(in VS_IN In, out Tess tess) {
int2 point_pos = int2(In.position.z, In.normal.z) * 3;
int2 weight_idx = int2(In.position.xy);
float3 _pos[16];
float2 _tex[16];
float4 _col[16];
int index;
index = (0 + point_pos.y) * u_spline_counts + (0 + point_pos.x);
_pos[0] = tess_data[index].pos;
index = (0 + point_pos.y) * u_spline_counts + (1 + point_pos.x);
_pos[1] = tess_data[index].pos;
index = (0 + point_pos.y) * u_spline_counts + (2 + point_pos.x);
_pos[2] = tess_data[index].pos;
index = (0 + point_pos.y) * u_spline_counts + (3 + point_pos.x);
_pos[3] = tess_data[index].pos;
index = (1 + point_pos.y) * u_spline_counts + (0 + point_pos.x);
_pos[4] = tess_data[index].pos;
index = (1 + point_pos.y) * u_spline_counts + (1 + point_pos.x);
_pos[5] = tess_data[index].pos;
index = (1 + point_pos.y) * u_spline_counts + (2 + point_pos.x);
_pos[6] = tess_data[index].pos;
index = (1 + point_pos.y) * u_spline_counts + (3 + point_pos.x);
_pos[7] = tess_data[index].pos;
index = (2 + point_pos.y) * u_spline_counts + (0 + point_pos.x);
_pos[8] = tess_data[index].pos;
index = ( |
1 |
1 |
47 |
2021-02-12 |
| D3D error in shader compilation: info: F:\PPSSPP\Shader@0x000000000ECC7680(102,16-55): error X4505: maximum temp register index exceeded
F:\PPSSPP\Shader@0x000000000ECC7680(102,12-69): error X4505: maximum temp register index exceeded
F:\PPSSPP\Shader@0x000000000ECC7680(146,16-55): error X4505: maximum temp register index exceeded
F:\PPSSPP\Shader@0x000000000ECC7680(146,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_lightdir3 : register(c31);
vec4 u_lightangle_spotCoef3 : register(c39);
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_lig |
1 |
1 |
46 |
2022-06-12 |
| D3D error in shader compilation: info: C:\Program Files\PPSSPP\Shader@0x0F0EED00(133,16-57): error X4505: maximum temp register index exceeded
C:\Program Files\PPSSPP\Shader@0x0F0EED00(133,12-71): error X4505: maximum temp register index exceeded
/ code: #pragma warning( disable : 3571 )
float4x4 u_proj : register(c0);
float4 u_matambientalpha : register(c20);
float4x3 u_world : register(c11);
float4x3 u_view : register(c8);
float4 u_uvscaleoffset : register(c17);
float3 u_lightpos0 : register(c24);
float3 u_lightambient0 : register(c48);
float3 u_lightdiffuse0 : register(c40);
float3 u_lightspecular0 : register(c44);
float3 u_lightpos1 : register(c25);
float3 u_lightatt1 : register(c33);
float3 u_lightdir1 : register(c29);
float4 u_lightangle_spotCoef1 : register(c37);
float3 u_lightambient1 : register(c49);
float3 u_lightdiffuse1 : register(c41);
float3 u_lightspecular1 : register(c45);
float3 u_lightpos2 : register(c26);
float3 u_lightatt2 : register(c34);
float3 u_lightdir2 : register(c30);
float4 u_lightangle_spotCoef2 : register(c38);
float3 u_lightambient2 : register(c50);
float3 u_lightdiffuse2 : register(c42);
float3 u_lightspecular2 : register(c46);
float3 u_lightpos3 : register(c27);
float3 u_lightatt3 : register(c35);
float3 u_lightdir3 : register(c31);
float4 u_lightangle_spotCoef3 : register(c39);
float3 u_lightambient3 : register(c51);
float3 u_lightdiffuse3 : register(c43);
float3 u_lightspecular3 : register(c47);
float4 u_ambient : register(c19);
float3 u_matdiffuse : register(c21);
float4 u_matspecular : register(c22);
float3 u_matemissive : register(c23);
float4 u_cullRangeMin : register(c80);
float4 u_cullRangeMax : register(c81);
struct VS_IN {
float2 texcoord : TEXCOORD0;
float3 normal : NORMAL;
float3 position : POSITION;
};
struct VS_OUT {
float3 v_texcoord : TEXCOORD0;
float4 v_color0 : COLOR0;
float3 v_color1 : COLOR1;
float4 gl_Position : POSITION;
};
VS_OUT main(VS_IN In) {
VS_OUT Out;
float3 worldpos = mul(float4(In.position.xyz, 1.0), u_world);
float3 worldnormal = normalize(mul(float4(In.normal, 0.0), u_world));
float4 viewPos = float4(mul(float4(worldpos, 1.0), u_view), 1.0);
float4 outPos = mul(viewPos, u_proj);
float4 lightSum0 = u_ambient * u_matambientalpha + float4(u_matemissive, 0.0);
float3 lightSum1 = 0;
float3 toLight;
float3 diffuse;
float distance;
float lightScale;
float ldot;
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 + float3(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);
angle = length(u_lightdir1) == 0.0 ? 0.0 : dot(normalize(u_lightdir1), toLight);
if (angle >= u_lightangle_spotCoef1.x) {
lightScale = clamp(1.0 / dot(u_lightatt1, float3(1.0, distance, distance*distance)), 0.0, 1.0) * (u_lightangle_spotCoef1.y == 0.0 ? 1.0 : pow(angle, u_lightangle_spotCoef1.y));
} else {
lightScale = 0.0;
}
diffuse = (u_lightdiffuse1 * u_matdiffuse) * max(ldot, 0.0);
if (ldot >= 0.0) {
ldot = dot(normalize(toLight + float3(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_lightdir2), toLight) |
1 |
1 |
45 |
2020-04-27 |
| D3D error in shader compilation: info: C:\Users\PC\Videos\WWE-2K14-PC-PSP\WWE-2K14-DownloadComputerGames.net\Shader@0x0AB9AFC8(122,16-57): error X4505: maximum temp register index exceeded
C:\Users\PC\Videos\WWE-2K14-PC-PSP\WWE-2K14-DownloadComputerGames.net\Shader@0x0AB9AFC8(122,12-71): error X4505: maximum temp register index exceeded
/ code: #pragma warning( disable : 3571 )
float4x4 u_proj : register(c0);
float4 u_matambientalpha : register(c20);
float4x3 u_world : register(c11);
float4x3 u_view : register(c8);
float4 u_uvscaleoffset : register(c17);
float3 u_lightpos0 : register(c24);
float3 u_lightatt0 : register(c32);
float3 u_lightdir0 : register(c28);
float4 u_lightangle_spotCoef0 : register(c36);
float3 u_lightambient0 : register(c48);
float3 u_lightdiffuse0 : register(c40);
float3 u_lightspecular0 : register(c44);
float3 u_lightpos1 : register(c25);
float3 u_lightatt1 : register(c33);
float3 u_lightdir1 : register(c29);
float4 u_lightangle_spotCoef1 : register(c37);
float3 u_lightambient1 : register(c49);
float3 u_lightdiffuse1 : register(c41);
float3 u_lightspecular1 : register(c45);
float3 u_lightpos2 : register(c26);
float3 u_lightatt2 : register(c34);
float3 u_lightdir2 : register(c30);
float4 u_lightangle_spotCoef2 : register(c38);
float3 u_lightambient2 : register(c50);
float3 u_lightdiffuse2 : register(c42);
float3 u_lightspecular2 : register(c46);
float3 u_lightpos3 : register(c27);
float3 u_lightatt3 : register(c35);
float3 u_lightdir3 : register(c31);
float4 u_lightangle_spotCoef3 : register(c39);
float3 u_lightambient3 : register(c51);
float3 u_lightdiffuse3 : register(c43);
float3 u_lightspecular3 : register(c47);
float4 u_ambient : register(c19);
float3 u_matdiffuse : register(c21);
float4 u_matspecular : register(c22);
float3 u_matemissive : register(c23);
float4 u_cullRangeMin : register(c80);
float4 u_cullRangeMax : register(c81);
struct VS_IN {
float2 texcoord : TEXCOORD0;
float3 normal : NORMAL;
float3 position : POSITION;
};
struct VS_OUT {
float3 v_texcoord : TEXCOORD0;
float4 v_color0 : COLOR0;
float3 v_color1 : COLOR1;
float4 gl_Position : POSITION;
};
VS_OUT main(VS_IN In) {
VS_OUT Out;
float3 worldpos = mul(float4(In.position.xyz, 1.0), u_world);
float3 worldnormal = normalize(mul(float4(In.normal, 0.0), u_world));
float4 viewPos = float4(mul(float4(worldpos, 1.0), u_view), 1.0);
float4 outPos = mul(viewPos, u_proj);
float4 lightSum0 = u_ambient * u_matambientalpha + float4(u_matemissive, 0.0);
float3 lightSum1 = 0;
float3 toLight;
float3 diffuse;
float distance;
float lightScale;
float ldot;
float angle;
toLight = u_lightpos0 - worldpos;
distance = length(toLight);
toLight /= distance;
ldot = dot(toLight, worldnormal);
angle = length(u_lightdir0) == 0.0 ? 0.0 : dot(normalize(u_lightdir0), toLight);
if (angle >= u_lightangle_spotCoef0.x) {
lightScale = clamp(1.0 / dot(u_lightatt0, float3(1.0, distance, distance*distance)), 0.0, 1.0) * (u_lightangle_spotCoef0.y == 0.0 ? 1.0 : pow(angle, u_lightangle_spotCoef0.y));
} else {
lightScale = 0.0;
}
diffuse = (u_lightdiffuse0 * u_matdiffuse) * max(ldot, 0.0);
if (ldot >= 0.0) {
ldot = dot(normalize(toLight + float3(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 * lightScale;
}
lightSum0.rgb += (u_lightambient0 * u_matambientalpha.rgb + diffuse) * lightScale;
toLight = u_lightpos1 - worldpos;
distance = length(toLight);
toLight /= distance;
ldot = dot(toLight, worldnormal);
angle = length(u_lightdir1) == 0.0 ? 0.0 : dot(normalize(u_lightdir1), toLight);
if (angle >= u_lightangle_spotCoef1.x) {
lightScale = clamp(1.0 / dot(u_lightatt1, float3(1.0, distance, distance*distance)), 0.0, 1.0) * (u_lightangle_spotCoef1.y == 0.0 ? 1.0 : pow(angle, u_lightangle_spotCoef1.y));
} else {
lightScale = 0.0;
}
diffuse = (u_lightdiffuse |
1 |
1 |
44 |
2024-03-16 |
| D3D error in shader compilation: info: F:\PPSSPP\Shader@0x000000000ECC7680(99,16-55): error X4505: maximum temp register index exceeded
F:\PPSSPP\Shader@0x000000000ECC7680(99,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_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_lightdir2), toLight);
if (angle >= u_lightangle_spotCoef2.x) {
|
1 |
1 |
44 |
2022-06-12 |
| D3D error in shader compilation: info: C:\Program Files\PPSSPP\Shader@0x0F93ECA8(123,16-55): error X4505: maximum temp register index exceeded
C:\Program Files\PPSSPP\Shader@0x0F93ECA8(123,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);
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_lightdir1 : register(c29);
vec4 u_lightangle_spotCoef1 : register(c37);
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_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;
vec4 gl_Position : POSITION;
};
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 = normalize(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);
angle = length(u_lightdir1) == 0.0 ? 0.0 : dot(normalize(u_lightdir1), toLight);
if (angle >= u_lightangle_spotCoef1.x) {
lightScale = clamp(1.0 / dot(u_lightatt1, vec3(1.0, distance, distance*distance)), 0.0, 1.0) * (u_lightangle_spotCoef1.y <= 0.0 ? 1.0 : pow(angle, u_lightangle_spotCoef1.y));
} else {
lightScale = 0.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 / |
1 |
1 |
44 |
2021-05-17 |
| D3D error in shader compilation: info: C:\Program Files\PPSSPP\Shader@0x0BD1AD78(95,31-45): error X3004: undeclared identifier 'u_spline_counts'
/ code: #pragma warning( disable : 3571 )
float4x4 u_proj : register(c0);
float4 u_matambientalpha : register(c20);
float4x3 u_world : register(c11);
float4x3 u_view : register(c8);
float4 u_uvscaleoffset : register(c17);
float4 u_cullRangeMin : register(c80);
float4 u_cullRangeMax : register(c81);
struct VS_IN {
float2 texcoord : TEXCOORD0;
float4 color0 : COLOR0;
float3 normal : NORMAL;
float3 position : POSITION;
};
struct VS_OUT {
float3 v_texcoord : TEXCOORD0;
float4 v_color0 : COLOR0;
float4 gl_Position : POSITION;
};
float2 tess_sample(in float2 points[16], float4x4 weights) {
float2 pos = float2(0.0, 0.0);
pos += weights[0][0] * points[0];
pos += weights[0][1] * points[1];
pos += weights[0][2] * points[2];
pos += weights[0][3] * points[3];
pos += weights[1][0] * points[4];
pos += weights[1][1] * points[5];
pos += weights[1][2] * points[6];
pos += weights[1][3] * points[7];
pos += weights[2][0] * points[8];
pos += weights[2][1] * points[9];
pos += weights[2][2] * points[10];
pos += weights[2][3] * points[11];
pos += weights[3][0] * points[12];
pos += weights[3][1] * points[13];
pos += weights[3][2] * points[14];
pos += weights[3][3] * points[15];
return pos;
}
float3 tess_sample(in float3 points[16], float4x4 weights) {
float3 pos = float3(0.0, 0.0, 0.0);
pos += weights[0][0] * points[0];
pos += weights[0][1] * points[1];
pos += weights[0][2] * points[2];
pos += weights[0][3] * points[3];
pos += weights[1][0] * points[4];
pos += weights[1][1] * points[5];
pos += weights[1][2] * points[6];
pos += weights[1][3] * points[7];
pos += weights[2][0] * points[8];
pos += weights[2][1] * points[9];
pos += weights[2][2] * points[10];
pos += weights[2][3] * points[11];
pos += weights[3][0] * points[12];
pos += weights[3][1] * points[13];
pos += weights[3][2] * points[14];
pos += weights[3][3] * points[15];
return pos;
}
float4 tess_sample(in float4 points[16], float4x4 weights) {
float4 pos = float4(0.0, 0.0, 0.0, 0.0);
pos += weights[0][0] * points[0];
pos += weights[0][1] * points[1];
pos += weights[0][2] * points[2];
pos += weights[0][3] * points[3];
pos += weights[1][0] * points[4];
pos += weights[1][1] * points[5];
pos += weights[1][2] * points[6];
pos += weights[1][3] * points[7];
pos += weights[2][0] * points[8];
pos += weights[2][1] * points[9];
pos += weights[2][2] * points[10];
pos += weights[2][3] * points[11];
pos += weights[3][0] * points[12];
pos += weights[3][1] * points[13];
pos += weights[3][2] * points[14];
pos += weights[3][3] * points[15];
return pos;
}
float4x4 outerProduct(float4 u, float4 v) {
return mul((float4x1)v, (float1x4)u);
}
struct Tess {
float3 pos;
float2 tex;
float4 col;
};
void tessellate(in VS_IN In, out Tess tess) {
int2 point_pos = int2(In.position.z, In.normal.z) * 3;
int2 weight_idx = int2(In.position.xy);
float3 _pos[16];
float2 _tex[16];
float4 _col[16];
int index;
index = (0 + point_pos.y) * u_spline_counts + (0 + point_pos.x);
_pos[0] = tess_data[index].pos;
index = (0 + point_pos.y) * u_spline_counts + (1 + point_pos.x);
_pos[1] = tess_data[index].pos;
index = (0 + point_pos.y) * u_spline_counts + (2 + point_pos.x);
_pos[2] = tess_data[index].pos;
index = (0 + point_pos.y) * u_spline_counts + (3 + point_pos.x);
_pos[3] = tess_data[index].pos;
index = (1 + point_pos.y) * u_spline_counts + (0 + point_pos.x);
_pos[4] = tess_data[index].pos;
index = (1 + point_pos.y) * u_spline_counts + (1 + point_pos.x);
_pos[5] = tess_data[index].pos;
index = (1 + point_pos.y) * u_spline_counts + (2 + point_pos.x);
_pos[6] = tess_data[index].pos;
index = (1 + point_pos.y) * u_spline_counts + (3 + point_pos.x);
_pos[7] = tess_data[index].pos;
index = (2 + point_pos.y) * u_spline_counts + (0 + point_pos.x);
_pos[8] = tess_data[index].pos;
index = ( |
1 |
1 |
44 |
2021-04-11 |
| D3D error in shader compilation: info: D:\5funGameHall\memory(14,55): error X3004: undeclared identifier 'u_proj_through'
D:\5funGameHall\memory(14,21): error X3013: 'mul': intrinsic function does not take 2 parameters
D:\5funGameHall\memory(14,21): error X3013: Possible intrinsic functions are:
D:\5funGameHall\memory(14,21): error X3013: mul(float, float)
D:\5funGameHall\memory(14,21): error X3013: mul(float, floatK)
D:\5funGameHall\memory(14,21): error X3013: mul(float, floatLxK)
D:\5funGameHall\memory(14,21): error X3013: mul(floatM, float)
D:\5funGameHall\memory(14,21): error X3013: mul(floatM, floatM)
D:\5funGameHall\memory(14,21): error X3013: mul(floatM, floatMxK)
D:\5funGameHall\memory(14,21): error X3013: mul(floatNxM, float)
D:\5funGameHall\memory(14,21): error X3013: mul(floatNxM, floatM)
D:\5funGameHall\memory(14,21): error X3013: mul(floatNxM, floatMxK)
/ code: #pragma warning( disable : 3571 )
float4x4 u_proj : register(c0);
struct VS_IN {
float4 position : POSITION;
float4 color0 : COLOR0;
};
struct VS_OUT {
float4 v_color0 : COLOR0;
float4 gl_Position : POSITION;
};
VS_OUT main(VS_IN In) {
VS_OUT Out;
Out.v_color0 = In.color0;
Out.gl_Position = mul(float4(In.position.xyz, 1.0), u_proj_through);
return Out;
}
|
2 |
2 |
43 |
2020-10-23 |
| D3D error in shader compilation: info: E:\games\Tekken 6 - (Www.ApunKaGames.Net)\ppsspp64\Shader@0x0D77BD58(95,31-45): error X3004: undeclared identifier 'u_spline_counts'
/ code: #pragma warning( disable : 3571 )
float4x4 u_proj : register(c0);
float4 u_matambientalpha : register(c20);
float4x3 u_world : register(c11);
float4x3 u_view : register(c8);
float4 u_uvscaleoffset : register(c17);
float4 u_cullRangeMin : register(c80);
float4 u_cullRangeMax : register(c81);
struct VS_IN {
float2 texcoord : TEXCOORD0;
float4 color0 : COLOR0;
float3 normal : NORMAL;
float3 position : POSITION;
};
struct VS_OUT {
float3 v_texcoord : TEXCOORD0;
float4 v_color0 : COLOR0;
float4 gl_Position : POSITION;
};
float2 tess_sample(in float2 points[16], float4x4 weights) {
float2 pos = float2(0.0, 0.0);
pos += weights[0][0] * points[0];
pos += weights[0][1] * points[1];
pos += weights[0][2] * points[2];
pos += weights[0][3] * points[3];
pos += weights[1][0] * points[4];
pos += weights[1][1] * points[5];
pos += weights[1][2] * points[6];
pos += weights[1][3] * points[7];
pos += weights[2][0] * points[8];
pos += weights[2][1] * points[9];
pos += weights[2][2] * points[10];
pos += weights[2][3] * points[11];
pos += weights[3][0] * points[12];
pos += weights[3][1] * points[13];
pos += weights[3][2] * points[14];
pos += weights[3][3] * points[15];
return pos;
}
float3 tess_sample(in float3 points[16], float4x4 weights) {
float3 pos = float3(0.0, 0.0, 0.0);
pos += weights[0][0] * points[0];
pos += weights[0][1] * points[1];
pos += weights[0][2] * points[2];
pos += weights[0][3] * points[3];
pos += weights[1][0] * points[4];
pos += weights[1][1] * points[5];
pos += weights[1][2] * points[6];
pos += weights[1][3] * points[7];
pos += weights[2][0] * points[8];
pos += weights[2][1] * points[9];
pos += weights[2][2] * points[10];
pos += weights[2][3] * points[11];
pos += weights[3][0] * points[12];
pos += weights[3][1] * points[13];
pos += weights[3][2] * points[14];
pos += weights[3][3] * points[15];
return pos;
}
float4 tess_sample(in float4 points[16], float4x4 weights) {
float4 pos = float4(0.0, 0.0, 0.0, 0.0);
pos += weights[0][0] * points[0];
pos += weights[0][1] * points[1];
pos += weights[0][2] * points[2];
pos += weights[0][3] * points[3];
pos += weights[1][0] * points[4];
pos += weights[1][1] * points[5];
pos += weights[1][2] * points[6];
pos += weights[1][3] * points[7];
pos += weights[2][0] * points[8];
pos += weights[2][1] * points[9];
pos += weights[2][2] * points[10];
pos += weights[2][3] * points[11];
pos += weights[3][0] * points[12];
pos += weights[3][1] * points[13];
pos += weights[3][2] * points[14];
pos += weights[3][3] * points[15];
return pos;
}
float4x4 outerProduct(float4 u, float4 v) {
return mul((float4x1)v, (float1x4)u);
}
struct Tess {
float3 pos;
float2 tex;
float4 col;
};
void tessellate(in VS_IN In, out Tess tess) {
int2 point_pos = int2(In.position.z, In.normal.z) * 3;
int2 weight_idx = int2(In.position.xy);
float3 _pos[16];
float2 _tex[16];
float4 _col[16];
int index;
index = (0 + point_pos.y) * u_spline_counts + (0 + point_pos.x);
_pos[0] = tess_data[index].pos;
index = (0 + point_pos.y) * u_spline_counts + (1 + point_pos.x);
_pos[1] = tess_data[index].pos;
index = (0 + point_pos.y) * u_spline_counts + (2 + point_pos.x);
_pos[2] = tess_data[index].pos;
index = (0 + point_pos.y) * u_spline_counts + (3 + point_pos.x);
_pos[3] = tess_data[index].pos;
index = (1 + point_pos.y) * u_spline_counts + (0 + point_pos.x);
_pos[4] = tess_data[index].pos;
index = (1 + point_pos.y) * u_spline_counts + (1 + point_pos.x);
_pos[5] = tess_data[index].pos;
index = (1 + point_pos.y) * u_spline_counts + (2 + point_pos.x);
_pos[6] = tess_data[index].pos;
index = (1 + point_pos.y) * u_spline_counts + (3 + point_pos.x);
_pos[7] = tess_data[index].pos;
index = (2 + point_pos.y) * u_spline_counts + (0 + point_pos.x);
_pos[8] = tess_d |
1 |
1 |
42 |
2020-11-16 |
| D3D error in shader compilation: info: C:\Users\jhe\Downloads\PPSSPPWindowsGold (2)\Shader@0x0CF1E500(122,16-57): error X4505: maximum temp register index exceeded
C:\Users\jhe\Downloads\PPSSPPWindowsGold (2)\Shader@0x0CF1E500(122,12-71): error X4505: maximum temp register index exceeded
/ code: #pragma warning( disable : 3571 )
float4x4 u_proj : register(c0);
float4 u_matambientalpha : register(c20);
float4x3 u_world : register(c11);
float4x3 u_view : register(c8);
float4 u_uvscaleoffset : register(c17);
float3 u_lightpos0 : register(c24);
float3 u_lightatt0 : register(c32);
float3 u_lightdir0 : register(c28);
float4 u_lightangle_spotCoef0 : register(c36);
float3 u_lightambient0 : register(c48);
float3 u_lightdiffuse0 : register(c40);
float3 u_lightspecular0 : register(c44);
float3 u_lightpos1 : register(c25);
float3 u_lightatt1 : register(c33);
float3 u_lightdir1 : register(c29);
float4 u_lightangle_spotCoef1 : register(c37);
float3 u_lightambient1 : register(c49);
float3 u_lightdiffuse1 : register(c41);
float3 u_lightspecular1 : register(c45);
float3 u_lightpos2 : register(c26);
float3 u_lightatt2 : register(c34);
float3 u_lightdir2 : register(c30);
float4 u_lightangle_spotCoef2 : register(c38);
float3 u_lightambient2 : register(c50);
float3 u_lightdiffuse2 : register(c42);
float3 u_lightspecular2 : register(c46);
float3 u_lightpos3 : register(c27);
float3 u_lightatt3 : register(c35);
float3 u_lightdir3 : register(c31);
float4 u_lightangle_spotCoef3 : register(c39);
float3 u_lightambient3 : register(c51);
float3 u_lightdiffuse3 : register(c43);
float3 u_lightspecular3 : register(c47);
float4 u_ambient : register(c19);
float3 u_matdiffuse : register(c21);
float4 u_matspecular : register(c22);
float3 u_matemissive : register(c23);
float4 u_cullRangeMin : register(c80);
float4 u_cullRangeMax : register(c81);
struct VS_IN {
float2 texcoord : TEXCOORD0;
float3 normal : NORMAL;
float3 position : POSITION;
};
struct VS_OUT {
float3 v_texcoord : TEXCOORD0;
float4 v_color0 : COLOR0;
float3 v_color1 : COLOR1;
float4 gl_Position : POSITION;
};
VS_OUT main(VS_IN In) {
VS_OUT Out;
float3 worldpos = mul(float4(In.position.xyz, 1.0), u_world);
float3 worldnormal = normalize(mul(float4(In.normal, 0.0), u_world));
float4 viewPos = float4(mul(float4(worldpos, 1.0), u_view), 1.0);
float4 outPos = mul(viewPos, u_proj);
float4 lightSum0 = u_ambient * u_matambientalpha + float4(u_matemissive, 0.0);
float3 lightSum1 = 0;
float3 toLight;
float3 diffuse;
float distance;
float lightScale;
float ldot;
float angle;
toLight = u_lightpos0 - worldpos;
distance = length(toLight);
toLight /= distance;
ldot = dot(toLight, worldnormal);
angle = length(u_lightdir0) == 0.0 ? 0.0 : dot(normalize(u_lightdir0), toLight);
if (angle >= u_lightangle_spotCoef0.x) {
lightScale = clamp(1.0 / dot(u_lightatt0, float3(1.0, distance, distance*distance)), 0.0, 1.0) * (u_lightangle_spotCoef0.y == 0.0 ? 1.0 : pow(angle, u_lightangle_spotCoef0.y));
} else {
lightScale = 0.0;
}
diffuse = (u_lightdiffuse0 * u_matdiffuse) * max(ldot, 0.0);
if (ldot >= 0.0) {
ldot = dot(normalize(toLight + float3(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 * lightScale;
}
lightSum0.rgb += (u_lightambient0 * u_matambientalpha.rgb + diffuse) * lightScale;
toLight = u_lightpos1 - worldpos;
distance = length(toLight);
toLight /= distance;
ldot = dot(toLight, worldnormal);
angle = length(u_lightdir1) == 0.0 ? 0.0 : dot(normalize(u_lightdir1), toLight);
if (angle >= u_lightangle_spotCoef1.x) {
lightScale = clamp(1.0 / dot(u_lightatt1, float3(1.0, distance, distance*distance)), 0.0, 1.0) * (u_lightangle_spotCoef1.y == 0.0 ? 1.0 : pow(angle, u_lightangle_spotCoef1.y));
} else {
lightScale = 0.0;
}
diffuse = (u_lightdiffuse1 * u_matdiffuse) * max(ldot, 0.0);
if (ldot >= |
1 |
1 |
42 |
2020-01-15 |
| D3D error in shader compilation: info: C:\WWE-2K14-PC-PSP\WWE-2K14-DownloadComputerGames.net\Shader@0x000000000B5491C0(122,16-57): error X4505: maximum temp register index exceeded
C:\WWE-2K14-PC-PSP\WWE-2K14-DownloadComputerGames.net\Shader@0x000000000B5491C0(122,12-71): error X4505: maximum temp register index exceeded
/ code: #pragma warning( disable : 3571 )
float4x4 u_proj : register(c0);
float4 u_matambientalpha : register(c20);
float4x3 u_world : register(c11);
float4x3 u_view : register(c8);
float4 u_uvscaleoffset : register(c17);
float3 u_lightpos0 : register(c24);
float3 u_lightatt0 : register(c32);
float3 u_lightdir0 : register(c28);
float4 u_lightangle_spotCoef0 : register(c36);
float3 u_lightambient0 : register(c48);
float3 u_lightdiffuse0 : register(c40);
float3 u_lightspecular0 : register(c44);
float3 u_lightpos1 : register(c25);
float3 u_lightatt1 : register(c33);
float3 u_lightdir1 : register(c29);
float4 u_lightangle_spotCoef1 : register(c37);
float3 u_lightambient1 : register(c49);
float3 u_lightdiffuse1 : register(c41);
float3 u_lightspecular1 : register(c45);
float3 u_lightpos2 : register(c26);
float3 u_lightatt2 : register(c34);
float3 u_lightdir2 : register(c30);
float4 u_lightangle_spotCoef2 : register(c38);
float3 u_lightambient2 : register(c50);
float3 u_lightdiffuse2 : register(c42);
float3 u_lightspecular2 : register(c46);
float3 u_lightpos3 : register(c27);
float3 u_lightatt3 : register(c35);
float3 u_lightdir3 : register(c31);
float4 u_lightangle_spotCoef3 : register(c39);
float3 u_lightambient3 : register(c51);
float3 u_lightdiffuse3 : register(c43);
float3 u_lightspecular3 : register(c47);
float4 u_ambient : register(c19);
float3 u_matdiffuse : register(c21);
float4 u_matspecular : register(c22);
float3 u_matemissive : register(c23);
float4 u_cullRangeMin : register(c80);
float4 u_cullRangeMax : register(c81);
struct VS_IN {
float2 texcoord : TEXCOORD0;
float3 normal : NORMAL;
float3 position : POSITION;
};
struct VS_OUT {
float3 v_texcoord : TEXCOORD0;
float4 v_color0 : COLOR0;
float3 v_color1 : COLOR1;
float4 gl_Position : POSITION;
};
VS_OUT main(VS_IN In) {
VS_OUT Out;
float3 worldpos = mul(float4(In.position.xyz, 1.0), u_world);
float3 worldnormal = normalize(mul(float4(In.normal, 0.0), u_world));
float4 viewPos = float4(mul(float4(worldpos, 1.0), u_view), 1.0);
float4 outPos = mul(viewPos, u_proj);
float4 lightSum0 = u_ambient * u_matambientalpha + float4(u_matemissive, 0.0);
float3 lightSum1 = 0;
float3 toLight;
float3 diffuse;
float distance;
float lightScale;
float ldot;
float angle;
toLight = u_lightpos0 - worldpos;
distance = length(toLight);
toLight /= distance;
ldot = dot(toLight, worldnormal);
angle = length(u_lightdir0) == 0.0 ? 0.0 : dot(normalize(u_lightdir0), toLight);
if (angle >= u_lightangle_spotCoef0.x) {
lightScale = clamp(1.0 / dot(u_lightatt0, float3(1.0, distance, distance*distance)), 0.0, 1.0) * (u_lightangle_spotCoef0.y == 0.0 ? 1.0 : pow(angle, u_lightangle_spotCoef0.y));
} else {
lightScale = 0.0;
}
diffuse = (u_lightdiffuse0 * u_matdiffuse) * max(ldot, 0.0);
if (ldot >= 0.0) {
ldot = dot(normalize(toLight + float3(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 * lightScale;
}
lightSum0.rgb += (u_lightambient0 * u_matambientalpha.rgb + diffuse) * lightScale;
toLight = u_lightpos1 - worldpos;
distance = length(toLight);
toLight /= distance;
ldot = dot(toLight, worldnormal);
angle = length(u_lightdir1) == 0.0 ? 0.0 : dot(normalize(u_lightdir1), toLight);
if (angle >= u_lightangle_spotCoef1.x) {
lightScale = clamp(1.0 / dot(u_lightatt1, float3(1.0, distance, distance*distance)), 0.0, 1.0) * (u_lightangle_spotCoef1.y == 0.0 ? 1.0 : pow(angle, u_lightangle_spotCoef1.y));
} else {
lightScale = 0.0;
}
diffuse = (u_lightdiffuse1 * u_matdiffuse |
1 |
1 |
41 |
2023-11-22 |
| D3D error in shader compilation: info: C:\Windows\system32\memory(14,55): error X3004: undeclared identifier 'u_proj_through'
C:\Windows\system32\memory(14,21): error X3013: 'mul': intrinsic function does not take 2 parameters
C:\Windows\system32\memory(14,21): error X3013: Possible intrinsic functions are:
C:\Windows\system32\memory(14,21): error X3013: mul(float, float)
C:\Windows\system32\memory(14,21): error X3013: mul(float, floatK)
C:\Windows\system32\memory(14,21): error X3013: mul(float, floatLxK)
C:\Windows\system32\memory(14,21): error X3013: mul(floatM, float)
C:\Windows\system32\memory(14,21): error X3013: mul(floatM, floatM)
C:\Windows\system32\memory(14,21): error X3013: mul(floatM, floatMxK)
C:\Windows\system32\memory(14,21): error X3013: mul(floatNxM, float)
C:\Windows\system32\memory(14,21): error X3013: mul(floatNxM, floatM)
C:\Windows\system32\memory(14,21): error X3013: mul(floatNxM, floatMxK)
/ code: #pragma warning( disable : 3571 )
float4x4 u_proj : register(c0);
struct VS_IN {
float4 position : POSITION;
float4 color0 : COLOR0;
};
struct VS_OUT {
float4 v_color0 : COLOR0;
float4 gl_Position : POSITION;
};
VS_OUT main(VS_IN In) {
VS_OUT Out;
Out.v_color0 = In.color0;
Out.gl_Position = mul(float4(In.position.xyz, 1.0), u_proj_through);
return Out;
}
|
4 |
4 |
38 |
2026-03-24 |
| D3D error in shader compilation: info: C:\Program Files\PPSSPP\Shader@0x0FAC6348(140,16-55): error X4505: maximum temp register index exceeded
C:\Program Files\PPSSPP\Shader@0x0FAC6348(140,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);
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_lightatt0 : register(c32);
vec3 u_lightdir0 : register(c28);
vec4 u_lightangle_spotCoef0 : register(c36);
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_lightdir1 : register(c29);
vec4 u_lightangle_spotCoef1 : register(c37);
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_lightdir3 : register(c31);
vec4 u_lightangle_spotCoef3 : register(c39);
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;
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 - worldpos;
distance = length(toLight);
toLight /= distance;
ldot = dot(toLight, worldnormal);
angle = length(u_lightdir0) == 0.0 ? 0.0 : dot(normalize(u_lightdir0), toLight);
if (angle >= u_lightangle_spotCoef0.x) {
lightScale = clamp(1.0 / dot(u_lightatt0, vec3(1.0, distance, distance*distance)), 0.0, 1.0) * (u_lightangle_spotCoef0.y <= 0.0 ? 1.0 : pow(angle, u_lightangle_spotCoef0.y));
} else {
lightScale = 0.0;
}
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 * lightScale;
}
lightSum0.rgb += (u_lightambient0 * u_matambientalpha.rgb + diffuse) * lightScale;
toLight = u_lightpos1 - worldpos;
distance = length(toLight);
toLight /= distance;
ldot = dot(toLight, worldnormal);
angle = length(u_lightdir1) == 0.0 ? 0.0 : dot(normalize(u_lightdir1), toLight);
if (angle >= u_lightangle_spotCoef1.x) |
1 |
1 |
38 |
2024-07-21 |
| D3D error in shader compilation: info: C:\WWE-2K14-PC-PSP\WWE-2K14-DownloadComputerGames.net\Shader@0x000000000BA6E1B0(122,16-57): error X4505: maximum temp register index exceeded
C:\WWE-2K14-PC-PSP\WWE-2K14-DownloadComputerGames.net\Shader@0x000000000BA6E1B0(122,12-71): error X4505: maximum temp register index exceeded
/ code: #pragma warning( disable : 3571 )
float4x4 u_proj : register(c0);
float4 u_matambientalpha : register(c20);
float4x3 u_world : register(c11);
float4x3 u_view : register(c8);
float4 u_uvscaleoffset : register(c17);
float3 u_lightpos0 : register(c24);
float3 u_lightatt0 : register(c32);
float3 u_lightdir0 : register(c28);
float4 u_lightangle_spotCoef0 : register(c36);
float3 u_lightambient0 : register(c48);
float3 u_lightdiffuse0 : register(c40);
float3 u_lightspecular0 : register(c44);
float3 u_lightpos1 : register(c25);
float3 u_lightatt1 : register(c33);
float3 u_lightdir1 : register(c29);
float4 u_lightangle_spotCoef1 : register(c37);
float3 u_lightambient1 : register(c49);
float3 u_lightdiffuse1 : register(c41);
float3 u_lightspecular1 : register(c45);
float3 u_lightpos2 : register(c26);
float3 u_lightatt2 : register(c34);
float3 u_lightdir2 : register(c30);
float4 u_lightangle_spotCoef2 : register(c38);
float3 u_lightambient2 : register(c50);
float3 u_lightdiffuse2 : register(c42);
float3 u_lightspecular2 : register(c46);
float3 u_lightpos3 : register(c27);
float3 u_lightatt3 : register(c35);
float3 u_lightdir3 : register(c31);
float4 u_lightangle_spotCoef3 : register(c39);
float3 u_lightambient3 : register(c51);
float3 u_lightdiffuse3 : register(c43);
float3 u_lightspecular3 : register(c47);
float4 u_ambient : register(c19);
float3 u_matdiffuse : register(c21);
float4 u_matspecular : register(c22);
float3 u_matemissive : register(c23);
float4 u_cullRangeMin : register(c80);
float4 u_cullRangeMax : register(c81);
struct VS_IN {
float2 texcoord : TEXCOORD0;
float3 normal : NORMAL;
float3 position : POSITION;
};
struct VS_OUT {
float3 v_texcoord : TEXCOORD0;
float4 v_color0 : COLOR0;
float3 v_color1 : COLOR1;
float4 gl_Position : POSITION;
};
VS_OUT main(VS_IN In) {
VS_OUT Out;
float3 worldpos = mul(float4(In.position.xyz, 1.0), u_world);
float3 worldnormal = normalize(mul(float4(In.normal, 0.0), u_world));
float4 viewPos = float4(mul(float4(worldpos, 1.0), u_view), 1.0);
float4 outPos = mul(viewPos, u_proj);
float4 lightSum0 = u_ambient * u_matambientalpha + float4(u_matemissive, 0.0);
float3 lightSum1 = 0;
float3 toLight;
float3 diffuse;
float distance;
float lightScale;
float ldot;
float angle;
toLight = u_lightpos0 - worldpos;
distance = length(toLight);
toLight /= distance;
ldot = dot(toLight, worldnormal);
angle = length(u_lightdir0) == 0.0 ? 0.0 : dot(normalize(u_lightdir0), toLight);
if (angle >= u_lightangle_spotCoef0.x) {
lightScale = clamp(1.0 / dot(u_lightatt0, float3(1.0, distance, distance*distance)), 0.0, 1.0) * (u_lightangle_spotCoef0.y == 0.0 ? 1.0 : pow(angle, u_lightangle_spotCoef0.y));
} else {
lightScale = 0.0;
}
diffuse = (u_lightdiffuse0 * u_matdiffuse) * max(ldot, 0.0);
if (ldot >= 0.0) {
ldot = dot(normalize(toLight + float3(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 * lightScale;
}
lightSum0.rgb += (u_lightambient0 * u_matambientalpha.rgb + diffuse) * lightScale;
toLight = u_lightpos1 - worldpos;
distance = length(toLight);
toLight /= distance;
ldot = dot(toLight, worldnormal);
angle = length(u_lightdir1) == 0.0 ? 0.0 : dot(normalize(u_lightdir1), toLight);
if (angle >= u_lightangle_spotCoef1.x) {
lightScale = clamp(1.0 / dot(u_lightatt1, float3(1.0, distance, distance*distance)), 0.0, 1.0) * (u_lightangle_spotCoef1.y == 0.0 ? 1.0 : pow(angle, u_lightangle_spotCoef1.y));
} else {
lightScale = 0.0;
}
diffuse = (u_lightdiffuse1 * u_matdiffuse |
1 |
1 |
38 |
2023-11-19 |
| D3D error in shader compilation: info: C:\WWE-2K14-PC-PSP\WWE-2K14-DownloadComputerGames.net\Shader@0x000000000BA16760(122,16-57): error X4505: maximum temp register index exceeded
C:\WWE-2K14-PC-PSP\WWE-2K14-DownloadComputerGames.net\Shader@0x000000000BA16760(122,12-71): error X4505: maximum temp register index exceeded
/ code: #pragma warning( disable : 3571 )
float4x4 u_proj : register(c0);
float4 u_matambientalpha : register(c20);
float4x3 u_world : register(c11);
float4x3 u_view : register(c8);
float4 u_uvscaleoffset : register(c17);
float3 u_lightpos0 : register(c24);
float3 u_lightatt0 : register(c32);
float3 u_lightdir0 : register(c28);
float4 u_lightangle_spotCoef0 : register(c36);
float3 u_lightambient0 : register(c48);
float3 u_lightdiffuse0 : register(c40);
float3 u_lightspecular0 : register(c44);
float3 u_lightpos1 : register(c25);
float3 u_lightatt1 : register(c33);
float3 u_lightdir1 : register(c29);
float4 u_lightangle_spotCoef1 : register(c37);
float3 u_lightambient1 : register(c49);
float3 u_lightdiffuse1 : register(c41);
float3 u_lightspecular1 : register(c45);
float3 u_lightpos2 : register(c26);
float3 u_lightatt2 : register(c34);
float3 u_lightdir2 : register(c30);
float4 u_lightangle_spotCoef2 : register(c38);
float3 u_lightambient2 : register(c50);
float3 u_lightdiffuse2 : register(c42);
float3 u_lightspecular2 : register(c46);
float3 u_lightpos3 : register(c27);
float3 u_lightatt3 : register(c35);
float3 u_lightdir3 : register(c31);
float4 u_lightangle_spotCoef3 : register(c39);
float3 u_lightambient3 : register(c51);
float3 u_lightdiffuse3 : register(c43);
float3 u_lightspecular3 : register(c47);
float4 u_ambient : register(c19);
float3 u_matdiffuse : register(c21);
float4 u_matspecular : register(c22);
float3 u_matemissive : register(c23);
float4 u_cullRangeMin : register(c80);
float4 u_cullRangeMax : register(c81);
struct VS_IN {
float2 texcoord : TEXCOORD0;
float3 normal : NORMAL;
float3 position : POSITION;
};
struct VS_OUT {
float3 v_texcoord : TEXCOORD0;
float4 v_color0 : COLOR0;
float3 v_color1 : COLOR1;
float4 gl_Position : POSITION;
};
VS_OUT main(VS_IN In) {
VS_OUT Out;
float3 worldpos = mul(float4(In.position.xyz, 1.0), u_world);
float3 worldnormal = normalize(mul(float4(In.normal, 0.0), u_world));
float4 viewPos = float4(mul(float4(worldpos, 1.0), u_view), 1.0);
float4 outPos = mul(viewPos, u_proj);
float4 lightSum0 = u_ambient * u_matambientalpha + float4(u_matemissive, 0.0);
float3 lightSum1 = 0;
float3 toLight;
float3 diffuse;
float distance;
float lightScale;
float ldot;
float angle;
toLight = u_lightpos0 - worldpos;
distance = length(toLight);
toLight /= distance;
ldot = dot(toLight, worldnormal);
angle = length(u_lightdir0) == 0.0 ? 0.0 : dot(normalize(u_lightdir0), toLight);
if (angle >= u_lightangle_spotCoef0.x) {
lightScale = clamp(1.0 / dot(u_lightatt0, float3(1.0, distance, distance*distance)), 0.0, 1.0) * (u_lightangle_spotCoef0.y == 0.0 ? 1.0 : pow(angle, u_lightangle_spotCoef0.y));
} else {
lightScale = 0.0;
}
diffuse = (u_lightdiffuse0 * u_matdiffuse) * max(ldot, 0.0);
if (ldot >= 0.0) {
ldot = dot(normalize(toLight + float3(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 * lightScale;
}
lightSum0.rgb += (u_lightambient0 * u_matambientalpha.rgb + diffuse) * lightScale;
toLight = u_lightpos1 - worldpos;
distance = length(toLight);
toLight /= distance;
ldot = dot(toLight, worldnormal);
angle = length(u_lightdir1) == 0.0 ? 0.0 : dot(normalize(u_lightdir1), toLight);
if (angle >= u_lightangle_spotCoef1.x) {
lightScale = clamp(1.0 / dot(u_lightatt1, float3(1.0, distance, distance*distance)), 0.0, 1.0) * (u_lightangle_spotCoef1.y == 0.0 ? 1.0 : pow(angle, u_lightangle_spotCoef1.y));
} else {
lightScale = 0.0;
}
diffuse = (u_lightdiffuse1 * u_matdiffuse |
1 |
1 |
38 |
2023-11-18 |
| D3D error in shader compilation: info: C:\WWE-2K14-PC-PSP\WWE-2K14-DownloadComputerGames.net\Shader@0x0000000007A0B4A0(122,16-57): error X4505: maximum temp register index exceeded
C:\WWE-2K14-PC-PSP\WWE-2K14-DownloadComputerGames.net\Shader@0x0000000007A0B4A0(122,12-71): error X4505: maximum temp register index exceeded
/ code: #pragma warning( disable : 3571 )
float4x4 u_proj : register(c0);
float4 u_matambientalpha : register(c20);
float4x3 u_world : register(c11);
float4x3 u_view : register(c8);
float4 u_uvscaleoffset : register(c17);
float3 u_lightpos0 : register(c24);
float3 u_lightatt0 : register(c32);
float3 u_lightdir0 : register(c28);
float4 u_lightangle_spotCoef0 : register(c36);
float3 u_lightambient0 : register(c48);
float3 u_lightdiffuse0 : register(c40);
float3 u_lightspecular0 : register(c44);
float3 u_lightpos1 : register(c25);
float3 u_lightatt1 : register(c33);
float3 u_lightdir1 : register(c29);
float4 u_lightangle_spotCoef1 : register(c37);
float3 u_lightambient1 : register(c49);
float3 u_lightdiffuse1 : register(c41);
float3 u_lightspecular1 : register(c45);
float3 u_lightpos2 : register(c26);
float3 u_lightatt2 : register(c34);
float3 u_lightdir2 : register(c30);
float4 u_lightangle_spotCoef2 : register(c38);
float3 u_lightambient2 : register(c50);
float3 u_lightdiffuse2 : register(c42);
float3 u_lightspecular2 : register(c46);
float3 u_lightpos3 : register(c27);
float3 u_lightatt3 : register(c35);
float3 u_lightdir3 : register(c31);
float4 u_lightangle_spotCoef3 : register(c39);
float3 u_lightambient3 : register(c51);
float3 u_lightdiffuse3 : register(c43);
float3 u_lightspecular3 : register(c47);
float4 u_ambient : register(c19);
float3 u_matdiffuse : register(c21);
float4 u_matspecular : register(c22);
float3 u_matemissive : register(c23);
float4 u_cullRangeMin : register(c80);
float4 u_cullRangeMax : register(c81);
struct VS_IN {
float2 texcoord : TEXCOORD0;
float3 normal : NORMAL;
float3 position : POSITION;
};
struct VS_OUT {
float3 v_texcoord : TEXCOORD0;
float4 v_color0 : COLOR0;
float3 v_color1 : COLOR1;
float4 gl_Position : POSITION;
};
VS_OUT main(VS_IN In) {
VS_OUT Out;
float3 worldpos = mul(float4(In.position.xyz, 1.0), u_world);
float3 worldnormal = normalize(mul(float4(In.normal, 0.0), u_world));
float4 viewPos = float4(mul(float4(worldpos, 1.0), u_view), 1.0);
float4 outPos = mul(viewPos, u_proj);
float4 lightSum0 = u_ambient * u_matambientalpha + float4(u_matemissive, 0.0);
float3 lightSum1 = 0;
float3 toLight;
float3 diffuse;
float distance;
float lightScale;
float ldot;
float angle;
toLight = u_lightpos0 - worldpos;
distance = length(toLight);
toLight /= distance;
ldot = dot(toLight, worldnormal);
angle = length(u_lightdir0) == 0.0 ? 0.0 : dot(normalize(u_lightdir0), toLight);
if (angle >= u_lightangle_spotCoef0.x) {
lightScale = clamp(1.0 / dot(u_lightatt0, float3(1.0, distance, distance*distance)), 0.0, 1.0) * (u_lightangle_spotCoef0.y == 0.0 ? 1.0 : pow(angle, u_lightangle_spotCoef0.y));
} else {
lightScale = 0.0;
}
diffuse = (u_lightdiffuse0 * u_matdiffuse) * max(ldot, 0.0);
if (ldot >= 0.0) {
ldot = dot(normalize(toLight + float3(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 * lightScale;
}
lightSum0.rgb += (u_lightambient0 * u_matambientalpha.rgb + diffuse) * lightScale;
toLight = u_lightpos1 - worldpos;
distance = length(toLight);
toLight /= distance;
ldot = dot(toLight, worldnormal);
angle = length(u_lightdir1) == 0.0 ? 0.0 : dot(normalize(u_lightdir1), toLight);
if (angle >= u_lightangle_spotCoef1.x) {
lightScale = clamp(1.0 / dot(u_lightatt1, float3(1.0, distance, distance*distance)), 0.0, 1.0) * (u_lightangle_spotCoef1.y == 0.0 ? 1.0 : pow(angle, u_lightangle_spotCoef1.y));
} else {
lightScale = 0.0;
}
diffuse = (u_lightdiffuse1 * u_matdiffuse |
1 |
1 |
38 |
2023-11-18 |
| D3D error in shader compilation: info: C:\WWE-2K14-PC-PSP\WWE-2K14-DownloadComputerGames.net\Shader@0x000000000BB38020(122,16-57): error X4505: maximum temp register index exceeded
C:\WWE-2K14-PC-PSP\WWE-2K14-DownloadComputerGames.net\Shader@0x000000000BB38020(122,12-71): error X4505: maximum temp register index exceeded
/ code: #pragma warning( disable : 3571 )
float4x4 u_proj : register(c0);
float4 u_matambientalpha : register(c20);
float4x3 u_world : register(c11);
float4x3 u_view : register(c8);
float4 u_uvscaleoffset : register(c17);
float3 u_lightpos0 : register(c24);
float3 u_lightatt0 : register(c32);
float3 u_lightdir0 : register(c28);
float4 u_lightangle_spotCoef0 : register(c36);
float3 u_lightambient0 : register(c48);
float3 u_lightdiffuse0 : register(c40);
float3 u_lightspecular0 : register(c44);
float3 u_lightpos1 : register(c25);
float3 u_lightatt1 : register(c33);
float3 u_lightdir1 : register(c29);
float4 u_lightangle_spotCoef1 : register(c37);
float3 u_lightambient1 : register(c49);
float3 u_lightdiffuse1 : register(c41);
float3 u_lightspecular1 : register(c45);
float3 u_lightpos2 : register(c26);
float3 u_lightatt2 : register(c34);
float3 u_lightdir2 : register(c30);
float4 u_lightangle_spotCoef2 : register(c38);
float3 u_lightambient2 : register(c50);
float3 u_lightdiffuse2 : register(c42);
float3 u_lightspecular2 : register(c46);
float3 u_lightpos3 : register(c27);
float3 u_lightatt3 : register(c35);
float3 u_lightdir3 : register(c31);
float4 u_lightangle_spotCoef3 : register(c39);
float3 u_lightambient3 : register(c51);
float3 u_lightdiffuse3 : register(c43);
float3 u_lightspecular3 : register(c47);
float4 u_ambient : register(c19);
float3 u_matdiffuse : register(c21);
float4 u_matspecular : register(c22);
float3 u_matemissive : register(c23);
float4 u_cullRangeMin : register(c80);
float4 u_cullRangeMax : register(c81);
struct VS_IN {
float2 texcoord : TEXCOORD0;
float3 normal : NORMAL;
float3 position : POSITION;
};
struct VS_OUT {
float3 v_texcoord : TEXCOORD0;
float4 v_color0 : COLOR0;
float3 v_color1 : COLOR1;
float4 gl_Position : POSITION;
};
VS_OUT main(VS_IN In) {
VS_OUT Out;
float3 worldpos = mul(float4(In.position.xyz, 1.0), u_world);
float3 worldnormal = normalize(mul(float4(In.normal, 0.0), u_world));
float4 viewPos = float4(mul(float4(worldpos, 1.0), u_view), 1.0);
float4 outPos = mul(viewPos, u_proj);
float4 lightSum0 = u_ambient * u_matambientalpha + float4(u_matemissive, 0.0);
float3 lightSum1 = 0;
float3 toLight;
float3 diffuse;
float distance;
float lightScale;
float ldot;
float angle;
toLight = u_lightpos0 - worldpos;
distance = length(toLight);
toLight /= distance;
ldot = dot(toLight, worldnormal);
angle = length(u_lightdir0) == 0.0 ? 0.0 : dot(normalize(u_lightdir0), toLight);
if (angle >= u_lightangle_spotCoef0.x) {
lightScale = clamp(1.0 / dot(u_lightatt0, float3(1.0, distance, distance*distance)), 0.0, 1.0) * (u_lightangle_spotCoef0.y == 0.0 ? 1.0 : pow(angle, u_lightangle_spotCoef0.y));
} else {
lightScale = 0.0;
}
diffuse = (u_lightdiffuse0 * u_matdiffuse) * max(ldot, 0.0);
if (ldot >= 0.0) {
ldot = dot(normalize(toLight + float3(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 * lightScale;
}
lightSum0.rgb += (u_lightambient0 * u_matambientalpha.rgb + diffuse) * lightScale;
toLight = u_lightpos1 - worldpos;
distance = length(toLight);
toLight /= distance;
ldot = dot(toLight, worldnormal);
angle = length(u_lightdir1) == 0.0 ? 0.0 : dot(normalize(u_lightdir1), toLight);
if (angle >= u_lightangle_spotCoef1.x) {
lightScale = clamp(1.0 / dot(u_lightatt1, float3(1.0, distance, distance*distance)), 0.0, 1.0) * (u_lightangle_spotCoef1.y == 0.0 ? 1.0 : pow(angle, u_lightangle_spotCoef1.y));
} else {
lightScale = 0.0;
}
diffuse = (u_lightdiffuse1 * u_matdiffuse |
1 |
1 |
37 |
2023-11-20 |