From 4042caeca216577d0ef16ea392e5dd58e5888c95 Mon Sep 17 00:00:00 2001 From: FakeMichau <49685661+FakeMichau@users.noreply.github.com> Date: Wed, 13 Dec 2023 18:06:02 +0100 Subject: [PATCH] Add calls for DRG and reduce log spam --- OptiScaler/nvapi/fakenvapi/main.cpp | 9 +++++- OptiScaler/nvapi/fakenvapi/nvapi.cpp | 41 ++++++++++++++++++++++++++++ 2 files changed, 49 insertions(+), 1 deletion(-) diff --git a/OptiScaler/nvapi/fakenvapi/main.cpp b/OptiScaler/nvapi/fakenvapi/main.cpp index ec404c0d..77a90001 100644 --- a/OptiScaler/nvapi/fakenvapi/main.cpp +++ b/OptiScaler/nvapi/fakenvapi/main.cpp @@ -3,6 +3,7 @@ #include #include +#include #include "../include/nvapi_interface.h" #include "../include/d3d12.h" #include "../include/nvapi.h" @@ -12,7 +13,7 @@ namespace nvd { extern "C" { NvAPI_Status __cdecl placeholder() { - return Ok(); + return Error(NVAPI_NO_IMPLEMENTATION); } static std::unordered_map registry; @@ -51,6 +52,12 @@ namespace nvd { INSERT_AND_RETURN_WHEN_EQUALS(NvAPI_Mosaic_GetDisplayViewportsByResolution) INSERT_AND_RETURN_WHEN_EQUALS(NvAPI_SYS_GetDisplayDriverInfo) INSERT_AND_RETURN_WHEN_EQUALS(NvAPI_SYS_GetDriverAndBranchVersion) + INSERT_AND_RETURN_WHEN_EQUALS(NvAPI_D3D_SetResourceHint) + INSERT_AND_RETURN_WHEN_EQUALS(NvAPI_D3D_GetObjectHandleForResource) + INSERT_AND_RETURN_WHEN_EQUALS(NvAPI_D3D11_IsNvShaderExtnOpCodeSupported) + INSERT_AND_RETURN_WHEN_EQUALS(NvAPI_D3D11_BeginUAVOverlap) + INSERT_AND_RETURN_WHEN_EQUALS(NvAPI_D3D11_EndUAVOverlap) + INSERT_AND_RETURN_WHEN_EQUALS(NvAPI_D3D11_SetDepthBoundsTest) INSERT_AND_RETURN_WHEN_EQUALS(NvAPI_D3D12_GetRaytracingCaps) INSERT_AND_RETURN_WHEN_EQUALS(NvAPI_D3D12_IsNvShaderExtnOpCodeSupported) INSERT_AND_RETURN_WHEN_EQUALS(NvAPI_D3D12_SetNvShaderExtnSlotSpaceLocalThread) diff --git a/OptiScaler/nvapi/fakenvapi/nvapi.cpp b/OptiScaler/nvapi/fakenvapi/nvapi.cpp index 0dabad68..34f33087 100644 --- a/OptiScaler/nvapi/fakenvapi/nvapi.cpp +++ b/OptiScaler/nvapi/fakenvapi/nvapi.cpp @@ -171,6 +171,47 @@ namespace nvd { return Ok(); } + NvAPI_Status __cdecl NvAPI_D3D_GetObjectHandleForResource(IUnknown* invalid, IUnknown* pResource, NVDX_ObjectHandle* pHandle) { + *pHandle = (NVDX_ObjectHandle)pResource; + return Ok(); + } + + NvAPI_Status __cdecl NvAPI_D3D_SetResourceHint() { + return Error(NVAPI_NO_IMPLEMENTATION); + } + + NvAPI_Status __cdecl NvAPI_D3D11_IsNvShaderExtnOpCodeSupported(IUnknown* invalid, NvU32 opCode, bool* pSupported) { + *pSupported = true; + return Ok(); + } + + NvAPI_Status __cdecl NvAPI_D3D11_BeginUAVOverlap(IUnknown* pDeviceOrContext) { + static bool logged = false; + if (!logged) { + logged = true; + return Ok(); + } + else return NVAPI_OK; //return without logging + } + + NvAPI_Status __cdecl NvAPI_D3D11_EndUAVOverlap(IUnknown* pDeviceOrContext) { + static bool logged = false; + if (!logged) { + logged = true; + return Ok(); + } + else return NVAPI_OK; //return without logging + } + + NvAPI_Status __cdecl NvAPI_D3D11_SetDepthBoundsTest(IUnknown* pDeviceOrContext) { + static bool logged = false; + if (!logged) { + logged = true; + return Ok(); + } + else return NVAPI_OK; //return without logging + } + NvAPI_Status __cdecl NvAPI_D3D12_GetRaytracingCaps(IUnknown* invalid, NVAPI_D3D12_RAYTRACING_CAPS_TYPE type, void* pData, size_t dataSize) { if (pData == nullptr) return Error(NVAPI_INVALID_POINTER);