xqemu
xqemu copied to clipboard
Type mismatch: Type of _O;v_vtx;inv_w different between shaders.
On Intel HD 4400, the PSXCare Superdisk fails with a shader linking error. Same ISO works fine on my AMD R9 290X.
Machine specs: Dell Latitude E7240 Intel HD 4400 Driver version: 20.19.15.4835 (Latest Dell driver, the ones from intel.com doesn't install) Windows 10 Pro 1709 x86_64 Intel Core i5 4210u XQEMU revision: 592b4dbbf7
Console output:
dsp_init
dsp_init
ac97: invalid bm_index(3) in voice_set_active
ac97: invalid bm_index(3) in voice_set_active
ac97: invalid bm_index(3) in voice_set_active
ac97: invalid bm_index(3) in voice_set_active
ac97: invalid bm_index(3) in voice_set_active
ac97: invalid bm_index(3) in voice_set_active
tm_read_data: addr=0x4c cmd=0x08 n=0
tm_read_data: addr=0x4c cmd=0x00 n=0
tm_read_data: addr=0x4c cmd=0x01 n=0
tm_read_data: addr=0x4c cmd=0x10 n=0
nv2a: shader linking failed: Type mismatch: Type of _O;v_vtx;inv_w different between shaders.
Type mismatch: Type of _O;v_vtx;D0 different between shaders.
Type mismatch: Type of _O;v_vtx;D1 different between shaders.
Type mismatch: Type of _O;v_vtx;B0 different between shaders.
Type mismatch: Type of _O;v_vtx;B1 different between shaders.
Type mismatch: Type of _O;v_vtx;Fog different between shaders.
Type mismatch: Type of _O;v_vtx;T0 different between shaders.
Type mismatch: Type of _O;v_vtx;T1 different between shaders.
Type mismatch: Type of _O;v_vtx;T2 different between shaders.
Type mismatch: Type of _O;v_vtx;T3 different between shaders.
Out of resource error.
I've tested with evox disc now, same error.
This is a more complete log by @ernegien
- OS: Windows 10 (x64)
- GPU: Unknown (but definitely Intel), unknown driver
- Game: Unknown game / Unknown scene.
I'll add more information and formatting in the future (as soon as I get feedback by @ernegien and find time to update)
The log is just a dump of each shader in order of appearance (VS, GS, FS for each). The first shaders work fine the later ones cause the crash.
I've removed the VS header for readability and replaced it with // VS stuff
.
(Click here to fold / unfold)
// VS stuff
void main() {
/* Slot 0: 0x00000000 0x00200E1B 0x0836106C 0x2E200FF8 */
MOV(R2,xyz, v7);
/* Slot 1: 0x00000000 0x00A0061B 0x2436106C 0x28300FF8 */
DP3(R3,x, R2, v3);
/* Slot 2: 0x00000000 0x00A0041B 0x2436106C 0x24300FF8 */
DP3(R3,y, R2, v2);
/* Slot 3: 0x00000000 0x00A0021B 0x2436106C 0x22300FF8 */
DP3(R3,z, R2, v1);
/* Slot 4: 0x00000000 0x02A0101B 0x2436486C 0x2140C85C */
DP3(R4,w, R2, R2);
MOV(oT2,xy, v8);
/* Slot 5: 0x00000000 0x00C0201B 0x0836186C 0x20704800 */
DPH(oPos,y, v0, c[1]);
/* Slot 6: 0x00000000 0x08C0001B 0x08361BFD 0x10118800 */
DPH(oPos,x, v0, c[0]);
RSQ(R1,w, R4.w);
/* Slot 7: 0x00000000 0x00C0401B 0x0836186C 0x20702800 */
DPH(oPos,z, v0, c[2]);
/* Slot 8: 0x00000000 0x00C0601B 0x0836186C 0x20701800 */
DPH(oPos,w, v0, c[3]);
/* Slot 9: 0x00000000 0x02C1A81B 0x0836186D 0x1850181C */
DPH(R5,x, v4, c[13]);
MOV(oD0,w, R4);
/* Slot 10: 0x00000000 0x00C1C81B 0x0836186C 0x24500FF8 */
DPH(R5,y, v4, c[14]);
/* Slot 11: 0x00000000 0x004000FF 0x1436686C 0x2070E860 */
MUL(oT3,xyz, R1.w, R3);
/* Slot 12: 0x00000000 0x0041801B 0x542A186C 0x2070C848 */
MUL(oT0,xy, R5, c[12].xy);
/* Slot 13: 0x00000000 0x0041801B 0x5554186C 0x2070C850 */
MUL(oT1,xy, R5, c[12].z);
/* Slot 14: 0x00000000 0x0022401B 0x0C36106C 0x2E600FF8 */
MOV(R6,xyz, c[18]);
/* Slot 15: 0x00000000 0x00A1E21B 0x0836186C 0x21700FF8 */
DP3(R7,w, v1, c[15]);
/* Slot 16: 0x00000000 0x00A2021B 0x0836186C 0x21B00FF8 */
DP3(R11,w, v1, c[16]);
/* Slot 17: 0x00000000 0x0041E0FF 0x75FE186C 0x21800FF8 */
MUL(R8,w, R7.w, c[15].w);
/* Slot 18: 0x00000000 0x014008FF 0x8554106C 0x21900FF8 */
MAX(R9,w, R8.w, v4.z);
/* Slot 19: 0x00000000 0x008220FF 0x9436186D 0x9EA00FF8 */
MAD(R10,xyz, R9.w, c[17], R6);
/* Slot 20: 0x00000000 0x004200FF 0xB5FE186C 0x21000FF8 */
MUL(R0,w, R11.w, c[16].w);
/* Slot 21: 0x00000000 0x014008FF 0x0554106C 0x21200FF8 */
MAX(R2,w, R0.w, v4.z);
/* Slot 22: 0x00000000 0x008220FF 0x2436186E 0x9070E818 */
MAD(oD0,xyz, R2.w, c[17], R10);
/* Slot 23: 0x00000000 0x0647401B 0xC4361BFF 0x1078E800 */
MUL(oPos,xyz, R12, c[58]);
RCC(R1,x, R12.w);
/* Slot 24: 0x00000000 0x0087601B 0xC400286C 0x3070E801 */
MAD(oPos,xyz, R12, R1.x, c[59]);
if (oPos.w == 0.0 || isinf(oPos.w)) {
vtx.inv_w = 1.0;
} else {
vtx.inv_w = 1.0 / oPos.w;
}
oPos.x = 2.0 * (oPos.x - surfaceSize.x * 0.5) / surfaceSize.x;
oPos.y = -2.0 * (oPos.y - surfaceSize.y * 0.5) / surfaceSize.y;
if (clipRange.y != clipRange.x) {
oPos.z = (oPos.z - 0.5 * (clipRange.x + clipRange.y)) / (0.5 * (clipRange.y - clipRange.x));
}
if (oPos.w < 0.0) {
oPos.xyz *= oPos.w;
} else {
oPos.w = 1.0;
}
float fogDistance = oFog.x;
float fogFactor = fogParam[0] + fogDistance * fogParam[1];
fogFactor -= 1.0;
oFog.xyzw = vec4(fogFactor);
vtx.D0 = clamp(oD0, 0.0, 1.0) * vtx.inv_w;
vtx.D1 = clamp(oD1, 0.0, 1.0) * vtx.inv_w;
vtx.B0 = clamp(oB0, 0.0, 1.0) * vtx.inv_w;
vtx.B1 = clamp(oB1, 0.0, 1.0) * vtx.inv_w;
vtx.Fog = oFog.x * vtx.inv_w;
vtx.T0 = oT0 * vtx.inv_w;
vtx.T1 = oT1 * vtx.inv_w;
vtx.T2 = oT2 * vtx.inv_w;
vtx.T3 = oT3 * vtx.inv_w;
gl_Position = oPos;
gl_PointSize = oPts.x;
}
#version 330
struct VertexData {
float inv_w;
vec4 D0;
vec4 D1;
vec4 B0;
vec4 B1;
float Fog;
vec4 T0;
vec4 T1;
vec4 T2;
vec4 T3;
};
noperspective in VertexData g_vtx;
#define vtx g_vtx
out vec4 fragColor;
uniform vec4 fogColor;
uniform ivec4 clipRegion[1];
uniform sampler2D texSamp0;
uniform sampler2D texSamp2;
uniform samplerCube texSamp3;
uniform vec4 c_0_0;
uniform vec4 c_8_0;
uniform float alphaRef;
void main() {
/* Window-clip (Inclusive) */
bool clipContained = false;
for (int i = 0; i < 1; i++) {
bvec4 clipTest = bvec4(lessThan(gl_FragCoord.xy, clipRegion[i].xy),
greaterThan(gl_FragCoord.xy, clipRegion[i].zw));
if (!any(clipTest)) {
clipContained = true;
break;
}
}
if (!clipContained) { discard; }
vec4 pD0 = vtx.D0 / vtx.inv_w;
vec4 pD1 = vtx.D1 / vtx.inv_w;
vec4 pB0 = vtx.B0 / vtx.inv_w;
vec4 pB1 = vtx.B1 / vtx.inv_w;
vec4 pFog = vec4(fogColor.rgb, clamp(vtx.Fog / vtx.inv_w, 0.0, 1.0));
vec4 pT0 = vtx.T0 / vtx.inv_w;
vec4 pT1 = vtx.T1 / vtx.inv_w;
vec4 pT2 = vtx.T2 / vtx.inv_w;
vec4 pT3 = vtx.T3 / vtx.inv_w;
vec4 v0 = pD0;
vec4 v1 = pD1;
vec4 t0 = textureProj(texSamp0, pT0.xyw);
vec4 t1 = vec4(0.0); /* PS_TEXTUREMODES_NONE */
vec4 t2 = textureProj(texSamp2, pT2.xyw);
vec4 t3 = texture(texSamp3, pT3.xyz / pT3.w);
vec4 r0;
r0.a = t0.a;
// Stage 0
t0.rgb = vec3(dot((2.0 * t0.rgb - 1.0), (2.0 * t3.rgb - 1.0)));
r0.rgb = vec3((t2.rgb * c_0_0.rgb));
// Stage 1
r0.a = ((((1.0 - v0.a) * (1.0 - 0.0)) + (v0.a * t0.b)));
// Final Combiner
r0.rgb = r0.rgb + mix(vec3(0.0), vec3((r0.a * c_8_0.rgb)), vec3(t2.rgb));
r0.a = vec3(t0.a).x;
if (!(r0.a > alphaRef)) discard;
fragColor = r0;
}
// VS stuff
void main() {
/* Slot 0: 0x00000000 0x00C3801B 0x0836186C 0x20708800 */
DPH(oPos,x, v0, c[28]);
/* Slot 1: 0x00000000 0x00C3A01B 0x0836186C 0x20704800 */
DPH(oPos,y, v0, c[29]);
/* Slot 2: 0x00000000 0x00C3C01B 0x0836186C 0x20702800 */
DPH(oPos,z, v0, c[30]);
/* Slot 3: 0x00000000 0x00C3E01B 0x0836186C 0x20701800 */
DPH(oPos,w, v0, c[31]);
/* Slot 4: 0x00000000 0x0020081B 0x0836106C 0x2070C848 */
MOV(oT0,xy, v4);
/* Slot 5: 0x00000000 0x0020121B 0x0836106C 0x2070F818 */
MOV(oD0,xyzw, v9);
/* Slot 6: 0x00000000 0x00201400 0x0836106C 0x20701820 */
MOV(oD1,w, v10.x);
/* Slot 7: 0x00000000 0x0647401B 0xC4361BFF 0x1078E800 */
MUL(oPos,xyz, R12, c[58]);
RCC(R1,x, R12.w);
/* Slot 8: 0x00000000 0x0087601B 0xC400286C 0x3070E801 */
MAD(oPos,xyz, R12, R1.x, c[59]);
if (oPos.w == 0.0 || isinf(oPos.w)) {
vtx.inv_w = 1.0;
} else {
vtx.inv_w = 1.0 / oPos.w;
}
oPos.x = 2.0 * (oPos.x - surfaceSize.x * 0.5) / surfaceSize.x;
oPos.y = -2.0 * (oPos.y - surfaceSize.y * 0.5) / surfaceSize.y;
if (clipRange.y != clipRange.x) {
oPos.z = (oPos.z - 0.5 * (clipRange.x + clipRange.y)) / (0.5 * (clipRange.y - clipRange.x));
}
if (oPos.w < 0.0) {
oPos.xyz *= oPos.w;
} else {
oPos.w = 1.0;
}
float fogDistance = oFog.x;
float fogFactor = fogParam[0] + fogDistance * fogParam[1];
fogFactor -= 1.0;
oFog.xyzw = vec4(fogFactor);
vtx.D0 = clamp(oD0, 0.0, 1.0) * vtx.inv_w;
vtx.D1 = clamp(oD1, 0.0, 1.0) * vtx.inv_w;
vtx.B0 = clamp(oB0, 0.0, 1.0) * vtx.inv_w;
vtx.B1 = clamp(oB1, 0.0, 1.0) * vtx.inv_w;
vtx.Fog = oFog.x * vtx.inv_w;
vtx.T0 = oT0 * vtx.inv_w;
vtx.T1 = oT1 * vtx.inv_w;
vtx.T2 = oT2 * vtx.inv_w;
vtx.T3 = oT3 * vtx.inv_w;
gl_Position = oPos;
gl_PointSize = oPts.x;
}
#version 330
struct VertexData {
float inv_w;
vec4 D0;
vec4 D1;
vec4 B0;
vec4 B1;
float Fog;
vec4 T0;
vec4 T1;
vec4 T2;
vec4 T3;
};
noperspective in VertexData g_vtx;
#define vtx g_vtx
out vec4 fragColor;
uniform vec4 fogColor;
uniform ivec4 clipRegion[1];
void main() {
/* Window-clip (Inclusive) */
bool clipContained = false;
for (int i = 0; i < 1; i++) {
bvec4 clipTest = bvec4(lessThan(gl_FragCoord.xy, clipRegion[i].xy),
greaterThan(gl_FragCoord.xy, clipRegion[i].zw));
if (!any(clipTest)) {
clipContained = true;
break;
}
}
if (!clipContained) { discard; }
vec4 pD0 = vtx.D0 / vtx.inv_w;
vec4 pD1 = vtx.D1 / vtx.inv_w;
vec4 pB0 = vtx.B0 / vtx.inv_w;
vec4 pB1 = vtx.B1 / vtx.inv_w;
vec4 pFog = vec4(fogColor.rgb, clamp(vtx.Fog / vtx.inv_w, 0.0, 1.0));
vec4 pT0 = vtx.T0 / vtx.inv_w;
vec4 pT1 = vtx.T1 / vtx.inv_w;
vec4 pT2 = vtx.T2 / vtx.inv_w;
vec4 pT3 = vtx.T3 / vtx.inv_w;
vec4 v0 = pD0;
vec4 v1 = pD1;
vec4 t0 = vec4(0.0); /* PS_TEXTUREMODES_NONE */
vec4 t1 = vec4(0.0); /* PS_TEXTUREMODES_NONE */
vec4 t2 = vec4(0.0); /* PS_TEXTUREMODES_NONE */
vec4 t3 = vec4(0.0); /* PS_TEXTUREMODES_NONE */
vec4 r0;
r0.a = 1.0;
// Stage 0
// Final Combiner
r0.rgb = (1.0 - 0.0) + mix(vec3(0.0), vec3(0.0), vec3(0.0));
r0.a = vec3(0.0).x;
fragColor = r0;
}
#version 330
layout(lines_adjacency) in;
layout(triangle_strip, max_vertices = 4) out;
struct VertexData {
float inv_w;
vec4 D0;
vec4 D1;
vec4 B0;
vec4 B1;
float Fog;
vec4 T0;
vec4 T1;
vec4 T2;
vec4 T3;
};
noperspective in VertexData v_vtx[];
noperspective out VertexData g_vtx;
void emit_vertex(int index) {
gl_Position = gl_in[index].gl_Position;
gl_PointSize = gl_in[index].gl_PointSize;
g_vtx = v_vtx[index];
EmitVertex();
}
void main() {
emit_vertex(0);
emit_vertex(1);
emit_vertex(3);
emit_vertex(2);
EndPrimitive();
}
// VS stuff
void main() {
/* Slot 0: 0x00000000 0x00C0001B 0x0836186C 0x20708800 */
DPH(oPos,x, v0, c[0]);
/* Slot 1: 0x00000000 0x00C0201B 0x0836186C 0x20704800 */
DPH(oPos,y, v0, c[1]);
/* Slot 2: 0x00000000 0x00C0401B 0x0836186C 0x20702800 */
DPH(oPos,z, v0, c[2]);
/* Slot 3: 0x00000000 0x00C0601B 0x0836186C 0x20701800 */
DPH(oPos,w, v0, c[3]);
/* Slot 4: 0x00000000 0x0020081B 0x0836106C 0x2070C848 */
MOV(oT0,xy, v4);
/* Slot 5: 0x00000000 0x0020121B 0x0836106C 0x2070F818 */
MOV(oD0,xyzw, v9);
/* Slot 6: 0x00000000 0x00C1001B 0x0836186C 0x22800FF8 */
DPH(R8,z, v0, c[8]);
/* Slot 7: 0x00000000 0x0647401B 0xC4361BFF 0x1078E800 */
MUL(oPos,xyz, R12, c[58]);
RCC(R1,x, R12.w);
/* Slot 8: 0x00000000 0x012008AA 0x85FE106C 0x22800FF8 */
MIN(R8,z, R8.z, v4.w);
/* Slot 9: 0x00000000 0x004160AA 0x8400186C 0x22800FF8 */
MUL(R8,z, R8.z, c[11].x);
/* Slot 10: 0x00000000 0x016008AA 0x85FE106C 0x20701820 */
SLT(oD1,w, R8.z, v4.w);
/* Slot 11: 0x00000000 0x0087601B 0xC400286C 0x3070E801 */
MAD(oPos,xyz, R12, R1.x, c[59]);
if (oPos.w == 0.0 || isinf(oPos.w)) {
vtx.inv_w = 1.0;
} else {
vtx.inv_w = 1.0 / oPos.w;
}
oPos.x = 2.0 * (oPos.x - surfaceSize.x * 0.5) / surfaceSize.x;
oPos.y = -2.0 * (oPos.y - surfaceSize.y * 0.5) / surfaceSize.y;
if (clipRange.y != clipRange.x) {
oPos.z = (oPos.z - 0.5 * (clipRange.x + clipRange.y)) / (0.5 * (clipRange.y - clipRange.x));
}
if (oPos.w < 0.0) {
oPos.xyz *= oPos.w;
} else {
oPos.w = 1.0;
}
float fogDistance = oFog.x;
float fogFactor = fogParam[0] + fogDistance * fogParam[1];
fogFactor -= 1.0;
oFog.xyzw = vec4(fogFactor);
vtx.D0 = clamp(oD0, 0.0, 1.0) * vtx.inv_w;
vtx.D1 = clamp(oD1, 0.0, 1.0) * vtx.inv_w;
vtx.B0 = clamp(oB0, 0.0, 1.0) * vtx.inv_w;
vtx.B1 = clamp(oB1, 0.0, 1.0) * vtx.inv_w;
vtx.Fog = oFog.x * vtx.inv_w;
vtx.T0 = oT0 * vtx.inv_w;
vtx.T1 = oT1 * vtx.inv_w;
vtx.T2 = oT2 * vtx.inv_w;
vtx.T3 = oT3 * vtx.inv_w;
gl_Position = oPos;
gl_PointSize = oPts.x;
}
#version 330
struct VertexData {
float inv_w;
vec4 D0;
vec4 D1;
vec4 B0;
vec4 B1;
float Fog;
vec4 T0;
vec4 T1;
vec4 T2;
vec4 T3;
};
noperspective in VertexData g_vtx;
#define vtx g_vtx
out vec4 fragColor;
uniform vec4 fogColor;
uniform ivec4 clipRegion[1];
uniform sampler2D texSamp0;
uniform float alphaRef;
void main() {
/* Window-clip (Inclusive) */
bool clipContained = false;
for (int i = 0; i < 1; i++) {
bvec4 clipTest = bvec4(lessThan(gl_FragCoord.xy, clipRegion[i].xy),
greaterThan(gl_FragCoord.xy, clipRegion[i].zw));
if (!any(clipTest)) {
clipContained = true;
break;
}
}
if (!clipContained) { discard; }
vec4 pD0 = vtx.D0 / vtx.inv_w;
vec4 pD1 = vtx.D1 / vtx.inv_w;
vec4 pB0 = vtx.B0 / vtx.inv_w;
vec4 pB1 = vtx.B1 / vtx.inv_w;
vec4 pFog = vec4(fogColor.rgb, clamp(vtx.Fog / vtx.inv_w, 0.0, 1.0));
vec4 pT0 = vtx.T0 / vtx.inv_w;
vec4 pT1 = vtx.T1 / vtx.inv_w;
vec4 pT2 = vtx.T2 / vtx.inv_w;
vec4 pT3 = vtx.T3 / vtx.inv_w;
vec4 v0 = pD0;
vec4 v1 = pD1;
vec4 t0 = textureProj(texSamp0, pT0.xyw);
vec4 t1 = vec4(0.0); /* PS_TEXTUREMODES_NONE */
vec4 t2 = vec4(0.0); /* PS_TEXTUREMODES_NONE */
vec4 t3 = vec4(0.0); /* PS_TEXTUREMODES_NONE */
vec4 r0;
r0.a = t0.a;
// Stage 0
r0.rgb = vec3((((1.0 - t0.rgb) * (1.0 - v0.rgb)) + (t0.rgb * (1.0 - 0.0))));
// Stage 1
r0.rgb = vec3((((1.0 - v0.a) * r0.rgb) + (v0.a * (1.0 - 0.0))));
r0.a = ((((1.0 - v0.a) * r0.a) + (v0.a * (1.0 - 0.0))));
// Final Combiner
r0.rgb = r0.rgb + mix(vec3(0.0), vec3(0.0), vec3(0.0));
r0.a = vec3(r0.a).x;
if (!(r0.a > alphaRef)) discard;
fragColor = r0;
}
nv2a: shader linking failed: Type mismatch: Type of _O;v_vtx;inv_w different between shaders.
Type mismatch: Type of _O;v_vtx;D0 different between shaders.
Type mismatch: Type of _O;v_vtx;D1 different between shaders.
Type mismatch: Type of _O;v_vtx;B0 different between shaders.
Type mismatch: Type of _O;v_vtx;B1 different between shaders.
Type mismatch: Type of _O;v_vtx;Fog different between shaders.
Type mismatch: Type of _O;v_vtx;T0 different between shaders.
Type mismatch: Type of _O;v_vtx;T1 different between shaders.
Type mismatch: Type of _O;v_vtx;T2 different between shaders.
Type mismatch: Type of _O;v_vtx;T3 different between shaders.
Out of resource error.
i have this problem on all and latest version, Intel HD GT1, Windows 10 x64 :
audio: Device ac97: audiodev default parameter is deprecated, please specify audiodev=snd0 nv2a: shader linking failed: Type mismatch: Type of _O;v_vtx;inv_w different between shaders. Type mismatch: Type of _O;v_vtx;D0 different between shaders. Type mismatch: Type of _O;v_vtx;D1 different between shaders. Type mismatch: Type of _O;v_vtx;B0 different between shaders. Type mismatch: Type of _O;v_vtx;B1 different between shaders. Type mismatch: Type of _O;v_vtx;Fog different between shaders. Type mismatch: Type of _O;v_vtx;T0 different between shaders. Type mismatch: Type of _O;v_vtx;T1 different between shaders. Type mismatch: Type of _O;v_vtx;T2 different between shaders. Type mismatch: Type of _O;v_vtx;T3 different between shaders.