I changed:
hr = This->shader_backend->shader_alloc_private(iface);
To the following:
FIXME("BEFORE, hr: 0x%08x\n", hr); hr = This->shader_backend->shader_alloc_private(iface); FIXME("AFTER, hr: 0x%08x\n", hr);
...and then I ran everquest2.exe again, alt+enter to full screen...
fixme:d3d9:IDirect3DDevice9Impl_Reset RESET DEVICE fixme:d3d_shader:shader_glsl_free FREE SHADER fixme:d3d:IWineD3DDeviceImpl_Reset BEFORE, hr: 0x00000000 fixme:d3d:IWineD3DDeviceImpl_Reset AFTER, hr: 0x00000000 fixme:d3d9:IDirect3DDevice9Impl_Reset RESET DEVICE fixme:d3d_shader:shader_glsl_free FREE SHADER fixme:d3d:IWineD3DDeviceImpl_Reset BEFORE, hr: 0x00000000 fixme:d3d:IWineD3DDeviceImpl_Reset AFTER, hr: 0x00000000 fixme:d3d9:IDirect3DDevice9Impl_Reset RESET DEVICE fixme:d3d_shader:shader_glsl_free FREE SHADER fixme:d3d9:IDirect3DDevice9Impl_Reset RESET DEVICE fixme:d3d_shader:shader_glsl_free FREE SHADER wine: Unhandled page fault on read access to 0x00000008 at address 0x7e44abcc (thread 0009), starting debugger...
The last two seem interesting where they don't reach shader_alloc_private() portion of the code, could this maybe be part of the problem?
On Mon, Jul 21, 2008 at 1:39 PM, H. Verbeet hverbeet@gmail.com wrote:
2008/7/21 Stefan Dösinger stefan@codeweavers.com:
Is the shader backend recreated properly after the reset?
Just to clarify, in dlls/wined3d/device.c, IWineD3DDeviceImpl_Reset(), line 7355 there's a call to shader_alloc_private(). This call is supposed to recreate This->shader_priv.