Skip to content

Commit eef7c6c

Browse files
Using FreezingTraverseScope to prevent scene traversal
1 parent efabcb7 commit eef7c6c

File tree

2 files changed

+9
-1
lines changed

2 files changed

+9
-1
lines changed

src/render/scene.cpp

+8
Original file line numberDiff line numberDiff line change
@@ -602,6 +602,10 @@ Class *__kdtree_class = new Class("TShapeKDTree", "Object", "", nullptr, nullptr
602602
MI_VARIANT
603603
void Scene<Float, Spectrum>::traverse_1_cb_ro(
604604
void *payload, drjit::detail::traverse_callback_ro fn) const {
605+
606+
if (!jit_flag(JitFlag::FreezingTraverseScope))
607+
return;
608+
605609
if constexpr (!std::is_same_v<Object, drjit::TraversableBase>)
606610
Object::traverse_1_cb_ro(payload, fn);
607611
DRJIT_MAP(DR_TRAVERSE_MEMBER_RO, m_accel_handle, m_emitters, m_emitters_dr,
@@ -618,6 +622,10 @@ void Scene<Float, Spectrum>::traverse_1_cb_ro(
618622
MI_VARIANT
619623
void Scene<Float, Spectrum>::traverse_1_cb_rw(
620624
void *payload, drjit::detail::traverse_callback_rw fn) {
625+
626+
if (!jit_flag(JitFlag::FreezingTraverseScope))
627+
return;
628+
621629
if constexpr (!std::is_same_v<Object, drjit::TraversableBase>)
622630
Object::traverse_1_cb_rw(payload, fn);
623631
DRJIT_MAP(DR_TRAVERSE_MEMBER_RW, m_accel_handle, m_emitters, m_emitters_dr,

0 commit comments

Comments
 (0)