VKD3D - D3D12

Questions about Wine on Linux
Post Reply
Cybermax
Level 4
Level 4
Posts: 188
Joined: Fri Dec 01, 2017 5:26 pm

VKD3D - D3D12

Post by Cybermax » Sat Oct 06, 2018 11:39 am

How's things regarding VKD3D?

Im just asking, cos updates popping up and patches being delivered... But can't really say i have SEEN much of things? :)

I downloaded GeeXLab test program https://www.geeks3d.com/hacklab/2016010 ... h-geexlab/ (download on the "code sample pack" link)

This has some very basic d3d12 tests and demos in that demo-pack. Is any of those supposed to work with current wine? (wine-3.17). Anyone tested this and can confirm that "Yeah, some works, but most don't"? I'm asking to see if it is supposed to be able to run simple demo's, and its some misconfiguration on my part.. or if "Oh.. no, drawing a triangle with d3d12 is probably a few years still" :)

The OpenGL demos and Vulkan demos work with GeeXLab app with wine-3.17 and Windows OS set to Win10.

C

User avatar
Bob Wya
Level 12
Level 12
Posts: 2761
Joined: Sat Oct 16, 2010 7:40 pm
Location: Cambridge
Contact:

Re: VKD3D - D3D12

Post by Bob Wya » Sun Oct 07, 2018 3:14 pm

Cybermax wrote:How's things regarding VKD3D?

Im just asking, cos updates popping up and patches being delivered... But can't really say i have SEEN much of things? :)

I downloaded GeeXLab test program https://www.geeks3d.com/hacklab/2016010 ... h-geexlab/ (download on the "code sample pack" link)

This has some very basic d3d12 tests and demos in that demo-pack. Is any of those supposed to work with current wine? (wine-3.17). Anyone tested this and can confirm that "Yeah, some works, but most don't"? I'm asking to see if it is supposed to be able to run simple demo's, and its some misconfiguration on my part.. or if "Oh.. no, drawing a triangle with d3d12 is probably a few years still" :)

The OpenGL demos and Vulkan demos work with GeeXLab app with wine-3.17 and Windows OS set to Win10.

C
I've got a app-emulation/vkd3d package in my Gentoo Overlay.
The bundled vkd3d D3D12 demos work fine on my system... Such as a they are...
The vkd3d triangle demo is identical to the one on GeeXLab.
I haven't tested any real D3D12 applications, with vkd3d.

We saw this MS demo program working at Wineconf 2017; which was shown, during a talk Henri gave.

You'll probably find that the version of Wine, you are testing against, wasn't built with both the -vkd3d and -vulkan flags (+ headers).

I haven't actually found any actual use for vkd3d... yet! But that's another matter. :lol:
DXVK has an obvious utility and works really well - with most of the D3D10/D3D11 games I've tested.

Bob

Cybermax
Level 4
Level 4
Posts: 188
Joined: Fri Dec 01, 2017 5:26 pm

Re: VKD3D - D3D12

Post by Cybermax » Mon Oct 08, 2018 9:17 am

Bob Wya wrote: You'll probably find that the version of Wine, you are testing against, wasn't built with both the -vkd3d and -vulkan flags (+ headers).

I haven't actually found any actual use for vkd3d... yet! But that's another matter. :lol:
DXVK has an obvious utility and works really well - with most of the D3D10/D3D11 games I've tested.

Bob
Hopefully it is.
I used vkd3d lib from https://launchpad.net/ubuntu/+source/vkd3d/
It is 1.0, and not the new 1.1 tho, but my config.log reads:

Code: Select all

configure:16150: libvkd3d cflags: -I/usr/include/vkd3d
configure:16151: libvkd3d libs: -lvkd3d
configure:16154: checking for -lvkd3d
configure:16179: gcc -m64 -o conftest -DWINE_UNICODE_API="" -DWINE_NO_TRACE_MSGS -DWINE_NO_DEBUG_MSGS -D_REENTRANT -fPIC -O3 -march=native -pipe -maccumulate-outgoing-args -mno-push-args  -I/usr/include/vkd3d  conftest.c -lvkd3d -lvkd3d  >&5
configure:16198: result: libvkd3d.so.1
And

