Tracked state for a set of textures, under the discipline the backend records against.
More...
|
|
| TextureSyncStateTable ()=default |
| | Slot tables stay independent; sharing an image requires an explicit alias.
|
|
| TextureSyncStateTable (const TextureSyncStateTable &)=delete |
|
TextureSyncStateTable & | operator= (const TextureSyncStateTable &)=delete |
| | TextureSyncStateTable (TextureSyncStateTable &&other)=default |
| | Construct by moving another instance's state.
|
| TextureSyncStateTable & | operator= (TextureSyncStateTable &&other)=default |
| | Replace this object's state by moving another instance.
|
| TextureSyncState | stateOf (uint32_t textureSlot) const |
| | The state textureSlot will be in at this point of an encode: the staged state when one was recorded, otherwise the committed one. A slot never seen reads as untouched.
|
| TextureSyncState | committedStateOf (uint32_t textureSlot) const |
| | The state textureSlot is committed to, ignoring anything staged.
|
| SharedStateHandle | share (uint32_t textureSlot) |
| | Returns the committed state owner for an image, creating an untouched entry if needed.
|
| bool | alias (uint32_t textureSlot, SharedStateHandle state) |
| | Makes this slot name an image another runtime device already tracks. Its staged state stays private to this table until an accepted submission commits it.
|
| void | stage (uint32_t textureSlot, const TextureSyncState &state) |
| | Records that a transition to state was encoded, pending submission.
|
|
void | commitStaged () |
| | Promotes every staged transition to committed. Call only once the submission succeeded.
|
|
void | discardStaged () |
| | Drops every staged transition, leaving committed state untouched.
|
| void | forget (uint32_t textureSlot) |
| | Forgets a slot entirely, for a texture that no longer exists.
|
| void | reset (uint32_t textureSlot, const TextureSyncState &state) |
| | Replaces everything known about textureSlot with state, committed.
|
|
bool | hasStagedChanges () const |
| | Whether any transition is staged and not yet committed.
|
Tracked state for a set of textures, under the discipline the backend records against.
A transition recorded into a command buffer updates the staged view; only a submission that actually reached the queue commits it. An encode that fails partway, or a submit the driver rejects, discards the staging instead - so the table never claims a transition the GPU never ran, which would make every later barrier compute the wrong source scope from a state that does not exist.