The dawn-internal-usages
extension allows adding additional usage which affects how a texture is allocated, but does not affect frontend validation.
One use case for this is so that Chromium can use an internal copyTextureToTexture command to implement copies from a WebGPU texture-backed canvas to other Web platform primitives when the swapchain texture was not explicitly created with CopySrc usage in Javascript.
Usage: wgpu::DawnTextureInternalUsageDescriptor internalDesc = {}; internalDesc.internalUsage = wgpu::TextureUsage::CopySrc; wgpu::TextureDescriptor desc = {}; // set properties of desc. desc.nextInChain = &internalDesc; device.createTexture(&desc);