Alexandre Julliard pushed to branch master at wine / wine
Commits: 984e24d3 by Elizabeth Figura at 2025-02-28T14:14:23+01:00 wined3d: Use a separate format value for d3d10+ NV12.
d3d9 and d3d10 YUV formats generally have completely different behaviour, even after accounting for the fundamental differences between the APIs. d3d9 can blit between YUV and RGB formats, with associated format conversion, and can use the entire resource in blits and clears, whereas d3d10 cannot do either of these things, and must use views of individual planes.
This causes some friction given that we implement d3d9 APIs using views internally. In particular, 4caa93a369b51a9bd8922a3f2cdd02a632b52543 inadvertently breaks clears of d3d1-9 YUV surfaces.
The two formats have almost no actual functionality in common, so address this by using two different format enumerants.
Fixes: 4caa93a369b51a9bd8922a3f2cdd02a632b52543
- - - - - 0fec4504 by Elizabeth Figura at 2025-02-28T14:14:27+01:00 wined3d: Separate a wined3d_texture_vk_upload_plane() helper.
- - - - - 460df139 by Elizabeth Figura at 2025-02-28T14:14:27+01:00 wined3d: Separate a wined3d_texture_vk_download_plane() helper.
- - - - - 6512f638 by Elizabeth Figura at 2025-02-28T14:14:27+01:00 wined3d: Implement planar Vulkan uploads.
- - - - - 4cdfcd83 by Elizabeth Figura at 2025-02-28T14:14:27+01:00 wined3d: Implement planar Vulkan downloads.
- - - - - 8209120f by Elizabeth Figura at 2025-02-28T14:14:27+01:00 wined3d: Implement planar Vulkan blits.
- - - - - e42c7578 by Elizabeth Figura at 2025-02-28T14:14:27+01:00 wined3d: Enable KHR_sampler_ycbcr_conversion.
- - - - - 4449c41a by Elizabeth Figura at 2025-02-28T14:14:27+01:00 wined3d: Implement planar NV12 in the Vulkan renderer.
- - - - - 0d6a390d by Elizabeth Figura at 2025-02-28T14:14:27+01:00 d3d11/tests: Extend NV12 tests.
- - - - -
9 changed files:
- dlls/d3d11/tests/d3d11.c - dlls/d3d11/utils.c - dlls/d3d9/tests/visual.c - dlls/dxgi/utils.c - dlls/wined3d/adapter_vk.c - dlls/wined3d/texture.c - dlls/wined3d/utils.c - dlls/wined3d/wined3d_vk.h - include/wine/wined3d.h
View it on GitLab: https://gitlab.winehq.org/wine/wine/-/compare/fe4e5225e45fd8bbdf262b3efe375d...