Bug 106445 - No Threading
Summary: No Threading
Status: RESOLVED INVALID
Alias: None
Product: Mesa
Classification: Unclassified
Component: Mesa core (show other bugs)
Version: git
Hardware: x86-64 (AMD64) Linux (All)
: medium major
Assignee: mesa-dev
QA Contact: mesa-dev
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2018-05-09 03:23 UTC by Zacharybinx34
Modified: 2018-05-09 22:59 UTC (History)
0 users

See Also:
i915 platform:
i915 features:


Attachments

Description Zacharybinx34 2018-05-09 03:23:56 UTC
Mesa needs threading like NVidia card drivers. 

Please add. 

Thank you!!
Comment 1 Kenneth Graunke 2018-05-09 03:50:56 UTC
Mesa already does have threading support similar to the NVIDIA drivers.

Threading is currently enabled via an application whitelist, as it's helpful for certain games, but hurts others.  You can see the current whitelist here:

   https://cgit.freedesktop.org/mesa/mesa/tree/src/util/drirc

If you'd like to force threading to be enabled, just set an environment variable before running the application:

   export mesa_glthread=true

If it helps a particular game, feel free to submit a patch adding the binary name to drirc, so we can whitelist it for everyone.

The radeonsi driver also makes use of threading to offload a bunch of work.  It also has threaded shader compilation.

Currently, none of the above work on the Intel i965 driver.  If that's the hardware you're interested in, feel free to reopen this.
Comment 2 Zacharybinx34 2018-05-09 05:26:36 UTC
Could you add it for Cemu with Wine?
Comment 3 Zacharybinx34 2018-05-09 06:47:25 UTC
Could you optimize it for better performance with Cemu please? Just compare amd on linux vs nvidia.
Comment 4 Timothy Arceri 2018-05-09 07:12:27 UTC
Cemu uses OpenGLs compatibility profile (requires at least 4.1) which is unsupported in Mesa. Are you running it with overrides? If not it's going to be slow and likely buggy as it will be falling back to less optimal OpenGL code paths.
Comment 5 Eero Tamminen 2018-05-09 08:49:35 UTC
(In reply to Zacharybinx34 from comment #2)
> Could you add it for Cemu with Wine?

As noted above, somebody needs first to do extensive enough testing that threading:
* doesn't cause (additional) functional problems
* it actually improves performance, instead of decreasing it

Before it can be enabled by default in Mesa.

However, in case of Wine and other "emulators" translating 3D commands for the programs run through them, testing results for one emulated program, such as "Cemu", isn't necessarily valid for another emulated program.

Mesa "drirc" mechanism can identify programs (e.g. Wine) only by their binary name, not what they run inside them (e.g. Cemu).

I.e. this kind of whitelist should probably be maintained at Wine side, not Mesa.


Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.