| # Transient Attachments | |
| Transient attachments allow render pass operations to stay in tile memory, | |
| avoiding VRAM traffic and potentially avoiding VRAM allocation for the textures. | |
| Presence of the `transient-attachments` feature on an Adapter is a hint | |
| indicating that the `TransientAttachment` usage will be used by the backend. If | |
| it's not present, the usage is allowed, but it is a no-op. | |
| Enabling this feature on a Device doesn't do anything. | |
| Example Usage: | |
| ```cpp | |
| wgpu::TextureDescriptor desc; | |
| desc.format = wgpu::TextureFormat::RGBA8Unorm; | |
| desc.size = {1, 1, 1}; | |
| desc.usage = wgpu::TextureUsage::RenderAttachment | wgpu::TextureUsage::TransientAttachment; | |
| auto transientTexture = device.CreateTexture(&desc); | |
| // Can now create views from the texture to serve as transient attachments, e.g. | |
| // as color attachments in a render pipeline. | |
| ``` | |
| Textures with the `TransientAttachment` usage: | |
| - Must have exactly the usages `RenderAttachment | TransientAttachment`. | |
| - May not remove any usages when creating views. | |
| - May not be used with `load`/`store` in render passes. | |
| - May not be used as resolve attachments. |