So what's the actual problem here?
Not sure how much I really care about an ancient demo that literally does like 50 draw calls, is entirely CPU-limited, and still runs at 1400 FPS on my system and according to your numbers still runs better than any native Windows setup. The real-world significance seems rather... low?
If you're going on about the GTX 950 frame rate being "low" then please be aware that DXVK has to do all sorts of magic to even display the image on screen which involves a full image copy, and then the Vulkan driver basically does the same thing behind our backs as well because Vulkan presentation in anything but exclusive fullscreen mode is inefficient on Windows drivers. You're measuring platform problems, not DXVK problems at this point.
Windows 7 with dxvk is faster than linux with dxvk.
As for the 950M, you were on the right track this was eventually a problem with switchable graphics, but there's still something that doesn't check out.
After observing that using the integrated HD 520 graphics with dxvk could somehow give me better numbers, I did force the DXGI layering (Composed: Flip presentation) and that made the nvidia card almost double its framerate.
You might then be easily inclined to blame optimus for not being meant to push hundreds and hundreds of frames, I guess.. but yet the default mode otherwise was still just the usual Composed: Copy with GPU GDI. I.e. the normal one for d3d9 too (at least in windowed mode), both with the igp and the dgpu, and even on the desktop.
And so there's still this weird mystery left (even though it has at least a solution already), of why dxvk has this overhead even though flipping the frames the same way. But I suppose this is probably too windows-y of a quirk for your tastes.
And so there's still this weird mystery left (even though it has at least a solution already), of why dxvk has this overhead even though flipping the frames the same way
DXVK does another copy internally because we cannot implement D3D swapchains directly with Vulkan swapchains.
Either way, this is a tiny benchmark. In actual games, we're pretty much always on par with Windows D3D9 from what I've seen.
Sorry for jumping-in.
@mirh If you will look again into this matter then please include in your testing also the native D3D9 implementation in Mesa. I think it would be nice to see where it stands in regard to the original D3D9 support of Windows 7/10/11. :wink:
DXVK does another copy internally because we cannot implement D3D swapchains directly with Vulkan swapchains.
I'm not sure how that answers my question. Ok perhaps, it's not even DXVK doing this passage, but the optimus driver behind the scenes? It would be interesting to check in one of those laptops with dGPU display outputs, if the difference is still there (because clearly it doesn't exist on desktops)
If you will look again into this matter then please include in your testing also the native D3D9 implementation in Mesa.
I'm afraid that isn't an option on nvidia, you are free to do this yourself.
Ok, just for the records, I think I have cracked the nut of why (old) DXVK in windows is even faster than DXVK in linux too.
Basically there's also some non-trivial amount of GDI/font activity going on under the hood, and wine never really cared for it (on top of the fact that W7 is certainly hard to beat, with its kernel-side hardware acceleration)
| Scenario | FPS |
|---|---|
| 2080S W7 dxvk110 | 2550 |
| 2080S W7 dxvk110 apitrace | 2660 |
| 2080S wine-staging dxvk23 | 2150 |
| 2080S wine-staging-8.8 dxvk23 | 2300 |
| 2080S wine-staging-8.8 dxvk23 cached | 2500 |
There has yet to be a match, but most likely this isn't a monkey for you to take care of.
So, while investigating d3d9 having been nerfed in newer W10 versions, I eventually got to find a scenario where even dxvk is somewhat subpar. And unlike a lot of other times, this affects linux too!
(btw no shit that I wasn't getting much confirmation at the end of #1845 and #1901, when moving from the laptop to the desktop can lead to such night and day relative twists)
Software information
Nvidia HDR with 2x FP16 MRTs sample
On linux I suppose you can even download the original here, but on windows you either hex edit the exe to accept a custom d3d9.dll or you need my version.
System information
Apitrace file(s)
Log files