Improve performance of vkResetDescriptorPool(). #1676
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
MVKDescriptorPool::reset()
don't waste time freeing descriptor sets that were never allocated.MVKBitArray
add_lowestNeverClearedBitIndex
to track the lowest bit index that has not been cleared since last reset.MVKBitArray
rename_minUnclearedSectionIndex
to_clearedSectionCount
for clarity.MVKBitArray
use_clearedSectionCount
and_lowestNeverClearedBitIndex
to optimize operation of setting or clearing all bits.MVKBitArray::setBit()
ensure we don't try to change a bit that is out of range.MVKBitArray::resize()
no-op if size doesn't actually change.MVKQueue
don't include object pointer in error log, so CTS log results are consistent across multiple CTS runs (unrelated).Fixes issue #1628 and possibly #1646.