Frame times in title bar
This commit is contained in:
parent
5b029ae7a2
commit
5e87bbeb46
2 changed files with 35 additions and 4 deletions
|
@ -13,6 +13,7 @@ namespace Ryujinx.HLE
|
|||
private double[] _averageFrameRate;
|
||||
private double[] _accumulatedFrameTime;
|
||||
private double[] _previousFrameTime;
|
||||
private double[] _deltaFrameTime;
|
||||
|
||||
private long[] _framesRendered;
|
||||
|
||||
|
@ -29,6 +30,7 @@ namespace Ryujinx.HLE
|
|||
_averageFrameRate = new double[2];
|
||||
_accumulatedFrameTime = new double[2];
|
||||
_previousFrameTime = new double[2];
|
||||
_deltaFrameTime = new double[2];
|
||||
|
||||
_framesRendered = new long[2];
|
||||
|
||||
|
@ -93,13 +95,13 @@ namespace Ryujinx.HLE
|
|||
{
|
||||
double currentFrameTime = _executionTime.ElapsedTicks * _ticksToSeconds;
|
||||
|
||||
double elapsedFrameTime = currentFrameTime - _previousFrameTime[frameType];
|
||||
_deltaFrameTime[frameType] = currentFrameTime - _previousFrameTime[frameType];
|
||||
|
||||
_previousFrameTime[frameType] = currentFrameTime;
|
||||
|
||||
lock (_frameLock[frameType])
|
||||
{
|
||||
_accumulatedFrameTime[frameType] += elapsedFrameTime;
|
||||
_accumulatedFrameTime[frameType] += _deltaFrameTime[frameType];
|
||||
|
||||
_framesRendered[frameType]++;
|
||||
}
|
||||
|
@ -114,5 +116,25 @@ namespace Ryujinx.HLE
|
|||
{
|
||||
return _averageFrameRate[FrameTypeGame];
|
||||
}
|
||||
|
||||
public double GetGameFrameTime()
|
||||
{
|
||||
return _deltaFrameTime[FrameTypeGame] * 1000;
|
||||
}
|
||||
|
||||
public double GetGameAverageFrameTime()
|
||||
{
|
||||
return 1000 / _averageFrameRate[FrameTypeGame];
|
||||
}
|
||||
|
||||
public double GetSystemFrameTime()
|
||||
{
|
||||
return _deltaFrameTime[FrameTypeSystem] * 1000;
|
||||
}
|
||||
|
||||
public double GetSystemAverageFrameTime()
|
||||
{
|
||||
return 1000 / _averageFrameRate[FrameTypeSystem];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -246,14 +246,23 @@ namespace Ryujinx
|
|||
|
||||
_device.Statistics.RecordSystemFrameTime();
|
||||
|
||||
// System
|
||||
double hostFps = _device.Statistics.GetSystemFrameRate();
|
||||
double hostFrameTime = _device.Statistics.GetSystemFrameTime();
|
||||
double hostAvgFrameTime = _device.Statistics.GetSystemAverageFrameTime();
|
||||
|
||||
// Game
|
||||
double gameFps = _device.Statistics.GetGameFrameRate();
|
||||
double gameFrameTime =_device.Statistics.GetGameFrameTime();
|
||||
double gameAvgFrameTime = _device.Statistics.GetGameAverageFrameTime();
|
||||
|
||||
string titleSection = string.IsNullOrWhiteSpace(_device.System.CurrentTitle) ? string.Empty
|
||||
: " | " + _device.System.CurrentTitle;
|
||||
|
||||
_newTitle = $"Ryujinx{titleSection} | Host FPS: {hostFps:0.0} | Game FPS: {gameFps:0.0} | " +
|
||||
$"Game Vsync: {(_device.EnableDeviceVsync ? "On" : "Off")}";
|
||||
_newTitle = $"Ryujinx{titleSection} | " +
|
||||
$"Host FPS: {hostFps:0.0} ({hostFrameTime:000.00}ms, Avg: {hostAvgFrameTime:000.00}ms) | " +
|
||||
$"Game FPS: {gameFps:0.0} ({gameFrameTime:000.00}ms, Avg: {gameAvgFrameTime:000.00}ms) | " +
|
||||
$"Game Vsync: {(_device.EnableDeviceVsync ? "On" : "Off")}";
|
||||
|
||||
_titleEvent = true;
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue