In Wine, when dxvk d3d11.dll+dxgi.dll is installed to c:/windows/system32, SpecialK can still be hooked as local dxgi.dll/d3d11.dll placed next to applications
When loaded that way (SpecialK hooking DXVK d3d11.dll and dxgi.dll), below can be observed:
- SpecialK actually hooks correctly, I was interested in the texture modding feature and both dumping and injecting were working
- However Performance is degraded
- Built in fps counter shows double actual application framerate
While I have not performed any runtime tracing to confirm this, this is likely caused by the fact that dxvk DxgiSwapChain::Present just calls DxgiSwapChain::Present1 with null pPresentParameters, firing both Present and Present1 hooks when an application uses Present
https://github.com/doitsujin/dxvk/blob/2b70ba8f7798107308a0c34358a9e83e77017dfd/src/dxgi/dxgi_swapchain.cpp#L305-L307
Perhaps a config options should be added to skip either DxgiSwapChain::Present1 or DxgiSwapChain::Present hooking/callback?