Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/jp7677/dxvk-nvapi.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJens Peters <jp7677@gmail.com>2021-11-16 21:36:56 +0300
committerJens Peters <jp7677@gmail.com>2022-02-11 19:04:39 +0300
commit2d1e92999a474803426269908f38db5dac8fd86a (patch)
tree24cf2f4b4bb24446404a851f1fc40737eb2f34b8
parenta50648131e36b74c3a1cd73224f354bfd6f17032 (diff)
nvapi-drs: Stub some methods related to driver settings
-rwxr-xr-xpackage-release.sh1
-rw-r--r--src/nvapi_drs.cpp36
-rw-r--r--src/nvapi_interface.cpp10
-rw-r--r--src/util/util_statuscode.h5
-rw-r--r--src/util/util_string.cpp5
-rw-r--r--src/util/util_string.h2
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>