CSMT patch

Sebastian Lackner sebastian at fds-team.de
Wed Dec 24 09:50:48 CST 2014


On 24.12.2014 10:20, Emanuele Oriani wrote:
> Hi Wine Devs/Stefan,
> 
> Can you please give us an update in regards to the CSMT patch?
> 
> Do you plan to integrate it in mainline? If not "officially", would be possible to have it in as an experimental code-path (default off)?
> What are the obstacles of making this happen? What is your view?
> 
> Again, I believe this patch is superior to just NVIDIA Threaded Optimizations; on applications such as Starcraft II I get +150% FPS and performance is comparable to windows (if not better).
> I believe many other games would benefit from this great improvement.
> 
> Cheers,
> Emanuele
> 
> 

Hi Emanuele,

I am not directly involved in d3d development, but this is the last information from the mailinglist:

Quote by Stefan Dösinger:
> I stopped working on upstreaming the command stream after you [=Henri Verbeet] made a
> d3d10/11-like resource interface the de-facto requirement for merging
> location management in a (sub-) resource class
> (https://www.winehq.org/pipermail/wine-patches/2013-October/127312.html,
> and later on a series that introduced a subresource class in the wrong
> way). I worked on moving away some surface and volume methods as time
> permitted but gave up on upstreaming the CS until you're done with
> d3d10/d2d.
( https://www.winehq.org/pipermail/wine-devel/2014-October/105376.html )

Since d3d10/d2d is still far away from being complete this most likely means that CSMT will not be included anytime soon.
We from the Wine Staging team decided to include the patches anyway (in Wine >= 1.7.33), and allow to enable/disable the whole CSMT patchset at runtime using winecfg. Fedora users do not even have to install a third party Wine version because our patchset is included in the official one.

See:
* https://github.com/wine-compholio/wine-staging
* https://github.com/wine-compholio/wine-staging/wiki/CSMT
* http://www.wine-staging.com/install.html

The main difference between our patchset and Stefan Dösingers official CSMT patchset out there: When CSMT is disabled in our version, the wined3d code is (almost) identical to upstream Wine. We decided for this approach because for some apps we noticed regressions, even when CSMT was turned off using the registry switch. While adding the patchset we also fixed some obviously incorrect memory accesses:
https://github.com/wine-compholio/wine-staging/blob/master/patches/wined3d-CSMT_Main/0174-wined3d-Fix-some-uninitialized-memory-accesses.patch

@Stefan Dösinger: I am not sure if you have already seen my latest answer on https://github.com/wine-compholio/wine-staging/issues/201, would be nice if you guys could cooperate to simplify the task of providing a CSMT and a non-CSMT wined3d version. :)

Best regards,
Sebastian





More information about the wine-devel mailing list