Originally posted by sdack
View Post
Announcement
Collapse
No announcement yet.
Wine 3.10 vs. Ubuntu 18.04 vs. Windows 10 Desktop Performance
Collapse
X
-
Last edited by duby229; 25 June 2018, 06:54 AM.
-
Originally posted by duby229 View PostIt's not a fault of any game, it's the way that CSMT was designed to constantly be stuck in a spinlock on every core. It doesn't matter what games are tested. Al;though some games are already properly threaded and don't have synchronization problems and when you use CSMT in those apps and games it literally cripples them. On single threaded and lightly threaded games it's not so bad, it still stuck literally doing nothing tho. And Also some graphics drivers are already multithreading the command stream without making this same problem and in those cases CSMT even manages to cripple the graphics driver too!
Note that I'm using wine-staging's CSMT, I don't know about wine-devel's implementation.
Comment
-
Originally posted by Weasel View PostI don't share your experience. CSMT to me improves performance in every single game I tested (yes it also causes higher CPU usage). My guess is that your game utilizes all your cores and the CSMT spinlock over-utilizes your CPU resulting in poor performance. Do you have at least 4 cores?
Note that I'm using wine-staging's CSMT, I don't know about wine-devel's implementation.Last edited by duby229; 25 June 2018, 08:47 AM.
Comment
-
Originally posted by duby229 View Post
You're not understanding at all. What you're seeing is not higher CPU usage, what you are seeing is the CPU literally flushing and refilling the cores over and over again completely pointlessly. And while it's doing that it is incapable of doing anything else, including game threads or graphics driver threads. A context switch literally means a core is incapable of doing anything at all. You think you're seeing a performance improvement, but really all you're seeing is the CPU cores of your processor getting thrashed extremely badly. What you see is the same threads getting flushed and refilled endlessly without ever getting a chance to complete. And it does this on every game and every app. As I said lightly threaded stuff doesn't feel so bad even tho it's still happening just as badly.
- Likes 2
Comment
-
Originally posted by coder111 View PostOh, and by the way, Stars in Shadow runs fine-ish, with some non-game-breaking graphics artifacts (r600+AMD CPU). Someone should add it to appdb...
- Likes 2
Comment
-
Originally posted by Dar13 View Post
Spinlocking reduces the number of user-to-kernel context switches, it usually does not increase them unless there are multiple spinlocking threads on too few cores. This is a strategy used in C#'s mutex implementation to improve contention latency in multi-threaded apps by not immediately giving control back to the kernel, instead entering a spin-wait loop while waiting for the mutex to become available for a small amount of time. It's recommended by the Intel Optimization guide for thread synchronization that's over a short period. Assuming CSMT is using a spinlock-like mutex for its synchronization, the cost of the CPU pipeline flush (which is minimized by use of the PAUSE instruction) is inconsequential compared to the increase of work being done in some/most games especially on higher thread-count systems.
Comment
Comment