Skip to content

Commit d58554e

Browse files
author
kevyuu
committed
Fix visitDependents_impl on some asset
1 parent 6a84bd7 commit d58554e

File tree

3 files changed

+13
-2
lines changed

3 files changed

+13
-2
lines changed

include/nbl/asset/ICPUAccelerationStructure.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -362,6 +362,7 @@ class ICPUTopLevelAccelerationStructure final : public IAsset, public ITopLevelA
362362

363363
inline virtual void visitDependents_impl(std::function<bool(const IAsset*)> visit) const override
364364
{
365+
if (!m_instances) return;
365366
for (const auto& instance : *m_instances)
366367
if (!visit(instance.getBase().blas.get())) return;
367368
}

include/nbl/asset/ICPUDescriptorSetLayout.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ class ICPUDescriptorSetLayout : public IDescriptorSetLayout<ICPUSampler>, public
6565

6666
inline virtual void visitDependents_impl(std::function<bool(const IAsset*)> visit) const override
6767
{
68-
if (m_immutableSamplers) return;
68+
if (!m_immutableSamplers) return;
6969
for (const auto& sampler : *m_immutableSamplers)
7070
if (!visit(sampler.get())) return;
7171
}

include/nbl/asset/ICPUPipelineLayout.h

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,14 +66,24 @@ class ICPUPipelineLayout : public IAsset, public IPipelineLayout<ICPUDescriptorS
6666
static inline constexpr auto AssetType = ET_PIPELINE_LAYOUT;
6767
inline E_TYPE getAssetType() const override { return AssetType; }
6868

69+
inline virtual bool valid() const override
70+
{
71+
for (auto i = 0; i < m_descSetLayouts.size(); i++)
72+
{
73+
if (!m_descSetLayouts[i]) continue;
74+
if (!m_descSetLayouts[i]->valid()) return false;
75+
}
76+
return true;
77+
}
78+
6979
protected:
7080
virtual ~ICPUPipelineLayout() = default;
7181

7282
inline virtual void visitDependents_impl(std::function<bool(const IAsset*)> visit) const override
7383
{
7484
for (auto i = 0; i < m_descSetLayouts.size(); i++)
7585
{
76-
if (m_descSetLayouts[i]) continue;
86+
if (!m_descSetLayouts[i]) continue;
7787
if (!visit(m_descSetLayouts[i].get())) return;
7888
}
7989
}

0 commit comments

Comments
 (0)