Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improve performance of vkResetDescriptorPool(). #1676

Merged

Conversation

billhollings
Copy link
Contributor

  • MVKDescriptorPool::reset() don't waste time freeing descriptor sets that were never allocated.
  • If descriptor set could not be allocated, set availability bit (unrelated).
  • 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.

- MVKDescriptorPool::reset() don't waste time freeing
  descriptor sets that were never allocated.
- If descriptor set could not be allocated, set availability bit (unrelated).
- 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).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants