From 791a3a6f574e26a62fc9049ca4d771d59c42f2ec Mon Sep 17 00:00:00 2001 From: baldurk Date: Wed, 4 Nov 2020 15:16:16 +0000 Subject: [PATCH] Print used nvapi version --- renderdoc/driver/ihv/nv/nvapi_hooks.cpp | 34 ++++++++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-) diff --git a/renderdoc/driver/ihv/nv/nvapi_hooks.cpp b/renderdoc/driver/ihv/nv/nvapi_hooks.cpp index e6ddd7634..3b029d59d 100644 --- a/renderdoc/driver/ihv/nv/nvapi_hooks.cpp +++ b/renderdoc/driver/ihv/nv/nvapi_hooks.cpp @@ -143,6 +143,7 @@ private: #define WHITELIST_NVAPI(fname, ID) #define NVAPI_FUNCS() \ + HOOK_NVAPI(NvAPI_Initialize, 0x0150e828); \ HOOK_NVAPI(NvAPI_D3D11_CreateDevice, 0x6a16d3a0); \ HOOK_NVAPI(NvAPI_D3D11_CreateDeviceAndSwapChain, 0xbb939ee5); \ HOOK_NVAPI(NvAPI_D3D11_IsNvShaderExtnOpCodeSupported, 0x5f68da40); \ @@ -151,7 +152,6 @@ private: HOOK_NVAPI(NvAPI_D3D12_IsNvShaderExtnOpCodeSupported, 0x3dfacec8); \ HOOK_NVAPI(NvAPI_D3D12_SetNvShaderExtnSlotSpace, 0xac2dfeb5); \ HOOK_NVAPI(NvAPI_D3D12_SetNvShaderExtnSlotSpaceLocalThread, 0x43d867c0); \ - WHITELIST_NVAPI(NvAPI_Initialize, 0x0150e828); \ WHITELIST_NVAPI(NvAPI_Unload, 0xd22bdd7e); \ WHITELIST_NVAPI(NvAPI_GetErrorMessage, 0x6c2d048c); \ WHITELIST_NVAPI(NvAPI_GetInterfaceVersionString, 0x01053fa5); @@ -294,6 +294,38 @@ private: } } + static NvAPI_Status __cdecl NvAPI_Initialize_hook() + { + NvAPI_Status ret = nvhooks.NvAPI_Initialize()(); + + if(ret == NVAPI_OK) + { + using PFN_NvAPI_GetInterfaceVersionString = decltype(&::NvAPI_GetInterfaceVersionString); + PFN_NvAPI_GetInterfaceVersionString getver = + (PFN_NvAPI_GetInterfaceVersionString)nvhooks.nvapi_QueryInterface()(0x01053fa5); + + if(getver) + { + NvAPI_ShortString ver = {}; + getver(ver); + if(ver[0]) + RDCLOG("Initialised nvapi, version %s", ver); + else + RDCLOG("Initialised nvapi, unknown version"); + } + else + { + RDCLOG("Initialised nvapi, unknown version"); + } + } + else + { + RDCERR("Error in NvAPI_Initialize: %d", ret); + } + + return ret; + } + static HRESULT __cdecl NvAPI_D3D11_CreateDevice_hook( IDXGIAdapter *pAdapter, D3D_DRIVER_TYPE DriverType, HMODULE Software, UINT Flags, CONST D3D_FEATURE_LEVEL *pFeatureLevels, UINT FeatureLevels, UINT SDKVersion,