mirror of
https://github.com/Ryujinx/Ryujinx.git
synced 2025-01-01 18:16:01 +00:00
40 lines
1.6 KiB
C#
40 lines
1.6 KiB
C#
|
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);
|
||
|
}
|
||
|
}
|