Merge branch 'master' of http://isvgit.amd.com/gpuopen/GPUOpen-LibrariesAndSDKs/d3d12memoryallocator
diff --git a/src/Tests.cpp b/src/Tests.cpp
index d57bd75..ab8394c 100644
--- a/src/Tests.cpp
+++ b/src/Tests.cpp
@@ -48,7 +48,7 @@
static const char* CODE_DESCRIPTION = "D3D12MA Tests";
static constexpr UINT64 KILOBYTE = 1024;
static constexpr UINT64 MEGABYTE = 1024 * KILOBYTE;
-static constexpr CONFIG_TYPE ConfigType = CONFIG_TYPE_SMALL;
+static constexpr CONFIG_TYPE ConfigType = CONFIG_TYPE_AVERAGE;
static const char* FREE_ORDER_NAMES[] = { "FORWARD", "BACKWARD", "RANDOM", };
static void CurrentTimeToStr(std::string& out)
@@ -1629,17 +1629,35 @@
CheckStatistics(endStats.HeapType[1]);
CheckStatistics(endStats.HeapType[2]);
- D3D12MA::Budget gpuBudget = {}, cpuBudget = {};
- ctx.allocator->GetBudget(&gpuBudget, &cpuBudget);
+ D3D12MA::Budget localBudget = {}, nonLocalBudget = {};
+ ctx.allocator->GetBudget(&localBudget, &nonLocalBudget);
+
+ CHECK_BOOL(localBudget.Stats.AllocationBytes <= localBudget.Stats.BlockBytes);
+ CHECK_BOOL(endStats.HeapType[3].Stats.BlockCount == 0); // No allocation from D3D12_HEAP_TYPE_CUSTOM in this test.
+ if(!ctx.allocator->IsUMA())
+ {
+ // Discrete GPU
+ CHECK_BOOL(localBudget.Stats.AllocationBytes == endStats.HeapType[0].Stats.AllocationBytes);
+ CHECK_BOOL(localBudget.Stats.BlockBytes == endStats.HeapType[0].Stats.BlockBytes);
- CHECK_BOOL(gpuBudget.Stats.AllocationBytes <= gpuBudget.Stats.BlockBytes);
- CHECK_BOOL(gpuBudget.Stats.AllocationBytes == endStats.HeapType[0].Stats.AllocationBytes);
- CHECK_BOOL(gpuBudget.Stats.BlockBytes == endStats.HeapType[0].Stats.BlockBytes);
-
- CHECK_BOOL(cpuBudget.Stats.AllocationBytes <= cpuBudget.Stats.BlockBytes);
- CHECK_BOOL(cpuBudget.Stats.AllocationBytes == endStats.HeapType[1].Stats.AllocationBytes + endStats.HeapType[2].Stats.AllocationBytes);
- CHECK_BOOL(cpuBudget.Stats.BlockBytes ==
- endStats.HeapType[1].Stats.BlockBytes + endStats.HeapType[2].Stats.BlockBytes);
+ CHECK_BOOL(nonLocalBudget.Stats.AllocationBytes <= nonLocalBudget.Stats.BlockBytes);
+ CHECK_BOOL(nonLocalBudget.Stats.AllocationBytes == endStats.HeapType[1].Stats.AllocationBytes + endStats.HeapType[2].Stats.AllocationBytes);
+ CHECK_BOOL(nonLocalBudget.Stats.BlockBytes ==
+ endStats.HeapType[1].Stats.BlockBytes + endStats.HeapType[2].Stats.BlockBytes);
+ }
+ else
+ {
+ // Integrated GPU - all memory is local
+ CHECK_BOOL(localBudget.Stats.AllocationBytes == endStats.HeapType[0].Stats.AllocationBytes +
+ endStats.HeapType[1].Stats.AllocationBytes +
+ endStats.HeapType[2].Stats.AllocationBytes);
+ CHECK_BOOL(localBudget.Stats.BlockBytes == endStats.HeapType[0].Stats.BlockBytes +
+ endStats.HeapType[1].Stats.BlockBytes +
+ endStats.HeapType[2].Stats.BlockBytes);
+
+ CHECK_BOOL(nonLocalBudget.Stats.AllocationBytes == 0);
+ CHECK_BOOL(nonLocalBudget.Stats.BlockBytes == 0);
+ }
}
static void TestTransfer(const TestContext& ctx)