#[non_exhaustive]pub enum GpuResource {
Show 20 variants
D3D11Texture(D3D11Texture),
D3D12Resource(D3D12Resource),
D3D12BufferHandle(D3D12BufferHandle),
VkImage(VkImage),
VkBufferHandle(VkBufferHandle),
VkOpaqueFd(VkOpaqueFd),
CudaPtr2D(CudaPtr2D),
CudaBufferHandle(CudaBufferHandle),
CudaSurface(CudaSurface),
OpenClMem(OpenClMem),
MetalTextureHandle(MetalTextureHandle),
MetalBufferHandle(MetalBufferHandle),
GlTextureHandle(GlTextureHandle),
GlBufferHandle(GlBufferHandle),
DmaBufHandle(DmaBufHandle),
VaapiSurface(VaapiSurface),
CpuBytes(CpuBytes),
CpuPlanes(CpuPlaneSet),
CpuSharedSlot(CpuSharedSlot),
WgpuTexture(WgpuTexture),
}Expand description
Zero-copy GPU resource handle.
#[non_exhaustive], so adding a variant is not a breaking change.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
D3D11Texture(D3D11Texture)
D3D12Resource(D3D12Resource)
D3D12BufferHandle(D3D12BufferHandle)
VkImage(VkImage)
VkBufferHandle(VkBufferHandle)
VkOpaqueFd(VkOpaqueFd)
VK_KHR_external_memory_fd opaque-fd export (Linux / Android).
CudaPtr2D(CudaPtr2D)
CudaBufferHandle(CudaBufferHandle)
CudaSurface(CudaSurface)
wgpu only.Opaque CUDA CUsurfObject bound to a CUarray — a surf2Dwrite
kernel write target (typically a foreign-API texture imported as
a CUDA array). Gated on the wgpu feature because the handle
carries a wgpu::TextureFormat; see CudaSurface.
OpenClMem(OpenClMem)
MetalTextureHandle(MetalTextureHandle)
MetalBufferHandle(MetalBufferHandle)
GlTextureHandle(GlTextureHandle)
GlBufferHandle(GlBufferHandle)
DmaBufHandle(DmaBufHandle)
Bare Linux DMA-BUF descriptor.
VaapiSurface(VaapiSurface)
VA-API surface (VASurfaceID + its VADisplay).
CpuBytes(CpuBytes)
CpuPlanes(CpuPlaneSet)
WgpuTexture(WgpuTexture)
wgpu only.A wgpu::Texture already on the consumer’s own wgpu device — the
degenerate “nothing to import” case. The interop import path
returns the texture verbatim (no foreign-handle import, no copy).
Gated on the wgpu feature; see WgpuTexture.
Implementations§
Source§impl GpuResource
impl GpuResource
Sourcepub fn opengl_texture_simple(name: u32) -> Self
pub fn opengl_texture_simple(name: u32) -> Self
Convenience constructor for the common case — single GL context,
GL_TEXTURE_2D, format left Unspecified for the importer to
take from its own import description. No keep-alive (caller owns
the texture name).
Sourcepub fn opengl_buffer_simple(name: u32, size: u64) -> Self
pub fn opengl_buffer_simple(name: u32, size: u64) -> Self
Convenience constructor for the common case — single GL context,
GL_ARRAY_BUFFER. No keep-alive (caller owns the buffer name).