aboutsummaryrefslogtreecommitdiff
path: root/src/Ryujinx.Audio/Renderer/Server/Performance/PerformanceFrameHeaderVersion2.cs
diff options
context:
space:
mode:
authorTSR Berry <20988865+TSRBerry@users.noreply.github.com>2023-04-08 01:22:00 +0200
committerMary <thog@protonmail.com>2023-04-27 23:51:14 +0200
commitcee712105850ac3385cd0091a923438167433f9f (patch)
tree4a5274b21d8b7f938c0d0ce18736d3f2993b11b1 /src/Ryujinx.Audio/Renderer/Server/Performance/PerformanceFrameHeaderVersion2.cs
parentcd124bda587ef09668a971fa1cac1c3f0cfc9f21 (diff)
Move solution and projects to src
Diffstat (limited to 'src/Ryujinx.Audio/Renderer/Server/Performance/PerformanceFrameHeaderVersion2.cs')
-rw-r--r--src/Ryujinx.Audio/Renderer/Server/Performance/PerformanceFrameHeaderVersion2.cs117
1 files changed, 117 insertions, 0 deletions
diff --git a/src/Ryujinx.Audio/Renderer/Server/Performance/PerformanceFrameHeaderVersion2.cs b/src/Ryujinx.Audio/Renderer/Server/Performance/PerformanceFrameHeaderVersion2.cs
new file mode 100644
index 00000000..a1822968
--- /dev/null
+++ b/src/Ryujinx.Audio/Renderer/Server/Performance/PerformanceFrameHeaderVersion2.cs
@@ -0,0 +1,117 @@
+using System.Runtime.InteropServices;
+
+namespace Ryujinx.Audio.Renderer.Server.Performance
+{
+ /// <summary>
+ /// Implementation of <see cref="IPerformanceHeader"/> for performance metrics version 2.
+ /// </summary>
+ [StructLayout(LayoutKind.Sequential, Pack = 1, Size = 0x30)]
+ public struct PerformanceFrameHeaderVersion2 : IPerformanceHeader
+ {
+ /// <summary>
+ /// The magic of the performance header.
+ /// </summary>
+ public uint Magic;
+
+ /// <summary>
+ /// The total count of entries in this frame.
+ /// </summary>
+ public int EntryCount;
+
+ /// <summary>
+ /// The total count of detailed entries in this frame.
+ /// </summary>
+ public int EntryDetailCount;
+
+ /// <summary>
+ /// The offset of the next performance header.
+ /// </summary>
+ public int NextOffset;
+
+ /// <summary>
+ /// The total time taken by all the commands profiled.
+ /// </summary>
+ public int TotalProcessingTime;
+
+ /// <summary>
+ /// The count of voices that were dropped.
+ /// </summary>
+ public uint VoiceDropCount;
+
+ /// <summary>
+ /// The start ticks of the <see cref="Dsp.AudioProcessor"/>. (before sending commands)
+ /// </summary>
+ public ulong StartRenderingTicks;
+
+ /// <summary>
+ /// The index of this performance frame.
+ /// </summary>
+ public uint Index;
+
+ /// <summary>
+ /// If set to true, the DSP is running behind.
+ /// </summary>
+ [MarshalAs(UnmanagedType.I1)]
+ public bool IsDspRunningBehind;
+
+ public int GetEntryCount()
+ {
+ return EntryCount;
+ }
+
+ public int GetEntryCountOffset()
+ {
+ return 4;
+ }
+
+ public int GetEntryDetailCount()
+ {
+ return EntryDetailCount;
+ }
+
+ public void SetDspRunningBehind(bool isRunningBehind)
+ {
+ IsDspRunningBehind = isRunningBehind;
+ }
+
+ public void SetEntryCount(int entryCount)
+ {
+ EntryCount = entryCount;
+ }
+
+ public void SetEntryDetailCount(int entryDetailCount)
+ {
+ EntryDetailCount = entryDetailCount;
+ }
+
+ public void SetIndex(uint index)
+ {
+ Index = index;
+ }
+
+ public void SetMagic(uint magic)
+ {
+ Magic = magic;
+ }
+
+ public void SetNextOffset(int nextOffset)
+ {
+ NextOffset = nextOffset;
+ }
+
+ public void SetStartRenderingTicks(ulong startTicks)
+ {
+ StartRenderingTicks = startTicks;
+ }
+
+ public void SetTotalProcessingTime(int totalProcessingTime)
+ {
+ TotalProcessingTime = totalProcessingTime;
+ }
+
+ public void SetVoiceDropCount(uint voiceCount)
+ {
+ VoiceDropCount = voiceCount;
+ }
+ }
+} \ No newline at end of file