Enforce extra alignment on AS buffers in demo

This commit is contained in:
baldurk
2025-07-15 12:36:13 +01:00
parent e11f3036d8
commit 25adde711a
4 changed files with 15 additions and 15 deletions
+5 -5
View File
@@ -979,10 +979,10 @@ void main()
AllocatedBuffer blasVertexBuffer(
this, vkh::BufferCreateInfo(vertexBufferSize, blasInputBufferUsageFlags),
VmaAllocationCreateInfo({0, VMA_MEMORY_USAGE_CPU_TO_GPU}));
VmaAllocationCreateInfo({0, VMA_MEMORY_USAGE_CPU_TO_GPU}), 4);
AllocatedBuffer blasIndexBuffer(
this, vkh::BufferCreateInfo(indexBufferSize, blasInputBufferUsageFlags),
VmaAllocationCreateInfo({0, VMA_MEMORY_USAGE_CPU_TO_GPU}));
VmaAllocationCreateInfo({0, VMA_MEMORY_USAGE_CPU_TO_GPU}), 4);
blasVertexBuffer.upload(vertices, vertexBufferSize);
blasIndexBuffer.upload(indices, indexBufferSize);
@@ -1052,7 +1052,7 @@ void main()
vkh::BufferCreateInfo(
blasBuildSizesInfo.buildScratchSize,
VK_BUFFER_USAGE_STORAGE_BUFFER_BIT | VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_KHR),
VmaAllocationCreateInfo({0, VMA_MEMORY_USAGE_GPU_ONLY}));
VmaAllocationCreateInfo({0, VMA_MEMORY_USAGE_GPU_ONLY}), 256);
blasBuildGeometryInfo.scratchData.deviceAddress = blasScratchBuffer.address;
blasBuildGeometryInfo.dstAccelerationStructure = blas;
@@ -1086,7 +1086,7 @@ void main()
vkh::BufferCreateInfo(
asInstanceSize, VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR |
VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_KHR),
VmaAllocationCreateInfo({0, VMA_MEMORY_USAGE_CPU_TO_GPU}));
VmaAllocationCreateInfo({0, VMA_MEMORY_USAGE_CPU_TO_GPU}), 16);
instancesBuffer.upload(&asInstance, asInstanceSize);
VkAccelerationStructureGeometryKHR tlasGeometry = {
@@ -1145,7 +1145,7 @@ void main()
vkh::BufferCreateInfo(
tlasBuildSizesInfo.buildScratchSize + 0x2000,
VK_BUFFER_USAGE_STORAGE_BUFFER_BIT | VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_KHR),
VmaAllocationCreateInfo({0, VMA_MEMORY_USAGE_GPU_ONLY}));
VmaAllocationCreateInfo({0, VMA_MEMORY_USAGE_GPU_ONLY}), 256);
tlasBuildGeometryInfo.scratchData.deviceAddress = tlasScratchBuffer.address;
tlasBuildGeometryInfo.dstAccelerationStructure = j;
+7 -7
View File
@@ -165,10 +165,10 @@ void main(void)
AllocatedBuffer blasVertexBuffer(
this, vkh::BufferCreateInfo(vertexBufferSize, blasInputBufferUsageFlags),
VmaAllocationCreateInfo({0, VMA_MEMORY_USAGE_CPU_TO_GPU}));
VmaAllocationCreateInfo({0, VMA_MEMORY_USAGE_CPU_TO_GPU}), 4);
AllocatedBuffer blasIndexBuffer(
this, vkh::BufferCreateInfo(indexBufferSize, blasInputBufferUsageFlags),
VmaAllocationCreateInfo({0, VMA_MEMORY_USAGE_CPU_TO_GPU}));
VmaAllocationCreateInfo({0, VMA_MEMORY_USAGE_CPU_TO_GPU}), 4);
blasVertexBuffer.upload(vertices, vertexBufferSize);
blasIndexBuffer.upload(indices, indexBufferSize);
@@ -238,7 +238,7 @@ void main(void)
vkh::BufferCreateInfo(
blasBuildSizesInfo.buildScratchSize,
VK_BUFFER_USAGE_STORAGE_BUFFER_BIT | VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_KHR),
VmaAllocationCreateInfo({0, VMA_MEMORY_USAGE_GPU_ONLY}));
VmaAllocationCreateInfo({0, VMA_MEMORY_USAGE_GPU_ONLY}), 256);
blasBuildGeometryInfo.scratchData.deviceAddress = blasScratchBuffer.address;
blasBuildGeometryInfo.dstAccelerationStructure = blas;
@@ -268,7 +268,7 @@ void main(void)
vkh::BufferCreateInfo(asInstanceSize,
VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR |
VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_KHR),
VmaAllocationCreateInfo({0, VMA_MEMORY_USAGE_CPU_TO_GPU}));
VmaAllocationCreateInfo({0, VMA_MEMORY_USAGE_CPU_TO_GPU}), 16);
instancesBuffer.upload(&asInstance, asInstanceSize);
VkAccelerationStructureGeometryKHR tlasGeometry = {
@@ -317,7 +317,7 @@ void main(void)
vkh::BufferCreateInfo(
tlasBuildSizesInfo.buildScratchSize,
VK_BUFFER_USAGE_STORAGE_BUFFER_BIT | VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_KHR),
VmaAllocationCreateInfo({0, VMA_MEMORY_USAGE_GPU_ONLY}));
VmaAllocationCreateInfo({0, VMA_MEMORY_USAGE_GPU_ONLY}), 256);
tlasBuildGeometryInfo.scratchData.deviceAddress = tlasScratchBuffer.address;
tlasBuildGeometryInfo.dstAccelerationStructure = tlas;
@@ -358,12 +358,12 @@ void main(void)
this,
vkh::BufferCreateInfo(vertexBufferSize, VK_BUFFER_USAGE_STORAGE_BUFFER_BIT |
VK_BUFFER_USAGE_VERTEX_BUFFER_BIT),
VmaAllocationCreateInfo({0, VMA_MEMORY_USAGE_CPU_TO_GPU}));
VmaAllocationCreateInfo({0, VMA_MEMORY_USAGE_CPU_TO_GPU}), 4);
AllocatedBuffer trisIndexBuffer(
this,
vkh::BufferCreateInfo(
indexBufferSize, VK_BUFFER_USAGE_STORAGE_BUFFER_BIT | VK_BUFFER_USAGE_INDEX_BUFFER_BIT),
VmaAllocationCreateInfo({0, VMA_MEMORY_USAGE_CPU_TO_GPU}));
VmaAllocationCreateInfo({0, VMA_MEMORY_USAGE_CPU_TO_GPU}), 4);
trisVertexBuffer.upload(vertices);
trisIndexBuffer.upload(indices);
+2 -2
View File
@@ -1874,11 +1874,11 @@ void AllocatedImage::free()
}
AllocatedBuffer::AllocatedBuffer(VulkanGraphicsTest *test, const VkBufferCreateInfo &bufInfo,
const VmaAllocationCreateInfo &allocInfo)
const VmaAllocationCreateInfo &allocInfo, uint32_t alignment)
{
this->test = test;
allocator = test->allocator;
vmaCreateBuffer(allocator, &bufInfo, &allocInfo, &buffer, &alloc, NULL);
vmaCreateBufferWithAlignment(allocator, &bufInfo, &allocInfo, alignment, &buffer, &alloc, NULL);
test->bufferAllocs[buffer] = alloc;
+1 -1
View File
@@ -45,7 +45,7 @@ struct AllocatedBuffer
AllocatedBuffer() {}
AllocatedBuffer(VulkanGraphicsTest *test, const VkBufferCreateInfo &bufInfo,
const VmaAllocationCreateInfo &allocInfo);
const VmaAllocationCreateInfo &allocInfo, uint32_t alignment = 1);
void free();