Problem with ddraw-games and bumblebee

Questions about Wine on Linux
Locked
CJejuni
Newbie
Newbie
Posts: 1
Joined: Mon Feb 06, 2017 9:57 am

Problem with ddraw-games and bumblebee

Post by CJejuni »

In a bout of nostalgia I recently installed some old isometric games working on a DirectXDraw basis, namely Robin Hood: Legend of Sherwood and Desperados.

The problem is, I can't either get to work properly with optirun or primusrun on my T530 with an NVS 5300M. This is not really a big issue for Desperados since it runs just fine without, but Robin Hood runs very slowly and not smooth at all without it.
I generally start bumblebee+wine with a one line shell script consisting of "primusrun wine start folder", which works well in all other cases.

When I start RH with primusrun, the screen remains black from the first second of the intro to at least the menu. Obviously I ahve no way of selecting a savegame and loading it to see if the problem persists until then, but I'm not betting on the contrary. When I start it with optirun, it works just fine up until actually trying to load a game, where it freezes when the loading bar reaches the end and completely fucks over my graphics system-wide until I log myself in anew.

These are the logs of when I try tos tart Robin Hood in various states:

With primusrun

Code: Select all

fixme:msvcp:_Locinfo__Locinfo_ctor_cat_cstr (0x33fa30 1 C) semi-stub
fixme:keyboard:X11DRV_LoadKeyboardLayout L"00000409", 0080: stub!
fixme:keyboard:X11DRV_LoadKeyboardLayout L"00000407", 0001: stub!
fixme:win:EnumDisplayDevicesW ((null),0,0x33cf08,0x00000000), stub!
fixme:d3d:wined3d_device_decref Device released with resources still bound, acceptable but unexpected.
fixme:d3d:wined3d_device_decref Leftover resource 0x17e110 with type WINED3D_RTYPE_SURFACE (0x1).
fixme:d3d:wined3d_device_decref Leftover resource 0x17df70 with type WINED3D_RTYPE_TEXTURE (0x3).
fixme:win:EnumDisplayDevicesW ((null),0,0x33cf08,0x00000000), stub!
fixme:win:EnumDisplayDevicesW ((null),0,0x33cbc8,0x00000000), stub!
fixme:win:EnumDisplayDevicesW ((null),0,0x33ce68,0x00000000), stub!
fixme:d3d_surface:wined3d_surface_blt Can't handle WINEDDBLT_ASYNC flag.
fixme:ddraw:ddraw_surface7_Flip Ignoring flags 0x1.
With optirun:

Code: Select all

fixme:msvcp:_Locinfo__Locinfo_ctor_cat_cstr (0x33fa30 1 C) semi-stub
fixme:keyboard:X11DRV_LoadKeyboardLayout L"00000409", 0080: stub!
fixme:keyboard:X11DRV_LoadKeyboardLayout L"00000407", 0001: stub!
fixme:win:EnumDisplayDevicesW ((null),0,0x33cf08,0x00000000), stub!
fixme:d3d:wined3d_device_decref Device released with resources still bound, acceptable but unexpected.
fixme:d3d:wined3d_device_decref Leftover resource 0x17d180 with type WINED3D_RTYPE_SURFACE (0x1).
fixme:d3d:wined3d_device_decref Leftover resource 0x17cfe0 with type WINED3D_RTYPE_TEXTURE (0x3).                                             
fixme:win:EnumDisplayDevicesW ((null),0,0x33cf08,0x00000000), stub!                                                                           
fixme:win:EnumDisplayDevicesW ((null),0,0x33cbc8,0x00000000), stub!                                                                           
fixme:win:EnumDisplayDevicesW ((null),0,0x33ce68,0x00000000), stub!                                                                           
fixme:d3d_surface:wined3d_surface_blt Can't handle WINEDDBLT_ASYNC flag.                                                                      
fixme:ddraw:ddraw_surface7_Flip Ignoring flags 0x1.                                                                                           
fixme:d3d_surface:surface_cpu_blt Filter WINED3D_TEXF_LINEAR not supported in software blit.                                                  
fixme:d3d_surface:surface_cpu_blt Filter WINED3D_TEXF_LINEAR not supported in software blit.                                                  
fixme:font:freetype_SelectFont Untranslated charset 255                                                                                       
wine: Unhandled page fault on read access to 0x07c00840 at address 0x5e5dd5 (thread 0035), starting debugger...
Without an additional wrapper:

