Tested on SKL.
The d3d12 test suite can be run using the command:
tests/d3d12 or by running make check
d3d12:3758: Test failed: Got 0xbf4c8019, expected 0xbf95bc59 at (0, 0, 0).
d3d12:3818: Test failed: Got 0xff00ff00, expected 0xff0000ff at (0, 0, 0).
d3d12:3818: Test failed: Got 0xff00ff00, expected 0xffff0000 at (0, 0, 0).
For comparision the test passes on RADV.
Instructions for building the Vkd3d test suite:
Source code: git://source.winehq.org/git/vkd3d.git
Updated Spriv headers may be needed:
CPPFLAGS="-I/home/tarceri/git/SPIRV-Headers/include -I/home/tarceri/git/Vulkan-Headers/include" ./configure
Also an undated version of widl (a tool in the wine project) may be needed:
Then pass the new build to configure for Vkd3d e.g.
Created attachment 142718 [details]
Aub dump with simplified test
I've reduced the test to clear & resolve 2 layers only.
The clear color of layer0 ends up in the layer1.
Adding a texture cache invalidate between resolve of layer 0 & 1 fixes the issue. Not quite sure what's going on here...
Created attachment 142719 [details] [review]
The attached patch (which I haven't even compile-tested) should fix the issue with MCS partial resolves. We also should probably stop even doing them in anv (as per Lionel's patch).
Created attachment 142720 [details] [review]
The new patch builds.
(In reply to Jason Ekstrand from comment #3)
> Created attachment 142720 [details] [review] [review]
> Compile-tested patch
> The new patch builds.
Unfortunately, not fixing the issue :(
I'm writing a new crucible test to track that regression.