[Metal] Track resource residency using MTL::ResidencySet instead of useResource.#1340
Draft
manon-traverse wants to merge 22 commits into
Draft
[Metal] Track resource residency using MTL::ResidencySet instead of useResource.#1340manon-traverse wants to merge 22 commits into
MTL::ResidencySet instead of useResource.#1340manon-traverse wants to merge 22 commits into
Conversation
…d to shared file.
…y are implemented.
…mipmap creation is supported on dx12.
…code. Most tests pass on VK with migration code :D Get vulkan in a working state, apart from features not supported on dx12.
…escriptor table building.
MTL::ResidencySet instead of useResource.MTL::ResidencySet instead of useResource.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Based on #1331, #1332, #1333, and #1337
The metal backend requires these annoying loops and direct metal calls for managing residency and hazard tracking using
useResource. To get behaviour closer to DX12 and Vulkan we can track residency instead with residency sets.This does mean we also need to track hazards between encoders using a
MTL::Fence, which this PR also does.On top of that some drive-by changes were made
memoryBarriertheregetActiveEncoderPendingScopeinstead of placing a redundant barrier when closing a compute encoder