test: replace render source freezes
This commit is contained in:
parent
c31a9ac411
commit
5a33369074
7 changed files with 425 additions and 345 deletions
|
|
@ -84,6 +84,9 @@ internal sealed class RecordingGpuDevice : IGpuDevice
|
|||
|
||||
private readonly List<GpuRecordedCall> _calls = [];
|
||||
private readonly List<Action> _queuedActions = [];
|
||||
private readonly List<RecordingGpuBuffer> _createdBuffers = [];
|
||||
private readonly List<RecordingGpuPipeline> _createdPipelines = [];
|
||||
private readonly List<RecordingGpuSampler> _createdSamplers = [];
|
||||
private readonly Dictionary<GpuSamplerDescription, RecordingGpuSampler> _samplers = [];
|
||||
private readonly byte[] _ring;
|
||||
private readonly Stack<uint> _freeTextureSlots = new();
|
||||
|
|
@ -151,8 +154,18 @@ internal sealed class RecordingGpuDevice : IGpuDevice
|
|||
|
||||
public void Clear() => _calls.Clear();
|
||||
|
||||
public IGpuBuffer CreateBuffer(in GpuBufferDescription description) =>
|
||||
new RecordingGpuBuffer(description);
|
||||
public IReadOnlyList<RecordingGpuBuffer> CreatedBuffers => _createdBuffers;
|
||||
|
||||
public IReadOnlyList<RecordingGpuPipeline> CreatedPipelines => _createdPipelines;
|
||||
|
||||
public IReadOnlyList<RecordingGpuSampler> CreatedSamplers => _createdSamplers;
|
||||
|
||||
public IGpuBuffer CreateBuffer(in GpuBufferDescription description)
|
||||
{
|
||||
var buffer = new RecordingGpuBuffer(description);
|
||||
_createdBuffers.Add(buffer);
|
||||
return buffer;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Campaign V slice V6i-2: every image this device made, in creation order.
|
||||
|
|
@ -185,13 +198,16 @@ internal sealed class RecordingGpuDevice : IGpuDevice
|
|||
|
||||
RecordingGpuSampler created = new(description);
|
||||
_samplers.Add(description, created);
|
||||
_createdSamplers.Add(created);
|
||||
return created;
|
||||
}
|
||||
|
||||
public IGpuPipeline CreatePipeline(GpuPipelineDescription description)
|
||||
{
|
||||
ArgumentNullException.ThrowIfNull(description);
|
||||
return new RecordingGpuPipeline(description);
|
||||
var pipeline = new RecordingGpuPipeline(description);
|
||||
_createdPipelines.Add(pipeline);
|
||||
return pipeline;
|
||||
}
|
||||
|
||||
public IGpuRenderTarget CreateRenderTarget(in GpuRenderTargetDescription description) =>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue