using Ryujinx.Common.Logging; using System; using System.Threading; namespace Ryujinx.Graphics.Device { /// /// Synchronization manager interface. /// public interface ISynchronizationManager { /// /// Increment the value of a syncpoint with a given id. /// /// The id of the syncpoint /// Thrown when id >= MaxHardwareSyncpoints /// The incremented value of the syncpoint uint IncrementSyncpoint(uint id); /// /// Get the value of a syncpoint with a given id. /// /// The id of the syncpoint /// Thrown when id >= MaxHardwareSyncpoints /// The value of the syncpoint uint GetSyncpointValue(uint id); /// /// Wait on a syncpoint with a given id at a target threshold. /// The callback will be called once the threshold is reached and will automatically be unregistered. /// /// The id of the syncpoint /// The target threshold /// The timeout /// Thrown when id >= MaxHardwareSyncpoints /// True if timed out bool WaitOnSyncpoint(uint id, uint threshold, TimeSpan timeout); } }