mirror of
https://github.com/Takiiiiiiii/strato.git
synced 2025-07-17 08:46:39 +00:00
Introduce FenceCycle
Chaining
If we want to allow submitting multiple pieces of work to the GPU at once while still requiring CPU synchronization, we'll need to track all past fence cycles associated with a resource alongside the current one. To solve this the concept of chaining fences has been introduced, fences from past usages can be chained to the latest fence which'll then recursively forward operations to chained fences. This change also ends up mandating a move away from `FenceCycleDependency` as it would prevent fences from concurrently locking the same resources which is required for chaining to work as two fences being chained fundamentally means they're locking the same resources. The `AtomicForwardList` is therefore used as the new container.
This commit is contained in:
@ -39,7 +39,7 @@ namespace skyline::gpu::memory {
|
||||
/**
|
||||
* @brief A Buffer that can be independently attached to a fence cycle
|
||||
*/
|
||||
class StagingBuffer : public Buffer, public FenceCycleDependency {
|
||||
class StagingBuffer : public Buffer {
|
||||
using Buffer::Buffer;
|
||||
};
|
||||
|
||||
|
Reference in New Issue
Block a user