Przeglądaj źródła

Add GPU name in status bar (#984)

* Add GPU name in status bar

* Fixed like Ac_K suggest

* Nit.

* Minor fix

* Minor change.

* Nit.

* Fixed for ATI vendor

* Minor fix, again...
HorrorTroll 6 lat temu
rodzic
commit
17200214df

+ 10 - 4
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)

+ 8 - 1
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();
 

+ 2 - 0
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)
                 {

+ 27 - 2
Ryujinx/Ui/MainWindow.glade

@@ -475,7 +475,7 @@
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
                         <property name="halign">start</property>
-                        <property name="margin_left">10</property>
+                        <property name="margin_left">5</property>
                         <property name="margin_right">5</property>
                         <property name="label" translatable="yes">VSync</property>
                       </object>
@@ -527,13 +527,38 @@
                         <property name="can_focus">False</property>
                         <property name="halign">start</property>
                         <property name="margin_left">5</property>
+                        <property name="margin_right">5</property>
                       </object>
                       <packing>
-                        <property name="expand">True</property>
+                        <property name="expand">False</property>
                         <property name="fill">True</property>
                         <property name="position">4</property>
                       </packing>
                     </child>
+                    <child>
+                      <object class="GtkSeparator">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                      </object>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="fill">True</property>
+                        <property name="position">5</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkLabel" id="_gpuName">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="halign">start</property>
+                        <property name="margin_left">5</property>
+                      </object>
+                      <packing>
+                        <property name="expand">True</property>
+                        <property name="fill">True</property>
+                        <property name="position">6</property>
+                      </packing>
+                    </child>
                   </object>
                   <packing>
                     <property name="expand">True</property>

+ 3 - 1
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;
         }
     }
 }