https://bugs.winehq.org/show_bug.cgi?id=52089
Bug ID: 52089 Summary: d2d1:d2d1 fails in test_draw_geometry() on Wine Product: Wine Version: unspecified Hardware: x86-64 OS: Linux Status: NEW Severity: normal Priority: P2 Component: d2d Assignee: wine-bugs@winehq.org Reporter: fgouget@codeweavers.com Distribution: ---
d2d1:d2d1 fails in test_draw_geometry() on the TestBot's debiant2 VM:
d2d1.c:6664: Test failed: Figure does not match. d2d1.c:6672: Test failed: Figure does not match. d2d1.c:6680: Test failed: Figure does not match. d2d1.c:6688: Test failed: Figure does not match. d2d1.c:6664: Test failed: Figure does not match. d2d1.c:6672: Test failed: Figure does not match. d2d1.c:6680: Test failed: Figure does not match. d2d1.c:6688: Test failed: Figure does not match. (todos omitted for brevity)
https://test.winehq.org/data/patterns.html#d2d1:d2d1
A bisect shows that the failures started with this commit:
commit 044f5e109fd7bdb5a3c172240d6195faa87a1dce (HEAD, refs/bisect/bad) Author: Stefan Dösinger stefan@codeweavers.com Date: Wed Nov 3 20:15:28 2021 +0300
wined3d: Test if an offset is needed to get the correct filling convention.
This fixes stray lines in GameFace GUIs, e.g. in World of Tanks.
Signed-off-by: Stefan Dösinger stefan@codeweavers.com Signed-off-by: Henri Verbeet hverbeet@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org
https://bugs.winehq.org/show_bug.cgi?id=52089
François Gouget fgouget@codeweavers.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Regression SHA1| |044f5e109fd7bdb5a3c172240d6 | |195faa87a1dce Keywords| |regression, source, | |testcase
https://bugs.winehq.org/show_bug.cgi?id=52089
Stefan Dösinger stefan@codeweavers.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |stefan@codeweavers.com
--- Comment #1 from Stefan Dösinger stefan@codeweavers.com --- I can't reproduce this or 52090 on my Nvidia card here. I have an old geforce 460 something hanging around, I'll try on that one. Otherwise I'll have to remote debug.
https://bugs.winehq.org/show_bug.cgi?id=52089
--- Comment #2 from Stefan Dösinger stefan@codeweavers.com --- I tested this now on one of my older Geforce GPUs that most closely matches the GTX 470 in debiant2:
OpenGL renderer string: GeForce GTX 460/PCIe/SSE2 OpenGL core profile version string: 4.6.0 NVIDIA 390.144
The driver is the newest one available for this card.
The d2d1 tests pass fine
0020:d2d1: 10022 tests executed (166 marked as todo, 0 failures), 1 skipped.
Which driver version is this machine using? I originally had the 340 driver running for this card, which is missing some features needed for d3d11 and d2d1 and d3d11 just flat-out skipped everything. With the 390 driver at least this problem is solved and the tests do something useful.
https://bugs.winehq.org/show_bug.cgi?id=52089
--- Comment #3 from François Gouget fgouget@codeweavers.com --- debiant2 is a regular QEmu VM so it does not have an NVidia card, only a pair of QXL emulated GPUs. From the VM description on the TestBot:
[CPU:4*host RAM:3GB disk:virtio-scsi eth:virtio snd:ich9 GPU:qxl display:spice testagentd:1.9]
Maybe you mixed up this bug with another one?
https://bugs.winehq.org/show_bug.cgi?id=52089
--- Comment #4 from Stefan Dösinger stefan@codeweavers.com --- Probably yeah. So Mesa software? Can I get the glxinfo output for exact SW versions etc somewhere?
https://bugs.winehq.org/show_bug.cgi?id=52089
--- Comment #5 from Stefan Dösinger stefan@codeweavers.com --- The tests pass on Radeon (unsurprisingly, I tested on that before I sent them). LIBGL_ALWAYS_SOFTWARE=1 seems broken on my system and just segfaults, I'll have to investigate why.
https://bugs.winehq.org/show_bug.cgi?id=52089
--- Comment #6 from François Gouget fgouget@codeweavers.com --- Sure you can run glxinfo:
--- a/configure.ac +++ b/configure.ac @@ -3752,6 +3752,10 @@ AC_CONFIG_COMMANDS([Makefile], [wine_fn_output_makefile Makefile], # sgmlpages: compile sgml source for the Wine API Guide # xmlpages: compile xml source for the Wine API Guide
+debug: + DISPLAY=:0.0 glxinfo + exit 1 + m4_set_foreach([_AC_SUBST_VARS],[var],[var = $var ])$SET_MAKE $wine_rules
See the end of the log: https://testbot.winehq.org/JobDetails.pl?Key=102983&f101=task.log#k101
https://bugs.winehq.org/show_bug.cgi?id=52089
Stefan Brüns stefan.bruens@rwth-aachen.de changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |stefan.bruens@rwth-aachen.d | |e
--- Comment #7 from Stefan Brüns stefan.bruens@rwth-aachen.de --- (In reply to Stefan Dösinger from comment #5)
The tests pass on Radeon (unsurprisingly, I tested on that before I sent them). LIBGL_ALWAYS_SOFTWARE=1 seems broken on my system and just segfaults, I'll have to investigate why.
This is apparently triggered by GL_EXT_memory_object, more specifically this part: https://github.com/wine-mirror/wine/blob/master/dlls/wined3d/adapter_gl.c#L3...
Fortunately, one can disable specific extensions: https://docs.mesa3d.org/envvars.html#core-mesa-environment-variables
$> LIBGL_ALWAYS_SOFTWARE=1 MESA_EXTENSION_OVERRIDE="-GL_EXT_memory_object" wine ./dlls/d2d1/tests/d2d1_test.exe
... 0130:d2d1: Silenced 0 todos, 0 skips and 840 traces. 0130:d2d1: 10363 tests executed (166 marked as todo, 0 failures), 1 skipped.
glxinfo | grep -E 'Vendor|Device' Vendor: Mesa/X.org (0xffffffff) Device: llvmpipe (LLVM 13.0.0, 256 bits) (0xffffffff)
Intel Haswell is also fine (same result): Vendor: Intel Open Source Technology Center (0x8086) Device: Mesa DRI Intel(R) HD Graphics 4400 (HSW GT2) (0xa16)
https://bugs.winehq.org/show_bug.cgi?id=52089
--- Comment #8 from Stefan Brüns stefan.bruens@rwth-aachen.de --- https://gitlab.freedesktop.org/mesa/mesa/-/issues/5865
https://bugs.winehq.org/show_bug.cgi?id=52089
--- Comment #9 from Stefan Dösinger stefan@codeweavers.com --- Yeah the memory object crash was easy to find via a backtrace.
That said, the tests don't pass for me here:
stefan@grey ~/build/_wine64/dlls/d2d1/tests $ LIBGL_ALWAYS_SOFTWARE=1 MESA_EXTENSION_OVERRIDE="-GL_EXT_memory_object" WINEDEBUG=-all make test make[1]: Entering directory '/home/stefan/build/_wine64' ../../src/wine/tools/runtest -q -P wine -T . -M d2d1.dll -p dlls/d2d1/tests/d2d1_test.exe d2d1 && touch dlls/d2d1/tests/d2d1.ok d2d1.c:6777: Test failed: Figure does not match. d2d1.c:6785: Test failed: Figure does not match. d2d1.c:6793: Test failed: Figure does not match. d2d1.c:6801: Test failed: Figure does not match. d2d1.c:9231: Tests skipped: Failed to create REF d3d device, hr 0x80004005. d2d1.c:6777: Test failed: Figure does not match. d2d1.c:6785: Test failed: Figure does not match. d2d1.c:6793: Test failed: Figure does not match. d2d1.c:6801: Test failed: Figure does not match. make[1]: *** [Makefile:25586: dlls/d2d1/tests/d2d1.ok] Error 8
Mesa version:
OpenGL renderer string: llvmpipe (LLVM 13.0.0, 256 bits) OpenGL core profile version string: 4.5 (Core Profile) Mesa 21.3.4
I'll try it with Mesa git
https://bugs.winehq.org/show_bug.cgi?id=52089
--- Comment #10 from Stefan Dösinger stefan@codeweavers.com --- With Mesa 22.0.0-devel (git-afdfcdd542) I get the same d2d1 test failures with llvmpipe.
https://bugs.winehq.org/show_bug.cgi?id=52089
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Fixed by SHA1| |ff558c63ff9abb3d52888258fe8 | |b57e87117d1fc Status|NEW |RESOLVED Resolution|--- |FIXED
--- Comment #11 from Alexandre Julliard julliard@winehq.org --- This no longer fails, probably fixed by ff558c63ff9abb3d52888258fe8b57e87117d1fc.
https://bugs.winehq.org/show_bug.cgi?id=52089
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #12 from Alexandre Julliard julliard@winehq.org --- Closing bugs fixed in 8.0-rc4.