diff --git a/OptiScaler/nvapi/fakenvapi/log.h b/OptiScaler/nvapi/fakenvapi/log.h index 435d0352..ff43e32d 100644 --- a/OptiScaler/nvapi/fakenvapi/log.h +++ b/OptiScaler/nvapi/fakenvapi/log.h @@ -1,3 +1,4 @@ +#pragma once #include #include #include diff --git a/OptiScaler/nvapi/fakenvapi/main.cpp b/OptiScaler/nvapi/fakenvapi/main.cpp index 124a6f96..0a60be7f 100644 --- a/OptiScaler/nvapi/fakenvapi/main.cpp +++ b/OptiScaler/nvapi/fakenvapi/main.cpp @@ -7,6 +7,7 @@ #include "../include/nvapi_interface.h" #include "../include/d3d12.h" #include "../include/nvapi.h" +#include "nvapi.h" #include "log.h" @@ -26,7 +27,8 @@ BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved) { namespace nvd { extern "C" { NvAPI_Status __cdecl placeholder() { - return Error(NVAPI_NO_IMPLEMENTATION); + return Ok(); + // return Error(NVAPI_NO_IMPLEMENTATION); } static std::unordered_map registry; diff --git a/OptiScaler/nvapi/fakenvapi/nvapi.cpp b/OptiScaler/nvapi/fakenvapi/nvapi.cpp index 5595ee7e..86ca67a1 100644 --- a/OptiScaler/nvapi/fakenvapi/nvapi.cpp +++ b/OptiScaler/nvapi/fakenvapi/nvapi.cpp @@ -1,239 +1,237 @@ #include "nvapi.h" namespace nvd { - extern "C" { - NvAPI_Status __cdecl NvAPI_Initialize() { - IDXGIFactory1* pFactory = nullptr; - if (FAILED(CreateDXGIFactory1(__uuidof(IDXGIFactory1), (void**)&pFactory))) { - log("Failed to create DXGI Factory"); - return Error(); - } + NvAPI_Status __cdecl NvAPI_Initialize() { + IDXGIFactory1* pFactory = nullptr; + if (FAILED(CreateDXGIFactory1(__uuidof(IDXGIFactory1), (void**)&pFactory))) { + log("Failed to create DXGI Factory"); + return Error(); + } - IDXGIAdapter1* pAdapter = nullptr; - if (FAILED(pFactory->EnumAdapters1(0, &pAdapter))) { - log("Failed to enumerate adapters"); - pFactory->Release(); - return Error(); - } - - DXGI_ADAPTER_DESC1 adapterDesc; - if (FAILED(pAdapter->GetDesc1(&adapterDesc))) { - log("Failed to get adapter description"); - pAdapter->Release(); - pFactory->Release(); - return Error(); - } - - luid = adapterDesc.AdapterLuid; - deviceId = adapterDesc.DeviceId; - vendorId = adapterDesc.VendorId; - subSysId = adapterDesc.SubSysId; - revisionId = adapterDesc.Revision; + IDXGIAdapter1* pAdapter = nullptr; + if (FAILED(pFactory->EnumAdapters1(0, &pAdapter))) { + log("Failed to enumerate adapters"); + pFactory->Release(); + return Error(); + } + DXGI_ADAPTER_DESC1 adapterDesc; + if (FAILED(pAdapter->GetDesc1(&adapterDesc))) { + log("Failed to get adapter description"); pAdapter->Release(); pFactory->Release(); + return Error(); + } + luid = adapterDesc.AdapterLuid; + deviceId = adapterDesc.DeviceId; + vendorId = adapterDesc.VendorId; + subSysId = adapterDesc.SubSysId; + revisionId = adapterDesc.Revision; + + pAdapter->Release(); + pFactory->Release(); + + return Ok(); + } + + NvAPI_Status __cdecl NvAPI_GetInterfaceVersionString(NvAPI_ShortString desc) { + tonvss(desc, "NvAPI dummy"); + return Ok(); + } + + NvAPI_Status __cdecl NvAPI_EnumPhysicalGPUs(NvPhysicalGpuHandle handles[NVAPI_MAX_PHYSICAL_GPUS], NvU32* count) { + handles[0] = nullptr; + *count = 1; + return Ok(); + } + + NvAPI_Status __cdecl NvAPI_EnumNvidiaDisplayHandle(NvU32 displayId, NvDisplayHandle* handle) { + if (displayId == 0) { return Ok(); } + return Error(NVAPI_NVIDIA_DISPLAY_NOT_FOUND); + } - NvAPI_Status __cdecl NvAPI_GetInterfaceVersionString(NvAPI_ShortString desc) { - tonvss(desc, "NvAPI dummy"); + NvAPI_Status __cdecl NvAPI_GetLogicalGPUFromPhysicalGPU(NvPhysicalGpuHandle physicalHandle, NvLogicalGpuHandle* logicalHandle) { + *logicalHandle = nullptr; + return Ok(); + } + + NvAPI_Status __cdecl NvAPI_GPU_CudaEnumComputeCapableGpus(NV_COMPUTE_GPU_TOPOLOGY* pComputeTopo) { + auto pComputeTopoV1 = reinterpret_cast(pComputeTopo); + pComputeTopoV1->gpuCount = 1; + pComputeTopoV1->computeGpus[0].hPhysicalGpu = nullptr; + pComputeTopoV1->computeGpus[0].flags = NV_COMPUTE_GPU_TOPOLOGY_PHYSICS_CAPABLE | NV_COMPUTE_GPU_TOPOLOGY_PHYSICS_ENABLE | NV_COMPUTE_GPU_TOPOLOGY_PHYSICS_RECOMMENDED; + return Ok(); + } + + NvAPI_Status __cdecl NvAPI_GPU_GetConnectedDisplayIds(NvPhysicalGpuHandle handle, NV_GPU_DISPLAYIDS* displayIds, NvU32* displayCount, NvU32 flags) { + *displayCount = 0; // no displays connected, may cause issues + // NVAPI_NVIDIA_DISPLAY_NOT_FOUND could be considered + return Ok(); + } + + NvAPI_Status __cdecl NvAPI_GPU_GetArchInfo(NvPhysicalGpuHandle handle, NV_GPU_ARCH_INFO* archInfo) { + archInfo->architecture = spoof::arch; + archInfo->architecture_id = spoof::arch; + archInfo->implementation = spoof::implementation; + archInfo->implementation_id = spoof::implementation; + archInfo->revision = spoof::revision; + archInfo->revision_id = spoof::revision; + + return Ok(); + } + + NvAPI_Status __cdecl NvAPI_GPU_GetLogicalGpuInfo(NvLogicalGpuHandle logicalHandle, NV_LOGICAL_GPU_DATA* logicalGpuData) { + memcpy(logicalGpuData->pOSAdapterId, &luid, sizeof(luid)); + logicalGpuData->physicalGpuHandles[0] = nullptr; + logicalGpuData->physicalGpuCount = 1; + return Ok(); + } + + NvAPI_Status __cdecl NvAPI_GPU_GetPCIIdentifiers(NvPhysicalGpuHandle hPhysicalGpu, NvU32* pDeviceId, NvU32* pSubSystemId, NvU32* pRevisionId, NvU32* pExtDeviceId) { + *pDeviceId = (deviceId << 16) | vendorId; + *pSubSystemId = subSysId; + *pRevisionId = revisionId; + *pExtDeviceId = deviceId; + return Ok(); + } + NvAPI_Status __cdecl NvAPI_GPU_GetFullName(NvPhysicalGpuHandle hPhysicalGpu, NvAPI_ShortString szName) { + tonvss(szName, spoof::fullGPUName); + return Ok(); + } + NvAPI_Status __cdecl NvAPI_GPU_GetGpuCoreCount(NvPhysicalGpuHandle hPhysicalGpu, NvU32* pCount) { + return Error(NVAPI_NO_IMPLEMENTATION); + } + NvAPI_Status __cdecl NvAPI_GPU_GetAllClockFrequencies(NvPhysicalGpuHandle hPhysicalGPU, NV_GPU_CLOCK_FREQUENCIES* pClkFreqs) { + return Error(NVAPI_NOT_SUPPORTED); + } + NvAPI_Status __cdecl NvAPI_DISP_GetDisplayIdByDisplayName(const char* displayName, NvU32* displayId) { + *displayId = 0; + return Ok(); + } + NvAPI_Status __cdecl NvAPI_Mosaic_GetDisplayViewportsByResolution(NvU32 displayId, NvU32 srcWidth, NvU32 srcHeight, NV_RECT viewports[NV_MOSAIC_MAX_DISPLAYS], NvU8* bezelCorrected) { + return Error(NVAPI_MOSAIC_NOT_ACTIVE); + } + + NvAPI_Status __cdecl NvAPI_SYS_GetDisplayDriverInfo(NV_DISPLAY_DRIVER_INFO* driverInfo) { + spoof::driverInfo(driverInfo); + return Ok(); + } + + NvAPI_Status __cdecl NvAPI_SYS_GetDriverAndBranchVersion(NvU32* pDriverVersion, NvAPI_ShortString szBuildBranchString) { + *pDriverVersion = spoof::driverVersion; + tonvss(szBuildBranchString, spoof::buildBranch); + 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_EnumPhysicalGPUs(NvPhysicalGpuHandle handles[NVAPI_MAX_PHYSICAL_GPUS], NvU32* count) { - handles[0] = reinterpret_cast(dummy); - *count = 1; + 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_EnumNvidiaDisplayHandle(NvU32 displayId, NvDisplayHandle* handle) { - if (displayId == 0) { - return Ok(); - } - return Error(NVAPI_NVIDIA_DISPLAY_NOT_FOUND); - } - - NvAPI_Status __cdecl NvAPI_GetLogicalGPUFromPhysicalGPU(NvPhysicalGpuHandle physicalHandle, NvLogicalGpuHandle* logicalHandle) { - *logicalHandle = reinterpret_cast(dummy); + 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_GPU_CudaEnumComputeCapableGpus(NV_COMPUTE_GPU_TOPOLOGY* pComputeTopo) { - auto pComputeTopoV1 = reinterpret_cast(pComputeTopo); - pComputeTopoV1->gpuCount = 1; - pComputeTopoV1->computeGpus[0].hPhysicalGpu = reinterpret_cast(dummy); - pComputeTopoV1->computeGpus[0].flags = NV_COMPUTE_GPU_TOPOLOGY_PHYSICS_CAPABLE | NV_COMPUTE_GPU_TOPOLOGY_PHYSICS_ENABLE | NV_COMPUTE_GPU_TOPOLOGY_PHYSICS_RECOMMENDED; - return Ok(); - } + 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); - NvAPI_Status __cdecl NvAPI_GPU_GetConnectedDisplayIds(NvPhysicalGpuHandle handle, NV_GPU_DISPLAYIDS* displayIds, NvU32* displayCount, NvU32 flags) { - *displayCount = 0; // no displays connected, may cause issues - // NVAPI_NVIDIA_DISPLAY_NOT_FOUND could be considered - return Ok(); - } + switch (type) { + case NVAPI_D3D12_RAYTRACING_CAPS_TYPE_THREAD_REORDERING: + if (dataSize != sizeof(NVAPI_D3D12_RAYTRACING_THREAD_REORDERING_CAPS)) + return Error(NVAPI_INVALID_ARGUMENT); - NvAPI_Status __cdecl NvAPI_GPU_GetArchInfo(NvPhysicalGpuHandle handle, NV_GPU_ARCH_INFO* archInfo) { - archInfo->architecture = spoof::arch; - archInfo->architecture_id = spoof::arch; - archInfo->implementation = spoof::implementation; - archInfo->implementation_id = spoof::implementation; - archInfo->revision = spoof::revision; - archInfo->revision_id = spoof::revision; + // let's hope that NvAPI_D3D12_IsNvShaderExtnOpCodeSupported returning false is enough to discourage games from attempting to use Shader Execution Reordering + *(NVAPI_D3D12_RAYTRACING_THREAD_REORDERING_CAPS*)pData = NVAPI_D3D12_RAYTRACING_THREAD_REORDERING_CAP_NONE; + break; - return Ok(); - } - - NvAPI_Status __cdecl NvAPI_GPU_GetLogicalGpuInfo(NvLogicalGpuHandle logicalHandle, NV_LOGICAL_GPU_DATA* logicalGpuData) { - memcpy(logicalGpuData->pOSAdapterId, &luid, sizeof(luid)); - logicalGpuData->physicalGpuHandles[0] = reinterpret_cast(dummy); - logicalGpuData->physicalGpuCount = 1; - return Ok(); - } - - NvAPI_Status __cdecl NvAPI_GPU_GetPCIIdentifiers(NvPhysicalGpuHandle hPhysicalGpu, NvU32* pDeviceId, NvU32* pSubSystemId, NvU32* pRevisionId, NvU32* pExtDeviceId) { - *pDeviceId = (deviceId << 16) | vendorId; - *pSubSystemId = subSysId; - *pRevisionId = revisionId; - *pExtDeviceId = deviceId; - return Ok(); - } - NvAPI_Status __cdecl NvAPI_GPU_GetFullName(NvPhysicalGpuHandle hPhysicalGpu, NvAPI_ShortString szName) { - tonvss(szName, spoof::fullGPUName); - return Ok(); - } - NvAPI_Status __cdecl NvAPI_GPU_GetGpuCoreCount(NvPhysicalGpuHandle hPhysicalGpu, NvU32* pCount) { - return Error(NVAPI_NO_IMPLEMENTATION); - } - NvAPI_Status __cdecl NvAPI_GPU_GetAllClockFrequencies(NvPhysicalGpuHandle hPhysicalGPU, NV_GPU_CLOCK_FREQUENCIES* pClkFreqs) { - return Error(NVAPI_NOT_SUPPORTED); - } - NvAPI_Status __cdecl NvAPI_DISP_GetDisplayIdByDisplayName(const char* displayName, NvU32* displayId) { - *displayId = 0; - return Ok(); - } - NvAPI_Status __cdecl NvAPI_Mosaic_GetDisplayViewportsByResolution(NvU32 displayId, NvU32 srcWidth, NvU32 srcHeight, NV_RECT viewports[NV_MOSAIC_MAX_DISPLAYS], NvU8* bezelCorrected) { - return Error(NVAPI_MOSAIC_NOT_ACTIVE); - } - - NvAPI_Status __cdecl NvAPI_SYS_GetDisplayDriverInfo(NV_DISPLAY_DRIVER_INFO* driverInfo) { - spoof::driverInfo(driverInfo); - return Ok(); - } - - NvAPI_Status __cdecl NvAPI_SYS_GetDriverAndBranchVersion(NvU32* pDriverVersion, NvAPI_ShortString szBuildBranchString) { - *pDriverVersion = spoof::driverVersion; - tonvss(szBuildBranchString, spoof::buildBranch); - 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) + case NVAPI_D3D12_RAYTRACING_CAPS_TYPE_OPACITY_MICROMAP: + if (dataSize != sizeof(NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_CAPS)) return Error(NVAPI_INVALID_POINTER); - switch (type) { - case NVAPI_D3D12_RAYTRACING_CAPS_TYPE_THREAD_REORDERING: - if (dataSize != sizeof(NVAPI_D3D12_RAYTRACING_THREAD_REORDERING_CAPS)) - return Error(NVAPI_INVALID_ARGUMENT); + *(NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_CAPS*)pData = NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_CAP_NONE; + break; - // let's hope that NvAPI_D3D12_IsNvShaderExtnOpCodeSupported returning false is enough to discourage games from attempting to use Shader Execution Reordering - *(NVAPI_D3D12_RAYTRACING_THREAD_REORDERING_CAPS*)pData = NVAPI_D3D12_RAYTRACING_THREAD_REORDERING_CAP_NONE; - break; - - case NVAPI_D3D12_RAYTRACING_CAPS_TYPE_OPACITY_MICROMAP: - if (dataSize != sizeof(NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_CAPS)) - return Error(NVAPI_INVALID_POINTER); - - *(NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_CAPS*)pData = NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_CAP_NONE; - break; - - case NVAPI_D3D12_RAYTRACING_CAPS_TYPE_DISPLACEMENT_MICROMAP: - if (dataSize != sizeof(NVAPI_D3D12_RAYTRACING_DISPLACEMENT_MICROMAP_CAPS)) - return Error(NVAPI_INVALID_POINTER); - - *(NVAPI_D3D12_RAYTRACING_DISPLACEMENT_MICROMAP_CAPS*)pData = NVAPI_D3D12_RAYTRACING_DISPLACEMENT_MICROMAP_CAP_NONE; - break; - - default: + case NVAPI_D3D12_RAYTRACING_CAPS_TYPE_DISPLACEMENT_MICROMAP: + if (dataSize != sizeof(NVAPI_D3D12_RAYTRACING_DISPLACEMENT_MICROMAP_CAPS)) return Error(NVAPI_INVALID_POINTER); - } - return Ok(); + *(NVAPI_D3D12_RAYTRACING_DISPLACEMENT_MICROMAP_CAPS*)pData = NVAPI_D3D12_RAYTRACING_DISPLACEMENT_MICROMAP_CAP_NONE; + break; + + default: + return Error(NVAPI_INVALID_POINTER); } - NvAPI_Status __cdecl NvAPI_D3D12_IsNvShaderExtnOpCodeSupported(IUnknown* invalid, NvU32 opCode, bool* pSupported) { - *pSupported = true; - return Ok(); - } + return Ok(); + } - NvAPI_Status __cdecl NvAPI_D3D12_SetNvShaderExtnSlotSpaceLocalThread() { - return Ok(); - } + NvAPI_Status __cdecl NvAPI_D3D12_IsNvShaderExtnOpCodeSupported(IUnknown* invalid, NvU32 opCode, bool* pSupported) { + *pSupported = true; + return Ok(); + } - NvAPI_Status __cdecl NvAPI_D3D12_GetRaytracingAccelerationStructurePrebuildInfoEx(ID3D12Device5* pDevice, NVAPI_GET_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO_EX_PARAMS* pParams) { - std::vector geometryDescs{}; - D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS desc{}; - pDevice->GetRaytracingAccelerationStructurePrebuildInfo(&desc, pParams->pInfo); - return Ok(); - } + NvAPI_Status __cdecl NvAPI_D3D12_SetNvShaderExtnSlotSpaceLocalThread() { + return Ok(); + } - NvAPI_Status __cdecl NvAPI_DRS_CreateSession(NvDRSSessionHandle* session) { - *session = drsSession; - return Ok(); - } + NvAPI_Status __cdecl NvAPI_D3D12_GetRaytracingAccelerationStructurePrebuildInfoEx(ID3D12Device5* pDevice, NVAPI_GET_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO_EX_PARAMS* pParams) { + std::vector geometryDescs{}; + D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS desc{}; + pDevice->GetRaytracingAccelerationStructurePrebuildInfo(&desc, pParams->pInfo); + return Ok(); + } - NvAPI_Status __cdecl NvAPI_DRS_LoadSettings(NvDRSSessionHandle session) { - return Ok(); - } + NvAPI_Status __cdecl NvAPI_DRS_CreateSession(NvDRSSessionHandle* session) { + *session = drsSession; + return Ok(); + } - NvAPI_Status __cdecl NvAPI_DRS_GetBaseProfile(NvDRSSessionHandle session, NvDRSProfileHandle* profile) { - *profile = drsProfile; - return Ok(); - } + NvAPI_Status __cdecl NvAPI_DRS_LoadSettings(NvDRSSessionHandle session) { + return Ok(); + } - NvAPI_Status __cdecl NvAPI_Unload() { - return Ok(); - } + NvAPI_Status __cdecl NvAPI_DRS_GetBaseProfile(NvDRSSessionHandle session, NvDRSProfileHandle* profile) { + *profile = drsProfile; + return Ok(); + } + + NvAPI_Status __cdecl NvAPI_Unload() { + return Ok(); } } \ No newline at end of file diff --git a/OptiScaler/nvapi/fakenvapi/nvapi.h b/OptiScaler/nvapi/fakenvapi/nvapi.h index a023aa28..8b2b65b0 100644 --- a/OptiScaler/nvapi/fakenvapi/nvapi.h +++ b/OptiScaler/nvapi/fakenvapi/nvapi.h @@ -1,3 +1,4 @@ +#pragma once #include #include #include @@ -10,16 +11,47 @@ #include "spoofInfo.h" #include "log.h" -static auto drs = 1U; -static auto drsSession = reinterpret_cast(&drs); -static auto drsProfile = reinterpret_cast(&drs); +namespace nvd { + static auto drs = 1U; + static auto drsSession = reinterpret_cast(&drs); + static auto drsProfile = reinterpret_cast(&drs); -static LUID luid; -static UINT deviceId; -static UINT vendorId; -static UINT subSysId; -static UINT revisionId; + static LUID luid; + static UINT deviceId; + static UINT vendorId; + static UINT subSysId; + static UINT revisionId; -class Adapter {}; -Adapter* dummy{}; \ No newline at end of file + NvAPI_Status __cdecl NvAPI_Initialize(); + NvAPI_Status __cdecl NvAPI_GetInterfaceVersionString(NvAPI_ShortString desc); + NvAPI_Status __cdecl NvAPI_EnumPhysicalGPUs(NvPhysicalGpuHandle handles[NVAPI_MAX_PHYSICAL_GPUS], NvU32* count); + NvAPI_Status __cdecl NvAPI_EnumNvidiaDisplayHandle(NvU32 displayId, NvDisplayHandle* handle); + NvAPI_Status __cdecl NvAPI_GetLogicalGPUFromPhysicalGPU(NvPhysicalGpuHandle physicalHandle, NvLogicalGpuHandle* logicalHandle); + 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); + NvAPI_Status __cdecl NvAPI_GPU_GetArchInfo(NvPhysicalGpuHandle handle, NV_GPU_ARCH_INFO* archInfo); + NvAPI_Status __cdecl NvAPI_GPU_GetLogicalGpuInfo(NvLogicalGpuHandle logicalHandle, NV_LOGICAL_GPU_DATA* logicalGpuData); + NvAPI_Status __cdecl NvAPI_GPU_GetPCIIdentifiers(NvPhysicalGpuHandle hPhysicalGpu, NvU32* pDeviceId, NvU32* pSubSystemId, NvU32* pRevisionId, NvU32* pExtDeviceId); + NvAPI_Status __cdecl NvAPI_GPU_GetFullName(NvPhysicalGpuHandle hPhysicalGpu, NvAPI_ShortString szName); + NvAPI_Status __cdecl NvAPI_GPU_GetGpuCoreCount(NvPhysicalGpuHandle hPhysicalGpu, NvU32* pCount); + NvAPI_Status __cdecl NvAPI_GPU_GetAllClockFrequencies(NvPhysicalGpuHandle hPhysicalGPU, NV_GPU_CLOCK_FREQUENCIES* pClkFreqs); + NvAPI_Status __cdecl NvAPI_DISP_GetDisplayIdByDisplayName(const char* displayName, NvU32* displayId); + 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); + NvAPI_Status __cdecl NvAPI_D3D_GetObjectHandleForResource(IUnknown* invalid, IUnknown* pResource, NVDX_ObjectHandle* pHandle); + NvAPI_Status __cdecl NvAPI_D3D_SetResourceHint(); + NvAPI_Status __cdecl NvAPI_D3D11_IsNvShaderExtnOpCodeSupported(IUnknown* invalid, NvU32 opCode, bool* pSupported); + NvAPI_Status __cdecl NvAPI_D3D11_BeginUAVOverlap(IUnknown* pDeviceOrContext); + NvAPI_Status __cdecl NvAPI_D3D11_EndUAVOverlap(IUnknown* pDeviceOrContext); + NvAPI_Status __cdecl NvAPI_D3D11_SetDepthBoundsTest(IUnknown* pDeviceOrContext); + NvAPI_Status __cdecl NvAPI_D3D12_GetRaytracingCaps(IUnknown* invalid, NVAPI_D3D12_RAYTRACING_CAPS_TYPE type, void* pData, size_t dataSize); + NvAPI_Status __cdecl NvAPI_D3D12_IsNvShaderExtnOpCodeSupported(IUnknown* invalid, NvU32 opCode, bool* pSupported); + NvAPI_Status __cdecl NvAPI_D3D12_SetNvShaderExtnSlotSpaceLocalThread(); + NvAPI_Status __cdecl NvAPI_D3D12_GetRaytracingAccelerationStructurePrebuildInfoEx(ID3D12Device5* pDevice, NVAPI_GET_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO_EX_PARAMS* pParams); + NvAPI_Status __cdecl NvAPI_DRS_CreateSession(NvDRSSessionHandle* session); + NvAPI_Status __cdecl NvAPI_DRS_LoadSettings(NvDRSSessionHandle session); + NvAPI_Status __cdecl NvAPI_DRS_GetBaseProfile(NvDRSSessionHandle session, NvDRSProfileHandle* profile); + NvAPI_Status __cdecl NvAPI_Unload(); +} \ No newline at end of file diff --git a/OptiScaler/nvapi/fakenvapi/spoofInfo.h b/OptiScaler/nvapi/fakenvapi/spoofInfo.h index 9af67ff5..e7ab9d1d 100644 --- a/OptiScaler/nvapi/fakenvapi/spoofInfo.h +++ b/OptiScaler/nvapi/fakenvapi/spoofInfo.h @@ -1,3 +1,4 @@ +#pragma once #include "util.h" namespace spoof { diff --git a/OptiScaler/nvapi/fakenvapi/util.h b/OptiScaler/nvapi/fakenvapi/util.h index e48dcf87..cf99913a 100644 --- a/OptiScaler/nvapi/fakenvapi/util.h +++ b/OptiScaler/nvapi/fakenvapi/util.h @@ -1,3 +1,4 @@ +#pragma once #include "../include/nvapi.h" #include #include