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 };