feat(render): implement Campaign AR and terrain fidelity
This commit is contained in:
parent
99cf26e00c
commit
7a5f96ede5
368 changed files with 50611 additions and 950 deletions
|
|
@ -0,0 +1,52 @@
|
|||
using AcDream.App.Rendering.Gpu.Vk;
|
||||
|
||||
namespace AcDream.App.Tests.Rendering.Gpu.Vk;
|
||||
|
||||
public sealed class VulkanDrawBindingStateTests
|
||||
{
|
||||
[Fact]
|
||||
public void FirstDrawBinds_IdenticalDrawReuses_ChangedInputsRebind()
|
||||
{
|
||||
var state = new VulkanDrawBindingState();
|
||||
|
||||
Assert.True(state.RequiresBind(pipelineLayout: 10, packGeneration: 3));
|
||||
state.MarkBound(pipelineLayout: 10, packGeneration: 3);
|
||||
Assert.False(state.RequiresBind(pipelineLayout: 10, packGeneration: 3));
|
||||
|
||||
state.MarkDirty();
|
||||
Assert.True(state.RequiresBind(pipelineLayout: 10, packGeneration: 3));
|
||||
state.MarkBound(pipelineLayout: 10, packGeneration: 3);
|
||||
Assert.True(state.RequiresBind(pipelineLayout: 11, packGeneration: 3));
|
||||
Assert.True(state.RequiresBind(pipelineLayout: 10, packGeneration: 4));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void PackAndRetailLayoutsCannotReuseEachOthersBinding()
|
||||
{
|
||||
var state = new VulkanDrawBindingState();
|
||||
|
||||
state.MarkBound(pipelineLayout: 20, packGeneration: 7);
|
||||
|
||||
Assert.True(state.RequiresBind(pipelineLayout: 21, packGeneration: 0));
|
||||
state.MarkBound(pipelineLayout: 21, packGeneration: 0);
|
||||
Assert.True(state.RequiresBind(pipelineLayout: 20, packGeneration: 7));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void WarmChecksAllocateZero()
|
||||
{
|
||||
var state = new VulkanDrawBindingState();
|
||||
state.MarkBound(pipelineLayout: 30, packGeneration: 8);
|
||||
|
||||
long before = GC.GetAllocatedBytesForCurrentThread();
|
||||
for (int iteration = 0; iteration < 10_000; iteration++)
|
||||
{
|
||||
Assert.False(state.RequiresBind(
|
||||
pipelineLayout: 30,
|
||||
packGeneration: 8));
|
||||
}
|
||||
long allocated = GC.GetAllocatedBytesForCurrentThread() - before;
|
||||
|
||||
Assert.Equal(0, allocated);
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue