https://bugs.winehq.org/show_bug.cgi?id=41224
Bug ID: 41224 Summary: WineD3D8 crashes on Windows with GTAVC and i915-class video Product: Wine Version: 1.9.17 Hardware: x86 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: directx-d3d Assignee: wine-bugs@winehq.org Reporter: b7.10110111@gmail.com Distribution: ---
Created attachment 55490 --> https://bugs.winehq.org/attachment.cgi?id=55490 Screenshot of OllyDbg showing a bit of crash context
In version 1.7.54 downloaded from [1], when copying d3d8.dll, wined3d.dll and libwine.dll to the game directory I can play it, albeight slower than native D3D8. Also several previous versions tested do work. But since 1.7.55 (also the latest 1.9.17 and 1.8.4) the game crashes at start with access violation reading address 0x0.
A screenshot of OllyDbg was the only thing I was able to get since the game is fullscreen and even that is only thanks to Windows 7 compositing.
[1]: http://downloads.adolfintel.com/Projects/WineD3D/Builds/
https://bugs.winehq.org/show_bug.cgi?id=41224
Ruslan Kabatsayev b7.10110111@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |regression
https://bugs.winehq.org/show_bug.cgi?id=41224
Ruslan Kabatsayev b7.10110111@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Regression SHA1| |b53256b8b752855576252cc2290 | |dfbc9cb0f1280
--- Comment #1 from Ruslan Kabatsayev b7.10110111@gmail.com --- Here's the result of bisection:
b53256b8b752855576252cc2290dfbc9cb0f1280 is the first bad commit commit b53256b8b752855576252cc2290dfbc9cb0f1280 Author: Henri Verbeet hverbeet@codeweavers.com Date: Wed Nov 4 00:02:49 2015 +0100
wined3d: Call wglGetPixelFormat() through the gl_ops table.
Signed-off-by: Henri Verbeet hverbeet@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org
:040000 040000 1c05e46b0e62e0b397f4feb4a8f7662fd45e3003 8ec795995afa10e9dee696e49f54abf03e43513d M dlls
https://bugs.winehq.org/show_bug.cgi?id=41224
Ruslan Kabatsayev b7.10110111@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |hverbeet@gmail.com
https://bugs.winehq.org/show_bug.cgi?id=41224
--- Comment #2 from Ruslan Kabatsayev b7.10110111@gmail.com --- This is on EEE PC 1015PE — the one with Intel Atom N450 integrated graphics.
https://bugs.winehq.org/show_bug.cgi?id=41224
--- Comment #3 from Ruslan Kabatsayev b7.10110111@gmail.com --- Reverting the commit avoids the crash in current git.
https://bugs.winehq.org/show_bug.cgi?id=41224
Ruslan Kabatsayev b7.10110111@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- OS|Linux |Windows
https://bugs.winehq.org/show_bug.cgi?id=41224
--- Comment #4 from Henri Verbeet hverbeet@gmail.com --- Using wined3d on Windows is one of those things that's nominally supported, but in practice we depend on the people actually using it to keep it working. I.e., we try not to break it on purpose, but you're mostly on your own.
That said, it may just be a matter of adding wglGetPixelFormat() in the "USE_WIN32_OPENGL" block in wined3d_adapter_init(), similar to wglSwapBuffers().
https://bugs.winehq.org/show_bug.cgi?id=41224
--- Comment #5 from Ruslan Kabatsayev b7.10110111@gmail.com --- (In reply to Henri Verbeet from comment #4)
That said, it may just be a matter of adding wglGetPixelFormat() in the "USE_WIN32_OPENGL" block in wined3d_adapter_init(), similar to wglSwapBuffers().
Yes, this does appear to fix it:
diff --git a/dlls/wined3d/directx.c b/dlls/wined3d/directx.c index 4213df3..b97cd78 100644 --- a/dlls/wined3d/directx.c +++ b/dlls/wined3d/directx.c @@ -6143,6 +6143,7 @@ static BOOL wined3d_adapter_init(struct wined3d_adapter *adapter, UINT ordinal, ALL_WGL_FUNCS #undef USE_GL_FUNC gl_info->gl_ops.wgl.p_wglSwapBuffers = (void *)GetProcAddress(mod_gl, "wglSwapBuffers"); + gl_info->gl_ops.wgl.p_wglGetPixelFormat = (void *)GetProcAddress(mod_gl, "wglGetPixelFormat"); } #else /* To bypass the opengl32 thunks retrieve functions from the WGL driver instead of opengl32 */
https://bugs.winehq.org/show_bug.cgi?id=41224
--- Comment #6 from Matteo Bruni matteo.mystral@gmail.com --- (In reply to Ruslan Kabatsayev from comment #5)
(In reply to Henri Verbeet from comment #4)
That said, it may just be a matter of adding wglGetPixelFormat() in the "USE_WIN32_OPENGL" block in wined3d_adapter_init(), similar to wglSwapBuffers().
Yes, this does appear to fix it:
Can you send a patch for it?
https://bugs.winehq.org/show_bug.cgi?id=41224
--- Comment #7 from Ruslan Kabatsayev b7.10110111@gmail.com --- (In reply to Matteo Bruni from comment #6)
Can you send a patch for it?
Done: https://www.winehq.org/pipermail/wine-patches/2016-September/154160.html
https://bugs.winehq.org/show_bug.cgi?id=41224
Ruslan Kabatsayev b7.10110111@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Resolution|--- |FIXED Status|UNCONFIRMED |RESOLVED Fixed by SHA1| |c2e316a3e6afaf1eea05a9f86f9 | |e5275cbfcf9e6
--- Comment #8 from Ruslan Kabatsayev b7.10110111@gmail.com --- Fixed in 1.9.18.
https://bugs.winehq.org/show_bug.cgi?id=41224
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #9 from Alexandre Julliard julliard@winehq.org --- Closing bugs fixed in 1.9.19.
https://bugs.winehq.org/show_bug.cgi?id=41224
Michael Stefaniuc mstefani@redhat.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Target Milestone|--- |1.8.x CC| |mstefani@redhat.com
https://bugs.winehq.org/show_bug.cgi?id=41224
Michael Stefaniuc mstefani@redhat.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Target Milestone|1.8.x |---
--- Comment #10 from Michael Stefaniuc mstefani@redhat.com --- Removing 1.8.x milestone from bugs included in 1.8.6.