https://bugs.winehq.org/show_bug.cgi?id=54757
Bug ID: 54757 Summary: d3d11:d3d11 - test_resource_access() sometimes triggers a wined3d assertion Product: Wine Version: unspecified Hardware: x86-64 OS: Linux Status: NEW Severity: normal Priority: P2 Component: d3d Assignee: wine-bugs@winehq.org Reporter: fgouget@codeweavers.com Distribution: ---
d3d11:d3d11 - test_resource_access() sometimes triggers a wined3d assertion:
d3d11.c:15552: Test marked todo: Feature level 0xb100: Got hr 0 for WRITE. Assertion failed: bo->b.map_ptr, file ../wine/dlls/wined3d/context_gl.c, line 3049 d3d11:d3d11:06e8 done (3) in 9s 15479B
See https://test.winehq.org/data/patterns.html#d3d11:d3d11
The assertion always happens after the same trace so it is likely caused by this test_resource_access() line:
15552 check_resource_cpu_access(context, resource, 15553 texture_desc.Usage, texture_desc.BindFlags, texture_desc.CPUAccessFlags); 15554 ID3D11Resource_Release(resource);
And the assertion happens in wined3d_context_gl_unmap_bo_address():
3049 assert(bo->b.map_ptr);
The oldest known instance happened on 2023-02-23 and there has been about one further failure per week since, all in the pure 32-bit tests on the debian11 TestBot VM.
https://bugs.winehq.org/show_bug.cgi?id=54757
François Gouget fgouget@codeweavers.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |source, testcase
https://bugs.winehq.org/show_bug.cgi?id=54757
Zeb Figura z.figura12@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |z.figura12@gmail.com
--- Comment #1 from Zeb Figura z.figura12@gmail.com --- My guess is that it fails to map, presumably by virtue of running out of address space. Do we have stderr from any of the relevant runs?
https://bugs.winehq.org/show_bug.cgi?id=54757
--- Comment #2 from François Gouget fgouget@codeweavers.com --- Yes, here for instance: https://testbot.winehq.org/JobDetails.pl?Key=131163&f103=task.log#k103
I think this confirms the out-of-memory issue. The next question is why does this happen? And is an assert the right way to handle this?
06ec:fixme:d3d:wined3d_guess_card No card selector available for card vendor 0000 (using GL_RENDERER "llvmpipe (LLVM 11.0.1, 256 bits)"). 052c:fixme:d3d:wined3d_buffer_gl_binding_from_bind_flags Unhandled bind flags 0x20. 052c:err:d3d:wined3d_debug_callback 001A35D8: "GL_OUT_OF_MEMORY in glBufferStorage". 052c:err:d3d:wined3d_debug_callback 001A35D8: "GL_INVALID_OPERATION in glGetTexImage(out of bounds PBO access)". 052c:err:d3d:wined3d_debug_callback 001A35D8: "GL_INVALID_VALUE in glMapBufferRange(offset 0 + length 67108864 > buffer_size 0)". 052c:err:d3d:wined3d_allocator_chunk_gl_map Failed to map chunk memory. 052c:err:d3d:wined3d_bo_gl_map Failed to map chunk. 052c:err:d3d:wined3d_context_gl_map_bo_address Failed to map bo. Running: d3d11:d3d11 (103 of 770) Running tests - 2 failures