You can sign up to get a daily email of our articles, see the Mailing List page.
We do often include affiliate links to earn us some pennies. See more here.
Looks like the Wine developers consider the Multi-threaded command stream for Direct3D good enough now, as it's in Wine 2.6.

For those that don't know what the 'Multi-threaded command stream' is or does, it should hopefully allow better performance in certain games ran through Wine on Linux.

Wine 2.6 highlights:
  • Multi-threaded command stream in Direct3D.
  • More Shader Model 5 instructions.
  • More support for 3D textures.
  • Better font transformations in DirectWrite.


They fixed 25 bugs in this release which includes fixing issues in games like Neverwinter Online, Rogue Operatives, The Solus Project and more.

They also included a fix that multiple games and applications needed, to quote the release log:
QuoteMultiple games need msvcr110.dll.?_Id@_CurrentScheduler@details@Concurrency@@SAIXZ (World of Tanks v0.9.15, Bethesda.net Launcher, Train Fever)

Pretty great release, congratulations to the Wine developers for their constant effort.

If you want to enable CSMT (Multi-threaded command stream), you need to do it via regedit, so launch it with Wine first:
wine regedit
Then scroll through to Direct3D like so:
image
Then, you need to rename it to "csmt" and make sure the value is set to 1. Article taken from GamingOnLinux.com.
Tags: Wine
16 Likes
About the author -
author picture
I am the owner of GamingOnLinux. After discovering Linux back in the days of Mandrake in 2003, I constantly came back to check on the progress of Linux until Ubuntu appeared on the scene and it helped me to really love it. You can reach me easily by emailing GamingOnLinux directly. Find me on Mastodon.
See more from me
The comments on this article are closed.
46 comments
Page: «3/5»
  Go to:

Shmerl Apr 13, 2017
Quoting: adamhmUnless they changed it with this release, enabling CSMT requires:

[HKEY_CURRENT_USER\Software\Wine\DllRedirects]
"wined3d"="wined3d-csmt.dll"

Yes, that's no longer valid for regular Wine. See above. According to the code, it's more likely to be:

[HKEY_CURRENT_USER\Software\Wine\Direct3D]
"csmt"="enabled"


Thing is, it doesn't work for me.


Last edited by Shmerl on 13 April 2017 at 8:39 pm UTC
Shmerl Apr 13, 2017
Ah, I misread it. It's using dword (weird). Let me try again and setting it to 1.
Shmerl Apr 13, 2017
Yep, that's it. It should be like this:

csmt_on.reg

REGEDIT4

[HKEY_CURRENT_USER\Software\Wine\Direct3D] 
"csmt"=dword:1


And I removed that staging dll redirect. It's pointless with this.


Last edited by Shmerl on 13 April 2017 at 8:48 pm UTC
Shmerl Apr 13, 2017
@liamdawe: Can you add the above info about enabling CSMT to the article please? It's totally not obvious.

I suppose they'll add this info here later: https://wiki.winehq.org/Useful_Registry_Keys


Last edited by Shmerl on 13 April 2017 at 9:12 pm UTC
Shmerl Apr 13, 2017
Witcher 3 in Wine 2.6 with a couple of patch sets from staging (ntdll-Grow_Virtual_Heap and wined3d-buffer_create). CSMT enabled, AMD RX480, ultra settings minus hairworks and ambient occlusion.

Not much has improved. Outside areas that have sunlight are still messed up.




Last edited by Shmerl on 13 April 2017 at 9:01 pm UTC
Tetractys Apr 13, 2017
I really would like to test 2.5 or 2.6 even compiling it.
I'm stuck at wine-staging 2.4. (from the PPA that ceased working due the repository changes).

I'm actually on Mint 18.1. Years ago I was used compiling wine myself but after the arrival of PPA, i stopped to do it. Can anyone suggest me a link where to find a comprehensive but technical recent "How to" regarding compiling wine (2.x) from source?
Thank you in advance for any suggestion!
Shmerl Apr 13, 2017
Quoting: TetractysI really would like to test 2.5 or 2.6 even compiling it.
I'm stuck at wine-staging 2.4. (from the PPA that ceased working due the repository changes).

I'm actually on Mint 18.1. Years ago I was used compiling wine myself but after the arrival of PPA, i stopped to do it. Can anyone suggest me a link where to find a comprehensive but technical recent "How to" regarding compiling wine (2.x) from source?
Thank you in advance for any suggestion!

This is quite useful: https://wiki.winehq.org/Building_Wine

If you need only 64-bit Wine, it's very easy. But if you need WoW64 (with 32-bit support), it becomes more messy (I ended up using lxc containers for that). But lately I'm using custom Wine to test TW3 which is 64-bit. So I simply build 64-bit only.

Also, it's useful to know how to run custom Wine. You just need to set a few environment variables. See here.


Last edited by Shmerl on 13 April 2017 at 9:21 pm UTC
mrdeathjr Apr 13, 2017
Quoting: ShmerlYep, that's it. It should be like this:

csmt_on.reg

REGEDIT4

[HKEY_CURRENT_USER\Software\Wine\Direct3D] 
"csmt"=dword:1


And I removed that staging dll redirect. It's pointless with this.

Holy shit works (need for speed hot pursuit show both cores at 99%, normaly only use 1 core to 99%)

In my case add CSMT in wined3d as dword as your said with 1 in value

Many thanks

Update: in hot pursuit use both cores at 99% but performance remains equal

^_^


Last edited by mrdeathjr on 13 April 2017 at 9:24 pm UTC
Tetractys Apr 13, 2017
Quoting: ShmerlThis is quite useful: https://wiki.winehq.org/Building_Wine

If you need only 64-bit Wine, it's very easy. But if you need WoW64 (with 32-bit support), it becomes more messy (I ended up using lxc containers for that). But lately I'm using custom Wine to test TW3 which is 64-bit. So I simply build 64-bit only.

Also, it's useful to know how to run custom Wine. You just need to set a few environment variables.

Thanks! I'll follow the LXC path since I need the 32-bit installation too (Eve Online).
mrdeathjr Apr 13, 2017
Quoting: Guest
Quoting: mrdeathjrHoly shit works (need for speed hot pursuit show both cores at 99%, normaly only use 1 core to 99%)
Nice!
Do you think this will fix WOW only using 1 core too?

Maybe but at simple seek test various titles and performance remains equal

However in henri verbeet multi-threaded command stream implementation commit appears more information about performance issue

Quotehttps://source.winehq.org/git/wine.git/commit/e97ed10d09a94cae9bd449f297813a0f0722a378

wined3d: Introduce a multi-threaded command stream implementation.

The primary purpose of this patch is to serialise draws
from multiple threads, without the overhead of extra flushes
that "StrictDrawOrdering" imposes.

With additional work, offloading state processing and driver
overhead to a separate thread may also allow for improved
performance in some applications, but that's not a goal of this patch.

^_^


Last edited by mrdeathjr on 14 April 2017 at 12:00 am UTC
While you're here, please consider supporting GamingOnLinux on:

Reward Tiers: Patreon. Plain Donations: PayPal.

This ensures all of our main content remains totally free for everyone! Patreon supporters can also remove all adverts and sponsors! Supporting us helps bring good, fresh content. Without your continued support, we simply could not continue!

You can find even more ways to support us on this dedicated page any time. If you already are, thank you!
The comments on this article are closed.