Skip to content

iris: Enable u_threaded_context

Kenneth Graunke requested to merge kwg/mesa:iris-thread into master

This series enables u_threaded_context support in iris, leading to some nice performance improvements:

Title Improvement
Civilization VI +17%
Shadow of Mordor +6%
Bioshock Infinite +6%
Xonotic +6%
Counter Strike: Global Offensive +1%
Microbenchmark: GfxBench5 gl_driver2 +58%
Microbenchmark: SynMark2 OglBatch6 +54%

The first few patches are from !8922 (merged) (and should be reviewed there). The next set implement the u_threaded_context thread-safety assumptions so that we're following the rules, and allow rebinding of stream output buffer offsets (needed so u_threaded_context can swap out buffer storage on the fly). Then, we modify the driver to inherit from all the threaded base classes. Finally, we implement the last few hooks and add an environment variable. We enable it by default at the end of this series because I believe it's working and ready to go, but that's kept as a separate patch in case we need to postpone that or revert it in case we find any issues.

Merge request reports