http://bugs.winehq.org/show_bug.cgi?id=57022 --- Comment #14 from Stian Low <wineryyyyy@gmail.com> --- Created attachment 81369 --> http://bugs.winehq.org/attachment.cgi?id=81369 Screenshot of saved scene bugs mostly worked around via hack Attached is a screenshot showing this hack mostly working around the bug for the saved scene. Shani's hair is no longer over exposed, background table has floor that remains lit instead of turning off depending proximity and cam orientation, and hanging fish above the fighting men no longer flickers wildly. modified dlls/d3dx9_36/preshader.c @@ -1449,6 +1449,7 @@ static HRESULT set_constants_device(ID3DXEffectStateManager *manager, struct IDi case PRES_REGTAB_OCONST: return SET_D3D_STATE_(manager, device, SetVertexShaderConstantF, start, ptr, count); case PRES_REGTAB_OICONST: + return S_OK; return SET_D3D_STATE_(manager, device, SetVertexShaderConstantI, start, ptr, count); case PRES_REGTAB_OBCONST: return SET_D3D_STATE_(manager, device, SetVertexShaderConstantB, start, ptr, count); There are 3 preshader int consts involved for the rendering pipeline: light_count bump_diffusevertex_lights_num bump_ambient_lights_num light_count logs continuously after splashscreen while the 2 bump_*lights_num constants only log continuously after the saved scene is loaded. Skipping calls to SetVertexShaderConstantI produces a scene nearly identical to using d3dx9_36 native override. Still unclear if d3dx9_36, d3d9 or both are bugged because builtin d3dx9_36 works for swiftshader d3d9. d3dx9_36 set_constants_device() calls d3d9 SetVertexShaderConstantI() which works for swiftshader but not for builtin d3d9. Maybe builtin d3d9 handling of dirty const ints is bugged for some rendering scenarios. -- 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.