| | |
| | |
| | |
| |
|
| | #include "citra_qt/util/graphics_device_info.h" |
| |
|
| | #ifdef ENABLE_OPENGL |
| | #include <QOffscreenSurface> |
| | #include <QOpenGLContext> |
| | #include <QOpenGLFunctions> |
| | #endif |
| |
|
| | #ifdef ENABLE_VULKAN |
| | #include "video_core/renderer_vulkan/vk_instance.h" |
| | #endif |
| |
|
| | #ifdef ENABLE_OPENGL |
| | QString GetOpenGLRenderer() { |
| | QOffscreenSurface surface; |
| | surface.create(); |
| |
|
| | QOpenGLContext context; |
| | if (context.create()) { |
| | context.makeCurrent(&surface); |
| | return QString::fromUtf8(context.functions()->glGetString(GL_RENDERER)); |
| | } else { |
| | return QStringLiteral(""); |
| | } |
| | } |
| | #endif |
| |
|
| | #ifdef ENABLE_VULKAN |
| | std::vector<QString> GetVulkanPhysicalDevices() { |
| | std::vector<QString> result; |
| | try { |
| | Vulkan::Instance instance{}; |
| | const auto physical_devices = instance.GetPhysicalDevices(); |
| |
|
| | for (const vk::PhysicalDevice physical_device : physical_devices) { |
| | const QString name = QString::fromUtf8(physical_device.getProperties().deviceName, -1); |
| | result.push_back(name); |
| | } |
| | } catch (const std::runtime_error& err) { |
| | LOG_ERROR(Frontend, "Error occured while querying for physical devices: {}", err.what()); |
| | } |
| |
|
| | return result; |
| | } |
| | #endif |
| |
|