Replace Host FPS with GPU command queue load ("Fifo %") (#1585)

* Replace Host FPS with FIFO%

* Change measurement order. Improve calculation.

Now at 100% when FIFO is blocking game exectution, rather than "0".

* Address feedback (1)

* Remove Host FPS

* FIFO rather than Fifo

* Address Ac_k feedback

* Rebase
This commit is contained in:
riperiperi 2020-10-13 21:54:42 +01:00 committed by GitHub
parent 04e330cc00
commit aec8177850
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 102 additions and 40 deletions

View file

@ -339,7 +339,9 @@ namespace Ryujinx.Ui
if (_device.WaitFifo())
{
_device.Statistics.RecordFifoStart();
_device.ProcessFrame();
_device.Statistics.RecordFifoEnd();
}
string dockedMode = ConfigurationState.Instance.System.EnableDockedMode ? "Docked" : "Handheld";
@ -353,13 +355,11 @@ namespace Ryujinx.Ui
{
_device.PresentFrame(SwapBuffers);
_device.Statistics.RecordSystemFrameTime();
StatusUpdatedEvent?.Invoke(this, new StatusUpdatedEventArgs(
_device.EnableDeviceVsync,
dockedMode,
$"Host: {_device.Statistics.GetSystemFrameRate():00.00} FPS",
$"Game: {_device.Statistics.GetGameFrameRate():00.00} FPS",
$"FIFO: {_device.Statistics.GetFifoPercent():0.00} %",
$"GPU: {_renderer.GpuVendor}"));
_ticks = Math.Min(_ticks - _ticksPerFrame, _ticksPerFrame);

View file

@ -59,7 +59,7 @@ namespace Ryujinx.Ui
[GUI] CheckMenuItem _favToggle;
[GUI] MenuItem _firmwareInstallDirectory;
[GUI] MenuItem _firmwareInstallFile;
[GUI] Label _hostStatus;
[GUI] Label _fifoStatus;
[GUI] CheckMenuItem _iconToggle;
[GUI] CheckMenuItem _developerToggle;
[GUI] CheckMenuItem _appToggle;
@ -792,8 +792,8 @@ namespace Ryujinx.Ui
{
Application.Invoke(delegate
{
_hostStatus.Text = args.HostStatus;
_gameStatus.Text = args.GameStatus;
_fifoStatus.Text = args.FifoStatus;
_gpuName.Text = args.GpuName;
_dockedMode.Text = args.DockedMode;

View file

@ -521,7 +521,7 @@
</packing>
</child>
<child>
<object class="GtkLabel" id="_hostStatus">
<object class="GtkLabel" id="_gameStatus">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="halign">start</property>
@ -546,7 +546,7 @@
</packing>
</child>
<child>
<object class="GtkLabel" id="_gameStatus">
<object class="GtkLabel" id="_fifoStatus">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="halign">start</property>

View file

@ -6,16 +6,16 @@ namespace Ryujinx.Ui
{
public bool VSyncEnabled;
public string DockedMode;
public string HostStatus;
public string GameStatus;
public string FifoStatus;
public string GpuName;
public StatusUpdatedEventArgs(bool vSyncEnabled, string dockedMode, string hostStatus, string gameStatus, string gpuName)
public StatusUpdatedEventArgs(bool vSyncEnabled, string dockedMode, string gameStatus, string fifoStatus, string gpuName)
{
VSyncEnabled = vSyncEnabled;
DockedMode = dockedMode;
HostStatus = hostStatus;
GameStatus = gameStatus;
FifoStatus = fifoStatus;
GpuName = gpuName;
}
}