Announcement

Collapse
No announcement yet.

Wine 3.10 vs. Ubuntu 18.04 vs. Windows 10 Desktop Performance

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

  • artivision
    replied
    Originally posted by Michael View Post

    I guess you didn't read the text of the article to understand the point of these benchmarks.
    Please consider benchmarks with WINE ESYNC and DXVK benchmarks.

    Leave a comment:


  • duby229
    replied
    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.
    Profile wine then.... What you'll see is definitely not what you describe....

    Leave a comment:


  • lectrode
    replied
    Originally posted by coder111 View Post
    Oh, 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...
    Never heard of that game, but it's cool that it runs under WINE. Since you already own it and have it working, why not add it yourself along with your experience and WINE version? It'd probably take all of 10 minutes.

    Leave a comment:


  • Dar13
    replied
    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.
    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.

    Leave a comment:


  • Weasel
    replied
    Dude, I don't measure performance by CPU usage. I measure it by the FPS I'm getting in the game.

    Leave a comment:


  • duby229
    replied
    Originally posted by Weasel View Post
    I 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.
    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.
    Last edited by duby229; 25 June 2018, 08:47 AM.

    Leave a comment:


  • Weasel
    replied
    Originally posted by duby229 View Post
    It'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!
    I 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.

    Leave a comment:


  • duby229
    replied
    Originally posted by sdack View Post
    Is this with a specific game?
    It'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!
    Last edited by duby229; 25 June 2018, 06:54 AM.

    Leave a comment:


  • coder111
    replied
    Pretty impressive performance overall.

    I can confirm the poor file creation performance though. I recently installed Stars in Shadow under Wine that unpacked ~40000 files (quite stupid to have that many files, but nothing I can do). Even with an SSD, as far as I remember it took ~2 hours. Oh, 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...

    Leave a comment:


  • sdack
    replied
    Originally posted by duby229 View Post
    Yes CSMT causes major issus. It causes massive amounts context switching. It forces every core to constantly flush and refill over and over. When you turn on CSMT and you see every core hit 100% CPU use, that's not because those cores are busy, instead it's because they are -NOT- busy at all and only flushing and refilling. Just because CSMT thrashes your CPU doesn't mean its doing anything useful, its actually not.
    Is this with a specific game?

    Leave a comment:

Working...
X