Emulator Issues #4784
closed[mario kart wii] Pixel Shader problems
0%
Description
the games starts without problems but after a short playtime (1-5 min), it starts throughing error messages. its all ways the same text.
--------------------------------------
i´m using the latest version of dolphin (build 7710 for win 32).
My System:
OS: win XP x64 professionel SP2
CPU: AMD Phenom II x4 955 (3.21GHz)
RAM: 4GB
GPU: ATI Radeon HD 5800 (with catalyst 10.7)
Dolphin report (bad_ps_0176):
//Pixel Shader for TEV stages
//3 TEV stages, 3 texgens, 0 IND stages
uniform sampler2D samp0 : register(s0), samp1 : register(s1), samp2 : register(s2), samp3 : register(s3), samp4 : register(s4), samp5 : register(s5), samp6 : register(s6), samp7 : register(s7);
uniform float4 color[4] : register(c0);
uniform float4 k[4] : register(c4);
uniform float4 alphaRef[1] : register(c8);
uniform float4 texdim[8] : register(c9);
uniform float4 czbias[2] : register(c17);
uniform float4 cindscale[2] : register(c19);
uniform float4 cindmtx[6] : register(c21);
uniform float4 cfog[3] : register(c27);
void main(
out float4 ocol0 : COLOR0,
in float4 rawpos : VPOS,
in float4 colors_0 : COLOR0,
in float4 colors_1 : COLOR1,
in float3 uv0 : TEXCOORD0,
in float3 uv1 : TEXCOORD1,
in float3 uv2 : TEXCOORD2,
in float4 clipPos : TEXCOORD3 ) {
float4 c0 = color[1], c1 = color[2], c2 = color[3], prev = float4(0.0f, 0.0f, 0.0f, 0.0f), textemp = float4(0.0f, 0.0f, 0.0f, 0.0f), rastemp = float4(0.0f, 0.0f, 0.0f, 0.0f), konsttemp = float4(0.0f, 0.0f, 0.0f, 0.0f);
float3 comp16 = float3(1.0f, 255.0f, 0.0f), comp24 = float3(1.0f, 255.0f, 255.0f*255.0f);
float4 alphabump=float4(0.0f,0.0f,0.0f,0.0f);
float3 tevcoord=float3(0.0f, 0.0f, 0.0f);
float2 wrappedcoord=float2(0.0f,0.0f), tempcoord=float2(0.0f,0.0f);
float4 cc0=float4(0.0f,0.0f,0.0f,0.0f), cc1=float4(0.0f,0.0f,0.0f,0.0f);
float4 cc2=float4(0.0f,0.0f,0.0f,0.0f), cprev=float4(0.0f,0.0f,0.0f,0.0f);
float4 crastemp=float4(0.0f,0.0f,0.0f,0.0f),ckonsttemp=float4(0.0f,0.0f,0.0f,0.0f);
clipPos = float4(rawpos.x, rawpos.y, clipPos.z, clipPos.w);
uv0.xy = uv0.xy * texdim[0].zw;
uv1.xy = uv1.xy * texdim[1].zw;
if (uv2.z != 0.0) uv2.xy = uv2.xy / uv2.z;
uv2.xy = uv2.xy * texdim[2].zw;
tevcoord.xy = uv1.xy;
textemp = tex2D(samp1,tevcoord.xy * texdim[1].xy).rgba;
cc0 = frac(c0 * (255.0f/256.0f)) * (256.0f/255.0f);
cc1 = frac(c1 * (255.0f/256.0f)) * (256.0f/255.0f);
prev.rgb = saturate(lerp((cc1.rgb), (cc0.rgb), (textemp.rgb)));
prev.a = saturate(textemp.a+float4(0.0f, 0.0f, 0.0f, 0.0f).a);
tevcoord.xy = uv0.xy;
textemp = tex2D(samp0,tevcoord.xy * texdim[0].xy).rgba;
cprev = prev;
cc0 = c0;
prev.rgb = saturate((c1.rgb)+lerp((cprev.rgb), (cc0.rgb), (textemp.rgb)));
prev.a = saturate(c0.a+cprev.a*textemp.a);
tevcoord.xy = uv2.xy;
textemp = tex2D(samp2,tevcoord.xy * texdim[2].xy).rgba;
cc0 = c0;
cc1 = c1;
prev.rgb = saturate((prev.rgb)+(cc0.rgb)*(textemp.rgb));
prev.a = saturate(prev.a-cc1.a);
if(!( (prev.a > alphaRef[0].r - (0.25f/255.0f)) && (true))){ocol0 = float4(0.0);discard;return;}
ocol0 = prev;
}