feat(render): unify physical residency accounting
This commit is contained in:
parent
1866ea0c6d
commit
3e18fc2730
25 changed files with 642 additions and 48 deletions
|
|
@ -52,6 +52,8 @@ public sealed class StandaloneBindlessTextureCacheTests
|
|||
cache.Tick();
|
||||
|
||||
Assert.Equal(2, cache.EntryCount);
|
||||
Assert.Equal(12, cache.AllocatedBytes);
|
||||
Assert.Equal(4, cache.RetiringBytes);
|
||||
Assert.Equal(2, cache.UnownedEntryCount);
|
||||
Assert.Single(retirements.Actions);
|
||||
Assert.Empty(backend.Events);
|
||||
|
|
@ -60,6 +62,8 @@ public sealed class StandaloneBindlessTextureCacheTests
|
|||
|
||||
retirements.Drain();
|
||||
Assert.Equal(["nonresident:1", "delete:1"], backend.Events);
|
||||
Assert.Equal(8, cache.AllocatedBytes);
|
||||
Assert.Equal(0, cache.RetiringBytes);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
|
|
@ -196,6 +200,32 @@ public sealed class StandaloneBindlessTextureCacheTests
|
|||
backend.Events);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void DisposePreservesAcceptedFenceRetirementAccountingUntilCompletion()
|
||||
{
|
||||
var backend = new FakeBackend();
|
||||
var retirements = new DeferredRetirementQueue();
|
||||
var cache = CreateCache(
|
||||
backend,
|
||||
retirements,
|
||||
unownedBudgetBytes: 1_000,
|
||||
maximumUnownedCount: 1);
|
||||
AddAndRelease(cache, ownerId: 10, Resource(1, bytes: 4));
|
||||
AddAndRelease(cache, ownerId: 20, Resource(2, bytes: 4));
|
||||
cache.Tick();
|
||||
|
||||
Assert.Equal(8, cache.AllocatedBytes);
|
||||
Assert.Equal(4, cache.RetiringBytes);
|
||||
|
||||
cache.Dispose();
|
||||
|
||||
Assert.Equal(4, cache.AllocatedBytes);
|
||||
Assert.Equal(4, cache.RetiringBytes);
|
||||
retirements.Drain();
|
||||
Assert.Equal(0, cache.AllocatedBytes);
|
||||
Assert.Equal(0, cache.RetiringBytes);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void FailedResidencyReleaseNeverDeletesThatBackingTexture()
|
||||
{
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue