Announcement

Collapse
No announcement yet.

Wine's Vulkan Code Seeing Performance Improvements, Further Enhancing DXVK

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • cute2dgirl
    replied
    Note that the improvements pretty much only affect 32-bit applications, since 64-bit apps don't require struct conversion.

    Originally posted by oiaohm View Post
    There are big performance gains possible at dx8 and newer because this is when direct x starts doings thing that does not map to opengl very well at all.
    Honestly, Dx8 games - and many earlier Dx9 games - are so old that performance is not really a concern, wined3d is fine for those. I think Josh mentioned wanting to add D3D8 support at some point but it has absolutely no priority whatsoever.
    Last edited by cute2dgirl; 06 March 2020, 04:12 AM.

    Leave a comment:


  • oiaohm
    replied
    Originally posted by R41N3R View Post

    If you are interested, DXWrapper is a great open source project that you can combine quite easy with DXVK. I could play several games successful, it is only sometimes not obvious which DirectX version is in use by which game. DirectDraw 1-7 games should run plus D3D8, all this is converted to D3D9 which can then run with DXVK on Vulkan :-)

    https://github.com/elishacloud/dxwrapper
    There is a consideration here to both comments something both need to remember wine is not windows. Thing that give gain under Windows may not be as wise of move as one would think.

    Originally posted by Xaero_Vincent View Post

    That's not really needed with dgVoodoo 2.

    Supposedly, dgVoodoo paired with DXVK will turn any Glide 2/3, DirectDraw, and Direct3D 1 thru 8.1 game into a Direct3D 11 compatible and then to Vulkan via DXVK. It also supports Direct3D 9 but that isn't needed now that DXVK has that.



    I have yet to try it but I have a few old games I could give it a test with.
    It turns out for Dx 1-7 wine dx to opengl performs quite well on modern hardware more than enough for the old applications that need dx 1-7. That really on wine there is no low hanging fruit of performance gains in the dx 1-7. So since there is no true low hanging fruit in the dx 1-7 area adding wrappers can in fact be making everything run slower in that area. Map Dx 1-7 forwards on windows is required on wine since dx 1-7 is still there not so much because of this and is more often hurting your performance than helping.

    There are big performance gains possible at dx8 and newer because this is when direct x starts doings thing that does not map to opengl very well at all. Lot of ways it would be good to see someone fork d9vk and make a d8vk as d8vk would mostly d9vk with less features and different function names because that is how dx8 is in fact is as Microsoft straight took dx 8 structures and all and extend it to make dx9 without changing much .

    Also when you look at d9vk it does not make any sense to map from 8.1 to Direct3d 11 with dxvk as you are adding extra transformations that d9vk gets to avoid by just map dx 8/8.1 to dx9. Remember you have to ask if wrapper for dx 8/8.1 to dx9 even makes sense as d8vk could be made by someone to allow straight dx8/8.1 to vulkan.

    Yes dx 8/8.1 to dx9 with d9vk makes sense at the moment if you are after performance. Where the dgVoodoo to direct3d 11 for dx 8.0 and 8.1 is not making any sense under wine because you are making your compatibility layer thicker and more cpu time consuming.

    There is a simple problem here on wine the ideal location you are looking for is direct x to either Vulkan or opengl not direct x to direct x. Both Vulkan and opengl are the host and is not thickening your compatibility layer stuff.

    Something to remember just because something can kind of work does not make it the correct solution.

    Wine is really not windows. Optimal work around for windows can be the pure wrong choice for wine.

    The best performing Glide 2/3 solutions under wine are either opengl or vulkan backend and there is very little performance difference between the opengl and the vulkan versions under wine.

    The ones doing Glide 2/3 on top direct x 9/11 on dxvk/d9vk are slower and even worse if you disable dxvk and drop back to wined3d.

    Other thing under windows the performance difference between a opengl/vulkan/dx9/dx11 implementations of glide 2/3 there is no major performance advantages these are areas where wine starts coming its own unique platform need it own unique choices.


    Generic choices that work equally under windows don't always work equally under wine. I am sorry to say a lot of people bring across what they do under windows the complain in irc help with wine about bad performance with dx 1-7 application and we in there direct them to try wined3d and its like hey my performance improved a lot. Same with glide being told to change to either a vulkan or opengl backend version and they watch performance jump a lot.

    Some areas of wine are very well performing. Not all of wine dx to opengl implementation performance suxs.

    There is a generic rule you are looking for wrappers that go the shortest path to host with wine this is vulkan or opengl backends. Yes one will be better than other in lots of cases that being the vulkan ones there are some cases like glide where opengl or vulkan back end makes bugger all difference.

    Yes wine support multi WINEPREFIX and I do recommend application per WINEPREFIX so you can optimise correctly for performance.

    Leave a comment:


  • doublez13
    replied
    Originally posted by Snaipersky View Post
    Good stuff. I wonder if dx 8 and 7 compatibility are still planned...
    Were they ever planned?

    Leave a comment:


  • Xaero_Vincent
    replied
    Originally posted by Snaipersky View Post
    Good stuff. I wonder if dx 8 and 7 compatibility are still planned. A full vulkan translation of d3d and d2d would be great, though unlikely until codeweavers does their own thing that Josh vices concerns about.
    That's not really needed with dgVoodoo 2.

    Supposedly, dgVoodoo paired with DXVK will turn any Glide 2/3, DirectDraw, and Direct3D 1 thru 8.1 game into a Direct3D 11 compatible and then to Vulkan via DXVK. It also supports Direct3D 9 but that isn't needed now that DXVK has that.



    I have yet to try it but I have a few old games I could give it a test with.
    Last edited by Xaero_Vincent; 05 March 2020, 06:02 PM.

    Leave a comment:


  • R41N3R
    replied
    Originally posted by Snaipersky View Post
    Good stuff. I wonder if dx 8 and 7 compatibility are still planned. A full vulkan translation of d3d and d2d would be great, though unlikely until codeweavers does their own thing that Josh vices concerns about.
    If you are interested, DXWrapper is a great open source project that you can combine quite easy with DXVK. I could play several games successful, it is only sometimes not obvious which DirectX version is in use by which game. DirectDraw 1-7 games should run plus D3D8, all this is converted to D3D9 which can then run with DXVK on Vulkan :-)

    Fixes compatibility issues with older games running on Windows 10/11 by wrapping DirectX dlls. Also allows loading custom libraries with the file extension .asi into game processes. - elishacloud/...
    Last edited by R41N3R; 05 March 2020, 06:45 PM.

    Leave a comment:


  • Teggs
    replied
    Originally posted by Wine-devel mailing list
    I can name Detroit Become Human... This game is already reported by some users to run faster under Wine than on Windows though.
    That kind of thing just never gets old.

    Leave a comment:


  • Snaipersky
    replied
    Good stuff. I wonder if dx 8 and 7 compatibility are still planned. A full vulkan translation of d3d and d2d would be great, though unlikely until codeweavers does their own thing that Josh vices concerns about.

    Leave a comment:


  • davidbepo
    replied
    LEL, even his email is a frog joke
    about the new itself, its great and i hope it lands soon

    Leave a comment:


  • Wine's Vulkan Code Seeing Performance Improvements, Further Enhancing DXVK

    Phoronix: Wine's Vulkan Code Seeing Performance Improvements, Further Enhancing DXVK

    D9VK (now part of DXVK) developer Joshua Ashton has proposed a set of patches to Wine's Vulkan library (Winevulkan) that should help with performance...

    Phoronix, Linux Hardware Reviews, Linux hardware benchmarks, Linux server benchmarks, Linux benchmarking, Desktop Linux, Linux performance, Open Source graphics, Linux How To, Ubuntu benchmarks, Ubuntu hardware, Phoronix Test Suite
Working...
X