diff --git a/src/dxgi/dxgi_factory.cpp b/src/dxgi/dxgi_factory.cpp index 54bc6e6aa..40980c5f3 100644 --- a/src/dxgi/dxgi_factory.cpp +++ b/src/dxgi/dxgi_factory.cpp @@ -6,7 +6,8 @@ namespace dxvk { DxgiFactory::DxgiFactory() : m_instance(new DxvkInstance()), m_adapters(m_instance->enumAdapters()) { - + for (const auto& adapter : m_adapters) + adapter->logAdapterInfo(); } diff --git a/src/dxvk/dxvk_adapter.cpp b/src/dxvk/dxvk_adapter.cpp index 71f7f68d6..16fa43122 100644 --- a/src/dxvk/dxvk_adapter.cpp +++ b/src/dxvk/dxvk_adapter.cpp @@ -218,6 +218,21 @@ namespace dxvk { } + void DxvkAdapter::logAdapterInfo() const { + VkPhysicalDeviceProperties deviceInfo = this->deviceProperties(); + + Logger::info(str::format(deviceInfo.deviceName, ":")); + Logger::info(str::format(" Driver: ", + VK_VERSION_MAJOR(deviceInfo.driverVersion), ".", + VK_VERSION_MINOR(deviceInfo.driverVersion), ".", + VK_VERSION_PATCH(deviceInfo.driverVersion))); + Logger::info(str::format(" Vulkan: ", + VK_VERSION_MAJOR(deviceInfo.apiVersion), ".", + VK_VERSION_MINOR(deviceInfo.apiVersion), ".", + VK_VERSION_PATCH(deviceInfo.apiVersion))); + } + + void DxvkAdapter::logNameList(const vk::NameList& names) { for (uint32_t i = 0; i < names.count(); i++) Logger::info(str::format(" ", names.name(i))); diff --git a/src/dxvk/dxvk_adapter.h b/src/dxvk/dxvk_adapter.h index badbfbb64..e08239abd 100644 --- a/src/dxvk/dxvk_adapter.h +++ b/src/dxvk/dxvk_adapter.h @@ -147,6 +147,14 @@ namespace dxvk { HINSTANCE instance, HWND window); + /** + * \brief Logs DXVK adapter info + * + * May be useful for bug reports + * and general troubleshooting. + */ + void logAdapterInfo() const; + private: Rc m_instance;