@@ -247,13 +247,16 @@ class ICPUBottomLevelAccelerationStructure final : public IPreHashed, public IBo
247247 geometryCount = m_triangleGeoms->size ();
248248 }
249249
250- // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetAccelerationStructureBuildSizesKHR.html#VUID-vkGetAccelerationStructureBuildSizesKHR-pBuildInfo-03619
251- if (geometryCount == 0 ) {
252- if (m_geometryPrimitiveCount && m_geometryPrimitiveCount->size () > 0 ) return false ;
250+ // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetAccelerationStructureBuildSizesKHR.html#VUID-vkGetAccelerationStructureBuildSizesKHR-pBuildInfo-03619
251+ if (geometryCount == 0 )
252+ {
253+ if (m_geometryPrimitiveCount && m_geometryPrimitiveCount->size () > 0 )
254+ return false ;
253255 }
254- else
256+ else
255257 {
256- if (!m_geometryPrimitiveCount || m_geometryPrimitiveCount->size () != geometryCount) return false ;
258+ if (!m_geometryPrimitiveCount || m_geometryPrimitiveCount->size () != geometryCount)
259+ return false ;
257260 }
258261 return true ;
259262 }
@@ -275,7 +278,7 @@ class ICPUBottomLevelAccelerationStructure final : public IPreHashed, public IBo
275278 core::smart_refctd_dynamic_array<uint32_t > m_geometryPrimitiveCount = nullptr ;
276279 core::bitflag<BUILD_FLAGS> m_buildFlags = BUILD_FLAGS::PREFER_FAST_TRACE_BIT;
277280
278- inline void visitDependents_impl (std::function<bool (const IAsset*)> visit) const override {}
281+ inline void visitDependents_impl (std::function<bool (const IAsset*)> visit) const override {}
279282};
280283
281284class ICPUTopLevelAccelerationStructure final : public IAsset, public ITopLevelAccelerationStructure
@@ -287,14 +290,6 @@ class ICPUTopLevelAccelerationStructure final : public IAsset, public ITopLevelA
287290
288291 //
289292 ICPUTopLevelAccelerationStructure () = default ;
290-
291- //
292- inline auto & getBuildRangeInfo ()
293- {
294- assert (isMutable ());
295- return m_buildRangeInfo;
296- }
297- inline auto & getBuildRangeInfo () const {return m_buildRangeInfo;}
298293
299294 //
300295 inline core::bitflag<BUILD_FLAGS> getBuildFlags () const {return m_buildFlags;}
@@ -365,7 +360,6 @@ class ICPUTopLevelAccelerationStructure final : public IAsset, public ITopLevelA
365360 auto cp = core::make_smart_refctd_ptr<ICPUTopLevelAccelerationStructure>();
366361
367362 cp->m_instances = core::make_refctd_dynamic_array<core::smart_refctd_dynamic_array<PolymorphicInstance>>(*m_instances);
368- cp->m_buildRangeInfo = m_buildRangeInfo;
369363 cp->m_buildFlags = m_buildFlags;
370364
371365 if (_depth--)
@@ -385,9 +379,6 @@ class ICPUTopLevelAccelerationStructure final : public IAsset, public ITopLevelA
385379 if (!m_instances) return false ;
386380 for (const auto & instance : *m_instances)
387381 if (!instance.getBase ().blas ->valid ()) return false ;
388- if (m_buildRangeInfo.instanceCount != m_instances->size ()) return false ;
389- // https://registry.khronos.org/vulkan/specs/latest/man/html/VkAccelerationStructureBuildRangeInfoKHR.html#VUID-VkAccelerationStructureBuildRangeInfoKHR-primitiveOffset-03660
390- if (m_buildRangeInfo.instanceByteOffset % 16 != 0 ) return false ;
391382 return true ;
392383 }
393384
@@ -396,15 +387,16 @@ class ICPUTopLevelAccelerationStructure final : public IAsset, public ITopLevelA
396387
397388 private:
398389 core::smart_refctd_dynamic_array<PolymorphicInstance> m_instances = nullptr ;
399- hlsl::acceleration_structures::top_level::BuildRangeInfo m_buildRangeInfo;
400390 core::bitflag<BUILD_FLAGS> m_buildFlags = BUILD_FLAGS::PREFER_FAST_BUILD_BIT;
401391
402- inline void visitDependents_impl (std::function<bool (const IAsset*)> visit) const override
403- {
404- if (!m_instances) return ;
405- for (const auto & instance : *m_instances)
406- if (!visit (instance.getBase ().blas .get ())) return ;
407- }
392+ inline void visitDependents_impl (std::function<bool (const IAsset*)> visit) const override
393+ {
394+ if (!m_instances)
395+ return ;
396+ for (const auto & instance : *m_instances)
397+ if (!visit (instance.getBase ().blas .get ()))
398+ return ;
399+ }
408400};
409401
410402}
0 commit comments