[Bug 52930] New: d3dcompiler_47:hlsl_d3d9 fails randomly on Windows

WineHQ Bugzilla wine-bugs at winehq.org
Fri Apr 29 07:51:16 CDT 2022


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 at winehq.org
          Reporter: fgouget at 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 at 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 at gmail.com>
    Signed-off-by: Henri Verbeet <hverbeet at codeweavers.com>
    Signed-off-by: Alexandre Julliard <julliard at 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.

-- 
Do not reply to this email, post in Bugzilla using the
above URL to reply.
You are receiving this mail because:
You are watching all bug changes.



More information about the wine-bugs mailing list