[PATCH 1/5] wined3d: Use the chunk allocator for GL indirect draw buffers.

Zebediah Figura zfigura at codeweavers.com
Wed Feb 2 19:11:10 CST 2022


On 2/2/22 16:22, Alexandre Julliard wrote:
> Zebediah Figura <zfigura at codeweavers.com> writes:
> 
>> From: Henri Verbeet <hverbeet at codeweavers.com>
>>
>> Signed-off-by: Zebediah Figura <zfigura at 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.



More information about the wine-devel mailing list