mirror of
https://git.ryujinx.app/projects/Kenji-NX.git
synced 2026-09-27 16:07:55 +02:00
55 lines
1.3 KiB
C#
55 lines
1.3 KiB
C#
using System.Threading.Tasks;
|
|
|
|
namespace Ryujinx.Graphics.Vulkan
|
|
{
|
|
struct ShaderCompilationRequest
|
|
{
|
|
private readonly Task _task;
|
|
private readonly ShaderCompilationQueue _queue;
|
|
private readonly int _queueIndex;
|
|
private readonly ulong _requestId;
|
|
|
|
public bool IsCompleted
|
|
{
|
|
get
|
|
{
|
|
if (_task != null)
|
|
{
|
|
return _task.IsCompleted;
|
|
}
|
|
else
|
|
{
|
|
return _queue.IsCompleted(_queueIndex, _requestId);
|
|
}
|
|
}
|
|
}
|
|
|
|
public ShaderCompilationRequest(Task task)
|
|
{
|
|
_task = task;
|
|
_queue = null;
|
|
_queueIndex = 0;
|
|
_requestId = 0;
|
|
}
|
|
|
|
public ShaderCompilationRequest(ShaderCompilationQueue queue, int queueIndex, ulong requestId)
|
|
{
|
|
_task = null;
|
|
_queue = queue;
|
|
_queueIndex = queueIndex;
|
|
_requestId = requestId;
|
|
}
|
|
|
|
public void Wait()
|
|
{
|
|
if (_task != null)
|
|
{
|
|
_task.Wait();
|
|
}
|
|
else
|
|
{
|
|
_queue.Wait(_queueIndex, _requestId);
|
|
}
|
|
}
|
|
}
|
|
} |