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-08-21 18:24:11 +0300
committerJens Peters <jp7677@gmail.com>2021-10-30 21:13:28 +0300
commit332615c6a8a7d796ca41c18121a85ab247c28623 (patch)
treee169b87124328a82857aa6fdb2916655278b8327
parent16d36c739d0b0020e470e98a3606594e20bb5200 (diff)
nvapi: Implement NvAPI_GetInterfaceVersionStringExget-interface-version-string-ex
Lets make the non-ex interface version a static identifier and move header version to extended version identifier. Add tests accordingly.
-rw-r--r--src/nvapi.cpp14
-rw-r--r--src/nvapi_interface.cpp1
-rw-r--r--tests/nvapi_sysinfo.cpp8
-rw-r--r--tests/nvapi_system.cpp8
4 files changed, 27 insertions, 4 deletions
diff --git a/src/nvapi.cpp b/src/nvapi.cpp
index 82387fb..eb7452e 100644
--- a/src/nvapi.cpp
+++ b/src/nvapi.cpp
@@ -136,7 +136,19 @@ extern "C" {
if (szDesc == nullptr)
return InvalidArgument(n);
- strcpy(szDesc, "R470");
+ strcpy(szDesc, "DXVK-NVAPI");
+
+ return Ok(n);
+ }
+
+ NvAPI_Status __cdecl NvAPI_GetInterfaceVersionStringEx(NvAPI_ShortString szDesc) {
+ constexpr auto n = __func__;
+
+ if (szDesc == nullptr)
+ return InvalidArgument(n);
+
+ const std::string headerVersion = "R470";
+ strcpy(szDesc, str::format("DXVK-NVAPI", " ", DXVK_NVAPI_VERSION, " (", headerVersion , ")").c_str());
return Ok(n);
}
diff --git a/src/nvapi_interface.cpp b/src/nvapi_interface.cpp
index 3f93b1d..b27aa36 100644
--- a/src/nvapi_interface.cpp
+++ b/src/nvapi_interface.cpp
@@ -98,6 +98,7 @@ extern "C" {
INSERT_AND_RETURN_WHEN_EQUALS(NvAPI_EnumNvidiaDisplayHandle)
INSERT_AND_RETURN_WHEN_EQUALS(NvAPI_EnumNvidiaUnAttachedDisplayHandle)
INSERT_AND_RETURN_WHEN_EQUALS(NvAPI_GetInterfaceVersionString)
+ INSERT_AND_RETURN_WHEN_EQUALS(NvAPI_GetInterfaceVersionStringEx)
INSERT_AND_RETURN_WHEN_EQUALS(NvAPI_GetErrorMessage)
INSERT_AND_RETURN_WHEN_EQUALS(NvAPI_Unload)
INSERT_AND_RETURN_WHEN_EQUALS(NvAPI_Initialize)
diff --git a/tests/nvapi_sysinfo.cpp b/tests/nvapi_sysinfo.cpp
index ef2b42d..203afdb 100644
--- a/tests/nvapi_sysinfo.cpp
+++ b/tests/nvapi_sysinfo.cpp
@@ -18,7 +18,13 @@ using namespace trompeloeil;
TEST_CASE("GetInterfaceVersionString returns OK", "[.sysinfo]") {
NvAPI_ShortString desc;
REQUIRE(NvAPI_GetInterfaceVersionString(desc) == NVAPI_OK);
- REQUIRE(strcmp(desc, "R470") == 0);
+ REQUIRE(strcmp(desc, "DXVK-NVAPI") == 0);
+}
+
+TEST_CASE("GetInterfaceVersionStringEx returns OK", "[.sysinfo]") {
+ NvAPI_ShortString desc;
+ REQUIRE(NvAPI_GetInterfaceVersionStringEx(desc) == NVAPI_OK);
+ REQUIRE(std::string(desc).rfind("DXVK-NVAPI", 0) == 0);
}
TEST_CASE("GetErrorMessage returns OK", "[.sysinfo]") {
diff --git a/tests/nvapi_system.cpp b/tests/nvapi_system.cpp
index 9e6c509..a5296b8 100644
--- a/tests/nvapi_system.cpp
+++ b/tests/nvapi_system.cpp
@@ -9,6 +9,7 @@ typedef void* (*PFN_NvAPI_QueryInterface)(unsigned int id);
typedef decltype(&NvAPI_Initialize) PFN_NvAPI_Initialize;
typedef decltype(&NvAPI_Unload) PFN_NvAPI_Unload;
typedef decltype(&NvAPI_GetInterfaceVersionString) PFN_NvAPI_GetInterfaceVersionString;
+typedef decltype(&NvAPI_GetInterfaceVersionStringEx) PFN_NvAPI_GetInterfaceVersionStringEx;
typedef decltype(&NvAPI_SYS_GetDriverAndBranchVersion) PFN_NvAPI_SYS_GetDriverAndBranchVersion;
typedef decltype(&NvAPI_EnumPhysicalGPUs) PFN_NvAPI_EnumPhysicalGPUs;
typedef decltype(&NvAPI_GPU_GetGPUType) PFN_NvAPI_GPU_GetGPUType;
@@ -84,6 +85,7 @@ TEST_CASE("Sysinfo methods succeed against local system", "[system]") {
auto nvAPI_Initialize = GetNvAPIProcAddress<PFN_NvAPI_Initialize>(nvAPI_QueryInterface, "NvAPI_Initialize");
auto nvAPI_Unload = GetNvAPIProcAddress<PFN_NvAPI_Unload>(nvAPI_QueryInterface, "NvAPI_Unload");
auto nvAPI_GetInterfaceVersionString = GetNvAPIProcAddress<PFN_NvAPI_GetInterfaceVersionString>(nvAPI_QueryInterface, "NvAPI_GetInterfaceVersionString");
+ auto nvAPI_GetInterfaceVersionStringEx = GetNvAPIProcAddress<PFN_NvAPI_GetInterfaceVersionStringEx>(nvAPI_QueryInterface, "NvAPI_GetInterfaceVersionStringEx");
auto nvAPI_SYS_GetDriverAndBranchVersion = GetNvAPIProcAddress<PFN_NvAPI_SYS_GetDriverAndBranchVersion>(nvAPI_QueryInterface, "NvAPI_SYS_GetDriverAndBranchVersion");
auto nvAPI_EnumPhysicalGPUs = GetNvAPIProcAddress<PFN_NvAPI_EnumPhysicalGPUs>(nvAPI_QueryInterface, "NvAPI_EnumPhysicalGPUs");
auto nvAPI_GPU_GetGPUType = GetNvAPIProcAddress<PFN_NvAPI_GPU_GetGPUType>(nvAPI_QueryInterface, "NvAPI_GPU_GetGPUType");
@@ -102,10 +104,12 @@ TEST_CASE("Sysinfo methods succeed against local system", "[system]") {
NvAPI_Status result;
REQUIRE(nvAPI_Initialize() == NVAPI_OK);
+ std::cout << "--------------------------------" << std::endl;
NvAPI_ShortString desc;
REQUIRE(nvAPI_GetInterfaceVersionString(desc) == NVAPI_OK);
- std::cout << "--------------------------------" << std::endl;
- std::cout << "Interface version: " << desc << std::endl;
+ NvAPI_ShortString descEx;
+ REQUIRE(nvAPI_GetInterfaceVersionStringEx(descEx) == NVAPI_OK);
+ std::cout << "Interface version: " << desc << " / " << descEx << std::endl;
NvU32 version;
NvAPI_ShortString branch;