diff options
| author | azhirnov <zh1dron@gmail.com> | 2020-11-12 15:23:43 +0000 |
|---|---|---|
| committer | azhirnov <zh1dron@gmail.com> | 2020-11-12 15:23:43 +0000 |
| commit | 53572161c4ee39ff7d66b84e4a9f4979da2f8f0b (patch) | |
| tree | 91b5d2df5003d15321d67d28b0cbe0ece1e0ca6e /Graphics/GraphicsEngineVulkan | |
| parent | remap resource binding for DirectX 12 (diff) | |
| download | DiligentCore-53572161c4ee39ff7d66b84e4a9f4979da2f8f0b.tar.gz DiligentCore-53572161c4ee39ff7d66b84e4a9f4979da2f8f0b.zip | |
added address alignment checks
Diffstat (limited to 'Graphics/GraphicsEngineVulkan')
| -rw-r--r-- | Graphics/GraphicsEngineVulkan/src/DeviceContextVkImpl.cpp | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/Graphics/GraphicsEngineVulkan/src/DeviceContextVkImpl.cpp b/Graphics/GraphicsEngineVulkan/src/DeviceContextVkImpl.cpp index 0dd00e6c..d7a0ccb5 100644 --- a/Graphics/GraphicsEngineVulkan/src/DeviceContextVkImpl.cpp +++ b/Graphics/GraphicsEngineVulkan/src/DeviceContextVkImpl.cpp @@ -2917,6 +2917,8 @@ void DeviceContextVkImpl::BuildBLAS(const BuildBLASAttribs& Attribs) vkAABBs.stride = SrcBoxes.BoxStride; vkAABBs.data.deviceAddress = pBB->GetVkDeviceAddress() + SrcBoxes.BoxOffset; + VERIFY(vkAABBs.data.deviceAddress % 8 == 0, "AABB start address is not properly aligned"); + TransitionOrVerifyBufferState(*pBB, Attribs.GeometryTransitionMode, RESOURCE_STATE_BUILD_AS_READ, VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR, OpName); off.firstVertex = 0; @@ -3036,6 +3038,8 @@ void DeviceContextVkImpl::BuildTLAS(const BuildTLASAttribs& Attribs) vkASInst.arrayOfPointers = VK_FALSE; vkASInst.data.deviceAddress = pInstancesVk->GetVkDeviceAddress() + Attribs.InstanceBufferOffset; + VERIFY(vkASInst.data.deviceAddress % 16 == 0, "Instance data address is not properly aligned"); + vkASBuildInfo.sType = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR; vkASBuildInfo.type = VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR; // type must be compatible with create info vkASBuildInfo.flags = BuildASFlagsToVkBuildAccelerationStructureFlags(TLASDesc.Flags); // flags must be compatible with create info |
