On Thu, 3 Feb 2022 at 02:11, Zebediah Figura zfigura@codeweavers.com wrote:
On 2/2/22 16:22, Alexandre Julliard wrote:
Zebediah Figura zfigura@codeweavers.com writes:
From: Henri Verbeet hverbeet@codeweavers.com
Signed-off-by: Zebediah Figura zfigura@codeweavers.com
dlls/wined3d/adapter_gl.c | 1 + dlls/wined3d/context_gl.c | 258 +++++++++++++++++++++++++++++---- dlls/wined3d/device.c | 110 ++++++++++++++ dlls/wined3d/wined3d_private.h | 66 ++++++--- 4 files changed, 390 insertions(+), 45 deletions(-)
That series is causing crashes here:
I can reproduce the same crashes.
The crashes are because we run out of virtual address space. They are introduced by this patch set because we are, for performance reasons, suddenly mapping larger buffers than we strictly need to, and we are doing so $(nproc) times in a single process. In the case of d2d1 at least the main offender seems to be pixel unpack buffers.
Running the tests singlethreaded helps for me. I didn't come across this before because I'd been already running all of the tests singlethreaded anyway, mostly for nouveau reasons.
I don't know what to do about this really. We could potentially limit the number of concurrent tests on 32-bit wine, although determining how far to limit them is not exactly trivial.
Running the tests in separate processes would also help, instead of separate threads in the same process. That might be a better approach.
I suppose my machine doesn't have enough cores to run into this...
One of the issues here is that we do buffer allocation per device instead of per GPU. Unfortunately, for GL in particular, that's not entirely trivial to fix. I suppose we could put an upper limit on the number of worker threads the D3D tests spawn, although that's also a little unfortunate.