From f544895708bf688071c25d91cf0c1e2c2f021468 Mon Sep 17 00:00:00 2001 From: Sascha Willems Date: Sat, 9 Nov 2019 10:47:31 +0100 Subject: [PATCH] Use proper type for scratch buffer memory requirements Explicitly set type for top and botom level AS memory requirements Fixes #622 --- examples/nv_ray_tracing_basic/nv_ray_tracing_basic.cpp | 4 +++- .../nv_ray_tracing_reflections/nv_ray_tracing_reflections.cpp | 4 +++- examples/nv_ray_tracing_shadows/nv_ray_tracing_shadows.cpp | 4 +++- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/examples/nv_ray_tracing_basic/nv_ray_tracing_basic.cpp b/examples/nv_ray_tracing_basic/nv_ray_tracing_basic.cpp index 38d0bd4b..40fd8e60 100644 --- a/examples/nv_ray_tracing_basic/nv_ray_tracing_basic.cpp +++ b/examples/nv_ray_tracing_basic/nv_ray_tracing_basic.cpp @@ -183,6 +183,7 @@ public: VkAccelerationStructureMemoryRequirementsInfoNV memoryRequirementsInfo{}; memoryRequirementsInfo.sType = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV; + memoryRequirementsInfo.type = VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV; memoryRequirementsInfo.accelerationStructure = bottomLevelAS.accelerationStructure; VkMemoryRequirements2 memoryRequirements2{}; @@ -220,6 +221,7 @@ public: VkAccelerationStructureMemoryRequirementsInfoNV memoryRequirementsInfo{}; memoryRequirementsInfo.sType = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV; + memoryRequirementsInfo.type = VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV; memoryRequirementsInfo.accelerationStructure = topLevelAS.accelerationStructure; VkMemoryRequirements2 memoryRequirements2{}; @@ -336,7 +338,7 @@ public: // Acceleration structure build requires some scratch space to store temporary information VkAccelerationStructureMemoryRequirementsInfoNV memoryRequirementsInfo{}; memoryRequirementsInfo.sType = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV; - memoryRequirementsInfo.type = VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV; + memoryRequirementsInfo.type = VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_NV; VkMemoryRequirements2 memReqBottomLevelAS; memoryRequirementsInfo.accelerationStructure = bottomLevelAS.accelerationStructure; diff --git a/examples/nv_ray_tracing_reflections/nv_ray_tracing_reflections.cpp b/examples/nv_ray_tracing_reflections/nv_ray_tracing_reflections.cpp index 020477eb..a5f56cad 100644 --- a/examples/nv_ray_tracing_reflections/nv_ray_tracing_reflections.cpp +++ b/examples/nv_ray_tracing_reflections/nv_ray_tracing_reflections.cpp @@ -196,6 +196,7 @@ public: VkAccelerationStructureMemoryRequirementsInfoNV memoryRequirementsInfo{}; memoryRequirementsInfo.sType = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV; + memoryRequirementsInfo.type = VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV; memoryRequirementsInfo.accelerationStructure = bottomLevelAS.accelerationStructure; VkMemoryRequirements2 memoryRequirements2{}; @@ -233,6 +234,7 @@ public: VkAccelerationStructureMemoryRequirementsInfoNV memoryRequirementsInfo{}; memoryRequirementsInfo.sType = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV; + memoryRequirementsInfo.type = VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV; memoryRequirementsInfo.accelerationStructure = topLevelAS.accelerationStructure; VkMemoryRequirements2 memoryRequirements2{}; @@ -325,7 +327,7 @@ public: // Acceleration structure build requires some scratch space to store temporary information VkAccelerationStructureMemoryRequirementsInfoNV memoryRequirementsInfo{}; memoryRequirementsInfo.sType = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV; - memoryRequirementsInfo.type = VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV; + memoryRequirementsInfo.type = VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_NV; VkMemoryRequirements2 memReqBottomLevelAS; memoryRequirementsInfo.accelerationStructure = bottomLevelAS.accelerationStructure; diff --git a/examples/nv_ray_tracing_shadows/nv_ray_tracing_shadows.cpp b/examples/nv_ray_tracing_shadows/nv_ray_tracing_shadows.cpp index 676284e8..dcb5c379 100644 --- a/examples/nv_ray_tracing_shadows/nv_ray_tracing_shadows.cpp +++ b/examples/nv_ray_tracing_shadows/nv_ray_tracing_shadows.cpp @@ -197,6 +197,7 @@ public: VkAccelerationStructureMemoryRequirementsInfoNV memoryRequirementsInfo{}; memoryRequirementsInfo.sType = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV; + memoryRequirementsInfo.type = VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV; memoryRequirementsInfo.accelerationStructure = bottomLevelAS.accelerationStructure; VkMemoryRequirements2 memoryRequirements2{}; @@ -234,6 +235,7 @@ public: VkAccelerationStructureMemoryRequirementsInfoNV memoryRequirementsInfo{}; memoryRequirementsInfo.sType = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV; + memoryRequirementsInfo.type = VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV; memoryRequirementsInfo.accelerationStructure = topLevelAS.accelerationStructure; VkMemoryRequirements2 memoryRequirements2{}; @@ -334,7 +336,7 @@ public: // Acceleration structure build requires some scratch space to store temporary information VkAccelerationStructureMemoryRequirementsInfoNV memoryRequirementsInfo{}; memoryRequirementsInfo.sType = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV; - memoryRequirementsInfo.type = VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV; + memoryRequirementsInfo.type = VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_NV; VkMemoryRequirements2 memReqBottomLevelAS; memoryRequirementsInfo.accelerationStructure = bottomLevelAS.accelerationStructure;