Dolphin, the GameCube and Wii emulator - Forums
Moved from 4.0-553 to 4.0-765 - it's getting worse! - Printable Version

+- Dolphin, the GameCube and Wii emulator - Forums (https://forums.dolphin-emu.org)
+-- Forum: Dolphin Emulator Discussion and Support (https://forums.dolphin-emu.org/Forum-dolphin-emulator-discussion-and-support)
+--- Forum: Support (https://forums.dolphin-emu.org/Forum-support)
+--- Thread: Moved from 4.0-553 to 4.0-765 - it's getting worse! (/Thread-moved-from-4-0-553-to-4-0-765-it-s-getting-worse)



Moved from 4.0-553 to 4.0-765 - it's getting worse! - kamild1996 - 02-01-2014

Welcome!
I haven't used Dolphin for a while and today I wanted to play DJ Hero 2. Since my build was old, I updated it from 553 to 765. I was hoping for some enhancements but for my case, it made things even worse.
I started the game, everything was fine. Until I actually chosen my song to play - after the loading screen, every single frame caused a "Failed to compile vertex shader!" warning. I was using Direct3D since it made input lag to significantly lower and performance was boosted a bit too. Guys on #dolphin-emu told me to switch the backend to OpenGL so I did it. Warning stopped to appear but performance is way worse now! I am getting framedrops from 60 to 10-15 in random periods of time which made me actually being unable to play the game. Also input lag has drastically increased since I have to wait quarter a second until the game recognizes a pressed button - I am using Xbox 360 gamepad but the same thing happens with my keyboard.
What's the cause of that? I am always using the newest GPU drivers (13.12 for now).

Processor: Intel Core i5-3350P 3.1 GHz
RAM: 4GB DDR3 1333MHz
GPU: Radeon HD7770 1GB
Operating system: Windows 8.1 Pro x64
Hard drive: WD Caviar Green 1TB

Any help would be appreciated!


RE: Moved from 4.0-553 to 4.0-765 - it's getting worse! - Bär - 02-01-2014

edit:

okay i'm really stupid and it turned out that i can't help you....i get this "Failed to compile vertex shader!" error too (in different games though) and couldn't fix it myself so far... :/

Graphic Card : GTX 285
Driver: 332.21 WHQL

It also happens with earlier revisions like 4.0-720 which is interesting for me, because i'm quite sure this revision worked well for me....weird!

it also creates a lot of bad_vs_xxxx txt files...

the first one (bad_vs_0000) says:

uniform float4 cpnmtx[6] : register(c0);
uniform float4 cproj[4] : register(c6);
uniform float4 cmtrl[4] : register(c10);
uniform float4 clights[40] : register(c14);
uniform float4 ctexmtx[24] : register(c54);
uniform float4 ctrmtx[64] : register(c78);
uniform float4 cnmtx[32] : register(c142);
uniform float4 cpostmtx[64] : register(c174);
uniform float4 cDepth : register(c238);
struct VS_OUTPUT {
float4 pos : POSITION;
float4 colors_0 : COLOR0;
float4 colors_1 : COLOR1;
float3 tex0 : TEXCOORD0;
float4 clipPos : TEXCOORD1;
};
VS_OUTPUT main(
float3 rawnorm0 : NORMAL0,
float2 tex0 : TEXCOORD0,
float3 tex6 : TEXCOORD6,
float4 fposmtx : BLENDINDICES,
float4 rawpos : POSITION) {
VS_OUTPUT o;
int posmtx = int(fposmtx * 255.0);
float4 pos = float4(dot(ctrmtx[posmtx], rawpos), dot(ctrmtx[posmtx+1], rawpos), dot(ctrmtx[posmtx+2], rawpos), 1);
int normidx = posmtx >= 32 ? (posmtx-32) : posmtx;
float3 N0 = cnmtx[normidx].xyz, N1 = cnmtx[normidx+1].xyz, N2 = cnmtx[normidx+2].xyz;
float3 _norm0 = normalize(float3(dot(N0, rawnorm0), dot(N1, rawnorm0), dot(N2, rawnorm0)));
o.pos = float4(dot(cproj[0], pos), dot(cproj[1], pos), dot(cproj[2], pos), dot(cproj[3], pos));
float4 mat, lacc;
float3 ldir, h;
float dist, dist2, attn;
{
mat = cmtrl[2];
lacc = cmtrl[0];
lacc.w = 1.0;
ldir = clights[5*0+3].xyz - pos.xyz;
dist2 = dot(ldir, ldir);
dist = sqrt(dist2);
ldir = ldir / dist;
attn = max(0.0, dot(ldir, clights[5*0+4].xyz));
attn = max(0.0, clights[5*0+1].x + clights[5*0+1].y*attn + clights[5*0+1].z*attn*attn) / dot(clights[5*0+2].xyz, float3(1.0,dist,dist2));
lacc.xyz += attn * max(0.0,dot(ldir, _norm0)) * clights[5*0].xyz;

ldir = clights[5*1+3].xyz - pos.xyz;
dist2 = dot(ldir, ldir);
dist = sqrt(dist2);
ldir = ldir / dist;
attn = max(0.0, dot(ldir, clights[5*1+4].xyz));
attn = max(0.0, clights[5*1+1].x + clights[5*1+1].y*attn + clights[5*1+1].z*attn*attn) / dot(clights[5*1+2].xyz, float3(1.0,dist,dist2));
lacc.xyz += attn * max(0.0,dot(ldir, _norm0)) * clights[5*1].xyz;

o.colors_0 = mat * clamp(lacc, 0.0, 1.0);
}
o.colors_1 = o.colors_0;
float4 coord = float4(0.0, 0.0, 1.0, 1.0);
{
coord = float4(0.0, 0.0, 1.0, 1.0);
coord = float4(tex0.x, tex0.y, 1.0, 1.0);
o.tex0.xyz = float3(dot(coord, ctexmtx[0]), dot(coord, ctexmtx[1]), 1);
float4 P0 = cpostmtx[61];
float4 P1 = cpostmtx[62];
float4 P2 = cpostmtx[63];
o.tex0.xyz = float3(dot(P0.xyz, o.tex0.xyz) + P0.w, dot(P1.xyz, o.tex0.xyz) + P1.w, dot(P2.xyz, o.tex0.xyz) + P2.w);
}
o.clipPos = float4(pos.x,pos.y,o.pos.z,o.pos.w);
o.pos.z = cDepth.x * o.pos.w + o.pos.z * cDepth.y;
return o;
}


In this case i tried Metroid Prime Trilogy (Metroid Prime 3) but seems to happen in other games as well (i'll list them if necessary)


RE: Moved from 4.0-553 to 4.0-765 - it's getting worse! - Nemesys - 02-01-2014

Getting the same error with a GTX 560-ti. I assume there's just a bug with this build.


RE: Moved from 4.0-553 to 4.0-765 - it's getting worse! - Link_to_the_past - 02-01-2014

Use the latest, this bug is fixed.


RE: Moved from 4.0-553 to 4.0-765 - it's getting worse! - Bär - 02-02-2014

yup it is fixed Wink

thanks everyone!


RE: Moved from 4.0-553 to 4.0-765 - it's getting worse! - degasus - 02-02-2014

yeah, sorry for not testing my commits Sad


RE: Moved from 4.0-553 to 4.0-765 - it's getting worse! - Link_to_the_past - 02-02-2014

(02-02-2014, 06:59 PM)degasus Wrote: yeah, sorry for not testing my commits Sad

No need to apologize degasus, time is precious and not everyone has it. You should let others take some burden to not overexert yourselves, if you don't have time for testing let others do it for you.