tests: Avoid some crashes on MoltenVK.
Merge request reports
Activity
ok(SUCCEEDED(hr), "Failed to create query heap, type %u, hr %#x.\n", heap_desc.Type, hr); + if (FAILED(hr)) + { + ID3D12PipelineState_Release(pso); + destroy_test_context(&context); + return; + }
So that should have a "bug_if(is_mvk_device(device))", right?
Subject: [PATCH 2/2] tests: Do not create a render target with 8 samples per pixel.
In principle I think it's fine to test 4 samples instead of 8, but I also think the crash is something we'll want to fix. Note also that although 8 is required to be supported, D3D12_FEATURE_MULTISAMPLE_QUALITY_LEVELS also exists; we could potentially check support for different sample counts and skip with bug_if() when a required count is unsupported.
So far my motivation was essentially just avoiding the crash, without really caring whether the bug is in vkd3d, in the driver or elsewhere, or solving anything. The idea is to at least have d3d12 give us a vague estimation of how far it is from being working properly ("vague" because of course the raw number itself has many shortcomings).
However, I'll look into the issues you outline.
In principle I think it's fine to test 4 samples instead of 8, but I also think the crash is something we'll want to fix. Note also that although 8 is required to be supported, D3D12_FEATURE_MULTISAMPLE_QUALITY_LEVELS also exists; we could potentially check support for different sample counts and skip with bug_if() when a required count is unsupported.
Actually, it's worth pointing out that this was a port of part of Wine's d3d11 test_sampleinfo_instruction() test, which takes a similar approach.
added 38 commits
-
8a020fc8...d7427704 - 36 commits from branch
wine:master
- 6dfdbb5c - tests: Do not crash if a pipeline statistics query heap cannot be created.
- d640b213 - tests: Do not crash if the render target doesn't support MSAA 8.
-
8a020fc8...d7427704 - 36 commits from branch