MCPcopy Create free account
hub / github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator / ValidateGpuData

Function ValidateGpuData

src/Tests.cpp:1086–1191  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1084}
1085
1086static void ValidateGpuData(const AllocInfo* allocInfo, size_t allocInfoCount)
1087{
1088 StagingBufferCollection stagingBufs;
1089
1090 bool cmdBufferStarted = false;
1091 size_t validateAllocIndexOffset = 0;
1092 std::vector<void*> validateStagingBuffers;
1093 for(size_t allocInfoIndex = 0; allocInfoIndex < allocInfoCount; ++allocInfoIndex)
1094 {
1095 const AllocInfo& currAllocInfo = allocInfo[allocInfoIndex];
1096 if(currAllocInfo.m_Buffer)
1097 {
1098 const VkDeviceSize size = currAllocInfo.m_BufferInfo.size;
1099
1100 VkBuffer stagingBuf = VK_NULL_HANDLE;
1101 void* stagingBufMappedPtr = nullptr;
1102 if(!stagingBufs.AcquireBuffer(size, stagingBuf, stagingBufMappedPtr))
1103 {
1104 TEST(cmdBufferStarted);
1105 EndSingleTimeCommands();
1106 cmdBufferStarted = false;
1107
1108 for(size_t validateIndex = 0;
1109 validateIndex < validateStagingBuffers.size();
1110 ++validateIndex)
1111 {
1112 const size_t validateAllocIndex = validateIndex + validateAllocIndexOffset;
1113 const VkDeviceSize validateSize = allocInfo[validateAllocIndex].m_BufferInfo.size;
1114 TEST(validateSize % sizeof(uint32_t) == 0);
1115 const uint32_t* stagingValPtr = (const uint32_t*)validateStagingBuffers[validateIndex];
1116 uint32_t val = allocInfo[validateAllocIndex].m_StartValue;
1117 bool valid = true;
1118 for(size_t i = 0; i < validateSize / sizeof(uint32_t); ++i)
1119 {
1120 if(*stagingValPtr != val)
1121 {
1122 valid = false;
1123 break;
1124 }
1125 ++stagingValPtr;
1126 ++val;
1127 }
1128 TEST(valid);
1129 }
1130
1131 stagingBufs.ReleaseAllBuffers();
1132
1133 validateAllocIndexOffset = allocInfoIndex;
1134 validateStagingBuffers.clear();
1135
1136 bool ok = stagingBufs.AcquireBuffer(size, stagingBuf, stagingBufMappedPtr);
1137 TEST(ok);
1138 }
1139
1140 // Issue copy command from staging buffer to destination buffer.
1141 if(!cmdBufferStarted)
1142 {
1143 cmdBufferStarted = true;

Callers 2

TestDefragmentationGpuFunction · 0.85
TestGpuDataFunction · 0.85

Calls 8

TESTEnum · 0.85
EndSingleTimeCommandsFunction · 0.85
BeginSingleTimeCommandsFunction · 0.85
AcquireBufferMethod · 0.80
ReleaseAllBuffersMethod · 0.80
sizeMethod · 0.45
clearMethod · 0.45
push_backMethod · 0.45

Tested by

no test coverage detected