https://bugs.winehq.org/show_bug.cgi?id=45486
Bug ID: 45486 Summary: Byond 512.x dreamseeker will crash on loading into a ss13 station that uses shaders if run on wine 3.9 or later, but will run fine if you use 3.8 Product: Wine Version: 3.9 Hardware: x86 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: -unknown Assignee: wine-bugs@winehq.org Reporter: midicow@gmail.com Distribution: ---
As in the title, in order to get dream-seeker to successfully launch into a station you have to use wine 3.8 or earlier.
Steps;
Installed wine 3.9
export WINEARCH=win32
set version to windows 7
winetricks allfonts mfc42 gdiplus vcrun2013 wsh57 windowscodecs ogg ole32 riched30 msls31 ie8
got the windows beta exe for byond from http://www.byond.com/download/
Login and launch any of the populated ss13 servers listed (Most of them use d3d9 shaders for lighting and ao now)
Dreamseeker attempts to connect, might even download stuff and go to launch, then closes.
009a:err:d3d:wined3d_debug_callback 0x42a1848: "GL_INVALID_OPERATION in glVertexAttribPointer(non-VBO array)". 009a:err:d3d:wined3d_debug_callback 0x42a1848: "GL_INVALID_OPERATION in glVertexAttribPointer(non-VBO array)".
https://bugs.winehq.org/show_bug.cgi?id=45486
--- Comment #1 from midicow@gmail.com --- Same in wine 3.8? Launches fine.
https://bugs.winehq.org/show_bug.cgi?id=45486
--- Comment #2 from midicow@gmail.com --- Also tested this on 3.12 staging with the same issue.
https://bugs.winehq.org/show_bug.cgi?id=45486
Fabian Maurer dark.shadow4@web.de changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |regression CC| |dark.shadow4@web.de
--- Comment #3 from Fabian Maurer dark.shadow4@web.de --- Can you make a regression test?
https://bugs.winehq.org/show_bug.cgi?id=45486
--- Comment #4 from midicow@gmail.com --- 006a:fixme:d3d:state_linepattern_w Setting line patterns is not supported in OpenGL core contexts. 006a:err:d3d:wined3d_debug_callback 0x2679ae8: "GL_INVALID_OPERATION in glVertexAttribPointer(non-VBO array)". 006a:err:d3d:wined3d_debug_callback 0x2679ae8: "GL_INVALID_OPERATION in glVertexAttribPointer(non-VBO array)".
Are the errors that precede a crash of dreamseeker.exe
----
I did reversion testing and ended up with:
0db4d1c251d293333e2721a78d6156008a90ff6f is the first bad commit commit 0db4d1c251d293333e2721a78d6156008a90ff6f Author: Henri Verbeet hverbeet@codeweavers.com Date: Wed May 23 16:14:13 2018 +0430
wined3d: Default to OpenGL 4.4 contexts.
Signed-off-by: Henri Verbeet hverbeet@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org
:040000 040000 b5834b97e8655f7a879c3ebb830f88c10521dd6a d3cd9af46880f4cffcfe39f89e3f66da119edabd M dlls
----
git revert -n 0db4d1c251d293333e2721a78d6156008a90ff6f after a bisect reset and a checkout master results in a compleable version of wine 3.13 that can launch dreamseeker.exe into a station that uses d3d9 features without crashing or getting the errors in the top of this comment
https://bugs.winehq.org/show_bug.cgi?id=45486
midicow@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |hverbeet@gmail.com
https://bugs.winehq.org/show_bug.cgi?id=45486
Gijs Vermeulen gijsvrm@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Regression SHA1| |0db4d1c251d293333e2721a78d6 | |156008a90ff6f
https://bugs.winehq.org/show_bug.cgi?id=45486
--- Comment #5 from Henri Verbeet hverbeet@gmail.com --- If that commit is to blame, you should be able to set "MaxVersionGL" as a workaround.
https://bugs.winehq.org/show_bug.cgi?id=45486
--- Comment #6 from midicow@gmail.com --- (In reply to Henri Verbeet from comment #5)
If that commit is to blame, you should be able to set "MaxVersionGL" as a workaround.
You are correct, and this is probably something I should'a spotted if I looked at the actual commit. Oh well.
The problem was that wine changed the default version of opengl extensions to 4.4, from 1.0. Great for running games, but for some reason when wine translates dreamseeker from d3d->opengl it tries to use glLineStipple, which was depreciated in opengl 3.1 extensions. Trying to use it throws an exception and wine closes dreamseeker. TL;DR, setting HKEY_CURRENT_USER->Software->Direct3D-> (REG_DWORD, decimal) MaxVersionGL to 3 causes dreamseeker to use opengl 3.0 extensions, before glLineStipple was depreciated, but also means wine uses opengl 3.0 extensions for any other game also run on that same prefix.
https://bugs.winehq.org/show_bug.cgi?id=45486
--- Comment #7 from Henri Verbeet hverbeet@gmail.com --- (In reply to midicow from comment #6)
The problem was that wine changed the default version of opengl extensions to 4.4, from 1.0. Great for running games, but for some reason when wine translates dreamseeker from d3d->opengl it tries to use glLineStipple, which was depreciated in opengl 3.1 extensions. Trying to use it throws an exception and wine closes dreamseeker.
That's odd; It's correct that glLineStipple() is not available in core contexts, but wined3d shouldn't be trying to use it in that case. The only place in wined3d that calls glLineStipple() is state_linepattern(), and with core contexts state_linepattern_w() should be getting called instead. The debug output you posted appears to suggest it is.
The glVertexAttribPointer() message seems more concerning. I'd expect that to be from context_load_numbered_arrays(), in which case for some reason the appropriate VBO wasn't bound, and a subsequent draw would likely fail. Could you please attach a log with WINEDEBUG="+seh,+tid,+d3d9,+d3d"?
https://bugs.winehq.org/show_bug.cgi?id=45486
--- Comment #8 from midicow@gmail.com --- (In reply to Henri Verbeet from comment #7)
(In reply to midicow from comment #6)
The problem was that wine changed the default version of opengl extensions to 4.4, from 1.0. Great for running games, but for some reason when wine translates dreamseeker from d3d->opengl it tries to use glLineStipple, which was depreciated in opengl 3.1 extensions. Trying to use it throws an exception and wine closes dreamseeker.
That's odd; It's correct that glLineStipple() is not available in core contexts, but wined3d shouldn't be trying to use it in that case. The only place in wined3d that calls glLineStipple() is state_linepattern(), and with core contexts state_linepattern_w() should be getting called instead. The debug output you posted appears to suggest it is.
The glVertexAttribPointer() message seems more concerning. I'd expect that to be from context_load_numbered_arrays(), in which case for some reason the appropriate VBO wasn't bound, and a subsequent draw would likely fail. Could you please attach a log with WINEDEBUG="+seh,+tid,+d3d9,+d3d"?
https://drive.google.com/file/d/1yuryM74BIrZ1gdxuY1h-40_tRHDRmP1L/view?usp=s...
https://bugs.winehq.org/show_bug.cgi?id=45486
--- Comment #9 from Henri Verbeet hverbeet@gmail.com ---
From the log:
0071:trace:d3d9:d3d9_CreateDevice iface 0x2ed5670, adapter 0, device_type 0x1, focus_window 0x10262, flags 0x20, parameters 0x6bc454, device 0x2e053d8.
...
0071:trace:d3d9:d3d9_device_CreateVertexBuffer iface 0x2f590e0, size 393216, usage 0x208, fvf 0, pool 0x2, buffer 0x35c1288, shared_handle (nil).
...
0071:trace:d3d:buffer_init Not creating a BO because the buffer is not GPU accessible.
...
008a:trace:d3d:wined3d_buffer_load buffer 0x41eeea0. 008a:trace:d3d:wined3d_buffer_get_memory buffer 0x41eeea0, data 0x407fb88, locations WINED3D_LOCATION_SYSMEM. 008a:trace:d3d:context_update_stream_info Load array 0 {0:0x41fdae0}.
...
008a:trace:d3d:context_load_numbered_arrays Loading array 0 [VBO=0].
...
008a:err:d3d:wined3d_debug_callback 0x2f87e48: "GL_INVALID_OPERATION in glVertexAttribPointer(non-VBO array)".
The application draws from a D3DPOOL_SYSTEMMEM vertex buffer. Those aren't normally accessible by the GPU, but the device was created with D3DCREATE_SOFTWARE_VERTEXPROCESSING, so this is supposed to work. Drawing from system memory buffers happens to work in compatibility contexts because a VBO is not required there; In core contexts it fails.
https://bugs.winehq.org/show_bug.cgi?id=45486
Nathan version2013@protonmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |version2013@protonmail.com
https://bugs.winehq.org/show_bug.cgi?id=45486
Nikolay Sivov bunglehead@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Component|-unknown |directx-d3d
https://bugs.winehq.org/show_bug.cgi?id=45486
--- Comment #10 from Gijs Vermeulen gijsvrm@gmail.com --- Was this fixed by: https://source.winehq.org/git/wine.git/commit/b18a53a5b44b651cde8e05200c75ea... ?
https://bugs.winehq.org/show_bug.cgi?id=45486
--- Comment #11 from Henri Verbeet hverbeet@gmail.com --- (In reply to Gijs Vermeulen from comment #10)
Was this fixed by: https://source.winehq.org/git/wine.git/commit/ b18a53a5b44b651cde8e05200c75eacf54f49926 ?
It's supposed to be, but a retest by the original reporter would be nice.
https://bugs.winehq.org/show_bug.cgi?id=45486
Gijs Vermeulen gijsvrm@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- URL| |http://www.byond.com/downlo | |ad/build/512/512.1462_byond | |.exe Keywords| |download
https://bugs.winehq.org/show_bug.cgi?id=45486
Matteo Bruni matteo.mystral@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Blocks| |46118
https://bugs.winehq.org/show_bug.cgi?id=45486
Henri Verbeet hverbeet@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Fixed by SHA1| |b18a53a5b44b651cde8e05200c7 | |5eacf54f49926 Resolution|--- |FIXED Status|UNCONFIRMED |RESOLVED
--- Comment #12 from Henri Verbeet hverbeet@gmail.com --- Assuming FIXED by b18a53a5b44b651cde8e05200c75eacf54f49926.
https://bugs.winehq.org/show_bug.cgi?id=45486
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #13 from Alexandre Julliard julliard@winehq.org --- Closing bugs fixed in 4.0-rc6.
https://bugs.winehq.org/show_bug.cgi?id=45486
Olivier F. R. Dierick o.dierick@piezo-forte.be changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |wiiu3dsxl13127@gmail.com
--- Comment #14 from Olivier F. R. Dierick o.dierick@piezo-forte.be --- *** Bug 46280 has been marked as a duplicate of this bug. ***