Skip to content

Commit 08d3808

Browse files
nobody used ICPUTLAS's build ranges
1 parent ad362fc commit 08d3808

1 file changed

Lines changed: 17 additions & 25 deletions

File tree

include/nbl/asset/ICPUAccelerationStructure.h

Lines changed: 17 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -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

281284
class 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

Comments
 (0)