Required by Hitman 2. Multiple nodes and command queues are not supported.
Signed-off-by: Conor McCarthy cmccarthy@codeweavers.com --- dlls/dxgi/swapchain.c | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-)
diff --git a/dlls/dxgi/swapchain.c b/dlls/dxgi/swapchain.c index 9e620e0b..fa1bb3d8 100644 --- a/dlls/dxgi/swapchain.c +++ b/dlls/dxgi/swapchain.c @@ -2642,11 +2642,22 @@ static HRESULT STDMETHODCALLTYPE d3d12_swapchain_ResizeBuffers1(IDXGISwapChain3 UINT buffer_count, UINT width, UINT height, DXGI_FORMAT format, UINT flags, const UINT *node_mask, IUnknown * const *present_queue) { - FIXME("iface %p, buffer_count %u, width %u, height %u, format %s, flags %#x, " - "node_mask %p, present_queue %p stub!\n", + struct d3d12_swapchain *swapchain = d3d12_swapchain_from_IDXGISwapChain3(iface); + size_t i; + + TRACE("iface %p, buffer_count %u, width %u, height %u, format %s, flags %#x, " + "node_mask %p, present_queue %p partial stub!\n", iface, buffer_count, width, height, debug_dxgi_format(format), flags, node_mask, present_queue);
- return E_NOTIMPL; + for (i = 0; i < buffer_count; ++i) + { + if (node_mask[i] > 1) + FIXME("Ignoring node mask %#x.\n", node_mask[i]); + if ((ID3D12CommandQueue*)present_queue[i] != swapchain->command_queue) + FIXME("Ignoring present queue %p.\n", present_queue[i]); + } + + return d3d12_swapchain_ResizeBuffers(iface, buffer_count, width, height, format, flags); }
static const struct IDXGISwapChain3Vtbl d3d12_swapchain_vtbl =