Zebediah Figura : wined3d: Recreate swapchain textures in wined3d_swapchain_resize_buffers().
Module: wine Branch: master Commit: ebaa0a9426864cfa6e36955f26ff4c66c1d5af76 URL: https://gitlab.winehq.org/wine/wine/-/commit/ebaa0a9426864cfa6e36955f26ff4c6... Author: Zebediah Figura <zfigura(a)codeweavers.com> Date: Tue Dec 27 13:05:49 2022 -0600 wined3d: Recreate swapchain textures in wined3d_swapchain_resize_buffers(). Instead of using wined3d_texture_update_desc(). This is safe, because: * ddraw never exposes wined3d textures directly, and always retrieves them directly from wined3d when rendering. * d3d8 and d3d9 (non-extended) will only resize buffers during a reset, and resetting is forbidden if the application holds any references to the backbuffers. RTVs are also replaced during a reset, so there is no concern about retrieving the old RTVs from the device state. * d3d9ex allows resetting while holding references to the backbuffers, but tests (fixed by this patch) show that the backbuffers should in fact be recreated. * dxgi forbids holding references to back buffers during ResizeBuffers(), including indirect references via command lists or device contexts. --- dlls/d3d8/device.c | 23 ++++++++++++-- dlls/d3d9/device.c | 78 ++++++++++++++++++++++++++++++++++++++++++++++-- dlls/d3d9/tests/d3d9ex.c | 19 +++++------- dlls/dxgi/swapchain.c | 15 ++++++++-- dlls/wined3d/swapchain.c | 32 +++++++++++++------- 5 files changed, 137 insertions(+), 30 deletions(-)
participants (1)
-
Alexandre Julliard