Henri Verbeet pushed to branch master at wine / vkd3d
Commits: 101f070f by Giovanni Mascellani at 2025-03-17T15:14:23+01:00 ci: Define VKD3D_TEST_DEBUG when running the CI scripts.
Essentially to make d3d12.log more readable.
- - - - - 8cf61c85 by Giovanni Mascellani at 2025-03-17T15:14:23+01:00 tests: Mark a few other timestamp query tests as buggy on MoltenVK.
Similarly to 5d4edba925537bf0b0b1dbb755439d09219306b9, it seems that sometimes MoltenVK returns 0 to timestamp queries. It doesn't happen deterministically and it might depend on the hardware (I have seen differences between the M2 I used some time ago and the M3 Max I have now).
- - - - - c3f01d7d by Giovanni Mascellani at 2025-03-17T15:14:23+01:00 tests: Mark two other tessellation tests as buggy on MoltenVK.
I haven't investigated the actual problem here, but the generated Vulkan commands look correct (and work with basically all other Vulkan implementations) and MoltenVK is known to have incomplete tessellation support, so it's likely that the problem is there.
- - - - - 44072062 by Giovanni Mascellani at 2025-03-17T15:14:23+01:00 tests: Transition texture state to inherit aliased data.
When textures[1] is read for the second time it is aliased to textures[0]. But textures[0] was left in COPY_DEST state (since its creation), and textures[1] is currently recreated in COPY_SOURCE state, which AFAIU is invalid. So recreate textures[1] in COPY_DEST state and then transition it before reading it.
- - - - - e418bbcf by Giovanni Mascellani at 2025-03-17T15:14:23+01:00 tests: Mark a test about resource aliasing as todo on MoltenVK.
As far as I know there is no way to implement this properly on Vulkan, and all the other Vulkan implementations essentially work by luck. In Vulkan the initial layout of a resource must always be UNDEFINED or PREINITIALIZED and it must be transitioned away from before any meaningful use of that image is done. Therefore it's possible to alias two images and let the second one inherit the content in the first one only if both already exist (and are in the same layout) before the first writing is done. If, as in this example, the second image is created after the first one has already been written to, the obligatory transition away from UNDEFINED or PREINITIALIZED will potentially wipe out the content.
Therefore I am marking this as todo, not as a bug. I might also be that there is a bug in MoltenVK, and ultimately that's the reason why we're reading invalid data, but technically the Vulkan commands we generate are incorrect anyway.
- - - - -
3 changed files:
- gitlab/build.yml - gitlab/test.yml - tests/d3d12.c
View it on GitLab: https://gitlab.winehq.org/wine/vkd3d/-/compare/0dff53ada79ffc98c848441c86c77...