On Tue, 24 Mar 2020 at 12:22, Zhiyi Zhang zzhang@codeweavers.com wrote:
dlls/d3d8/device.c | 5 ++++- dlls/d3d9/device.c | 5 ++++- dlls/wined3d/device.c | 5 +++-- dlls/wined3d/wined3d.spec | 2 +- include/wine/wined3d.h | 3 ++- 5 files changed, 14 insertions(+), 6 deletions(-)
This seems wrong, or at least suspicious. For one, we have wined3d_swapchain_get_output(), which we could use with the device's implicit swapchain to get the corresponding output. More importantly, the check against the display mode what introduced in a98ccb543d25cfe7047fe65d91609080ca2ede8b with a reference to MSDN, but no further details, and no tests as far as I'm aware. So just to list a couple of possibilities: - MSDN is lying; we don't need to check this. - The check is only supposed to happen in fullscreen mode. - The check is supposed to happen against *any* output instead of the semi-random current one. - The check is supposed to happen against *all* outputs. - The check is supposed to happen against the backbuffer/frontbuffer/window dimensions of the implicit swapchain. - Like the previous possibility, but against all swapchains.