GithubHelp home page GithubHelp logo

ixit / wine-nine-standalone Goto Github PK

View Code? Open in Web Editor NEW
272.0 21.0 23.0 382 KB

Build Gallium Nine support on top of an existing WINE installation

License: GNU Lesser General Public License v2.1

Shell 1.78% Python 0.21% C 95.21% Meson 2.80%
linux gaming wine d3d9 mesa gallium nine

wine-nine-standalone's Introduction

Gallium Nine Standalone buildstate

https://wiki.ixit.cz/_media/gallium-nine.png

About

Gallium Nine allows to run any Direct3D 9 application with nearly no CPU overhead, which provides a smoother gaming experience and increased FPS.

Gallium Nine Standalone, as the name implies, is a standalone version of the WINE parts of Gallium Nine.

This decouples Gallium Nine from the WINE tree, so that it can be used with any WINE version. There is no need for any WINE patches. A stable, development, or staging WINE release is sufficient.

Gallium Nine Standalone consists of two parts:

  • d3d9-nine.dll: Gallium Nine Direct3D 9 library
  • ninewinecfg.exe: GUI to enable/disable Gallium Nine with some additional info about the current state

Objective

  • Official distro packages

    Gallium Nine is a fork of the WINE tree, without any chances to be merged upstream. The decoupling of the WINE tree makes it its own upstream.

  • Ease updates for the user

    WINE can be updated independently of Gallium Nine Standalone. Users can mix releases of both projects to their liking. Switching between staging and non-staging does not require a rebuild.

Requirements

  • A Gallium based graphics driver (Mesa 3D)
  • Mesa's Gallium Nine state tracker (d3dadapter9.so)

Packages

Your distribution may provide a package, avoiding the need to compile the code yourself. The exact usage instructions may vary in this case so check your distribution for the details. The currently known packages are:

We also provide distro independent release binaries, available as GitHub releases. You can either download these yourself (see Usage below), or install them via Winetricks.

Usage

This part assumes that you downloaded a release binary or compiled using release.sh yourself.

  • Extract the tarball in e.g. your home directory
  • run the nine-install.sh script from the directory you extracted the tarball in

The latter symlinks the extracted binaries to your WINE prefix and enables Gallium Nine Standalone. To target another WINE prefix than the standard ~/.wine, just set WINEPREFIX accordingly before you run nine-install.sh.

Gallium Nine Standalone comes with a GUI.

For the 32bit version run wine ninewinecfg and for 64bit wine64 ninewinecfg.

Compiling

Please see our wiki, which also includes distro specific help.

Backends

The DRI3 backend is the preferred one and has the lowest CPU and memory overhead.

As fallback for legacy platforms the DRI2 backend can be used, which has more CPU overhead and a bigger memory footprint. The DRI2 fallback relies on mesa's EGL which provides EGLImages.

Intel Drivers

Gallium Nine could be used with the new Crocus driver (included since Mesa 21.2) on older Shader model 3.0 aka feature level 9_3 compatible Intel gen4-7 graphics (GMA X3000, GMA 4500, HD 2000-5000; year 2007-2014).

Use the environment variable MESA_LOADER_DRIVER_OVERRIDE=crocus to force using Crocus instead of i965.

All newer Intel iGPU hardware (Broadwell+) is supported through the already working Iris driver.

Debugging

You can use the environment variable D3D_BACKEND to force one of the supported backends:

  • dri3
  • dri2

If not specified it prefers DRI3 over DRI2 if available.

wine-nine-standalone's People

Contributors

9ary avatar axeldavy avatar chewi avatar dhewg avatar fireburn avatar gasinvein avatar henry-malinowski avatar kakurasan avatar kprkpr avatar kyrios123 avatar lahvuun avatar ltsdw avatar okias avatar orbea avatar oschowa avatar patrickrudolph avatar q4a avatar siro20 avatar sonicpp avatar valdikss avatar zhasha avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

wine-nine-standalone's Issues

TERA crashes with GLXBadContext error

Hello,

first a few informations about my system:
OS: Gentoo
Wine build: wine-staging-4.11
Gallium Nine Standalone build: gallium-nine-standalone-0.4
Mesa build: mesa-19.1.0
Xorg-server build: xorg-server-1.20.5
GPU driver: amdgpu, radeonsi

I'm running into issues when playing TERA (EU Gameforge version). At some point it will crash, sometimes within a few minutes, sometimes later. This doesn't happen with disabled Gallium Nine, though.

See the attached file for logs:
log.txt

Edit: Sometimes it also crashes with this error message:
00c8:err:module:load_so_dll failed to load .so lib "/usr/lib64/wine-staging-4.11/bin/../../../lib32/wine-staging-4.11/wine/dxgi.dll.so": /usr/lib64/wine-staging-4.11/bin/../../../lib32/wine-staging-4.11/wine/dxgi.dll.so: failed to map segment from shared object
log2.txt
Maybe they're related somehow.

If you need anything else, let me know.

Higher memory usage (reported by pmap) compared to wined3d in Mass Effect 2

wine-staging-4.18, mesa-19.2.1, llvm-9.0.0, gallium-nine-standalone-v0.5.0.356-release

32G RAM, Ryzen 1700, Vega 56

The game itself has high resolution texture mods installed, the binary is patched with LAA.

Upon exceeding 4G memory usage the game does one of the following:

  • crashes with R6025 error;
  • artifacts when memory usage exceeds 4G, along with error messages about invalid shaders from mesa/llvm;
  • hangs with the following log:
005a:fixme:dbghelp:validate_addr64 Unsupported address fffffffff7a80000
005a:fixme:dbghelp:validate_addr64 Unsupported address fffffffff0a90000
005a:fixme:dbghelp:validate_addr64 Unsupported address ffffffffefeb0000
005a:fixme:dbghelp:validate_addr64 Unsupported address ffffffffd2fd0000
005a:fixme:dbghelp:validate_addr64 Unsupported address fffffffff7a50000
005a:fixme:dbghelp:validate_addr64 Unsupported address ffffffffefe60000
005a:fixme:dbghelp:validate_addr64 Unsupported address ffffffffefe40000
005a:fixme:dbghelp:validate_addr64 Unsupported address ffffffffefe30000
005a:fixme:faultrep:ReportFault 1C86F9B4 0x0 stub

(which I suspect should be an error dialogue similar to R6025, but it's not yet implemented in wine)

I have a save game which I load to test this. Upon loading the memory usage is around 3.9G-4G with Nine. Sometimes it hangs right away, sometimes I need to run around for it to go over the limit. With wined3d the memory usage upon load and in that area is around 2.7G.

Interestingly, this issue is also somewhat reproducible with an apitrace:
MassEffect2.trace

For me, when running d3dretrace.exe with Nine, it uses around 3.7G memory in game, while with wined3d it's around 2.1G.

I believe this may be related to #24, although there are multiple explicit mentions of video memory, which is not what this issue is about (I think), so I decided to create a new ticket. But it's possible OP of #24 is also running into the 4G limit, except the message is misleading. ME2 and the Borderlands games both use UE3, we both have installed higher resolution textures, and our issues are apparently absent when using wined3d.

Brawlhalla screen is offset

Hey!

I'm trying to run Brawlhalla, but with galium-nine enabled, screen seems to render offset. Mouse is still detected where it should be.

Wine: 4.0 Staging
Driver: X.Org AMD Radeon (TM) R9 380 Series (TONGA, DRM 3.27.0, 4.20.6-zen1-1-zen, LLVM 7.0.1)
Driver Version: 4.5 (Compatibility Profile) Mesa 18.3.3

Screenshots:

Vampire: The Masquerade – Bloodlines worse than wine dx9

Hi, does anyone have an idea what are these gallium nine errors about? They seem to have an impact on the fps count.

I use oibaf mesa 19.2 radeon rx580 on ubuntu 18.04.
With gallium nine I get 30 fps in open area:

Native Direct3D 9 v0.4.0.294-release is active.
For more information visit https://github.com/iXit/wine-nine-standalone
fixme:d3d9nine:DRIPresentGroup_GetMultiheadCount (0x166408), stub!
fixme:d3d9nine:DRIPresentGroup_GetMultiheadCount (0x166408), stub!
radeonsi: Forcing anisotropy filter to 16x
mesa: for the -simplifycfg-sink-common option: may only occur zero or one times!
mesa: for the -global-isel-abort option: may only occur zero or one times!

With wined3d 40-60 fps in open area:

 0009:fixme:ver:GetCurrentPackageId (0x34e5a0 (nil)): stub
radeonsi: Forcing anisotropy filter to 16x
002c:fixme:d3d:state_linepattern_w Setting line patterns is not supported in OpenGL core contexts.

Grim Dawn: Hang + black screen

OS: Slackware64-current
wine: 4.9-staging (With both 64/32-bit)
wine-nine-standalone: b41e162

I got the game Grim Dawn from GOG.

https://www.gog.com/game/grim_dawn

It apparently can use either d3d11 or d3d9, to use the latter.

export WINEDLLOVERRIDES='d3d11=d'

This seems to work just fine, but if wine-nine-standalone is enabled it will hang on a black screen and never start even after waiting around 10 minutes.

I made a trace with apitrace as explained in the wiki.

https://github.com/iXit/wine-nine-standalone/wiki/apitrace

trace: grim_dawn_d3d9.trace.xz.txt

(Remove the .txt extension)

However upon replaying this trace I get a crash.

wine crash report: grim_dawn_backtrace.txt

Any ideas how to figure out what the problem is?

err:d3d9nine:executeCmdline CreateProcessA failed, error=2done with League of Legends

Distro: Arch (32-64bits)
Wine: 4.7
Mesa: Mesa 19.2.0-devel (git-1f1007a4ed)
GPU: Intel(R) HD Graphics 5500 (Broadwell GT2)
Driver: Iris

I used have gallium nine compiled/patched with wine before trying this standalone version (the game used crash in 5% anyway, but at least gallium nine used works tho).

So I'm having a problem, steps to reproduce:

$ export WINEPREFIX=/home/little/Games/league-of-legends
$ nine-install
$ wine64 ninewinecfg

and then I have:

wine: cannot find L"C:\\windows\\system32\\winemenubuilder.exe"
000b:err:wineboot:process_run_key Error running cmd L"C:\\windows\\system32\\winemenubuilder.exe -a -r" (2).
0026:err:setupapi:create_dest_file failed to create L"C:\\windows\\system32\\d3d9.dll" (error=80)
0026:err:setupapi:create_dest_file failed to create L"C:\\windows\\system32\\d3d9-nine.dll" (error=80)
0026:err:setupapi:create_dest_file failed to create L"C:\\windows\\system32\\ninewinecfg.exe" (error=80)
0026:fixme:dwmapi:DwmIsCompositionEnabled 0x6dbd1518
0031:fixme:iphlpapi:NotifyIpInterfaceChange (family 0, callback 0x69ebd3de, context 0x846570, init_notify 0, handle 0x113fa10): stub
0043:err:setupapi:create_dest_file failed to create L"C:\\windows\\system32\\d3d9-nine.dll" (error=80)
0043:err:setupapi:create_dest_file failed to create L"C:\\windows\\system32\\ninewinecfg.exe" (error=80)
0045:fixme:iphlpapi:NotifyIpInterfaceChange (family 0, callback 0x6a0cb608, context 0x8c8888, init_notify 0, handle 0x110fc88): stub
0043:err:module:load_builtin_dll failed to load .so lib for builtin L"winegstreamer.dll": libgstvideo-1.0.so.0: não é possível abrir arquivo compartilhado: Arquivo ou diretório inexistente
wine: configuration in '/home/little/Games/league-of-legends' has been updated.
installing 32bit binaries to /home/little/Games/league-of-legends/dosdevices/c:/windows/syswow64
installing 64bit binaries to /home/little/Games/league-of-legends/dosdevices/c:/windows/system32
enabling gallium nine
err:d3d9nine:executeCmdline CreateProcessA failed, error=2done

And then running the game, wine outputs something like:

009c:fixme:win:RegisterDeviceNotificationA (hwnd=0x3006c, filter=0x8effe90,flags=0x00000000) returns a fake device notification handle!
00a6:fixme:wininet:InternetSetOptionW Option 77 STUB
00a6:fixme:wininet:InternetSetOptionW INTERNET_OPTION_SEND/RECEIVE_TIMEOUT/DATA_SEND_TIMEOUT 15000
00a4:fixme:win:RegisterDeviceNotificationA (hwnd=0x10086, filter=0x977fe90,flags=0x00000000) returns a fake device notification handle!
00a8:err:module:import_dll Library d3d9.dll (which is needed by L"C:\\windows\\system32\\dxdiagn.dll") not found
00a8:err:ole:COMPOBJ_DllList_Add couldn't load in-process dll L"C:\\windows\\system32\\dxdiagn.dll"
00a8:err:ole:CoGetClassObject no class object {a65b8071-3bfe-4213-9a5b-491da4461ca7} could be created for context 0x1

if needed I can post the entire output of wine.

but, the dlls are being symlinked:

$ ls -lha /home/little/Games/league-of-legends/dosdevices/c:/windows/syswow64 | egrep 'd3d9.dll|ninewinecfg.exe|d3d9-nine.dll'
-rw-r--r--  1 little users 2,4K mai 13 15:51 d3d9.dll
lrwxrwxrwx  1 little users   38 mai 13 15:51 d3d9-nine.dll -> /usr/share/nine/lib32/d3d9-nine.dll.so
lrwxrwxrwx  1 little users   40 mai 13 15:51 ninewinecfg.exe -> /usr/share/nine/bin32/ninewinecfg.exe.so

I tried with Skyrim and gallium works well, but with league the game tells me that doesn't have a d3d9.dll? Outside Skyrim, The Sims 4 also tells that d3d9.dll is missing.

Meson >= 0.46 not available on 18.04 ubuntu

Meson >= 0.46 not available on 18.04 ubuntu so it is impossible to compile. As it is supported for 5 years it would be nice the project supported it too.

meson.build:3:0: ERROR: Meson version is 0.45.1 but project requires >= 0.46.

Wine errors out on Iris

DRI_PRIME=1 wine /usr/lib/ninewinecfg.exe.so works fine with radeonsi using nir

DRI_PRIME=0 wine /usr/lib/ninewinecfg.exe.so using the Iris driver errors with the following message:

Unhandled exception: page fault on read access to 0x00000010 in 32-bit code (0xf72414c6).
Register dump:
CS:0023 SS:002b DS:002b ES:002b FS:0063 GS:006b
EIP:f72414c6 ESP:0033e0c0 EBP:f7a33088 EFLAGS:00010202( R- -- I - - - )
EAX:0033e0e3 EBX:0033e0e3 ECX:00000000 EDX:f76a8680
ESI:00000010 EDI:00000010
Stack dump:
0x0033e0c0: 0033e0e3 f7a33088 0033e0d8 f714eeca
0x0033e0d0: f3cfd390 f3cfcdd0 73697269 3139315f
0x0033e0e0: f7ab0062 f7807ff4 f7a33088 f72430ec
0x0033e0f0: f75d3989 0000003f f7aa3ba0 cb348e00
0x0033e100: f7ab1330 f7807ff4 f742955d cb348e00
0x0033e110: f7807ff4 f7a33174 f7807ff4 f715348a
Backtrace:
=>0 0xf72414c6 D3DAdapter9GetProc+0xffffffff() in d3dadapter9.so.1 (0xf7a33088)
1 0xf714eeca D3DAdapter9GetProc+0xffffffff() in d3dadapter9.so.1 (0xf7a33088)
2 0xf715348a D3DAdapter9GetProc+0xffffffff() in d3dadapter9.so.1 (0xf7a33088)
3 0xf75c89eb D3DAdapter9GetProc+0xffffffff() in d3dadapter9.so.1 (0xf7807ff4)
4 0xf75c52e3 D3DAdapter9GetProc+0xffffffff() in d3dadapter9.so.1 (0xf7807ff4)
5 0xf7987df0 present_create_adapter9+0x9f() in d3d9-nine (0x004d0059)
6 0xf7980492 D3DPERF_SetRegion+0x1681() in d3d9-nine (0x0033e7d8)
7 0xf7981020 d3dadapter9_new+0x7f() in d3d9-nine (0x0033e818)
8 0xf797e9e3 Direct3DCreate9Ex+0x42() in d3d9-nine (0x0033e858)
9 0x7efe509c main+0x24fb() in ninewinecfg (0x0033e8c8)
10 0x7de2762c WINPROC_wrapper+0x1b() in user32 (0x0033e908)
11 0x7de27f1b EditWndProcA+0x7da() in user32 (0x0033e958)
12 0x7de2a4f2 CallWindowProcW+0x211() in user32 (0x0033e988)
13 0x7dd90461 DefDlgProcW+0xb0() in user32 (0x0033e9d8)
14 0x7de2762c WINPROC_wrapper+0x1b() in user32 (0x0033ea18)
15 0x7de27e2d EditWndProcA+0x6ec() in user32 (0x0033ea68)
16 0x7de2a123 EditWndProcA+0x29e2() in user32 (0x0033eab8)
17 0x7ddd11ee TranslateAcceleratorA+0x40d() in user32 (0x0033eb28)
18 0x7dddabf8 SendMessageW+0x197() in user32 (0x0033ebb8)
19 0x7dd95fee GetNextDlgGroupItem+0x105d() in user32 (0x0033efc8)
20 0x7dd9771e CreateDialogIndirectParamW+0x2d() in user32 (0x0033eff8)
21 0x7d63866f HIMAGELIST_QueryInterface+0x38b0e() in comctl32 (0x0033f068)
22 0x7d63b3c2 PropertySheetA+0x891() in comctl32 (0x0033f0f8)
23 0x7d63d2ec PropertySheetA+0x27bb() in comctl32 (0x0033f528)
24 0x7de2762c WINPROC_wrapper+0x1b() in user32 (0x0033f568)
25 0x7de27f1b EditWndProcA+0x7da() in user32 (0x0033f5b8)
26 0x7de2a4f2 CallWindowProcW+0x211() in user32 (0x0033f5e8)
27 0x7dd90461 DefDlgProcW+0xb0() in user32 (0x0033f638)
28 0x7de2762c WINPROC_wrapper+0x1b() in user32 (0x0033f678)
29 0x7de27e2d EditWndProcA+0x6ec() in user32 (0x0033f6c8)
30 0x7de2a123 EditWndProcA+0x29e2() in user32 (0x0033f718)
31 0x7ddd11ee TranslateAcceleratorA+0x40d() in user32 (0x0033f788)
32 0x7dddabf8 SendMessageW+0x197() in user32 (0x0033f818)
33 0x7dd95fee GetNextDlgGroupItem+0x105d() in user32 (0x0033fc28)
34 0x7dd9771e CreateDialogIndirectParamW+0x2d() in user32 (0x0033fc58)
35 0x7d6390f1 HIMAGELIST_QueryInterface+0x39590() in comctl32 (0x0033fcd8)
36 0x7d63efbf PropertySheetW+0x15e() in comctl32 (0x0033fd08)
37 0x7efe55b7 WinMain+0x376() in ninewinecfg (0x0033fe48)
38 0x7efe2c63 main+0xc2() in ninewinecfg (0x0033fee8)
39 0x7efe6237 common_del_registry_key+0x1d6() in ninewinecfg (0x0033ff18)
40 0x7b49d3a9 call_process_entry+0x18() in kernel32 (0x0033ff48)
41 0x7b49fe90 ExitProcess+0x2ad3() in kernel32 (0x0033ffd8)
42 0x7b49d3ba call_process_entry+0x29() in kernel32 (0x0033ffec)
0xf72414c6 D3DAdapter9GetProc+0xffffffff in d3dadapter9.so.1: movzbl 0x0(%edi),%eax
Modules:
Module Address Debug info Name (135 modules)
ELF 7b400000-7b874000 Dwarf kernel32
-PE 7b430000-7b874000 \ kernel32
ELF 7bc00000-7bd8d000 Deferred ntdll
-PE 7bc30000-7bd8d000 \ ntdll
ELF 7c000000-7c004000 Deferred
ELF 7c92f000-7c96f000 Deferred uxtheme
-PE 7c940000-7c96f000 \ uxtheme
ELF 7c96f000-7c976000 Deferred libxfixes.so.3
ELF 7c976000-7c983000 Deferred libxcursor.so.1
ELF 7cc18000-7cc20000 Deferred libuuid.so.1
ELF 7cc20000-7cc4f000 Deferred libexpat.so.1
ELF 7cc4f000-7cca9000 Deferred libfontconfig.so.1
ELF 7cca9000-7cd2c000 Deferred libpcre.so.1
ELF 7cd2c000-7cd48000 Deferred libgcc_s.so.1
ELF 7cd48000-7cd6d000 Deferred libgraphite2.so.3
ELF 7cd6d000-7cebe000 Deferred libglib-2.0.so.0
ELF 7cebe000-7cf9a000 Deferred libharfbuzz.so.0
ELF 7cf9a000-7cfb9000 Deferred libz.so.1
ELF 7cfb9000-7d006000 Deferred libpng16.so.16
ELF 7d006000-7d01c000 Deferred libbz2.so.1
ELF 7d01c000-7d0ff000 Deferred libfreetype.so.6
ELF 7d0ff000-7d114000 Deferred libxi.so.6
ELF 7d114000-7d124000 Deferred libxrandr.so.2
ELF 7d124000-7d131000 Deferred libxrender.so.1
ELF 7d131000-7d139000 Deferred libxxf86vm.so.1
ELF 7d139000-7d1dc000 Deferred setupapi
-PE 7d150000-7d1dc000 \ setupapi
ELF 7d1dc000-7d20a000 Deferred libxcb.so.1
ELF 7d20a000-7d36f000 Deferred libx11.so.6
ELF 7d36f000-7d389000 Deferred libxext.so.6
ELF 7d389000-7d44e000 Deferred winex11
-PE 7d3b0000-7d44e000 \ winex11
ELF 7d44e000-7d488000 Deferred libtinfo.so.6
ELF 7d488000-7d4b9000 Deferred libncurses.so.6
ELF 7d4f8000-7d521000 Deferred imm32
-PE 7d500000-7d521000 \ imm32
ELF 7d521000-7d587000 Deferred usp10
-PE 7d530000-7d587000 \ usp10
ELF 7d587000-7d713000 Dwarf comctl32
-PE 7d5c0000-7d713000 \ comctl32
ELF 7d713000-7d72f000 Deferred aclui
-PE 7d720000-7d72f000 \ aclui
ELF 7d72f000-7d7d3000 Deferred rpcrt4
-PE 7d750000-7d7d3000 \ rpcrt4
ELF 7d7d3000-7d952000 Deferred ole32
-PE 7d810000-7d952000 \ ole32
ELF 7d952000-7d979000 Deferred shcore
-PE 7d960000-7d979000 \ shcore
ELF 7d979000-7da78000 Deferred msvcrt
-PE 7d9a0000-7da78000 \ msvcrt
ELF 7da78000-7dade000 Deferred kernelbase
-PE 7da90000-7dade000 \ kernelbase
ELF 7dade000-7daf5000 Deferred version
-PE 7dae0000-7daf5000 \ version
ELF 7daf5000-7db95000 Deferred advapi32
-PE 7db10000-7db95000 \ advapi32
ELF 7db95000-7dd22000 Deferred gdi32
-PE 7dbc0000-7dd22000 \ gdi32
ELF 7dd22000-7dfae000 Dwarf user32
-PE 7dd60000-7dfae000 \ user32
ELF 7dfae000-7e01c000 Deferred shlwapi
-PE 7dfc0000-7e01c000 \ shlwapi
ELF 7e01c000-7ea6b000 Deferred shell32
-PE 7e050000-7ea6b000 \ shell32
ELF 7eee4000-7eef3000 Deferred libnss_files.so.2
ELF 7eef3000-7efc1000 Deferred libm.so.6
ELF 7efc1000-7efc5000 Deferred libxcomposite.so.1
ELF 7efc5000-7efcc000 Deferred libxdmcp.so.6
ELF 7efcc000-7efd1000 Deferred libxau.so.6
ELF 7efd1000-7efec000 Dwarf ninewinecfg
-PE 7efe0000-7efec000 \ ninewinecfg
ELF 7efec000-7f000000 Deferred wow64cpu
-PE 7eff0000-7f000000 \ wow64cpu
ELF f3d09000-f3d12000 Deferred libxcb-xfixes.so.0
ELF f3d12000-f3d16000 Deferred libxcb-present.so.0
ELF f3d55000-f3dcf000 Deferred libllvmasmparser.so.9svn
ELF f3dcf000-f3e6a000 Deferred libllvmdebuginfodwarf.so.9svn
ELF f3e6a000-f3f0b000 Deferred libllvmdebuginfocodeview.so.9svn
ELF f3f0b000-f3f43000 Deferred libllvmdemangle.so.9svn
ELF f3f43000-f3f52000 Deferred libllvmremarks.so.9svn
ELF f3f52000-f3f75000 Deferred libllvmlinker.so.9svn
ELF f3f75000-f4068000 Deferred libllvminstrumentation.so.9svn
ELF f4068000-f4070000 Deferred libllvmirreader.so.9svn
ELF f4070000-f40b9000 Deferred libllvmbitwriter.so.9svn
ELF f40b9000-f4121000 Deferred libllvmbitreader.so.9svn
ELF f4121000-f4134000 Deferred libllvmaggressiveinstcombine.so.9svn
ELF f4134000-f4195000 Deferred libllvmmcparser.so.9svn
ELF f4195000-f426a000 Deferred libllvmvectorize.so.9svn
ELF f426a000-f42a9000 Deferred libllvmmirparser.so.9svn
ELF f42a9000-f42cb000 Deferred libllvmbinaryformat.so.9svn
ELF f42cb000-f432d000 Deferred libllvmamdgpuutils.so.9svn
ELF f432d000-f4425000 Deferred libllvmobject.so.9svn
ELF f4425000-f442c000 Deferred libllvmx86utils.so.9svn
ELF f442c000-f478f000 Deferred libllvmselectiondag.so.9svn
ELF f478f000-f47f3000 Deferred libllvmprofiledata.so.9svn
ELF f47f3000-f4894000 Deferred libllvmglobalisel.so.9svn
ELF f4894000-f4ccd000 Deferred libllvmcodegen.so.9svn
ELF f4ccd000-f4dad000 Deferred libllvmasmprinter.so.9svn
ELF f4dad000-f4db6000 Deferred libllvmmcdisassembler.so.9svn
ELF f503a000-f505c000 Deferred libelf.so.1
ELF f505c000-f5069000 Deferred libdrm_amdgpu.so.1
ELF f5069000-f5079000 Deferred libdrm_radeon.so.1
ELF f5079000-f5090000 Deferred libsensors.so.5
ELF f5090000-f526b000 Deferred libllvmsupport.so.9svn
ELF f526b000-f557d000 Deferred libllvmcore.so.9svn
ELF f557d000-f564b000 Deferred libllvmmc.so.9svn
ELF f564b000-f59c8000 Deferred libllvmanalysis.so.9svn
ELF f59c8000-f5b4a000 Deferred libllvmtransformutils.so.9svn
ELF f5b4a000-f5c64000 Deferred libllvminstcombine.so.9svn
ELF f5c64000-f5f02000 Deferred libllvmscalaropts.so.9svn
ELF f5f02000-f6041000 Deferred libllvmipo.so.9svn
ELF f6041000-f62a8000 Deferred libllvmamdgpudesc.so.9svn
ELF f62a8000-f640f000 Deferred libllvmamdgpuasmparser.so.9svn
ELF f640f000-f641f000 Deferred libllvmtarget.so.9svn
ELF f641f000-f672b000 Deferred libllvmamdgpucodegen.so.9svn
ELF f672b000-f6798000 Deferred libllvmruntimedyld.so.9svn
ELF f6798000-f697c000 Deferred libllvmx86desc.so.9svn
ELF f697c000-f6d90000 Deferred libllvmx86codegen.so.9svn
ELF f6d90000-f6f29000 Deferred libllvmx86disassembler.so.9svn
ELF f6f29000-f78ba000 Dwarf d3dadapter9.so.1
ELF f7913000-f7938000 Deferred libllvmexecutionengine.so.9svn
ELF f7938000-f7948000 Deferred libllvmmcjit.so.9svn
ELF f7948000-f795f000 Deferred libdrm.so.2
ELF f7962000-f7968000 Deferred libxcb-dri3.so.0
ELF f7968000-f799e000 Dwarf d3d9-nine
ELF f79c3000-f79ce000 Deferred libnss_db.so.2
ELF f7ad0000-f7ad6000 Deferred libdl.so.2
ELF f7ad6000-f7cbc000 Deferred libc.so.6
ELF f7cbc000-f7cde000 Deferred libpthread.so.0
ELF f7ce3000-f7ce6000 Deferred libx11-xcb.so.1
ELF f7ce6000-f7ce9000 Deferred libllvmamdgpuinfo.so.9svn
ELF f7ce9000-f7cec000 Deferred libllvmx86info.so.9svn
ELF f7d12000-f7d1d000 Deferred librt.so.1
ELF f7d1d000-f7ee6000 Dwarf libwine.so.1
ELF f7ee8000-f7f12000 Deferred ld-linux.so.2
Threads:
process tid prio (all id:s are in hex)
00000008 (D) Z:\usr\lib\ninewinecfg.exe
[Z:\usr\lib\ninewinecfg.exe.so]
00000009 0 <==
0000000e services.exe
00000022 0
0000001c 0
00000015 0
00000010 0
0000000f 0
00000011 plugplay.exe
00000019 0
00000018 0
00000012 0
00000013 explorer.exe
00000028 0
00000027 0
00000026 0
00000014 0
0000001a winedevice.exe
0000001f 0
0000001e 0
0000001d 0
0000001b 0
00000020 winedevice.exe
00000025 0
00000024 0
00000023 0
00000021 0
0000002b explorer.exe
0000002f 0
0000002e 0
0000002d 0
0000002c 0
System information:
Wine build: wine-4.11 (Staging)
Platform: i386 (WOW64)
Version: Windows 7
Host system: Linux
Host version: 5.2.0-rc2-agd5f+

Any app or game

wine-nine

When I put check mark in box for Enable Gallium Nine for better D3D9 graphic performance.

When I test it and run an app or game through console, it doesn't show the green text: Native Direct3D 9 v0.5.0.0-release is active.
For more information visit https://github.com/iXit/wine-nine-standalone

apparently meaning that it's not active.

I further checked, Permissions change from Group:user to Group:root for d3d9.dll

All this didn't happen when I run wine-staging-nine and everthing works normal through that.

I'm on Arch Linux btw.

Implement scaling of rendered content to window/screen size

Hi,

currently when using nine to run a game with render resolution < window size the content is not streched/scaled to fill up the window, but only occupies a part of it. This happens with vanilla wine and proton, some examples of what i mean:

Screenshot from 2019-03-27 15-03-11

Screenshot from 2019-03-27 15-06-00

Now i don't know if nine-standalone is the right place to implement this, or if this is even feasible, but this works nicely with dx11 games running through dxvk, so I thought it won't hurt to ask.

edit: forgot to add: this also works with wined3d

Rayman Legends has horizontal banding

I'm using Linux Mint 19.1 with Oibaf PPA and 0.4 wine-nine-standalone. With Gallium Nine off you don't see any graphical issues but with it on you see these dark bands running horizontal.

No sound in Dragon Age: Origins when Gallium Nine is active in Proton

There's a very weird issue where the sound will not work when I activate Gallium Nine using Proton. I tried versions 4.2-2 and 3.7-8. Deactivating and using wined3d will bring back the sound.

Native Direct3D 9 v0.4.0.294-release is active.
For more information visit https://github.com/iXit/wine-nine-standalone
mesa: for the -simplifycfg-sink-common option: may only occur zero or one times!
mesa: for the -global-isel-abort option: may only occur zero or one times!
mmap() failed: Cannot allocate memory
Failed to create permanent mapping for memfd region with ID = 2434629491
mmap() failed: Cannot allocate memory
Failed to create permanent mapping for memfd region with ID = 1098982661
Ignoring received block reference with non-registered memfd ID = 1098982661
mmap() failed: Cannot allocate memory
Failed to create permanent mapping for memfd region with ID = 2434629491
mmap() failed: Cannot allocate memory
Failed to create permanent mapping for memfd region with ID = 179006683
Ignoring received block reference with non-registered memfd ID = 179006683
ALSA lib pcm_dmix.c:1108:(snd_pcm_dmix_open) unable to open slave
mmap() failed: Cannot allocate memory
Failed to create permanent mapping for memfd region with ID = 2434629491
mmap() failed: Cannot allocate memory
Failed to create permanent mapping for memfd region with ID = 3889170548
Ignoring received block reference with non-registered memfd ID = 3889170548
mmap() failed: Cannot allocate memory
Failed to create permanent mapping for memfd region with ID = 2434629491
mmap() failed: Cannot allocate memory
Failed to create permanent mapping for memfd region with ID = 4001902658
Ignoring received block reference with non-registered memfd ID = 4001902658
mmap() failed: Cannot allocate memory
Failed to create permanent mapping for memfd region with ID = 2434629491
mmap() failed: Cannot allocate memory
Failed to create permanent mapping for memfd region with ID = 1699157232
Ignoring received block reference with non-registered memfd ID = 1699157232
ERROR: ld.so: object '/home/matej/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
>>> Adding process 15717 for game ID 47810
ERROR: ld.so: object '/home/matej/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
>>> Adding process 15722 for game ID 47810
wine: Unhandled page fault on write access to 0x00000000 at address 0xf7abd4d9 (thread 0036), starting debugger...
ERROR: ld.so: object '/home/matej/.local/share/Steam/ubuntu12_64/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.
>>> Adding process 15729 for game ID 47810
pid 15606 != 15605, skipping destruction (fork without exec?)
Game removed: AppID 47810 "", ProcID 15650 
Exiting app 47810

Unfortunately, there are further problems. As you can see, the game actually crashes when I try to load a save (unhandled page fault). Initially, I didn't have this problem. I re-installed the whole prefix and gallium nine in hopes of fixing the sound issues, but it made it worse, it started crashing after that each time I loaded a save. I'm not sure what version of Nine I had before it started crashing, though :/

The sound issue seems to be here: ALSA lib pcm_dmix.c:1108:(snd_pcm_dmix_open) unable to open slave
But I'm not sure why this would only happen with Gallium Nine active.

Nine was installed with protontricks.

EDIT: Forgot to add my machine's specs

Arch Linux, all packages up to date:
mesa 19.0.2-1
Proton 4.2-2
AMD FX-6300
AMD RX 590
16GB RAM

Some applications cause a temporary blackscreen.

Hi, when using gallium nine some applications flash black screen for few seconds during startup/shutdown depending to the app,

Europa Universalis 4 Launcher (tested 1.23 and 1.28 ) flash black twice while starting the launcher and once when starting the proper game.
Construction Set for Tes4:Oblivion flash black once during application close.

Also in some application while in menu or during loading, if a native overlay is triggered (for example volume box from Plasma5) it stay stuck (or as a black square) until the next full redraw.
Needless to say that this doesn't happen at all with wined3d or D9VK.

Vietcong crash

Vietcong (AppDB) video game is using D3D8, but community tool called VCStarter converts D3D8 calls to D3D9, so it is usable with Gallium Nine (this tool is not applicable on demo versions, unfortunately).

This game runs quite well with Gallium Nine, except it crashes in certain situations, like when player is looking at handmap. Also fire is not rendered at all. Very similar issue was (almost the same I would say) was in WineD3D (bug #46849), but Gallium Nine is suffering by this issues even on Wine versions which are not affected by this bug (like Wine 4.9 or Wine <= 4.1). Note that there were similar bugs in WineD3D before, like #46359 and #46403.

System info:

$ lspci | grep Display
01:00.0 Display controller: Advanced Micro Devices, Inc. [AMD/ATI] Opal XT [Radeon R7 M265/M365X/M465]
$ DRI_PRIME=1 glxinfo | grep string
server glx vendor string: SGI
server glx version string: 1.4
client glx vendor string: Mesa Project and SGI
client glx version string: 1.4
OpenGL vendor string: X.Org
OpenGL renderer string: AMD OLAND (DRM 2.50.0, 5.1.4-arch1-1-ARCH, LLVM 8.0.0)
OpenGL core profile version string: 4.5 (Core Profile) Mesa 19.0.5
OpenGL core profile shading language version string: 4.50
OpenGL version string: 4.5 (Compatibility Profile) Mesa 19.0.5
OpenGL shading language version string: 4.50
OpenGL ES profile version string: OpenGL ES 3.2 Mesa 19.0.5
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.20
$ wine --version
wine-4.9
$ uname -a
Linux antergos 5.1.4-arch1-1-ARCH #1 SMP PREEMPT Wed May 22 08:06:56 UTC 2019 x86_64 GNU/Linux

Darksiders II: Deathinitive Edition crashes when using wine-nine

Darksiders II: Deathinitive Edition instantly crashes when using wine-nine with these errors messages:

Native Direct3D 9 v0.5.0.356-release is active.
For more information visit https://github.com/iXit/wine-nine-standalone
fixme:d3d9nine:DRIPresentGroup_GetMultiheadCount (0xe29f0), stub!
fixme:d3d9nine:DRIPresentGroup_GetMultiheadCount (0xe29f0), stub!
s 2 - Deathinitive Edition\Darksiders2.exe: ../src/gallium/state_trackers/nine/nine_pipe.h:247: d3d9_get_pipe_depth_format_bindings: Assertion `!"Unexpected format"' failed.
wine: Assertion failed at address 00007F0A6165DE97 (thread 002d), starting debugger...

System Info:

CPU: I5 4200M
GPU: AMD HD 8750M
Driver: MESA 19.1.4
Wine-Staging 4.17
Wine-Nine-Standalone 0.5

Install fails

err:d3d9nine:nine_set Couldn't load d3d9-nine.dll: L"Bad EXE format for %1.\r\n"

Trying with Wine 5.0 (stable) Xubuntu 18.04 GN v0.5

nineinstall.sh swaps 64 and 32 bit libraries

A successful install produces the following:

installing 32bit binaries to /home/nielsenb/pathtest/gallium-nine-standalone-v0.4/gallium-nine-standalone/testprefix/dosdevices/c:/windows/syswow64 installing 64bit binaries to /home/nielsenb/pathtest/gallium-nine-standalone-v0.4/gallium-nine-standalone/testprefix/dosdevices/c:/windows/system32 enabling gallium nine

This appears backwards to me? The resulting install does appear to work from my quick testing.

err:ninecfg:nine_set d3d9-nine.dll not found

Hello, I use Padoka Stable PPA, when I compiling wine-nine-standalone, I get this error:
installing 32bit binaries to /home/wushichao/.wine/dosdevices/c:/windows/syswow64
installing 64bit binaries to /home/wushichao/.wine/dosdevices/c:/windows/system32
enabling gallium nine
0034:err:ninecfg:nine_set d3d9-nine.dll not found.
done

Poor performance on nouveau, same as not enabled

intel hd4600+nvidia k1100m, wine4.0 + mesa18.2.8 + d3d9 nine standalone 0.3 present the same poor performance as not enabled.

for example Trine 2: Complete Story, only got ~13 fps. i tried dri_prime or disable intel card login desktop got the same performance. the output have any error or fixme messages about nine only activated etc.

compare to play the game with nvidia private driver got ~50 fps.

how to trace it? or nouveau is too bad no need to fix something.

regards.

WRC5:Intel GPU: can't start the game - display driver doesn't support native D3D9 adapters

Hello guys. Could you please help me, maybe I did something wrong?
In the internet I found a lot of information about gallium-nine support for AMD GPU's, but nothing about Intel, so I am trying to run the game on it.

I am trying to run the game using gallium-nine. Below you may see output gotten with PROTON_LOG=1
I compiled mesa with gallium support and new iris driver, I added gallium-nine to the steam wine prefix (in ninewinecfg I see that all 3 checkboxes are enabled, support enabled).

HW info:
GPU: HD Graphics 5500 (Broadwell GT2)
Kernel: 5.0.0-050000-generic
OS: Ubuntu 18.04

159914.395:0029:002a:trace:loaddll:free_modref Unloaded module L"C:\\windows\\system32\\dbghelp.dll" : builtin
159914.543:0029:002a:err:d3d9nine:common_load_d3dadapter Failed to load d3dadapter9.so.1 set by D3D_MODULE_PATH (/home/ubutu/mesa_versions/mesa-git-12.06-iris/lib/x86_64-linux-gnu/d3d/)
�[1;31mNative Direct3D 9 will be unavailable.
For more information visit https://github.com/iXit/wine-nine-standalone�[0m
159914.543:0029:002a:err:d3d9nine:d3dadapter9_new Your display driver doesn't support native D3D9 adapters.

TES IV: Oblivion and Fallout: NV terrible performance

I get better performance in these games with wined3d compared to Gallium Nine. I ran it in Proton 4.2-2. To fix the issue, I tried:

  • setting the CPU governor to performance
  • running it in a barebones openbox environment to exclude compositor issues
  • setting PROTON_FORCE_LARGE_ADDRESS_AWARE=1 PROTON_NO_D3D11=1 PROTON_NO_D3D10=1 PROTON_NO_ESYNC=1

None of these made a difference whatsoever. All this time, I monitored the performance. htop said max 40% utilization on one CPU core, rest of them were more like 15%. radeontop said max 15-20% graphics pipe utilization. So these are not a bottleneck.

I had the graphics set to maximum in both games. It is fair to note these games have pretty much the same engine (as with the rest of Bethesda games). I remember having these issues months ago with wine as well (that time I used the package that had gallium nine bundled in Arch Linux). Indoors it runs fine, but when it has to display a lot of things (outside), the performance just drops to about 15-20 fps and fluctuates back to 60 when looking at a wall or somewhere with fewer things to render.

Config:
AMD FX-6300
AMD RX 590
16GB RAM
Arch Linux, all packages updated

Steam overlay does not work.

Hello,

i installed gallium-nine-standalone via winetricks inside of the game prefix and now the steam overlay is not working anymore.

Did i do something wrong, is there a known solution?

Intel HD 4600 not detected

  • wine-4.14 (Staging)
  • mesa 19.1.4
  • GNOME with wayland 1.17
  • wine-nine 0.4 (Arch Linux multilib)
  • iGPU only setup (no discrete GPU)

On HD Graphics 4600, wine-nine doesn't detect driver.
nine:drm_create_adapter Unable to load requested driver. err:d3d9nine:present_create_adapter9 Unable to create ID3DAdapter9 (fd=13) err:d3d9nine:d3dadapter9_new No available native adapters in system.

Setting DRI_PRIME to 1 does make wine-nine detecting the device but performance suffers a lot (losing around 80% of performance in native games).

Possibly related to #46

The SIms 4 (Origin) will not start with wine-nine enabled.

I have confirmed that The Sims 4 (Origin ver.) will not, with the latest patch, start with wine-nine enabled on a stock 64-bit prefix. It presents a message which says Invalid License: Reason Code = Missing DLL: [d3d9.dll] Error 0x7E. Disabling wine-nine allows the game to work again.

Linux: Arch Linux 5.3.13-arch-1
Wine version: Staging 4.20
Origin version: 10.5.43
Sims 4 version: 1.58.69.1010

How do you uninstall Nine standalone?

Currently there is no way to test alternatives like D9VK when you already installed nine standalone in a wine prefix. Even though wine ninewinecfg -d will disable Gallium Nine, it does not uninstall it from the wine prefix completely, meaning that it still breaks the D9VK installer.

Consistent 'Out of video memory' issues

Using Wine 4.2 (Proton 4.2-2) with the latest Gallium Nine Standalone installed using winetricks. The games Borderlands 2 and Borderlands Pre-Sequel consistently crash while Gallium Nine is enabled in two specific places, depending on whether or not the 4K texture pack is enabled. If the texture pack isn't enabled both games will crash with an 'Out of video memory' error when loading into a level. If the texture pack is enabled, it will crash right as the main menu loads.

CPU: Ryzen 7 1700X
GPU: Vega 64 8GB
RAM: 24GB
OS: Arch Linux
Kernel: 5.0.6
Mesa: 19.0.1-1
LLVM: 8

Note: Using the environment variable PROTON_FORCE_LARGE_ADDRESS_AWARE=1 delays the issue for 1-3 minutes without the texture pack. Crashing still occurs.

steam-261640.log

Why not nvidia?

I read that this project is a fix for graphical glitches on Fable Anniversary but I'm running an nvidia driver. Why doesn't this project support nvidia? I read this project also works with the open-source driver but having to switch to that driver for one game isn't ideal hence my question.

Freesync support

Moving this bug there:
iXit/Mesa-3D#286

There is need to set a property similar to what we did for _NET_WM_BYPASS_COMPOSITOR.
See the mesa glx to see what to do.

GPU hang in A Hat in Time on Vega 64

I'm running into a reproducible GPU freeze/hang when running A Hat in Time with Gallium Nine, in chapter 1, act 4, when going through a door into a bathroom with a reflective floor on the right side of the building at the beginning of the level.

The hang does not occur in Wine's d3d9 implementation, but performance without Nine is so bad that the game is not enjoyable.

I tried to record an apitrace, but the game seems to crash at the splash screen when I put the wrapper dll in place and set the environment variables as instructed by the wiki.
Edit: Here's the trace, see this comment

Gallium Nine Standalone: v0.4.0.294-release installed via "protontricks 253230 -q galliumnine"
Mesa: 19.2.0-devel (git-fc455797c1)
Linux: 5.1.2.arch1-1
Distro: Arch

GPU: Asus Radeon RX Vega 64 ROG Strix
CPU: AMD Ryzen 5 1600

I have attached Xorg log, system info as reported by Steam, the log file created by Proton, and the journal filtered with "uniq -c", as there were thousands of duplicated lines.

Xorg.0.log
steam system info.txt
steam-253230.log
journal_deduped.txt

If this is not a Nine bug, I would appreciate a pointer to the appropriate place to report it.

EDIT: Upon further testing, I found the issue only occurs when "Dynamic Lights" is enabled in the advanced graphics settings (enabled by default in all graphics presets except for the lowest one).

Cannot build on debian 10

creating /home/siyia/wine-nine-standalone-master/gallium-nine-standalone.tar.gz
additional meson args:
found debian compatible distro
The Meson build system
Version: 0.49.2
Source dir: /home/siyia/wine-nine-standalone-master
Build dir: /tmp/tmp.JhveE0zw1Q/build64
Build type: cross build
Program tools/get_version.sh found: YES (/home/siyia/wine-nine-standalone-master/tools/get_version.sh)
Project name: Gallium Nine Standalone
Project version: 0.3.0.0-devel
Native C compiler: cc (gcc 8.2.0 "cc (Debian 8.2.0-20) 8.2.0")
Cross C compiler: winegcc (gcc 8.2.0)
Host machine cpu family: x86_64
Host machine cpu: x86_64
Target machine cpu family: x86_64
Target machine cpu: x86_64
Build machine cpu family: x86_64
Build machine cpu: x86_64
Program winegcc found: YES (/usr/bin/winegcc)
Checking if "winelib check" compiles: YES
Library wine found: YES
Has header "wine/debug.h" with dependency -lwine: YES
Program wrc found: YES (/usr/bin/wrc)
Checking for function "dlopen" : NO
Library dl found: YES
Checking for function "dlopen" with dependency -ldl: YES
Checking for function "dlclose" with dependency -ldl: YES
Checking for function "dlsym" with dependency -ldl: YES
Checking for function "dladdr" with dependency -ldl: YES
Cross dependency d3d found: YES 1.0.0
Cross dependency x11 found: YES 1.6.7
Cross dependency xext found: YES 1.3.3
Cross dependency x11-xcb found: YES 1.6.7
Cross dependency xcb found: YES 1.13.1
Cross dependency xcb-dri3 found: YES 1.13.1
Cross dependency xcb-present found: YES 1.13.1
Cross dependency xcb-xfixes found: YES 1.13.1
Cross dependency gl found: YES 18.3.2
Cross dependency egl found: YES 18.3.2
Message: DRI2 support is enabled
Library dxguid found: YES
Library uuid found: YES
Library advapi32 found: YES
Library gdi32 found: YES
Library user32 found: YES
Library shell32 found: YES
Library comctl32 found: YES
Library ole32 found: YES
Library shlwapi found: YES
Message: d3dadapter9.so.1 default module path: /usr/lib/x86_64-linux-gnu/d3d
WARNING: extract_all_objects called without setting recursive keyword argument. Meson currently defaults to non-recursive to maintain backward compatibility but the default will be changed in the future.
Build targets in project: 7
Option buildtype is: release [default: debugoptimized]
Found ninja-1.8.2 at /usr/bin/ninja
ninja: Entering directory `/tmp/tmp.JhveE0zw1Q/build64'
[17/18] Installing files.
Installing d3d9-nine/d3d9-nine.dll.so to /tmp/tmp.JhveE0zw1Q/gallium-nine-standalone/lib64
Installing d3d9-nine/d3d9-nine.dll.fake to /tmp/tmp.JhveE0zw1Q/gallium-nine-standalone/lib64
Installing ninewinecfg/ninewinecfg.exe.so to /tmp/tmp.JhveE0zw1Q/gallium-nine-standalone/bin64
Installing ninewinecfg/ninewinecfg.exe.fake to /tmp/tmp.JhveE0zw1Q/gallium-nine-standalone/bin64
The Meson build system
Version: 0.49.2
Source dir: /home/siyia/wine-nine-standalone-master
Build dir: /tmp/tmp.JhveE0zw1Q/build32
Build type: cross build
Program tools/get_version.sh found: YES (/home/siyia/wine-nine-standalone-master/tools/get_version.sh)
Project name: Gallium Nine Standalone
Project version: 0.3.0.0-devel
Native C compiler: cc (gcc 8.2.0 "cc (Debian 8.2.0-20) 8.2.0")
Cross C compiler: winegcc (gcc 8.2.0)
Host machine cpu family: x86
Host machine cpu: i686
Target machine cpu family: x86
Target machine cpu: i686
Build machine cpu family: x86_64
Build machine cpu: x86_64
Program winegcc found: YES (/usr/bin/winegcc)
Checking if "winelib check" compiles: YES

meson.build:41:0: ERROR: C library 'wine' not found

A full log can be found at /tmp/tmp.JhveE0zw1Q/build32/meson-logs/meson-log.txt

What's the next release's ETA?

Without d9c516b the latest official release doesn't search for d3dadapter library in the flatpak-specific paths and thus it can't be used with Flatpak Steam anymore. Previously, this was an issue only when using the beta release of Flatpak Steam, but, since a few days ago, it now affects users of the stable release, as freedesktop runtimes 19.08, which Gallium Nine Standalone is incompatible with, have been released on flathub, which marks them as a stable base to build Flatpaks on.

Failed to create direct3d device error message after enabling galliumnine

I ran the following :

wget https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks
chmod +x winetricks
wget https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks.bash-completion
sudo mv winetricks /usr/bin
sudo mv winetricks.bash-completion /usr/share/bash-completion/completions/winetricks
python3 -m pip install --user pipx
~/.local/bin/pipx ensurepath
eval "$(cat .bashrc | tail -n +10)"
pipx install protontricks
pipx upgrade protontricks
protontricks 9420 galliumnine
------------------------------------------------------
You are using a 64-bit WINEPREFIX. Note that many verbs only install 32-bit versions of packages. If you encounter problems, please retest in a clean 32-bit WINEPREFIX before reporting a bug.
------------------------------------------------------
Using winetricks 20190310-next - sha256sum: 287fb2be71bb02dfccab6abf9eccded45cfda0765c11b94857eca5f5fa166c9e with wine-4.2 and WINEARCH=win64
Executing w_do_call galliumnine
Executing load_galliumnine 
Executing cd /tmp/winetricks.R7VSGaWG
Downloading https://api.github.com/repos/iXit/wine-nine-standalone/releases/latest to /tmp/winetricks.R7VSGaWG
--2019-04-21 19:29:52--  https://api.github.com/repos/iXit/wine-nine-standalone/releases/latest
Resolving api.github.com (api.github.com)... 192.30.253.117, 192.30.253.116
Connecting to api.github.com (api.github.com)|192.30.253.117|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 3911 (3,8K) [application/json]
Saving to: ‘release.json’

release.json        100%[===================>]   3,82K  --.-KB/s    in 0s      

2019-04-21 19:29:52 (8,43 MB/s) - ‘release.json’ saved [3911/3911]

Executing cd /home/t
Executing rm -rf /media/home/t/.steam/steam/steamapps/compatdata/9420/pfx/dosdevices/c:/windows/temp/_galliumnine/galliumnine
Executing mkdir -p /media/home/t/.steam/steam/steamapps/compatdata/9420/pfx/dosdevices/c:/windows/temp/_galliumnine/galliumnine
Executing tar -C /media/home/t/.steam/steam/steamapps/compatdata/9420/pfx/dosdevices/c:/windows/temp/_galliumnine/galliumnine --strip-components=1 -zxf /home/t/.cache/winetricks/galliumnine/gallium-nine-standalone-v0.4.tar.gz
Executing mv /media/home/t/.steam/steam/steamapps/compatdata/9420/pfx/dosdevices/c:/windows/temp/_galliumnine/galliumnine/lib32/d3d9-nine.dll.so /media/home/t/.steam/steam/steamapps/compatdata/9420/pfx/dosdevices/c:/windows/syswow64/d3d9-nine.dll
Executing mv /media/home/t/.steam/steam/steamapps/compatdata/9420/pfx/dosdevices/c:/windows/temp/_galliumnine/galliumnine/bin32/ninewinecfg.exe.so /media/home/t/.steam/steam/steamapps/compatdata/9420/pfx/dosdevices/c:/windows/syswow64/ninewinecfg.exe
Executing mv /media/home/t/.steam/steam/steamapps/compatdata/9420/pfx/dosdevices/c:/windows/temp/_galliumnine/galliumnine/lib64/d3d9-nine.dll.so /media/home/t/.steam/steam/steamapps/compatdata/9420/pfx/dosdevices/c:/windows/system32/d3d9-nine.dll
Executing mv /media/home/t/.steam/steam/steamapps/compatdata/9420/pfx/dosdevices/c:/windows/temp/_galliumnine/galliumnine/bin64/ninewinecfg.exe.so /media/home/t/.steam/steam/steamapps/compatdata/9420/pfx/dosdevices/c:/windows/system32/ninewinecfg.exe
Executing rm -rf /media/home/t/.steam/steam/steamapps/compatdata/9420/pfx/dosdevices/c:/windows/temp/_galliumnine/galliumnine
Executing /media/home/t/.steam/steam/steamapps/common/Proton 4.2/dist/bin/wine ninewinecfg -e

before this the game ran fine.

after it though, I get the "Failed to create direct3d device" error box.

What am I doing wrong?

the game is using the default wineprefix (64bit) perhaps that's wrong?

my launch arguments in steam for this game (which worked before said commands) are the following :

PROTON_NO_ESYNC=1, PROTON_DUMP_DEBUG_COMMANDS=1, PROTON_USE_GALLIUM_NINE=1, PROTON_GALLIUM_NINE_MODULEPATH="/usr/lib/i386-linux-gnu/d3d/d3dadapter9.so.1:/usr/lib/x86_64-linux-gnu/d3d/d3dadapter9.so.1" %command%

nine-install.sh fails from directory with space in the path

Starting with a path such as /home/nielsenb/space test/gallium-nine-standalone-v0.4/gallium-nine-standalone causes the install to fail with wine: cannot find L"C:\\windows\\system32\\ninewinecfg.exe"

The error is caused by the produced symlinks being broken, an example broken symlink:

testprefix/drive_c/windows/system32/ninewinecfg.exe -> '/home/nielsenb'$'\n''test/gallium-nine-standalone-v0.4/gallium-nine-standalone/bin64/ninewinecfg.exe.so'

This is because the determination of BASE in nine-install.sh does not correctly account for spaces. Sticking with plain shell scripting, one potential workaround might be:

BASE="$(dirname "$(readlink -f "$0")")"

I can confirm this produces the correct symlink in both space and non-space cases.

Guild Wars 2 hang/crash: double free or corruption

There's currently a seasonal event in Guild Wars 2 called "Super Adventure Box". When playing that mode the game randomly hangs/crashes. This appears to happen only in SAB and not in the normal game.

Due to the random nature of the crashes I can't be certain that nine is at fault but given that I've been unable to reproduce without it, nine is the likely culprit.

The base game of Guild Wars 2 is free to play and the SAB adventure is - to the best of my knowledge - part of that. There's a portal bringing you to SAB in every major city.

Important note: Since SAB is a seasonal event it is only available until April 18, 2019 at noon Pacific Time (UTC-7). After that testing patches will be impossible until next year.

Tested with:
OS: Manjaro
tkg-wine4.{3,5} from Lutris
AMD Radeon R9 390
Kernel 4.18 amdgpu
Mesa 19.0.1+really+18.3.5-1
LLVM 7.0.1
AUR nine-standalone-git v0.5.0.295-devel (should be either a56cb11 or d0173d5)

gw2_sab_double_free_or_corruption_full_wine_output.txt

Guild Wars 2 takes about two minutes to launch

When starting Guild Wars 2 with Nine enabled, it takes about two minutes from hitting "Play" in the launcher until the character selection screen is loaded.
Using wined3d instead, this takes only about 10 seconds.

Once the game has started, the performance is as expected. FPS are decent and loading maps takes the normal amount of time.

Tested with:
OS: Manjaro
System Wine 4.2 and tkg-wine4.3 from Lutris
AMD Radeon R9 390
Kernel 4.18 amdgpu
Mesa 18.3.4
LLVM 7.0.1

Note that the GW2 base game is free to play, so you could try to reproduce the bug yourself if the 40GiB download is no problem for you.
Otherwise let me know which other logs might be useful.

nine-gw2-start-hang.log

Skyrim: triple buffering doesn't seem to be working correctly

As the game is a CPU performance nightmare, there are frequent fps dips below the refreshrate. The game requires vsync (and preferably display refefreshrate of 60Hz) to make its physics work correctly. If triple buffering works correctly (which is the case with wined3d), the fps drops aren't so dramatic.

However, Gallium Nine seems to have a problem here, as the game feels really juddery when such dips occur. You can work around this by forcing vblank_mode=0, which makes it behave normally like any other game without vsync. However, this introduces tearing and breaks the game's physics due to unlocked fps.
A real fix would be properly working triple buffering (At least I suppose so.).

This is with latest -git of everything and an RX 580 inside a DRI3 xorg session.

fixme:thread:create_user_shared_data_thread

After wine updated to 4.12.1. My game can't run. This is the terminal output

000b:fixme:thread:create_user_shared_data_thread Creating user shared data update thread.
000b:fixme:winediag:start_process Wine Staging 4.12.1 is a testing version containing experimental patches.
000b:fixme:winediag:start_process Please mention your exact version when filing bug reports on winehq.org.
000f:fixme:thread:create_user_shared_data_thread Creating user shared data update thread.
000d:fixme:thread:create_user_shared_data_thread Creating user shared data update thread.
0012:fixme:thread:create_user_shared_data_thread Creating user shared data update thread.
0014:fixme:thread:create_user_shared_data_thread Creating user shared data update thread.
001b:fixme:thread:create_user_shared_data_thread Creating user shared data update thread.
0022:fixme:thread:create_user_shared_data_thread Creating user shared data update thread.
002b:fixme:imm:ImmDisableTextFrameService Stub
002b:fixme:thread:SetThreadIdealProcessor (0x110): stub
002b:fixme:thread:SetThreadIdealProcessor (0x1b0): stub
002d:fixme:thread:SetThreadIdealProcessor (0x1b4): stub

I have tried removing .wine and the problem remains the same.
Can you help me to solve this problem? Thank you

0034:err:ninecfg:nine_set d3d9-nine.dll not found.

I get the error in the above title when running nine-install.sh with the pre-built binary release. ninewinecfg shows everything greyed out and only "loading of d3d0adapter9 succeeded," is checked. 64bit ninewinecfg shows everything is checked though. Is this normal? I'm on Ubuntu 18.04 with padoka stable mesa ppa and wine staging.

err:ninecfg:nine_get removing dead symlink

Been getting this issue since wine 4.8 came out, basically the checkbox in ninewinecfg doesn't work, and clicking it removes the symlink d3d9.dll thus breaking all d3d9 games as they can't find the dll. Anyone else getting this issue?

Falcon 4 BMS 4.34u2 crashes when loading 3D world (Acces violation @creation of OffScreen texture or RTT object)

Falcon 4 BMS 4.34 mod ran under wine-nine crashes during mission load screen.

There are two variants of crash message:

Falcon BMS.exe caused an EXCEPTION_ACCESS_VIOLATION in: 000000000455F3A9 Falcon BMS.exe, ImageBuffer::SetupAsOffScreenPlain()+377 byte(s) Exception handler called in UnhandledExceptionHandler. Write to location 0000000000000003 caused an access violation. Bytes at CS:RIP: C7 04 25 03 00 00 00 03 00 00 00 4C 8D 9C 24 90

or:

Falcon BMS.exe caused an EXCEPTION_ACCESS_VIOLATION in: 0000000004560D6D Falcon BMS.exe, RTTImageBuffer::SetupAsRTT()+333 byte(s) Exception handler called in UnhandledExceptionHandler. Write to location 0000000000000003 caused an access violation. Bytes at CS:RIP: C7 04 25 03 00 00 00 03 00 00 00 C7 47 08 06 00

Console output of the session:
BMS.log

Crash screenshot:
BMS_Crash

System specs:
Hardware: CPU: Intel Core2Duo E8500 @3.16GHz (stock) , m.b: GA-P35-DSR3, RAM: 8GB 1333MHz DDR3, GFX: RadeonHD 6870 1GB VRAM.
OS: Fedora 31 64bit, kernel 5.5.6, libdrm 2.4.100-1, mesa 19.2.8-1, DE/Windowanager Plasma/kwin_x11 5.17.5,Wine: wine 5.2-1, wine-nine 0.5.

Wine config: clean Windows 7 64-bit prefix, wine-nine enabled via nine GUI app,
gfx tab:

  • allow window decorations
  • allow window manager manage windows
  • enable virtual desktop 1920x1200 (max res of my display)
    Stagging tab:
  • enable CSMT
  • Enable EAX
    Wine windows are forced to run fullscreen.

Steps to reproduce:

  • Launch BMS
  • Select Tactical Engagement/training (crash also occures wih other game types, i've tried Dogfight and Instant Action)
  • From the list of missions pick TR_BMS_02_Navigation then commit
  • Click TakeOff button
  • Crash occures when progress bar is somwhere between 60-80%

With wine-nine disabled mission loads just fine.
Funny thing training mission 13 works with wine-nine enabled.
I've askefd a guy from a BMS project for some hints but he couldn't tel much:

Sorry but I don't have much clue here. This is a simple texture handling function that is being called when the code requires to create a "Off screen" rendering. E.g a 3D cockpit RTT target. I don't know why it's failing but seem to me like some obvious API issues that somehow prevent such a off-screen render target to be created. Hard to tell without any more info or reproducing such issue locally (Which obviously cannot be done).

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.