From 25adde711a1e95ce977da8152203e2a1b3fbba0c Mon Sep 17 00:00:00 2001 From: baldurk Date: Tue, 15 Jul 2025 12:36:13 +0100 Subject: [PATCH] Enforce extra alignment on AS buffers in demo --- util/test/demos/vk/vk_descriptor_buffer.cpp | 10 +++++----- util/test/demos/vk/vk_ray_query.cpp | 14 +++++++------- util/test/demos/vk/vk_test.cpp | 4 ++-- util/test/demos/vk/vk_test.h | 2 +- 4 files changed, 15 insertions(+), 15 deletions(-) diff --git a/util/test/demos/vk/vk_descriptor_buffer.cpp b/util/test/demos/vk/vk_descriptor_buffer.cpp index ca1bd19c8..8552ea564 100644 --- a/util/test/demos/vk/vk_descriptor_buffer.cpp +++ b/util/test/demos/vk/vk_descriptor_buffer.cpp @@ -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; diff --git a/util/test/demos/vk/vk_ray_query.cpp b/util/test/demos/vk/vk_ray_query.cpp index d09da063f..169f87888 100644 --- a/util/test/demos/vk/vk_ray_query.cpp +++ b/util/test/demos/vk/vk_ray_query.cpp @@ -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); diff --git a/util/test/demos/vk/vk_test.cpp b/util/test/demos/vk/vk_test.cpp index 3f7fdeb2e..01c2575cb 100644 --- a/util/test/demos/vk/vk_test.cpp +++ b/util/test/demos/vk/vk_test.cpp @@ -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; diff --git a/util/test/demos/vk/vk_test.h b/util/test/demos/vk/vk_test.h index d0f2c5bb1..c99c33deb 100644 --- a/util/test/demos/vk/vk_test.h +++ b/util/test/demos/vk/vk_test.h @@ -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();