diff --git a/Ryujinx.Graphics.OpenGL/Renderer.cs b/Ryujinx.Graphics.OpenGL/Renderer.cs
index ccb53397..6ff3c36c 100644
--- a/Ryujinx.Graphics.OpenGL/Renderer.cs
+++ b/Ryujinx.Graphics.OpenGL/Renderer.cs
@@ -19,6 +19,12 @@ namespace Ryujinx.Graphics.OpenGL
internal TextureCopy TextureCopy { get; }
+ public string GpuVendor { get; private set; }
+
+ public string GpuRenderer { get; private set; }
+
+ public string GpuVersion { get; private set; }
+
public Renderer()
{
_pipeline = new Pipeline();
@@ -78,11 +84,11 @@ namespace Ryujinx.Graphics.OpenGL
private void PrintGpuInformation()
{
- string gpuVendor = GL.GetString(StringName.Vendor);
- string gpuRenderer = GL.GetString(StringName.Renderer);
- string gpuVersion = GL.GetString(StringName.Version);
+ GpuVendor = GL.GetString(StringName.Vendor);
+ GpuRenderer = GL.GetString(StringName.Renderer);
+ GpuVersion = GL.GetString(StringName.Version);
- Logger.PrintInfo(LogClass.Gpu, $"{gpuVendor} {gpuRenderer} ({gpuVersion})");
+ Logger.PrintInfo(LogClass.Gpu, $"{GpuVendor} {GpuRenderer} ({GpuVersion})");
}
public void ResetCounter(CounterType type)
diff --git a/Ryujinx/Ui/GLRenderer.cs b/Ryujinx/Ui/GLRenderer.cs
index 5d0d1908..160608eb 100644
--- a/Ryujinx/Ui/GLRenderer.cs
+++ b/Ryujinx/Ui/GLRenderer.cs
@@ -335,10 +335,17 @@ namespace Ryujinx.Ui
_device.Statistics.RecordSystemFrameTime();
+ string gpuVendor = "Unknown";
+
+ if (_renderer.GpuVendor.ToLower().Contains("nvidia")) gpuVendor = "NVIDIA";
+ if (_renderer.GpuVendor.ToLower().Contains("amd") || _renderer.GpuVendor.ToLower().Contains("ati")) gpuVendor = "AMD";
+ if (_renderer.GpuVendor.ToLower().Contains("intel")) gpuVendor = "Intel";
+
StatusUpdatedEvent?.Invoke(this, new StatusUpdatedEventArgs(
_device.EnableDeviceVsync,
$"Host: {_device.Statistics.GetSystemFrameRate():00.00} FPS",
- $"Game: {_device.Statistics.GetGameFrameRate():00.00} FPS"));
+ $"Game: {_device.Statistics.GetGameFrameRate():00.00} FPS",
+ $"GPU: {gpuVendor}"));
_device.System.SignalVsync();
diff --git a/Ryujinx/Ui/MainWindow.cs b/Ryujinx/Ui/MainWindow.cs
index eaa0a7cd..f658bea4 100644
--- a/Ryujinx/Ui/MainWindow.cs
+++ b/Ryujinx/Ui/MainWindow.cs
@@ -71,6 +71,7 @@ namespace Ryujinx.Ui
[GUI] TreeView _gameTable;
[GUI] ScrolledWindow _gameTableWindow;
[GUI] TreeSelection _gameTableSelection;
+ [GUI] Label _gpuName;
[GUI] Label _progressLabel;
[GUI] Label _firmwareVersionLabel;
[GUI] LevelBar _progressBar;
@@ -605,6 +606,7 @@ namespace Ryujinx.Ui
{
_hostStatus.Text = args.HostStatus;
_gameStatus.Text = args.GameStatus;
+ _gpuName.Text = args.GpuName;
if (args.VSyncEnabled)
{
diff --git a/Ryujinx/Ui/MainWindow.glade b/Ryujinx/Ui/MainWindow.glade
index f8b39529..931cd2a5 100644
--- a/Ryujinx/Ui/MainWindow.glade
+++ b/Ryujinx/Ui/MainWindow.glade
@@ -475,7 +475,7 @@
True
False
start
- 10
+ 5
5
VSync
@@ -527,11 +527,36 @@
False
start
5
+ 5
+
+
+ False
+ True
+ 4
+
+
+
+
+
+ False
+ True
+ 5
+
+
+
+
True
True
- 4
+ 6
diff --git a/Ryujinx/Ui/StatusUpdatedEventArgs.cs b/Ryujinx/Ui/StatusUpdatedEventArgs.cs
index 85093805..3d0cc300 100644
--- a/Ryujinx/Ui/StatusUpdatedEventArgs.cs
+++ b/Ryujinx/Ui/StatusUpdatedEventArgs.cs
@@ -7,12 +7,14 @@ namespace Ryujinx.Ui
public bool VSyncEnabled;
public string HostStatus;
public string GameStatus;
+ public string GpuName;
- public StatusUpdatedEventArgs(bool vSyncEnabled, string hostStatus, string gameStatus)
+ public StatusUpdatedEventArgs(bool vSyncEnabled, string hostStatus, string gameStatus, string gpuName)
{
VSyncEnabled = vSyncEnabled;
HostStatus = hostStatus;
GameStatus = gameStatus;
+ GpuName = gpuName;
}
}
}
\ No newline at end of file