Code: Select all

configure:16015: checking for -lvulkan
configure:16040: gcc -m64 -o conftest -DWINE_UNICODE_API="" -DWINE_NO_TRACE_MSGS -DWINE_NO_DEBUG_MSGS -D_REENTRANT -fPIC -O3 -march=native -pipe -maccumulate-outgoing-args -mno-push-args   conftest.c -lvulkan   >&5
configure:16059: result: libvulkan.so.1
No errors configuring or compiling. Vulkan demo's work in my wineprefix aswell as DXVK.

The vkd3d "triangle-vkd3d" (and gears-vkd3d) works in linux, but i dont think there is built a windows .exe for this that i can run in my wineprefix?

C

Cybermax
Level 4
Level 4
Posts: 188
Joined: Fri Dec 01, 2017 5:26 pm

Re: VKD3D - D3D12

Post by Cybermax » Mon Oct 08, 2018 9:58 am

Some snippits from log trying to run GeeXLab and "Triangle of death" demo w. d3d12

Code: Select all

fixme:vkd3d_create_device: Unsupported feature level 0xc100.
fixme:vkd3d_create_device: Unsupported feature level 0xc000.
fixme:vkd3d_create_device: Unsupported feature level 0xb100.
fixme:d3d12_device_CheckFeatureSupport: Assuming device does not support tile based rendering.
fixme:d3d12_device_CheckFeatureSupport: Assuming NUMA.
fixme:vkd3d_serialize_root_signature: Ignoring error blob 0xa3f598.
fixme:d3d12_root_signature_init: Ignoring root signature flags 0x1.
fixme:d3d12_root_signature_init_root_descriptors: Unhandled register space 1 for parameter 3.
fixme:d3d12_resource_SetName: iface 0x7f831b1d0a00, name "back_buffer_0" stub!
fixme:d3d12_resource_SetName: iface 0x7f831800ea50, name "back_buffer_1" stub!
fixme:d3d12_resource_SetName: iface 0x7f831800b380, name "back_buffer_2" stub!
fixme:d3d12_resource_SetName: iface 0x7f83180068a0, name "back_buffer_3" stub!
fixme:d3d12_fence_SetName: iface 0x7f8319935610, name "gpu::fence" stub!
fixme:d3d12_descriptor_heap_SetName: iface 0x7f83199363a0, name "rtv_descriptor_heap01" stub!
fixme:d3d12_descriptor_heap_SetName: iface 0x7f8319b1fd30, name "dsv_descriptor_heap01" stub!
wine: Unhandled page fault on read access to 0x00000038 at address 0x7f8307b4b86e (thread 007e), starting debugger...
Unhandled exception: page fault on read access to 0x00000038 in 64-bit code (0x00007f8307b4b86e).

Code: Select all

Modules:
Debug info	Name (266 modules)
PE	          550000-          5a8000	Deferred        plugin_gxc_vulkan_x64
PE	          5b0000-          5ea000	Export          plugin_gxc_d3d12_x64
and

Code: Select all

ELF	    7f8307b41000-    7f8307da2000	Dwarf           libvkd3d.so.1
ELF	    7f8307da2000-    7f8308000000	Deferred        libnvidia-cbl.so.410.57
ELF	    7f831d00a000-    7f831d2c0000	Deferred        libgldispatch.so.0
ELF	    7f831d2c0000-    7f831d4f1000	Deferred        libglx.so.0
ELF	    7f831d4f1000-    7f831e429000	Deferred        libnvidia-glvkspirv.so.410.57
ELF	    7f831e429000-    7f8320000000	Deferred        libnvidia-glcore.so.410.57
Kinda SEEMS like its trying to load with libvkd3d :)
Not sure about those fixme's at the start with "Unsupported feature level" tho?

