Hi,
we have a DX9ex application that uses multiple GPUs and each GPU has 2 heads (NVIDIA K600).
This application runs fine on Windows 7 but we experiencing problems on Windows 10.
The application is rendering to 4 displays.
It uses the following DX9ex methods to determine if a frame (for a certain swapchain) has been rendered to the display:
IDirect3DSwapChain9Ex::GetPresentStats(&stat);
IDirect3DSwapChain9Ex::GetLastPresentCount(&id);
if((stat.PresentCount == id) ==> we render the next frame to prevent buffering and increasing latency.
The application does runs on Windows 10 one or two GPUs.
But there is a problem if we use the second head on one of each of the GPUs.
In other words the APIs do work when running without the second head (works when using 2 GPUs each one head).
In this situation the results returned by GetPresentStats and GetLastPresentCount don't seem to make sense anymore
(note the return values are not zero). The check (stat.PresentCount == id) fails and our rendering loop fails.
Can anybody shed some light on this?
Configuration:
- Windows 10 version 10.0.14393
- DX9ex
- NVIDIA driver 376.63.
- 2 x NVIDIA K600 graphics cards