From e1fb1391f93abcb50e8ff4a0d4200464a17fca22 Mon Sep 17 00:00:00 2001 From: Powei Feng Date: Sun, 15 Jun 2025 22:42:45 -0700 Subject: [PATCH] ds: emit undefined param warning once per descriptorset (#8862) --- filament/src/ds/DescriptorSet.cpp | 4 +++- filament/src/ds/DescriptorSet.h | 1 + 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/filament/src/ds/DescriptorSet.cpp b/filament/src/ds/DescriptorSet.cpp index 7faace9db4..2ed978aa8b 100644 --- a/filament/src/ds/DescriptorSet.cpp +++ b/filament/src/ds/DescriptorSet.cpp @@ -66,6 +66,7 @@ DescriptorSet& DescriptorSet::operator=(DescriptorSet&& rhs) noexcept { mDirty = rhs.mDirty; mValid = rhs.mValid; mSetAfterCommitWarning = rhs.mSetAfterCommitWarning; + mSetUndefinedParameterWarning = rhs.mSetUndefinedParameterWarning; } return *this; } @@ -106,11 +107,12 @@ void DescriptorSet::commitSlow(DescriptorSetLayout const& layout, }); auto const unsetValidDescriptors = layout.getValidDescriptors() & ~mValid; - if (UTILS_VERY_UNLIKELY(!unsetValidDescriptors.empty())) { + if (UTILS_VERY_UNLIKELY(!unsetValidDescriptors.empty() && !mSetUndefinedParameterWarning)) { unsetValidDescriptors.forEachSetBit([&](auto i) { LOG(WARNING) << (layout.isSampler(i) ? "Sampler" : "Buffer") << " descriptor " << i << " of " << mName.c_str() << " is not set. Please report this issue."; }); + mSetUndefinedParameterWarning = true; } } diff --git a/filament/src/ds/DescriptorSet.h b/filament/src/ds/DescriptorSet.h index 63de632966..881957bada 100644 --- a/filament/src/ds/DescriptorSet.h +++ b/filament/src/ds/DescriptorSet.h @@ -110,6 +110,7 @@ private: mutable utils::bitset64 mValid; // 8 backend::DescriptorSetHandle mDescriptorSetHandle; // 4 mutable bool mSetAfterCommitWarning = false; // 1 + mutable bool mSetUndefinedParameterWarning = false; // 1 utils::StaticString mName; // 16 };