-
Notifications
You must be signed in to change notification settings - Fork 1.4k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[Sparse #1] Track memory referencing of sparse resources into queues
* Normal resources have a single memory bind that can be added to frame references when the resource is. Sparse resources don't have that easy single mapping. * Calls to MarkResourceFrameReferenced with a 0 ResourceId aren't a real problem, but we have to be careful when dirtying resources. * We don't have to dirty memory that's sparsely bound as we'll dirty it as soon as its sparsely bound. We do have to worry about making sure that memory is correctly frame referenced. * To do this command buffers track the sparsemapping structures (will be created for all sparse resources) that are referenced underneath them. Then at queue submit time the current sparse mapping is iterated and all bound memory marked frame referenced. * For most cases where a buffer is bound or similar, we can directly add the sparsemapping from the resource record. For descriptor sets we must do this indirectly - by marking any bindframerefs in the descset record with a bit indicating that the associated resource is sparse, then at submit time when iterating the bindframerefs, taking any with the bit set and looking up its record to find the sparsemapping.
- Loading branch information
Showing
8 changed files
with
139 additions
and
22 deletions.
There are no files selected for viewing
This file contains 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
This file contains 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
This file contains 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
This file contains 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
This file contains 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
This file contains 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
This file contains 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
This file contains 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