Code: Select all

fixme:msvcp:_Locinfo__Locinfo_ctor_cat_cstr (0x33fa30 1 C) semi-stub
fixme:keyboard:X11DRV_LoadKeyboardLayout L"00000409", 0080: stub!
fixme:keyboard:X11DRV_LoadKeyboardLayout L"00000407", 0001: stub!
err:d3d:init_driver_info No driver version info found for device 8086:0166, driver model 0x2.
fixme:win:EnumDisplayDevicesW ((null),0,0x33cf08,0x00000000), stub!
fixme:d3d:wined3d_device_decref Device released with resources still bound, acceptable but unexpected.
fixme:d3d:wined3d_device_decref Leftover resource 0x1c1090 with type WINED3D_RTYPE_SURFACE (0x1).
fixme:d3d:wined3d_device_decref Leftover resource 0x1c0ef0 with type WINED3D_RTYPE_TEXTURE (0x3).
err:d3d:init_driver_info No driver version info found for device 8086:0166, driver model 0x2.
fixme:win:EnumDisplayDevicesW ((null),0,0x33cf08,0x00000000), stub!
err:d3d:init_driver_info No driver version info found for device 8086:0166, driver model 0x2.
fixme:win:EnumDisplayDevicesW ((null),0,0x33cbc8,0x00000000), stub!
err:d3d:init_driver_info No driver version info found for device 8086:0166, driver model 0x2.
fixme:win:EnumDisplayDevicesW ((null),0,0x33ce68,0x00000000), stub!
fixme:d3d_surface:wined3d_surface_blt Can't handle WINEDDBLT_ASYNC flag.
fixme:ddraw:ddraw_surface7_Flip Ignoring flags 0x1.
Crashdummy
Newbie
Newbie
Posts: 1
Joined: Sat Jun 03, 2017 6:16 am

Re: Problem with ddraw-games and bumblebee

Post by Crashdummy »

You got it fixed ?
I still can't play games using my gtx870m.

Code: Select all

primusrun wine iw3sp.exe 
/usr/bin/primusrun: line 41: warning: command substitution: ignored null byte in input
err:d3d:init_driver_info No driver version info found for device 8086:0416, driver model 0x2.
err:pulse:pulse_contextcallback Context failed: Connection refused
ALSA lib pcm_dmix.c:1052:(snd_pcm_dmix_open) unable to open slave
ALSA lib pcm_dsnoop.c:618:(snd_pcm_dsnoop_open) unable to open slave
err:d3d:init_driver_info No driver version info found for device 8086:0416, driver model 0x2.
err:d3d:init_driver_info No driver version info found for device 8086:0416, driver model 0x2.
hverbeet
Level 1
Level 1
Posts: 8
Joined: Fri Apr 14, 2017 6:41 am

Re: Problem with ddraw-games and bumblebee

Post by hverbeet »

CJejuni wrote:In a bout of nostalgia I recently installed some old isometric games working on a DirectXDraw basis, namely Robin Hood: Legend of Sherwood and Desperados.

The problem is, I can't either get to work properly with optirun or primusrun on my T530 with an NVS 5300M. This is not really a big issue for Desperados since it runs just fine without, but Robin Hood runs very slowly and not smooth at all without it.
I generally start bumblebee+wine with a one line shell script consisting of "primusrun wine start folder", which works well in all other cases.

When I start RH with primusrun, the screen remains black from the first second of the intro to at least the menu. Obviously I ahve no way of selecting a savegame and loading it to see if the problem persists until then, but I'm not betting on the contrary. When I start it with optirun, it works just fine up until actually trying to load a game, where it freezes when the loading bar reaches the end and completely fucks over my graphics system-wide until I log myself in anew.
Is the issue specific to DirectDraw games, or does it apply to Wine Direct3D/OpenGL in general? I.e., does running a Direct3D 8/9 application with optirun/primusrun work correctly? One thing that's special about DirectDraw applications is that they typically render directly to the frontbuffer. I have no personal experience with either optirun or primusrun, but could imagine frontbuffer rendering to be an extra challenge.
Locked