aboutsummaryrefslogtreecommitdiff
path: root/Ryujinx.Graphics.Gpu/Engine
diff options
context:
space:
mode:
authorgdkchan <gab.dark.100@gmail.com>2020-01-01 12:39:09 -0300
committerThog <thog@protonmail.com>2020-01-09 02:13:00 +0100
commit92703af5558258da078d876b1d46e916b1065978 (patch)
tree6579863103b145b3e7345e42fc03caf870622b43 /Ryujinx.Graphics.Gpu/Engine
parent40ef18d7599971c7387779d752a73568685d3432 (diff)
Address PR feedback
Diffstat (limited to 'Ryujinx.Graphics.Gpu/Engine')
-rw-r--r--Ryujinx.Graphics.Gpu/Engine/MethodReport.cs15
-rw-r--r--Ryujinx.Graphics.Gpu/Engine/Methods.cs22
2 files changed, 21 insertions, 16 deletions
diff --git a/Ryujinx.Graphics.Gpu/Engine/MethodReport.cs b/Ryujinx.Graphics.Gpu/Engine/MethodReport.cs
index 8418f0bb..4b6b8fd0 100644
--- a/Ryujinx.Graphics.Gpu/Engine/MethodReport.cs
+++ b/Ryujinx.Graphics.Gpu/Engine/MethodReport.cs
@@ -8,6 +8,9 @@ namespace Ryujinx.Graphics.Gpu.Engine
{
partial class Methods
{
+ private const int NsToTicksFractionNumerator = 384;
+ private const int NsToTicksFractionDenominator = 625;
+
private ulong _runningCounter;
/// <summary>
@@ -103,8 +106,10 @@ namespace Ryujinx.Graphics.Gpu.Engine
/// <summary>
/// Converts a nanoseconds timestamp value to Maxwell time ticks.
- /// The frequency is approximately 1.63Hz.
/// </summary>
+ /// <remarks>
+ /// The frequency is 614400000 Hz.
+ /// </remarks>
/// <param name="nanoseconds">Timestamp in nanoseconds</param>
/// <returns>Maxwell ticks</returns>
private static ulong ConvertNanosecondsToTicks(ulong nanoseconds)
@@ -112,13 +117,13 @@ namespace Ryujinx.Graphics.Gpu.Engine
// We need to divide first to avoid overflows.
// We fix up the result later by calculating the difference and adding
// that to the result.
- ulong divided = nanoseconds / 625;
+ ulong divided = nanoseconds / NsToTicksFractionDenominator;
- ulong rounded = divided * 625;
+ ulong rounded = divided * NsToTicksFractionDenominator;
- ulong errorBias = ((nanoseconds - rounded) * 384) / 625;
+ ulong errorBias = (nanoseconds - rounded) * NsToTicksFractionNumerator / NsToTicksFractionDenominator;
- return divided * 384 + errorBias;
+ return divided * NsToTicksFractionNumerator + errorBias;
}
}
} \ No newline at end of file
diff --git a/Ryujinx.Graphics.Gpu/Engine/Methods.cs b/Ryujinx.Graphics.Gpu/Engine/Methods.cs
index 6dce61f2..d832c62e 100644
--- a/Ryujinx.Graphics.Gpu/Engine/Methods.cs
+++ b/Ryujinx.Graphics.Gpu/Engine/Methods.cs
@@ -48,7 +48,7 @@ namespace Ryujinx.Graphics.Gpu.Engine
ShaderCache = new ShaderCache(_context);
- _currentProgramInfo = new ShaderProgramInfo[Constants.TotalShaderStages];
+ _currentProgramInfo = new ShaderProgramInfo[Constants.ShaderStages];
BufferManager = new BufferManager(context);
TextureManager = new TextureManager(context);
@@ -201,7 +201,7 @@ namespace Ryujinx.Graphics.Gpu.Engine
/// <summary>
/// Ensures that the bindings are visible to the host GPU.
- /// This actually performs the binding using the host graphics API.
+ /// Note: this actually performs the binding using the host graphics API.
/// </summary>
private void CommitBindings()
{
@@ -622,7 +622,7 @@ namespace Ryujinx.Graphics.Gpu.Engine
/// <summary>
/// Updates host render target color masks, based on guest GPU state.
- /// This defines with color channels are written to each color buffer.
+ /// This defines which color channels are written to each color buffer.
/// </summary>
/// <param name="state">Current GPU state</param>
private void UpdateRtColorMask(GpuState state)
@@ -739,7 +739,7 @@ namespace Ryujinx.Graphics.Gpu.Engine
_vsUsesInstanceId = gs.Shaders[0].Program.Info.UsesInstanceId;
- for (int stage = 0; stage < Constants.TotalShaderStages; stage++)
+ for (int stage = 0; stage < Constants.ShaderStages; stage++)
{
ShaderProgramInfo info = gs.Shaders[stage].Program?.Info;
@@ -845,7 +845,7 @@ namespace Ryujinx.Graphics.Gpu.Engine
return Target.CubemapArray;
}
- // TODO: Warning.
+ Logger.PrintWarning(LogClass.Gpu, $"Invalid sampler type \"{type}\".");
return Target.Texture2D;
}
@@ -855,8 +855,8 @@ namespace Ryujinx.Graphics.Gpu.Engine
/// This waits until previous texture writes from the GPU to finish, before
/// performing new operations with said textures.
/// </summary>
- /// <param name="state">Current GPU state</param>
- /// <param name="argument">Method call argument</param>
+ /// <param name="state">Current GPU state (unused)</param>
+ /// <param name="argument">Method call argument (unused)</param>
private void TextureBarrier(GpuState state, int argument)
{
_context.Renderer.Pipeline.TextureBarrier();
@@ -865,8 +865,8 @@ namespace Ryujinx.Graphics.Gpu.Engine
/// <summary>
/// Invalidates all modified textures on the cache.
/// </summary>
- /// <param name="state">Current GPU state</param>
- /// <param name="argument">Method call argument</param>
+ /// <param name="state">Current GPU state (unused)</param>
+ /// <param name="argument">Method call argument (unused)</param>
private void InvalidateTextures(GpuState state, int argument)
{
TextureManager.Flush();
@@ -880,8 +880,8 @@ namespace Ryujinx.Graphics.Gpu.Engine
/// and current access has the same access patterns.
/// This may be faster than the regular barrier on tile-based rasterizers.
/// </summary>
- /// <param name="state"></param>
- /// <param name="argument"></param>
+ /// <param name="state">Current GPU state (unused)</param>
+ /// <param name="argument">Method call argument (unused)</param>
private void TextureBarrierTiled(GpuState state, int argument)
{
_context.Renderer.Pipeline.TextureBarrierTiled();