You are not logged in.
Hi guys,
I've been trying the past weeks to have a working Wine with d3dadapter backend working with my Intel + Radeon hardware.
Finally after troubleshooting some issues on #d3d9 I've managed to have it working.
Requirements
1) Working DRI_PRIME configuration.
2) Add mesa-git repository (https://wiki.archlinux.org/index.php/Un … s#mesa-git)
3) Replace system mesa and install git versions of ati and intel drivers:
# pacman -S mesa-git
# pacman -S xf86-video-ati-git xf86-video-intel-git
4) Make sure Xorg and graphics acceleration still works on both Intel and Radeon.
5) Install wine-d3dadapter-git from AUR
6) This is the important step: Recompile xf86-video-intel-git and enable DRI3 (--enable-dri3)
Not needed anymore, xf86-video-intel-git from mesa-git now has DRI3 enabled out of the box.
6a) Added Feb 4: new xf86-video-intel-git versions require
Option "DRI" "3"
to be set in Xorg.conf for DRI3 to be enable.
Please refer to my configuration (http://pastebin.com/E6S9W7iG) if you need help to set up a working Xorg config for dual-card setups.
Just save it as /etc/X11/xorg.conf.d/20-gpu.conf and make sure to change the BusID values to reflect your hardware
7) Run winecfg and enable Nine -- Graphics tab, check "Prefer native Direct3D 9"
8) Not necessary but fixes games not starting due to unknown GFX card errors (i.e. Insurgency):
8a) Start regedit, go to HKEY_CURRENT_USER -> Software -> Wine -> Direct3D
8b) Add a DWORD key "VideoPciDeviceID", value "0x0402"
8c) Add a DWORD key "VideoPciVendorID", value "0x10de"
Ref: http://wiki.winehq.org/UsefulRegistryKeys
9) Start Wine games with:
$ env WINEARCH=win32 DRI_PRIME=1 thread_submit=true wine program.exe
thread_submit=true is a Wine Nine flag to fix weird rendering on PRIME
10) Check the console output for a green "Native Direct 9 is active." message
11) Enjoy!
What can I expect?
Unigine Valley: native + mesa ~10fps, wine-staging + catalyst: ~12fps, this solution: ~25fps
Insurgency: wine-staging + catalyst: 10-45fps, this solution: 30-75fps
Tested on
Archlinux x86_64, mesa-git 67611.76086d7-1, xf86-video-intel-git 8724.ed19b16-1, xf86-video-ati-git 3167.04da199-1, linux-mainline 3.19-rc3
Intel Corporation 2nd Generation Core Processor Family Integrated Graphics Controller (rev 09)
Advanced Micro Devices, Inc. [AMD/ATI] Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (rev ff) -- Actually a AMD Radeon 6630M (TURKS)
Sony Vaio VPCSA
Radeon driver is using GLAMOR acceleration instead of default EXA, as suggested by the Nine developers -- EXA may work, not tested.
Hope this helps.
EDIT: added note that I'm using Glamor instead of default EXA on Radeon.
EDIT: no need to recompile DRI3 on xf86-video-intel-git anymore, it's already enabled if using mesa-git repository.
EDIT Feb 4: DRI3 needs to be enabled in Xorg.conf
Last edited by eazy (2015-02-05 04:33:46)
no masters to rule us, no gods to fool us
Offline
For the record, you can give my AUR package a try, since I made it recently and it's up-to-date. https://aur.archlinux.org/packages/wine-d3dadapter/
I hope it works well with your configuration.
Personal spot :: https://www.smirky.net/ :: Try not to get lost!
Offline
@smirky: yes that may work, although I don't want to compile Wine once again
The HOWTO is mainly to stress the fact that you need to recompile xf86-video-intel and enable DRI3 to have it work on PRIME.
This is counter intuitive since one would expect the need to enable it on the Radeon driver, also considering that Wine Nine supposedly works with DRI2 but for some reason it actually crashes if DRI3 isn't set up.
If you tried wine-d3dadapter and you get a crash on a PRESENTPixmap function call, that's the reason. You need to enable DRI3 to the Intel driver.
no masters to rule us, no gods to fool us
Offline
I'm trying to do this with Nouveau and EVE Online, crashes right after character selection.
No idea how to tell if it's an issue with Nouveau, EVE or just me failing at setting this thing up.
Offline
@eazy, I have identical setup but I still can't get this to work on radeon (it works on Intel, though obviously frame rate is unplayable).
Here's what I get with DRI_PRIME=1
Unhandled exception: page fault on write access to 0x00000004 in 32-bit code (0xf672c236).
Register dump:
CS:0023 SS:002b DS:002b ES:002b FS:0063 GS:006b
EIP:f672c236 ESP:0033edb4 EBP:00000000 EFLAGS:00210216( R- -- I -A-P- )
EAX:00000000 EBX:f6b21000 ECX:f6b1f840 EDX:00000000
ESI:7d0847f8 EDI:00000000
Stack dump:
0x0033edb4: 00000000 000000ac f672c1de f6b21000
0x0033edc4: 8876086c 7d0847f8 f67a3ec8 7d0847f8
0x0033edd4: 7d0847f8 00000000 f67a3e7c f6b21000
0x0033ede4: 8876086c 7d0847f8 f67a4403 7d0847f8
0x0033edf4: 000000ac 00000001 00000003 00000000
0x0033ee04: 00000000 0033ee58 00000016 00000000
000c: sel=0067 base=00000000 limit=00000000 16-bit --x
Backtrace:
=>0 0xf672c236 in d3dadapter9.so.1 (+0x117236) (0x00000000)
1 0xf67a3ec8 in d3dadapter9.so.1 (+0x18eec7) (0x00000000)
2 0xf67a4403 in d3dadapter9.so.1 (+0x18f402) (0x00000000)
3 0xf672f910 in d3dadapter9.so.1 (+0x11a90f) (0x7cecb4c8)
4 0x0093ad33 in pathofexile (+0x53ad32) (0x00ca7034)
5 0x00000000 (0x7d062168)
6 0x00000001 (0xf6b23fc0)
7 0xf6736650 in d3dadapter9.so.1 (+0x12164f) (0xf6736720)
8 0xefba27e8 (0x53565755)
0xf672c236: movl %edx,0x4(%eax)
Modules:
Module Address Debug info Name (153 modules)
PE 360000- 379000 Deferred openal32
PE 400000- f21000 Export pathofexile
PE 1b80000- 1d67000 Deferred d3dcompiler_42
PE 3b80000- 3fd8000 Deferred wrap_oal
PE 10000000-101e5000 Deferred d3dx9_42
PE 66650000-666a4000 Deferred usp10
PE 772b0000-7731c000 Deferred riched20
PE 78050000-780b9000 Deferred msvcp100
PE 78aa0000-78b5e000 Deferred msvcr100
ELF 7a800000-7a91d000 Deferred opengl32<elf>
\-PE 7a820000-7a91d000 \ opengl32
ELF 7b800000-7ba5a000 Deferred kernel32<elf>
\-PE 7b810000-7ba5a000 \ kernel32
ELF 7bc00000-7bce1000 Deferred ntdll<elf>
\-PE 7bc10000-7bce1000 \ ntdll
ELF 7bf00000-7bf03000 Deferred <wine-loader>
ELF 7d352000-7d3c5000 Deferred libgmp.so.10
ELF 7d3c5000-7d3f4000 Deferred libhogweed.so.2
ELF 7d3f4000-7d427000 Deferred libnettle.so.4
ELF 7d427000-7d43b000 Deferred libtasn1.so.6
ELF 7d43b000-7d49f000 Deferred libp11-kit.so.0
ELF 7d49f000-7d4d1000 Deferred libcrypt.so.1
ELF 7d4d1000-7d60a000 Deferred libgnutls.so.28
ELF 7d60a000-7d687000 Deferred libcups.so.2
ELF 7d6ce000-7d6d9000 Deferred libxcursor.so.1
ELF 7d6d9000-7d6ec000 Deferred libxi.so.6
ELF 7d6ec000-7d6f0000 Deferred libxcomposite.so.1
ELF 7d6f0000-7d6fb000 Deferred libxrandr.so.2
ELF 7d6fb000-7d706000 Deferred libxrender.so.1
ELF 7d706000-7d70a000 Deferred libxinerama.so.1
ELF 7d70a000-7d713000 Deferred librt.so.1
ELF 7d713000-7d71c000 Deferred libffi.so.6
ELF 7d71c000-7d723000 Deferred libxdmcp.so.6
ELF 7d723000-7d727000 Deferred libxau.so.6
ELF 7d727000-7d72d000 Deferred libxxf86vm.so.1
ELF 7d72d000-7d730000 Deferred libxshmfence.so.1
ELF 7d730000-7d738000 Deferred libxcb-sync.so.1
ELF 7d738000-7d748000 Deferred libxcb-randr.so.0
ELF 7d748000-7d763000 Deferred libxcb-glx.so.0
ELF 7d763000-7d769000 Deferred libxfixes.so.3
ELF 7d769000-7d76d000 Deferred libxdamage.so.1
ELF 7d76d000-7d77c000 Deferred libdrm.so.2
ELF 7d77c000-7d795000 Deferred libglapi.so.0
ELF 7d795000-7d7a6000 Deferred libwayland-server.so.0
ELF 7d7a6000-7d7b3000 Deferred libwayland-client.so.0
ELF 7d7b3000-7d7c3000 Deferred libgbm.so.1
ELF 7d7c3000-7d7c8000 Deferred libxcb-shape.so.0
ELF 7d7c8000-7d7d3000 Deferred libxcb-render.so.0
ELF 7d7d3000-7d7d9000 Deferred libxcb-dri2.so.0
ELF 7d7d9000-7d7e2000 Deferred libxcb-xfixes.so.0
ELF 7d7e2000-7d7e5000 Deferred libx11-xcb.so.1
ELF 7d7e5000-7d80b000 Deferred libxcb.so.1
ELF 7d80b000-7d8b5000 Deferred libgl.so.1
ELF 7d8b5000-7d8e3000 Deferred libegl.so.1
ELF 7d8e3000-7da1a000 Deferred libx11.so.6
ELF 7da1a000-7da2f000 Deferred libxext.so.6
ELF 7da41000-7da76000 Deferred uxtheme<elf>
\-PE 7da50000-7da76000 \ uxtheme
ELF 7da76000-7db0f000 Deferred winex11<elf>
\-PE 7da80000-7db0f000 \ winex11
ELF 7dbd9000-7dc02000 Deferred libexpat.so.1
ELF 7dc02000-7dc3e000 Deferred libfontconfig.so.1
ELF 7dc3e000-7dc4f000 Deferred libbz2.so.1.0
ELF 7dc4f000-7dd07000 Deferred libfreetype.so.6
ELF 7dd09000-7dd0d000 Deferred libxcb-present.so.0
ELF 7dd4e000-7de89000 Deferred oleaut32<elf>
\-PE 7dd60000-7de89000 \ oleaut32
ELF 7de89000-7deac000 Deferred imm32<elf>
\-PE 7de90000-7deac000 \ imm32
ELF 7deac000-7ded2000 Deferred iphlpapi<elf>
\-PE 7deb0000-7ded2000 \ iphlpapi
ELF 7ded2000-7df10000 Deferred winspool<elf>
\-PE 7dee0000-7df10000 \ winspool
ELF 7df10000-7e00e000 Deferred comctl32<elf>
\-PE 7df20000-7e00e000 \ comctl32
ELF 7e00e000-7e083000 Deferred shlwapi<elf>
\-PE 7e020000-7e083000 \ shlwapi
ELF 7e083000-7e2b1000 Deferred shell32<elf>
\-PE 7e090000-7e2b1000 \ shell32
ELF 7e2b1000-7e398000 Deferred comdlg32<elf>
\-PE 7e2c0000-7e398000 \ comdlg32
ELF 7e398000-7e3ab000 Deferred psapi<elf>
\-PE 7e3a0000-7e3ab000 \ psapi
ELF 7e3ab000-7e411000 Deferred dbghelp<elf>
\-PE 7e3b0000-7e411000 \ dbghelp
ELF 7e411000-7e490000 Deferred rpcrt4<elf>
\-PE 7e420000-7e490000 \ rpcrt4
ELF 7e490000-7e5c5000 Deferred ole32<elf>
\-PE 7e4b0000-7e5c5000 \ ole32
ELF 7e5c5000-7e67b000 Deferred winmm<elf>
\-PE 7e5d0000-7e67b000 \ winmm
ELF 7e67b000-7e730000 Deferred msvcrt<elf>
\-PE 7e690000-7e730000 \ msvcrt
ELF 7e730000-7e79e000 Deferred advapi32<elf>
\-PE 7e740000-7e79e000 \ advapi32
ELF 7e79e000-7e8bb000 Deferred gdi32<elf>
\-PE 7e7b0000-7e8bb000 \ gdi32
ELF 7e8bb000-7ea0f000 Deferred user32<elf>
\-PE 7e8d0000-7ea0f000 \ user32
ELF 7ea0f000-7ea26000 Deferred libz.so.1
ELF 7ea26000-7ec3b000 Deferred libcrypto.so.1.0.0
ELF 7ec3b000-7ecb5000 Deferred libssl.so.1.0.0
ELF 7ecb5000-7ecce000 Deferred libresolv.so.2
ELF 7ecce000-7ed27000 Deferred libldap_r-2.4.so.2
ELF 7ed27000-7ed2b000 Deferred libxcb-dri3.so.0
ELF 7ed2b000-7ed55000 Deferred msacm32<elf>
\-PE 7ed30000-7ed55000 \ msacm32
ELF 7ed55000-7ed6e000 Deferred version<elf>
\-PE 7ed60000-7ed6e000 \ version
ELF 7ed6e000-7edc8000 Deferred wldap32<elf>
\-PE 7ed80000-7edc8000 \ wldap32
ELF 7ef6c000-7efb9000 Deferred libm.so.6
ELF 7efb9000-7efc9000 Deferred liblber-2.4.so.2
ELF 7efc9000-7f000000 Deferred ws2_32<elf>
\-PE 7efd0000-7f000000 \ ws2_32
ELF f447a000-f4492000 Deferred libudev.so.1
ELF f4492000-f449d000 Deferred libpciaccess.so.0
ELF f4592000-f65b5000 Deferred libllvm-3.5.so
ELF f65b5000-f65ce000 Deferred libelf.so.1
ELF f6615000-f6cf4000 Dwarf d3dadapter9.so.1
ELF f6cf4000-f6e2f000 Deferred wined3d<elf>
\-PE f6d00000-f6e2f000 \ wined3d
ELF f6e2f000-f6e78000 Deferred dsound<elf>
\-PE f6e40000-f6e78000 \ dsound
ELF f6e78000-f6f83000 Deferred libasound.so.2
ELF f6f89000-f6fca000 Deferred d3d9<elf>
\-PE f6f90000-f6fca000 \ d3d9
ELF f6fca000-f6ffa000 Deferred winealsa<elf>
\-PE f6fd0000-f6ffa000 \ winealsa
ELF f6ffa000-f7048000 Deferred libjpeg.so.8
ELF f7048000-f7100000 Deferred windowscodecs<elf>
\-PE f7060000-f7100000 \ windowscodecs
ELF f7200000-f7206000 Deferred libtxc_dxtn.so
ELF f7206000-f722b000 Deferred libdrm_intel.so.1
ELF f722b000-f7246000 Deferred libgcc_s.so.1
ELF f7246000-f724c000 Deferred libattr.so.1
ELF f724c000-f725b000 Deferred libdrm_radeon.so.1
ELF f725b000-f7263000 Deferred libdrm_nouveau.so.2
ELF f726b000-f728d000 Deferred mmdevapi<elf>
\-PE f7270000-f728d000 \ mmdevapi
ELF f72af000-f737e000 Deferred crypt32<elf>
\-PE f72c0000-f737e000 \ crypt32
ELF f737e000-f73c0000 Deferred rsaenh<elf>
\-PE f7380000-f73c0000 \ rsaenh
ELF f73cc000-f73d1000 Deferred libdl.so.2
ELF f73d2000-f73e0000 Deferred libnss_files.so.2
ELF f73e0000-f73e5000 Deferred libcap.so.2
ELF f73e5000-f73ec000 Deferred libnss_dns.so.2
ELF f7418000-f75d0000 Deferred libc.so.6
ELF f75d0000-f75ed000 Deferred libpthread.so.0
ELF f75ed000-f77a5000 Dwarf libwine.so.1
ELF f77a6000-f77c9000 Deferred ld-linux.so.2
ELF f77cb000-f77cc000 Deferred [vdso].so
Threads:
process tid prio (all id:s are in hex)
00000008 (D) C:\Program Files\Grinding Gear Games\Path of Exile\PathOfExile.exe
0000002d 15
0000002c 15
00000026 0
00000025 0
00000024 0
00000022 0
00000009 0 <==
0000000e services.exe
0000001d 0
0000001c 0
00000016 0
00000014 0
00000010 0
0000000f 0
00000012 winedevice.exe
0000001b 0
00000018 0
00000017 0
00000013 0
00000019 plugplay.exe
0000001f 0
0000001e 0
0000001a 0
00000020 explorer.exe
00000021 0
0000002e CrashUpload.exe
00000032 0
0000002f 0
Notes:
I am on 3.18.5-1-ck
I did not change the default renderer to Glamor because I don't know how to do it in dual-card setup. I read that all config files should be deleted from /etc/X11/
Last edited by Lockheed (2015-02-02 23:39:16)
Offline
@rudzha, @lockheed: there are many factor in play. I confirm that Unigine Valley should work properly with PRIME. Perhaps you want to test it and report back.
@lockheed: As I said above, please test with Unigine.
What is strange from your backtrace is that you're hitting an exception in the d3dadapter code from Mesa, which should be unrelated to Wine.
You may want to retry with linux-mainline, which supposedly has a number of improvement on both the Intel and Radeon kernel support.
I'd had a lot of headache too to set up a working X11 configuration for dual card setups, this is what I'm using:
$ cat /etc/X11/xorg.conf.d/20-gpu.conf
Section "ServerLayout"
Identifier "layout"
Screen 0 "intel"
Screen 1 "radeon" LeftOf "intel"
EndSection
Section "Device"
Identifier "radeon"
Driver "radeon"
BusID "PCI:1:0:0"
Screen 1
Option "AccelMethod" "glamor"
Option "EnablePageFlip" "on"
EndSection
Section "Device"
Identifier "intel"
Driver "intel"
BusID "PCI:0:2:0"
Screen 0
EndSection
Section "Screen"
Identifier "intel"
Device "intel"
Monitor "monitor"
DefaultDepth 24
EndSection
Section "Screen"
Identifier "radeon"
Device "radeon"
Monitor "monitor"
DefaultDepth 24
EndSection
Section "Monitor"
Identifier "monitor"
Option "Enable" "true"
EndSection
You just have to fix the BusID values to reflect your hardware configuration.
NOTE: although the Radeon card is configured as being "left of" the intel card, I am not working with multiple screens. That's just how Xorg wants it to be set for both card to be initialized correctly.
Last edited by eazy (2015-02-03 09:36:47)
no masters to rule us, no gods to fool us
Offline
I installed latest linux-mainline and implemented your X11 config (I think we have exactly the same setup, because even the BusIDs were the same).
There was no change - I still get the same error when trying to run Path of Exile. However, when I run other, less demanding Wine games, like Battlefield 1942 or DiabloII, using the very same command line, they do run without errors.
A side note: I compiled and installed wine-d3dadapter-git BEFORE installing mesa-git, xf86-video-ati-git, xf86-video-intel-git. Does it make any difference?
I also run unigine-valley, although not sure how is it suppose to verify anything as it seems to be linux native program not run under wine. Anyways:
DRI_PRIME=1 unigine-valley
runs fine. I get solid 2 FPS at 1920x1200. This is my radeon.
unigine-valley
doesn't run. This is my Intel GPU.
$ unigine-valley
Loading "/home/juha/.Valley/valley_1.0.cfg"...
Loading "libGPUMonitor_x64.so"...
Loading "libGL.so.1"...
Loading "libopenal.so.1"...
Set 1920x1200 fullscreen video mode
X Error of failed request: GLXBadFBConfig
Major opcode of failed request: 156 (GLX)
Minor opcode of failed request: 34 ()
Serial number of failed request: 56
Current serial number in output stream: 55
AL lib: (EE) alc_cleanup: 1 device not closed
Loading "/home/juha/.Valley/valley_1.0.cfg"...
Loading "libGPUMonitor_x64.so"...
Loading "libGL.so.1"...
Loading "libopenal.so.1"...
Set 1920x1200 fullscreen video mode
X Error of failed request: GLXBadFBConfig
Major opcode of failed request: 156 (GLX)
Minor opcode of failed request: 34 ()
Serial number of failed request: 56
Current serial number in output stream: 55
AL lib: (EE) alc_cleanup: 1 device not closed
Let me summarise:
>>> Before installing patched Wine and git drivers:
- Path of Exile in wine on Intel GPU (no DRI_PRIME switch) starts fine but there is no 3D content. Only 2D menus. Everything else is black.
- Path of Exile in wine on ATI GPU (DRI_PRIME=1) starts fine but there is no 3D content. Only 2D menus. Everything else is black.
>>> After replacing standard Wine with wine-d3dadapter-gitm and installing git mesa, ati and intel drivers:
- Path of Exile in wine on Intel GPU (no DRI_PRIME switch) runs fine but has unplayable framerate
- Path of Exile in wine on ATI GPU (DRI_PRIME=1) crashes on loading screen with the error above.
Last edited by Lockheed (2015-02-03 13:33:57)
Offline
If your configuration is the one in the signature, we do not have the same hardware.
OK, my suggestion was to run unigine-valley on Wine, but apparently you were trying to run the native version, which indicates further issues on your system:
1) Native Unigine Valley on Intel gives you a "GLXBadFBConfig" exception, which from a quick Google search indicates a GPU too old to support recent OpenGL versions. -- On my system it works correctly (both Radeon and Intel).
2) It seems that Path of Exile has issues independent of the Gallium Nine patch. Gallium Nine doesn't magically fix bugs already existing on vanilla Wine, so if you have issues on vanilla, you are probably gonna have them on Nine.
3) Try Unigine Valley on Wine + Radeon + DRI_PRIME: this should work. If it does, your issues are not about Gallium Nine and have to be investigated separately.
4) Always use the "thread_submit=true" environment variable when using Wine Nine and DRI_PRIME or you're going to get rendering errors. See point #9 of my original post.
Last edited by eazy (2015-02-04 00:53:34)
no masters to rule us, no gods to fool us
Offline
<wrong post>
Last edited by Lockheed (2015-02-04 08:52:59)
Offline
Hey eazy, thanks for further clarification. Following comments:
2) The bug that was there on normal Wine, disappeared using this patched version. As I mentioned, it runs dine on Intel now, except for the low framerate. So the problem with running it on ATI must be ATI/Gallium/-related.
3) How to run unigine-valley on wine? Simply run "wine unigine-valley"? And dhould I create wine bottle to select that extra option in the winecfg graphics tab?
Offline
Will this method run games on native direct3d that require older versions of direct3d, like 8, 7 or 6?
Offline
Any way to get wine-d3dadapter with pulseaudio support (i.e. wine-multimedia)?
Offline
If your configuration is the one in the signature, we do not have the same hardware.
OK, my suggestion was to run unigine-valley on Wine, but apparently you were trying to run the native version, which indicates further issues on your system:
1) Native Unigine Valley on Intel gives you a "GLXBadFBConfig" exception, which from a quick Google search indicates a GPU too old to support recent OpenGL versions. -- On my system it works correctly (both Radeon and Intel).
2) It seems that Path of Exile has issues independent of the Gallium Nine patch. Gallium Nine doesn't magically fix bugs already existing on vanilla Wine, so if you have issues on vanilla, you are probably gonna have them on Nine.
3) Try Unigine Valley on Wine + Radeon + DRI_PRIME: this should work. If it does, your issues are not about Gallium Nine and have to be investigated separately.
4) Always use the "thread_submit=true" environment variable when using Wine Nine and DRI_PRIME or you're going to get rendering errors. See point #9 of my original post.
Easy, thank you for your input. I have two following comments:
2) As mentioned, PoE had issues on regular Wine, but it no longer has those issues on this patched Wine, which is shown when run on Intel GPU. Everything works, including 3D. Just the framerate is slow. So I think the problem is the ATI driver.
3) How do I run Unigine on wine? And do I need to create a new wine bottle and set this extra DirectX option to ON in winecfg/Graphics?
Offline
UPDATE: New xf86-video-intel-git version require an option in Xorg.conf to enable DRI3.
While Wine Nine supposedly works with DRI2, in my experience DX9 software either crashes or do not even start.
Please refer to step 6a for more info.
Last edited by eazy (2015-02-05 04:42:01)
no masters to rule us, no gods to fool us
Offline
@lockheed:
1) Download the Windows version here: https://unigine.com/products/valley/download/
2) Install it
$ env WINEARCH=win32 wine Unigine_Valley-1.0.exe
3) Run it on Intel
$ cd ~/.wine/drive_c/Program Files/Unigine/Valley Benchmark 1.0/bin
$ wine browser_x86.exe -config ../data/launcher/launcher.xml
3a) Run it on Radeon
$ env DRI_PRIME=1 thread_submit=true wine browser_x86.exe -config ../data/launcher/launcher.xml
Make sure to set the API to DirectX 9 on the benchmark options.
no masters to rule us, no gods to fool us
Offline
@helix: yes, this is a different and improved code path for DX9 -- if it works on vanilla Wine, it should work with this patched version too.
But you won't get further acceleration on anything different than DX9, I think.
@BaST: probably, you're gonna need to get your hands dirty and patch manually. I'm no Wine maintainer or expert, I haven't tried.
Last edited by eazy (2015-02-05 04:45:17)
no masters to rule us, no gods to fool us
Offline
Any way to get wine-d3dadapter with pulseaudio support (i.e. wine-multimedia)?
just get the pkg from aur add the patches to wine-multimedia and build it.
Linux odin 3.13.1-pf #1 SMP PREEMPT Wed Mar 5 21:47:28 CET 2014 x86_64 GNU/Linux
Offline
I use a very similar setup and was searching all over the place why dri3 wasn't "working" anymore until I found your post and saw that they changed the default dri level to 2. Thanks.
The xorg snippet doesn't need to be so long. /etc/X11/xorg.conf.d/20-intel.conf with
Section "Device"
Identifier "Intel Graphics"
Driver "intel"
Option "DRI" "3"
EndSection
is enough to enable dri 3. Compiling xf86-video-intel with --with-default-dri=3 works too and then no xorg config is needed.
Last edited by haagch (2015-02-21 11:25:22)
Offline
@eazy, I did the test with Unigine Valley on wine.
On Intel:
It starts fine and I get solid 0,5FPS, however, everything is tinted green.
On Radeon, I click RUN in the Benchmark window, the screen goes black, and then wine Program Error shows up. I click "Details" but it gets stuck on
Loading detailed information. Please wait...
and never loads any more error information. I waited about 3 minutes. The benchmark config window remains open, though.
This is the terminal output:
$ env WINEPREFIX="/home/juha/.wine-bottles/uv" DRI_PRIME=1 thread_submit=true wine browser_x86.exe -config ../data/launcher/launcher.xml
fixme:heap:RtlSetHeapInformation (nil) 1 (nil) 0 stub
fixme:system:SetProcessDPIAware stub!
fixme:win:RegisterTouchWindow (0x10062 00000000): stub
fixme:ole:RemUnknown_QueryInterface No interface for iid {00000019-0000-0000-c000-000000000046}
fixme:imm:NotifyIME IMC_SETCANDIDATEPOS
fixme:imm:ImmReleaseContext (0x10062, 0x141780): stub
fixme:win:FlashWindowEx 0x33f2d8
fixme:ntdll:NtLockFile I/O completion on lock not implemented yet
fixme:heap:RtlSetHeapInformation (nil) 1 (nil) 0 stub
fixme:wbemprox:client_security_SetBlanket 0x7dad7a10, 0x12fdd0, 10, 0, (null), 3, 3, (nil), 0x00000000
fixme:wbemprox:client_security_Release 0x7dad7a10
fixme:win:EnumDisplayDevicesW ((null),0,0x33e1a8,0x00000000), stub!
fixme:msvcrt:type_info_name_internal_method type_info_node parameter ignored
fixme:thread:SetThreadIdealProcessor (0xfffffffe): stub
fixme:win:EnumDisplayDevicesW ((null),0,0x33e878,0x00000000), stub!
fixme:win:EnumDisplayDevicesW ((null),1,0x33e878,0x00000000), stub!
fixme:win:EnumDisplayDevicesW ((null),0,0x33e878,0x00000000), stub!
err:x11drv:DRI3CheckExtension DRI3 extension is not present
err:d3dadapter:has_d3dadapter Unable to query DRI3. Trying DRI2 fallback (slower performance).
fixme:win:EnumDisplayDevicesW ((null),0,0x33e6a8,0x00000000), stub!
ATTENTION: default value of option thread_submit overridden by environment.
fixme:win:EnumDisplayDevicesW (L"\\\\.\\DISPLAY1",0,0x33e6a8,0x00000000), stub!
fixme:win:EnumDisplayDevicesW (L"\\\\.\\DISPLAY1",1,0x33e6a8,0x00000000), stub!
fixme:win:EnumDisplayDevicesW ((null),1,0x33e6a8,0x00000000), stub!
fixme:d3d9:d3dadapter9_new
Native Direct3D 9 is active.
For more information visit https://wiki.ixit.cz/d3d9
fixme:win:EnumDisplayDevicesW (L"\\\\.\\DISPLAY1",0,0x33e658,0x00000000), stub!
fixme:d3dadapter:DRI3PresentGroup_GetMultiheadCount (0x139640), stub!
fixme:d3dadapter:DRI3PresentGroup_GetMultiheadCount (0x139640), stub!
fixme:d3d9:Direct3DShaderValidatorCreate9 stub
wine: Unhandled page fault on read access to 0x00000000 at address 0x7df29ad1 (thread 003c), starting debugger...
fixme:imm:NotifyIME IMC_SETCANDIDATEPOS
fixme:win:FlashWindowEx 0x33d398
Now, if I disable "Prefer native Direct3D 9" option in winecfg, I get a bit further. I get to see the loading screen, but then it crashes with another error:
can't initialize GPUMonitorEnginePlugins...
Direct 3D9 error: invalid call...
but I suppose this is normal.
Offline
The problem persists on latest wine-staging and mesa-git drivers.
Offline
:: gcc-multilib and gcc are in conflict. ¿delete gcc? [s/N] S
:: gcc-libs-multilib and gcc-libs are in conflict. ¿delete gcc-libs? [s/N] S
i jsut did this i hope its ok
Offline
Weird output, but yes, replacing with multilib is ok.
Personal spot :: https://www.smirky.net/ :: Try not to get lost!
Offline
Is it still necessary to use the git versions of mesa/xf86-video-intel/xf86-video-ati to make this work?
Offline
5) Install wine-d3dadapter-git from AUR couldnt install after half hour of compiling , was something about dri3 i thing, i have an apu+6470m
Offline
Weird output, but yes, replacing with multilib is ok.
i got an error installing ur pkg, sign error
wine-1.7.38.tar.bz2 ... Aprobado(approved)
wine-1.7.38.tar.bz2.sign ... Omitido(not approved)
30-win32-aliases.conf ... Aprobado(approved)
d3d9.patch ... Aprobado(approved)
==> Verificando las firmas de las fuentes con gpg...
wine-1.7.38.tar.bz2 ... hsa failed (unkown public key F5E6E9EEB9461DD7)
Last edited by diego7319 (2015-04-01 01:13:27)
Offline