[Bug 51836] New: d3d: Disable CSMT by default if using llvmpipe OpenGL renderer backend

WineHQ Bugzilla wine-bugs at winehq.org
Mon Oct 4 08:20:02 CDT 2021


https://bugs.winehq.org/show_bug.cgi?id=51836

            Bug ID: 51836
           Summary: d3d: Disable CSMT by default if using llvmpipe OpenGL
                    renderer backend
           Product: Wine
           Version: 6.18
          Hardware: x86-64
                OS: Linux
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: directx-d3d
          Assignee: wine-bugs at winehq.org
          Reporter: jinoh.kang.kr at gmail.com
      Distribution: ---

llvmpipe is a software-only OpenGL implementation. It compiles GLSL shaders
into native CPU code using LLVM, offering reasonable graphics performance on
systems where hardware graphics acceleration is otherwise not available.

The problem is that llvmpipe does not play nicely with Wine's CSMT feature.
CSMT assumes the OpenGL backend to be a proxy that submits rendering commands
to GPU, rather than a full-blown computation engine itself. The source and sink
of the comman stream is the CPU itself, and llvmpipe supports direct
multithreading -- making CSMT redundant.

For testing/benchmark, llvmpipe can be activated on Linux with the environment
variable `LIBGL_ALWAYS_SOFTWARE=1`. With CSMT, perf shows
`wined3d_cs_mt_finish` to be the major overhead; without CSMT, the bottleneck
is absent and the app exhibits noticeable performance improvement.

Example glxinfo output on system with llvmpipe enabled:

OpenGL vendor string: Mesa/X.org
OpenGL renderer string: llvmpipe (LLVM 11.0.0, 256 bits)
...
Extended renderer info (GLX_MESA_query_renderer):
    Vendor: Mesa/X.org (0xffffffff)
    Device: llvmpipe (LLVM 11.0.0, 256 bits) (0xffffffff)

-- 
Do not reply to this email, post in Bugzilla using the
above URL to reply.
You are receiving this mail because:
You are watching all bug changes.



More information about the wine-bugs mailing list