From 9f816b79825bafad4a5c445001c9bc7e9321c12c Mon Sep 17 00:00:00 2001 From: Krzysztof Bogacki Date: Mon, 6 Jun 2022 10:28:16 +0200 Subject: nvapi-gpu: Reimplement NvAPI_GPU_GetBusType using nvmlDeviceGetBusType --- src/nvapi_gpu.cpp | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/src/nvapi_gpu.cpp b/src/nvapi_gpu.cpp index 5f02734..c5893be 100644 --- a/src/nvapi_gpu.cpp +++ b/src/nvapi_gpu.cpp @@ -115,6 +115,32 @@ extern "C" { if (!nvapiAdapterRegistry->IsAdapter(adapter)) return ExpectedPhysicalGpuHandle(n); + if (adapter->HasNvmlDevice()) { + nvmlBusType_t busType; + auto result = adapter->GetNvmlDeviceBusType(&busType); + if (result == NVML_SUCCESS) { + switch (busType) { + case NVML_BUS_TYPE_PCI: + *pBusType = NVAPI_GPU_BUS_TYPE_PCI; + break; + case NVML_BUS_TYPE_PCIE: + *pBusType = NVAPI_GPU_BUS_TYPE_PCI_EXPRESS; + break; + case NVML_BUS_TYPE_FPCI: + *pBusType = NVAPI_GPU_BUS_TYPE_FPCI; + break; + case NVML_BUS_TYPE_AGP: + *pBusType = NVAPI_GPU_BUS_TYPE_AGP; + break; + default: + *pBusType = NVAPI_GPU_BUS_TYPE_UNDEFINED; + break; + } + + return Ok(n); + } + } + if (adapter->GetArchitectureId() >= NV_GPU_ARCHITECTURE_GM200) *pBusType = NVAPI_GPU_BUS_TYPE_PCI_EXPRESS; // Assume PCIe on Maxwell like generation and newer else -- cgit v1.2.3