| 219 | } |
| 220 | |
| 221 | bool NvApi::loadAftermath() |
| 222 | { |
| 223 | m_nvAftermathDll = bx::dlopen( |
| 224 | "GFSDK_Aftermath_Lib." |
| 225 | #if BX_ARCH_32BIT |
| 226 | "x86" |
| 227 | #else |
| 228 | "x64" |
| 229 | #endif // BX_ARCH_32BIT |
| 230 | ".dll" |
| 231 | ); |
| 232 | |
| 233 | if (NULL != m_nvAftermathDll) |
| 234 | { |
| 235 | nvAftermathDx11Initialize = (PFN_NVAFTERMATH_DX11_INITIALIZE )bx::dlsym(m_nvAftermathDll, "GFSDK_Aftermath_DX11_Initialize"); |
| 236 | nvAftermathDx11CreateContextHandle = (PFN_NVAFTERMATH_DX11_CREATECONTEXTHANDLE)bx::dlsym(m_nvAftermathDll, "GFSDK_Aftermath_DX11_CreateContextHandle"); |
| 237 | nvAftermathDx12Initialize = (PFN_NVAFTERMATH_DX12_INITIALIZE )bx::dlsym(m_nvAftermathDll, "GFSDK_Aftermath_DX12_Initialize"); |
| 238 | nvAftermathDx12CreateContextHandle = (PFN_NVAFTERMATH_DX12_CREATECONTEXTHANDLE)bx::dlsym(m_nvAftermathDll, "GFSDK_Aftermath_DX12_CreateContextHandle"); |
| 239 | nvAftermathReleaseContextHandle = (PFN_NVAFTERMATH_RELEASECONTEXTHANDLE )bx::dlsym(m_nvAftermathDll, "GFSDK_Aftermath_ReleaseContextHandle"); |
| 240 | nvAftermathSetEventMarker = (PFN_NVAFTERMATH_SETEVENTMARKER )bx::dlsym(m_nvAftermathDll, "GFSDK_Aftermath_SetEventMarker"); |
| 241 | nvAftermathGetData = (PFN_NVAFTERMATH_GETDATA )bx::dlsym(m_nvAftermathDll, "GFSDK_Aftermath_GetData"); |
| 242 | nvAftermathGetDeviceStatus = (PFN_NVAFTERMATH_GETDEVICESTATUS )bx::dlsym(m_nvAftermathDll, "GFSDK_Aftermath_GetDeviceStatus"); |
| 243 | nvAftermathGetPageFaultInformation = (PFN_NVAFTERMATH_GETPAGEFAULTINFORMATION )bx::dlsym(m_nvAftermathDll, "GFSDK_Aftermath_GetPageFaultInformation"); |
| 244 | |
| 245 | bool initialized = true |
| 246 | && NULL != nvAftermathDx11Initialize |
| 247 | && NULL != nvAftermathDx11CreateContextHandle |
| 248 | && NULL != nvAftermathDx12Initialize |
| 249 | && NULL != nvAftermathDx12CreateContextHandle |
| 250 | && NULL != nvAftermathReleaseContextHandle |
| 251 | && NULL != nvAftermathSetEventMarker |
| 252 | && NULL != nvAftermathGetData |
| 253 | && NULL != nvAftermathGetDeviceStatus |
| 254 | && NULL != nvAftermathGetPageFaultInformation |
| 255 | ; |
| 256 | |
| 257 | if (initialized) |
| 258 | { |
| 259 | return true; |
| 260 | } |
| 261 | |
| 262 | shutdownAftermath(); |
| 263 | } |
| 264 | |
| 265 | return false; |
| 266 | } |
| 267 | |
| 268 | bool NvApi::initAftermath(const ID3D11Device* _device, const ID3D11DeviceContext* _deviceCtx) |
| 269 | { |