Cybermax
Level 4
Level 4
Posts: 188
Joined: Fri Dec 01, 2017 5:26 pm

Re: VKD3D - D3D12

Post by Cybermax » Sun Oct 14, 2018 1:29 pm

Not sure what fails on my end, but there seems to be a problem if i try to build the vkd3d package myself. I would only think that it is somewhat related to whatever happens if i try to run any demo relying on d3d12 and this vkd3d. (Although cube/triangle works in Linux).

To build the vkd3d package i do:
git clone git://source.winehq.org/git/vkd3d.git
cd vkd3d
./autogen.sh
./configure --enable-demos
make -j12

make check-TESTS produces a failure

Code: Select all

FAIL tests/d3d12 (exit status: 1)
(Se included file test-suite.log)
Attachments
test-suite.log.gz
(1.84 KiB) Downloaded 102 times

User avatar
Bob Wya
Level 12
Level 12
Posts: 2761
Joined: Sat Oct 16, 2010 7:40 pm
Location: Cambridge
Contact:

Re: VKD3D - D3D12

Post by Bob Wya » Sun Oct 14, 2018 1:49 pm

Cybermax wrote:Not sure what fails on my end, but there seems to be a problem if i try to build the vkd3d package myself. I would only think that it is somewhat related to whatever happens if i try to run any demo relying on d3d12 and this vkd3d. (Although cube/triangle works in Linux).

To build the vkd3d package i do:

Code: Select all

git clone git://source.winehq.org/git/vkd3d.git
cd vkd3d
./autogen.sh
./configure --enable-demos
make -j12

Code: Select all

make check-TESTS
produces a failure

Code: Select all

FAIL tests/d3d12 (exit status: 1)
(See the included file test-suite.log)
Don't worry I get indentical tests failures on my system...
I'm using the bleeding edge beta Vulkan branch of the Nvidia driver: 396.54.09.

Code: Select all

d3d12: 290772 tests executed (4 failures, 2 skipped, 56 todo).
That actually looks pretty good me. A 0.0013756482742492% failure rate ain't bad. :lol:

Many regular wine tests fail a lot of the time... In fact there is a running joke about locking in Wine developers, at Wineconf's, to fix them!

Bob

Cybermax
Level 4
Level 4
Posts: 188
Joined: Fri Dec 01, 2017 5:26 pm

Re: VKD3D - D3D12

Post by Cybermax » Sun Oct 14, 2018 4:35 pm

Code: Select all

d3d12:1264: Max supported feature level 0xb000
Is one of the lines.. I think this means "D3D feature level 11_0".. However my nVidia GTX970 supports D3D feature level 12_1. So.. this leads me to believe there is something bugged with the "feature level detection" routine perhaps?

That error (feature level 0xb000) is the same i get when i try to run Triangle or other demos in wine with GeeXLab... or lack thereof (see first post)

I am also using 396.54.09, and noone in their right mind would EVER use neauveau for anything but a "old-crapper-booting-on-liveusb" or something like that.. so hopefully its not cos that is not tested :)

Ideas are welcome tho!

Cybermax
Level 4
Level 4
Posts: 188
Joined: Fri Dec 01, 2017 5:26 pm

Re: VKD3D - D3D12

Post by Cybermax » Sat Oct 20, 2018 10:25 am

Now i found someone claming to run World of Warcraft with vkd3d and dx12. https://appdb.winehq.org/objectManager. ... &iId=36961

Not entirely sure this seems likely, as it is not THAT long ago it was impossible to run WoW w/dx11... Ofc DXVK and recent wine have made this work nicely, running WoW with full-on-dx12? And i am not able to run dx12 triangle in wine?

So, are these tests i refer to supposed to not work? The errors i get in my winedebug log i think is from libvkd3d and not really a "wine bug", as i cant find reference to

Code: Select all

Unsupported feature level
anywhere in the wine source, but this exist in the source

Code: Select all

