https://bugs.winehq.org/show_bug.cgi?id=8848 Anastasius Focht <focht(a)gmx.net> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |focht(a)gmx.net --- Comment #23 from Anastasius Focht <focht(a)gmx.net> --- Hello folks, Henri's analysis is spot on :) The original pixel shader source, extracted from 'shaders.spk' for reference: --- snip --- // dynamic preproc // [0] EMISSIVE_TEXTURE, emissive present in texture // [1] EMISSIVE_CONSTANT, emissive comes from constant color (c5) // [2] EMISSIVE_MASK, emissive mask present // c0 = ambient color = rgb, emissive scale = a // c1 = 0.5*(1+agratio) = rgb, 0.5*(1-agratio) = a // c2 = constant emissive color (if needed) def c6,1,0,0,0 // bumpmap decompression const #if EMISSIVE_TEXTURE #define EMISSIVE_REG t2 #elif EMISSIVE_CONSTANT #define EMISSIVE_REG c2 #endif tex t0 // diffuse map tex t1 // normal map #if EMISSIVE_TEXTURE tex t2 // emissive map #endif #if EMISSIVE_MASK tex t3 // emissive mask #endif #include "DecompressNormalMap.psi" // calculate 0.5 + 0.5 cos(a) (hemispherical surface attenuation) * ambient color dp3 r0, t1_bx2, v0_bx2 mad r0, r0, c1.a, c1 mul r0.rgb, r0, c0 #if (EMISSIVE_TEXTURE || EMISSIVE_CONSTANT) && EMISSIVE_MASK +mul r1.a, t3.a, c0.a // emissive mask * scale in r1.a #elif (EMISSIVE_TEXTURE || EMISSIVE_CONSTANT) +mov r1.a, c0.a // emissive scale in r1.a #endif mul_x2 r0.rgb, r0, t0 // multiply by diffuse texture +mov r0.a, t0.a // output diffuse alpha // add in emissive component * emissive scale in r1.a #if (EMISSIVE_TEXTURE || EMISSIVE_CONSTANT) mad r0.rgb, EMISSIVE_REG, r1.a, r0 #endif --- snip --- Repack the pixel shader with 'mul r0.rgb, r0, c0' line commented out to see the effect. $ wine --version wine-1.7.25-51-g60de497 Regards -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.