diff options
author | Jens Peters <jp7677@gmail.com> | 2021-11-16 21:36:56 +0300 |
---|---|---|
committer | Jens Peters <jp7677@gmail.com> | 2022-02-11 19:04:39 +0300 |
commit | 2d1e92999a474803426269908f38db5dac8fd86a (patch) | |
tree | 24cf2f4b4bb24446404a851f1fc40737eb2f34b8 | |
parent | a50648131e36b74c3a1cd73224f354bfd6f17032 (diff) |
nvapi-drs: Stub some methods related to driver settings
-rwxr-xr-x | package-release.sh | 1 | ||||
-rw-r--r-- | src/nvapi_drs.cpp | 36 | ||||
-rw-r--r-- | src/nvapi_interface.cpp | 10 | ||||
-rw-r--r-- | src/util/util_statuscode.h | 5 | ||||
-rw-r--r-- | src/util/util_string.cpp | 5 | ||||
-rw-r--r-- | src/util/util_string.h | 2 |
6 files changed, 58 insertions, 1 deletions
diff --git a/package-release.sh b/package-release.sh index 2c59e06..25bed10 100755 --- a/package-release.sh +++ b/package-release.sh @@ -49,6 +49,7 @@ function prepare { src/nvapi_sys.cpp \ src/nvapi_disp.cpp \ src/nvapi_mosaic.cpp \ + src/nvapi_drs.cpp \ src/nvapi_gpu.cpp \ src/nvapi_d3d.cpp \ src/nvapi_d3d11.cpp \ diff --git a/src/nvapi_drs.cpp b/src/nvapi_drs.cpp new file mode 100644 index 0000000..6369d9a --- /dev/null +++ b/src/nvapi_drs.cpp @@ -0,0 +1,36 @@ +#include "nvapi_private.h" +#include "util/util_statuscode.h" + +extern "C" { + using namespace dxvk; + + NvAPI_Status __cdecl NvAPI_DRS_CreateSession(NvDRSSessionHandle *phSession) { + *phSession = reinterpret_cast<NvDRSSessionHandle>(nvapiAdapterRegistry->GetAdapter()); // Just another opaque pointer + return Ok(__func__); + } + + NvAPI_Status __cdecl NvAPI_DRS_LoadSettings(NvDRSSessionHandle hSession) { + return Ok(__func__); + } + + NvAPI_Status __cdecl NvAPI_DRS_FindProfileByName(NvDRSSessionHandle hSession, NvAPI_UnicodeString profileName, NvDRSProfileHandle* phProfile) { + return ExecutableNotFound(str::format(__func__, " (", str::fromnvs(profileName), ")")); + } + + NvAPI_Status __cdecl NvAPI_DRS_FindApplicationByName(NvDRSSessionHandle hSession, NvAPI_UnicodeString appName, NvDRSProfileHandle *phProfile, __inout NVDRS_APPLICATION *pApplication) { + return ExecutableNotFound(str::format(__func__, " (", str::fromnvs(appName), ")")); + } + + NvAPI_Status __cdecl NvAPI_DRS_GetBaseProfile(NvDRSSessionHandle hSession, NvDRSProfileHandle *phProfile) { + return Ok(__func__); + } + + NvAPI_Status __cdecl NvAPI_DRS_GetSetting(NvDRSSessionHandle hSession, NvDRSProfileHandle hProfile, NvU32 settingId, NVDRS_SETTING *pSetting) { + *pSetting = NVDRS_SETTING{}; + return Ok(str::format(__func__, " (", settingId, ")")); + } + + NvAPI_Status __cdecl NvAPI_DRS_DestroySession(NvDRSSessionHandle hSession) { + return Ok(__func__); + } +} diff --git a/src/nvapi_interface.cpp b/src/nvapi_interface.cpp index fc84a70..671b8d6 100644 --- a/src/nvapi_interface.cpp +++ b/src/nvapi_interface.cpp @@ -1,8 +1,9 @@ #include "../inc/nvapi_interface.h" #include "nvapi.cpp" #include "nvapi_sys.cpp" -#include "nvapi_disp.cpp" #include "nvapi_mosaic.cpp" +#include "nvapi_disp.cpp" +#include "nvapi_drs.cpp" #include "nvapi_gpu.cpp" #include "nvapi_d3d.cpp" #include "nvapi_d3d11.cpp" @@ -91,6 +92,13 @@ extern "C" { INSERT_AND_RETURN_WHEN_EQUALS(NvAPI_GPU_GetVbiosVersionString) INSERT_AND_RETURN_WHEN_EQUALS(NvAPI_GPU_GetCurrentPstate) INSERT_AND_RETURN_WHEN_EQUALS(NvAPI_GPU_GetAllClockFrequencies) + INSERT_AND_RETURN_WHEN_EQUALS(NvAPI_DRS_FindApplicationByName) + INSERT_AND_RETURN_WHEN_EQUALS(NvAPI_DRS_FindProfileByName) + INSERT_AND_RETURN_WHEN_EQUALS(NvAPI_DRS_GetSetting) + INSERT_AND_RETURN_WHEN_EQUALS(NvAPI_DRS_GetBaseProfile) + INSERT_AND_RETURN_WHEN_EQUALS(NvAPI_DRS_LoadSettings) + INSERT_AND_RETURN_WHEN_EQUALS(NvAPI_DRS_DestroySession) + INSERT_AND_RETURN_WHEN_EQUALS(NvAPI_DRS_CreateSession) INSERT_AND_RETURN_WHEN_EQUALS(NvAPI_Disp_GetHdrCapabilities) INSERT_AND_RETURN_WHEN_EQUALS(NvAPI_DISP_GetDisplayIdByDisplayName) INSERT_AND_RETURN_WHEN_EQUALS(NvAPI_DISP_GetGDIPrimaryDisplayId) diff --git a/src/util/util_statuscode.h b/src/util/util_statuscode.h index 5a0b6bc..96ea81f 100644 --- a/src/util/util_statuscode.h +++ b/src/util/util_statuscode.h @@ -130,4 +130,9 @@ namespace dxvk { log::write(str::format(logMessage, ": NVIDIA or other suitable device not found or initialization failed")); return NVAPI_NVIDIA_DEVICE_NOT_FOUND; } + + inline NvAPI_Status ExecutableNotFound(const std::string& logMessage) { + log::write(str::format(logMessage, ": Executable not found")); + return NVAPI_EXECUTABLE_NOT_FOUND; + } } diff --git a/src/util/util_string.cpp b/src/util/util_string.cpp index fadc08d..048d499 100644 --- a/src/util/util_string.cpp +++ b/src/util/util_string.cpp @@ -32,4 +32,9 @@ namespace dxvk::str { ::MultiByteToWideChar(CP_UTF8, 0, mbs, -1, &result[0], len); return result; } + + std::string fromnvs(NvAPI_UnicodeString nvs) { + auto w = std::wstring(reinterpret_cast<wchar_t*>(nvs)); + return {w.begin(), w.end()}; + } } diff --git a/src/util/util_string.h b/src/util/util_string.h index 33705f8..e3016fd 100644 --- a/src/util/util_string.h +++ b/src/util/util_string.h @@ -14,6 +14,8 @@ namespace dxvk::str { std::wstring tows(const char* mbs); + std::string fromnvs(NvAPI_UnicodeString nvs); + inline void format1(std::stringstream&) { } template<typename... Tx> |