| 123456789101112131415161718192021222324252627282930313233343536373839 |
- using Ryujinx.Common.Logging;
- using System;
- using System.Threading;
- namespace Ryujinx.Graphics.Device
- {
- /// <summary>
- /// Synchronization manager interface.
- /// </summary>
- public interface ISynchronizationManager
- {
- /// <summary>
- /// Increment the value of a syncpoint with a given id.
- /// </summary>
- /// <param name="id">The id of the syncpoint</param>
- /// <exception cref="System.ArgumentOutOfRangeException">Thrown when id >= MaxHardwareSyncpoints</exception>
- /// <returns>The incremented value of the syncpoint</returns>
- uint IncrementSyncpoint(uint id);
- /// <summary>
- /// Get the value of a syncpoint with a given id.
- /// </summary>
- /// <param name="id">The id of the syncpoint</param>
- /// <exception cref="System.ArgumentOutOfRangeException">Thrown when id >= MaxHardwareSyncpoints</exception>
- /// <returns>The value of the syncpoint</returns>
- uint GetSyncpointValue(uint id);
- /// <summary>
- /// 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.
- /// </summary>
- /// <param name="id">The id of the syncpoint</param>
- /// <param name="threshold">The target threshold</param>
- /// <param name="timeout">The timeout</param>
- /// <exception cref="System.ArgumentOutOfRangeException">Thrown when id >= MaxHardwareSyncpoints</exception>
- /// <returns>True if timed out</returns>
- bool WaitOnSyncpoint(uint id, uint threshold, TimeSpan timeout);
- }
- }
|