This forces mesa LLVMPIPE driver to use only one thread, and greatly reduces its memory usage. The driver otherwises uses much more memory than another driver would and often exhaust VM space in 32bit tests.
I believe this should fix several D3D/D2D/DShow test failures which are plaging Gitlab CI.
-- v2: gitlab: Run tests with LP_NUM_THREADS=4 env var.
From: Rémi Bernon rbernon@codeweavers.com
This forces mesa LLVMPIPE driver to use a fixed number of threads, and greatly reduces its memory usage from the $(nproc) default. On Gitlab this is 32 threads, which often exhaust VM space in 32bit tests. --- tools/gitlab/test.yml | 1 + 1 file changed, 1 insertion(+)
diff --git a/tools/gitlab/test.yml b/tools/gitlab/test.yml index aaae5671843..4e0b6d75983 100644 --- a/tools/gitlab/test.yml +++ b/tools/gitlab/test.yml @@ -21,6 +21,7 @@ - export PATH=$BASEDIR/usr/local/bin:$PATH - export DISPLAY=:0 - export LC_ALL=C.UTF-8 + - export LP_NUM_THREADS=4 - export WINEDEBUG=err-all,fixme-all - | cat >$HOME/xorg.conf << EOF
v2: Use 4 threads instead. I don't know if it was related but there was a unusual number of failures after reducing to 1 llvmpipe thread.
In any case I think this is something that we need to set on Gitlab, because the default is otherwise to use `nproc` threads, which ends up with spawning 32 threads on our CI runner, probably very unnecessary and wasteful, and very likely causing 32 bit tests VM exhaustion.
It's not very easy to reproduce the crashes locally for some reason but I could still get lock-ups after forcing 32 llvmpipe threads.
Seems better now with only the msxml3:domdoc failure (fixed with https://gitlab.winehq.org/wine/wine/-/merge_requests/4149), and some classic user32:win focus stealing.