https://bugs.winehq.org/show_bug.cgi?id=52930
Bug ID: 52930 Summary: d3dcompiler_47:hlsl_d3d9 fails randomly on Windows Product: Wine Version: unspecified Hardware: x86-64 OS: Windows Status: NEW Severity: normal Priority: P2 Component: directx-d3d-util Assignee: wine-bugs@winehq.org Reporter: fgouget@codeweavers.com
Created attachment 72305 --> https://bugs.winehq.org/attachment.cgi?id=72305 Small patch to apply on top of 58d20aae3772^ to get failures
d3dcompiler_47:hlsl_d3d9 fails randomly on Windows 8.1 to 21H2:
hlsl_d3d9.c:1691: Test failed: Got unexpected hr 0x88760b59. hlsl_d3d9.c:1692: Test failed: Got unexpected blob. hlsl_d3d9.c:1693: Test failed: Got unexpected errors.
https://test.winehq.org/data/patterns.html#d3dcompiler_47:hlsl_d3d9
A bisect against Windows 10 21H1 on cw-gtx560 shows that the failures started with the commit below:
commit 58d20aae3772473a90e43ee236b793f0421eecb1 Author: Eric Pouech eric.pouech@gmail.com Date: Tue Feb 8 19:48:44 2022 +0100
d3dcompiler/tests: Build without -DWINE_NO_LONG_TYPES.
Signed-off-by: Eric Pouech eric.pouech@gmail.com Signed-off-by: Henri Verbeet hverbeet@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org
The patch does not actually make any change that should matter but I have confirmed the bisect result manually:
58d20aae3772^ -> 200 consecutive runs with no failure 58d20aae3772 -> fails after 9 to 33 runs - Applying just the Makefile.in parts and last 4 chunks of hlsl_d3d9.c of that commit is sufficient to get the failures. - Patching only the makefiles is not enough. - I did not try to identify which of the 4 chunks are needed to get failures. They all patch code that's executed after the failure anyway.
So there must be some memory corruption that's sensitive to memory layout or some subtle issue with the generated code.
I also if(0)ed-out all the other test_xxx() functions, and also if(0)ed-out the tests that preceded the failing one in test_include() but I still get the failure so it's not a case where an ill-advised NULL-behavior test causes memory corruption.