The set of APIs defined for testing a D3D SwapChain for G-Sync compatibility / active state appears to have never been updated to support D3D12 surfaces.
NvAPI_D3D_IsGSyncActive
NvAPI_D3D_IsGSyncCapable
NvAPI_D3D_GetObjectHandleForResource
These have been my goto solution for reporting G-Sync status to users in my overlay for years, they work well for D3D9/10/11, but I cannot get them to work using a SwapChain backbuffer that belongs to a D3D12 SwapChain.
I believe the API needs to be updated, my users are frustrated that I cannot report G-Sync status in their D3D12 games. I know that as a general rule, G-Sync engages when the SwapChain is:
- Flip Model
- Backbuffer Dimensions Match Containing Output
- No other window obscures the game
But rather than provide an educated guess on G-Sync engagement to users, it would be great if an actual status check using NvAPI were possible.
Is there some secret way to query G-Sync status in D3D12 that I just do not know about, or does the API need updating? Thank you.