Fix hash calculation for descriptor set layouts caching. #39
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.
The "hash" (if anything, it'd rather be a key) calculated for caching descriptor set layouts only considers the last resource of the selected set.
On an unrelated note, I don't like the usage of bitfields here;
DescriptorSetLayoutBindingBitField
without being packed already fits in a 64-bit register anyways.Maybe consider specializing
std::hash
to make this code less, uh, .... weird.Note that even with the proposed fix this is still very weird, as you are basically reinterpreting a
vector<i32>
as avector<i64>
where size is divided by two, yet you don't account for that when allocating the vector.