BufferCaseParameters m_testCase;
};
-inline VkDeviceSize alignDeviceSize (VkDeviceSize val, VkDeviceSize align)
-{
- DE_ASSERT(deIsPowerOfTwo64(align));
- DE_ASSERT(val + align >= val); // crash on overflow
- return (val + align - 1) & ~(align - 1);
-}
-
tcu::TestStatus BufferTestInstance::bufferCreateAndAllocTest (VkDeviceSize size)
{
const VkPhysicalDevice vkPhysicalDevice = getPhysicalDevice();
const deUint32 heapTypeIndex = (deUint32)deCtz32(memReqs.memoryTypeBits);
const VkMemoryType memoryType = memoryProperties.memoryTypes[heapTypeIndex];
const VkMemoryHeap memoryHeap = memoryProperties.memoryHeaps[memoryType.heapIndex];
- const VkDeviceSize maxBufferSize = alignDeviceSize(memoryHeap.size >> 1, memReqs.alignment);
+ const VkDeviceSize maxBufferSize = deAlign64(memoryHeap.size >> 1, memReqs.alignment);
const deUint32 shrinkBits = 4; // number of bits to shift when reducing the size with each iteration
size = std::min(size, maxBufferSize);
if (result != VK_SUCCESS)
{
- size = alignDeviceSize(size >> shrinkBits, memReqs.alignment);
+ size = deAlign64(size >> shrinkBits, memReqs.alignment);
if (size == 0 || bufferParams.size == memReqs.alignment)
return tcu::TestStatus::fail("Buffer creation failed! (" + de::toString(getResultName(result)) + ")");
if (result != VK_SUCCESS)
{
- size = alignDeviceSize(size >> shrinkBits, memReqs.alignment);
+ size = deAlign64(size >> shrinkBits, memReqs.alignment);
if (size == 0 || memReqs.size == memReqs.alignment)
return tcu::TestStatus::fail("Unable to allocate " + de::toString(memReqs.size) + " bytes of memory");
return requirements;
}
-inline VkDeviceSize alignSize (const VkDeviceSize val, const VkDeviceSize align)
-{
- DE_ASSERT(deIsPowerOfTwo64(align));
- return (val + align - 1) & ~(align - 1);
-}
-
MovePtr<SparseAllocation> SparseAllocationBuilder::build (const DeviceInterface& vk,
const VkDevice device,
Allocator& allocator,
referenceCreateInfo.size = sizeof(deUint32);
const Unique<VkBuffer> refBuffer (createBuffer(vk, device, &referenceCreateInfo));
const VkMemoryRequirements memoryRequirements = getBufferMemoryRequirements(vk, device, *refBuffer);
- const VkDeviceSize chunkSize = std::max(memoryRequirements.alignment, alignSize(minChunkSize, memoryRequirements.alignment));
+ const VkDeviceSize chunkSize = std::max(memoryRequirements.alignment, static_cast<VkDeviceSize>(deAlign64(minChunkSize, memoryRequirements.alignment)));
for (std::vector<deUint32>::const_iterator numChunksIter = m_chunksPerAllocation.begin(); numChunksIter != m_chunksPerAllocation.end(); ++numChunksIter)
{