diff --git a/OptiScaler/nvapi/fakenvapi/fakenvapi.cpp b/OptiScaler/nvapi/fakenvapi/fakenvapi.cpp index 22a57231..cb22f3b9 100644 --- a/OptiScaler/nvapi/fakenvapi/fakenvapi.cpp +++ b/OptiScaler/nvapi/fakenvapi/fakenvapi.cpp @@ -85,6 +85,13 @@ namespace nvd { return Ok(); } + NvAPI_Status __cdecl NvAPI_GetPhysicalGPUsFromLogicalGPU(NvLogicalGpuHandle hLogicalGPU, NvPhysicalGpuHandle hPhysicalGPU[NVAPI_MAX_PHYSICAL_GPUS], NvU32 *pGpuCount) { + hPhysicalGPU[0] = nullptr; + *pGpuCount = 1; + + return Ok(); + } + NvAPI_Status __cdecl NvAPI_GetErrorMessage(NvAPI_Status status, NvAPI_ShortString szMsg) { std::string error = fromErrorNr(status); spdlog::error("NvAPI_GetErrorMessage gave this error: {}", error); @@ -253,6 +260,14 @@ namespace nvd { return Ok(); } + NvAPI_Status __cdecl NvAPI_Disp_GetHdrCapabilities(NvU32 displayId, NV_HDR_CAPABILITIES *pHdrCapabilities) { + return Ok(); + } + + NvAPI_Status __cdecl NvAPI_Disp_HdrColorControl(NvU32 displayId, NV_HDR_COLOR_DATA *pHdrColorData) { + return Ok(); + } + NvAPI_Status __cdecl NvAPI_Mosaic_GetDisplayViewportsByResolution(NvU32 displayId, NvU32 srcWidth, NvU32 srcHeight, NV_RECT viewports[NV_MOSAIC_MAX_DISPLAYS], NvU8* bezelCorrected) { for (int i = 0; i < NV_MOSAIC_MAX_DISPLAYS; i++) { viewports[i].top = 0; @@ -588,6 +603,26 @@ namespace nvd { return Ok(); } + NvAPI_Status __cdecl NvAPI_SK_1(IUnknown* unknown) { + return Ok(); + } + + NvAPI_Status __cdecl NvAPI_SK_2(IUnknown* unknown) { + return Ok(); + } + + NvAPI_Status __cdecl NvAPI_SK_3(IUnknown* unknown) { + return Ok(); + } + + NvAPI_Status __cdecl NvAPI_SK_4(IUnknown* unknown) { + return Ok(); + } + + NvAPI_Status __cdecl NvAPI_SK_5(IUnknown* unknown) { + return Ok(); + } + NvAPI_Status __cdecl NvAPI_Unload() { lowlatency_ctx.unload(); return Ok(); diff --git a/OptiScaler/nvapi/fakenvapi/fakenvapi.h b/OptiScaler/nvapi/fakenvapi/fakenvapi.h index a4eef3be..cab5a125 100644 --- a/OptiScaler/nvapi/fakenvapi/fakenvapi.h +++ b/OptiScaler/nvapi/fakenvapi/fakenvapi.h @@ -40,6 +40,7 @@ namespace nvd { NvAPI_Status __cdecl NvAPI_GetGPUIDfromPhysicalGPU(NvPhysicalGpuHandle hPhysicalGpu, NvU32* pGpuId); NvAPI_Status __cdecl NvAPI_GetPhysicalGPUFromGPUID(NvU32 gpuId, NvPhysicalGpuHandle* pPhysicalGPU); NvAPI_Status __cdecl NvAPI_GetPhysicalGPUsFromDisplay(NvDisplayHandle hNvDisp, NvPhysicalGpuHandle nvGPUHandle[NVAPI_MAX_PHYSICAL_GPUS], NvU32 *pGpuCount); + NvAPI_Status __cdecl NvAPI_GetPhysicalGPUsFromLogicalGPU(NvLogicalGpuHandle hLogicalGPU, NvPhysicalGpuHandle hPhysicalGPU[NVAPI_MAX_PHYSICAL_GPUS], NvU32 *pGpuCount); NvAPI_Status __cdecl NvAPI_GetErrorMessage(NvAPI_Status status, NvAPI_ShortString szMsg); NvAPI_Status __cdecl NvAPI_GPU_CudaEnumComputeCapableGpus(NV_COMPUTE_GPU_TOPOLOGY* pComputeTopo); NvAPI_Status __cdecl NvAPI_GPU_GetConnectedDisplayIds(NvPhysicalGpuHandle handle, NV_GPU_DISPLAYIDS* displayIds, NvU32* displayCount, NvU32 flags); @@ -55,6 +56,8 @@ namespace nvd { NvAPI_Status __cdecl NvAPI_DISP_GetGDIPrimaryDisplayId(NvU32* displayId); NvAPI_Status __cdecl NvAPI_Disp_SetOutputMode(NvU32 displayId, NV_DISPLAY_OUTPUT_MODE* pDisplayMode); NvAPI_Status __cdecl NvAPI_Disp_GetOutputMode(NvU32 displayId, NV_DISPLAY_OUTPUT_MODE* pDisplayMode); + NvAPI_Status __cdecl NvAPI_Disp_GetHdrCapabilities(NvU32 displayId, NV_HDR_CAPABILITIES *pHdrCapabilities); + NvAPI_Status __cdecl NvAPI_Disp_HdrColorControl(NvU32 displayId, NV_HDR_COLOR_DATA *pHdrColorData); NvAPI_Status __cdecl NvAPI_Mosaic_GetDisplayViewportsByResolution(NvU32 displayId, NvU32 srcWidth, NvU32 srcHeight, NV_RECT viewports[NV_MOSAIC_MAX_DISPLAYS], NvU8* bezelCorrected); NvAPI_Status __cdecl NvAPI_SYS_GetDisplayDriverInfo(NV_DISPLAY_DRIVER_INFO* driverInfo); NvAPI_Status __cdecl NvAPI_SYS_GetDriverAndBranchVersion(NvU32* pDriverVersion, NvAPI_ShortString szBuildBranchString); @@ -88,6 +91,11 @@ namespace nvd { NvAPI_Status __cdecl NvAPI_DRS_DestroySession(NvDRSSessionHandle session); NvAPI_Status __cdecl NvAPI_Unknown_1(IUnknown* unknown, uint32_t* pMiscUnk); NvAPI_Status __cdecl NvAPI_Vulkan_1(IUnknown* unknown); + NvAPI_Status __cdecl NvAPI_SK_1(IUnknown* unknown); + NvAPI_Status __cdecl NvAPI_SK_2(IUnknown* unknown); + NvAPI_Status __cdecl NvAPI_SK_3(IUnknown* unknown); + NvAPI_Status __cdecl NvAPI_SK_4(IUnknown* unknown); + NvAPI_Status __cdecl NvAPI_SK_5(IUnknown* unknown); NvAPI_Status __cdecl NvAPI_Unload(); NvAPI_Status __cdecl Dummy_GetLatency(uint64_t* call_spot, uint64_t* waitTarget, uint64_t* latency, uint64_t* frameTime); } \ No newline at end of file diff --git a/OptiScaler/nvapi/fakenvapi/main.cpp b/OptiScaler/nvapi/fakenvapi/main.cpp index e0335f7a..aa57c66e 100755 --- a/OptiScaler/nvapi/fakenvapi/main.cpp +++ b/OptiScaler/nvapi/fakenvapi/main.cpp @@ -37,6 +37,11 @@ NVAPI_INTERFACE_TABLE additional_interface_table[] = { { "NvAPI_Diag_ReportCallReturn", 0x593e8644 }, { "NvAPI_Unknown_1", 0xe9b009b9 }, { "NvAPI_Vulkan_1", 0x17d13d6 }, + { "NvAPI_SK_1", 0x57f7caac }, + { "NvAPI_SK_2", 0x11104158 }, + { "NvAPI_SK_3", 0xe3795199 }, + { "NvAPI_SK_4", 0xdf0dfcdd }, + { "NvAPI_SK_5", 0x932ac8fb }, { "Dummy_GetLatency", 0x21372137 } }; @@ -81,6 +86,7 @@ namespace nvd { INSERT_AND_RETURN_WHEN_EQUALS(NvAPI_GetGPUIDfromPhysicalGPU) INSERT_AND_RETURN_WHEN_EQUALS(NvAPI_GetPhysicalGPUFromGPUID) INSERT_AND_RETURN_WHEN_EQUALS(NvAPI_GetPhysicalGPUsFromDisplay) + INSERT_AND_RETURN_WHEN_EQUALS(NvAPI_GetPhysicalGPUsFromLogicalGPU) INSERT_AND_RETURN_WHEN_EQUALS(NvAPI_GetErrorMessage) INSERT_AND_RETURN_WHEN_EQUALS(NvAPI_GPU_GetLogicalGpuInfo) INSERT_AND_RETURN_WHEN_EQUALS(NvAPI_GPU_GetConnectedDisplayIds) @@ -96,6 +102,8 @@ namespace nvd { INSERT_AND_RETURN_WHEN_EQUALS(NvAPI_DISP_GetGDIPrimaryDisplayId) INSERT_AND_RETURN_WHEN_EQUALS(NvAPI_Disp_SetOutputMode) INSERT_AND_RETURN_WHEN_EQUALS(NvAPI_Disp_GetOutputMode) + INSERT_AND_RETURN_WHEN_EQUALS(NvAPI_Disp_GetHdrCapabilities) + INSERT_AND_RETURN_WHEN_EQUALS(NvAPI_Disp_HdrColorControl) INSERT_AND_RETURN_WHEN_EQUALS(NvAPI_Mosaic_GetDisplayViewportsByResolution) INSERT_AND_RETURN_WHEN_EQUALS(NvAPI_SYS_GetDisplayDriverInfo) INSERT_AND_RETURN_WHEN_EQUALS(NvAPI_SYS_GetDriverAndBranchVersion) @@ -129,6 +137,11 @@ namespace nvd { INSERT_AND_RETURN_WHEN_EQUALS(NvAPI_DRS_DestroySession) INSERT_AND_RETURN_WHEN_EQUALS(NvAPI_Unknown_1) INSERT_AND_RETURN_WHEN_EQUALS(NvAPI_Vulkan_1) + INSERT_AND_RETURN_WHEN_EQUALS(NvAPI_SK_1) + INSERT_AND_RETURN_WHEN_EQUALS(NvAPI_SK_2) + INSERT_AND_RETURN_WHEN_EQUALS(NvAPI_SK_3) + INSERT_AND_RETURN_WHEN_EQUALS(NvAPI_SK_4) + INSERT_AND_RETURN_WHEN_EQUALS(NvAPI_SK_5) INSERT_AND_RETURN_WHEN_EQUALS(NvAPI_Unload) INSERT_AND_RETURN_WHEN_EQUALS(Dummy_GetLatency)