using System; namespace Ryujinx.Audio.Renderer.Server.Performance { /// /// Information used by the performance command to store informations in the performance entry. /// public class PerformanceEntryAddresses { /// /// The memory storing the performance entry. /// public Memory BaseMemory; /// /// The offset to the start time field. /// public uint StartTimeOffset; /// /// The offset to the entry count field. /// public uint EntryCountOffset; /// /// The offset to the processing time field. /// public uint ProcessingTimeOffset; /// /// Increment the entry count. /// public void IncrementEntryCount() { BaseMemory.Span[(int)EntryCountOffset / 4]++; } /// /// Set the start time in the entry. /// /// The start time in nanoseconds. public void SetStartTime(ulong startTimeNano) { BaseMemory.Span[(int)StartTimeOffset / 4] = (int)(startTimeNano / 1000); } /// /// Set the processing time in the entry. /// /// The end time in nanoseconds. public void SetProcessingTime(ulong endTimeNano) { BaseMemory.Span[(int)ProcessingTimeOffset / 4] = (int)(endTimeNano / 1000) - BaseMemory.Span[(int)StartTimeOffset / 4]; } } }