vkd3d/libs/vkd3d/vkd3d_main.c (line 58)
Currently i am using libvkd3d1 (1.1-1) from debian. gears-vkd3d and triangle-vkd3d from vkd3d-demos package works. But the

Code: Select all

make check-TESTS
fails. Where do one go to ask devs about compile issues with this? Vkd3d git does not have any "issues" tabs... should i submit a bugreport? Its not a "wine" bug, but a "libvkd3d" bug, so where do i file this bug? I did not find vkd3d under "components" when i clicked "wine"... Is it a "winelib" issue? (Its really a linux-lib issue perhaps...)

Cybermax
Level 4
Level 4
Posts: 188
Joined: Fri Dec 01, 2017 5:26 pm

Re: VKD3D - D3D12

Post by Cybermax » Tue Oct 30, 2018 4:41 pm

Still have not gotten any further with this.

I browsed through the Ubuntu build log https://launchpadlibrarian.net/37684419 ... ING.txt.gz, and saw this little snippit:

Code: Select all

make  check-TESTS
make[3]: Entering directory '/<<PKGBUILDDIR>>'
make[4]: Entering directory '/<<PKGBUILDDIR>>'
PASS: tests/vkd3d_api
PASS: tests/d3d12
============================================================================
Testsuite summary for vkd3d 1.0
============================================================================
# TOTAL: 2
# PASS:  2
# SKIP:  0
# XFAIL: 0
# FAIL:  0
# XPASS: 0
# ERROR: 0
============================================================================
Interesting.. On the Ubuntu build-bot it got a "pass" on tests/d3d12. Now.. i wonder what vulkan capabilities they are using on their buildbot that compiles this in a chroot environment (afaik). Or, does it pass if i dont have any hardware? :)

Anyone know what demo WineHQ demonstrated for vkd3d? Cant find any similar "triangle" demo as a standalone .exe, since GeeXLab simple demo does not work... Im baffled. Maybe testing this is of no interest for anyone but me? Or.. for that matter, that its only me and a handful non-devs that have tested this and cant get it working?

Cybermax
Level 4
Level 4
Posts: 188
Joined: Fri Dec 01, 2017 5:26 pm

Re: VKD3D - D3D12

Post by Cybermax » Thu Nov 01, 2018 4:44 pm

Just watched the WineConf 2018 video with Henri Verbeet, and i cant really say i felt like "d3d12 is working" :)

I would love to get a confirmation of "d3d12 is 2 years away before running anything", cos then i would not waste any more time testing this hehe.

User avatar
Bob Wya
Level 12
Level 12
Posts: 2761
Joined: Sat Oct 16, 2010 7:40 pm
Location: Cambridge
Contact:

Re: VKD3D - D3D12

Post by Bob Wya » Thu Nov 01, 2018 8:11 pm

Cybermax wrote:Just watched the WineConf 2018 video with Henri Verbeet, and i cant really say i felt like "d3d12 is working" :)

I would love to get a confirmation of "d3d12 is 2 years away before running anything", cos then i would not waste any more time testing this hehe.
There was a demo of vkd3d at last years Wineconf...
See: Wineconf 2017: Direct3D 12 update.
I was there...
There definitely was an animated, working demo of the D3D12 Microsoft ModelViewer. For real! 8)

At the time I though it was quite cool (given the previous near glacial pace of Wine's D3D->OpenGL translation layers).

Then the DXVK express train came along.
Now I find it hard to get very excited about... Meh... :roll:

Bob

Cybermax
Level 4
Level 4
Posts: 188
Joined: Fri Dec 01, 2017 5:26 pm

Re: VKD3D - D3D12

Post by Cybermax » Sun Nov 04, 2018 9:58 am

Demoed a Linux port of Microsoft's ModelViewer demo using this library
Oh.. "linux port"... That means something in the lines of how the gears-vkd3d version works i guess... And that works. Its just not working with a native WINDOWS version.

So, the demo was actually NOT a d3d12 demo running under wine. The plot thickens :P

Post Reply