feat(render): unify physical residency accounting
This commit is contained in:
parent
1866ea0c6d
commit
3e18fc2730
25 changed files with 642 additions and 48 deletions
|
|
@ -6,6 +6,40 @@ namespace AcDream.App.Tests.Rendering;
|
|||
|
||||
public sealed class CompositeTextureArrayCachePolicyTests
|
||||
{
|
||||
[Fact]
|
||||
public void ResidencySnapshotSeparatesResidentRequestedAndRetiringStorage()
|
||||
{
|
||||
var backend = new FakeBackend(maximumLayers: 1);
|
||||
var retirements = new DeferredRetirementQueue();
|
||||
using var cache = CreateCache(
|
||||
backend,
|
||||
retirements,
|
||||
unownedBudgetBytes: 0,
|
||||
physicalBudgetBytes: 0);
|
||||
cache.BeginFrame();
|
||||
Assert.True(cache.TryAddAndAcquire(
|
||||
1,
|
||||
Key(1),
|
||||
Texture(4, 4),
|
||||
out _));
|
||||
|
||||
var resident = cache.CaptureResidency();
|
||||
Assert.Equal(64, resident.Charges.GpuResidentBytes);
|
||||
Assert.Equal(0, resident.Charges.RetiringBytes);
|
||||
Assert.Equal(64, resident.CapacityBytes);
|
||||
Assert.Equal(64, resident.UsedBytes);
|
||||
|
||||
cache.ReleaseOwner(1);
|
||||
cache.Tick();
|
||||
retirements.DrainAll();
|
||||
cache.Tick();
|
||||
|
||||
var retired = cache.CaptureResidency();
|
||||
Assert.Equal(0, retired.Charges.GpuResidentBytes);
|
||||
Assert.Equal(0, retired.Charges.RetiringBytes);
|
||||
Assert.Equal(0, retired.CapacityBytes);
|
||||
}
|
||||
|
||||
[Theory]
|
||||
[InlineData(16, 16, 64)]
|
||||
[InlineData(128, 128, 64)]
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue