pub struct Api;
Trait Implementations§
source§impl Adapter<Api> for Context
impl Adapter<Api> for Context
unsafe fn open( &self, features: Features, _limits: &Limits ) -> Result<OpenDevice<Api>, DeviceError>
source§unsafe fn texture_format_capabilities(
&self,
format: TextureFormat
) -> TextureFormatCapabilities
unsafe fn texture_format_capabilities( &self, format: TextureFormat ) -> TextureFormatCapabilities
Return the set of supported capabilities for a texture format.
source§unsafe fn surface_capabilities(
&self,
surface: &Context
) -> Option<SurfaceCapabilities>
unsafe fn surface_capabilities( &self, surface: &Context ) -> Option<SurfaceCapabilities>
Returns the capabilities of working with a specified surface. Read more
source§unsafe fn get_presentation_timestamp(&self) -> PresentationTimestamp
unsafe fn get_presentation_timestamp(&self) -> PresentationTimestamp
Creates a
PresentationTimestamp
using the adapter’s WSI.source§impl Api for Api
impl Api for Api
type Instance = Context
type Surface = Context
type Adapter = Context
type Device = Context
type Queue = Context
type CommandEncoder = Encoder
type CommandBuffer = Resource
type Buffer = Resource
type Texture = Resource
type SurfaceTexture = Resource
type TextureView = Resource
type Sampler = Resource
type QuerySet = Resource
type Fence = Resource
type AccelerationStructure = Resource
type BindGroupLayout = Resource
type BindGroup = Resource
type PipelineLayout = Resource
type ShaderModule = Resource
type RenderPipeline = Resource
type ComputePipeline = Resource
source§impl CommandEncoder<Api> for Encoder
impl CommandEncoder<Api> for Encoder
source§unsafe fn begin_encoding(&mut self, label: Label<'_>) -> Result<(), DeviceError>
unsafe fn begin_encoding(&mut self, label: Label<'_>) -> Result<(), DeviceError>
Begin encoding a new command buffer.
source§unsafe fn discard_encoding(&mut self)
unsafe fn discard_encoding(&mut self)
Discard currently recorded list, if any.
unsafe fn end_encoding(&mut self) -> Result<Resource, DeviceError>
source§unsafe fn reset_all<I>(&mut self, command_buffers: I)
unsafe fn reset_all<I>(&mut self, command_buffers: I)
Reclaims all resources that are allocated for this encoder.
Must get all of the produced command buffers back,
and they must not be used by GPU at this moment.
unsafe fn transition_buffers<'a, T>(&mut self, barriers: T)
unsafe fn transition_textures<'a, T>(&mut self, barriers: T)
unsafe fn clear_buffer(&mut self, buffer: &Resource, range: MemoryRange)
unsafe fn copy_buffer_to_buffer<T>( &mut self, src: &Resource, dst: &Resource, regions: T )
source§unsafe fn copy_texture_to_texture<T>(
&mut self,
src: &Resource,
src_usage: TextureUses,
dst: &Resource,
regions: T
)
unsafe fn copy_texture_to_texture<T>( &mut self, src: &Resource, src_usage: TextureUses, dst: &Resource, regions: T )
Copy from one texture to another.
Works with a single array layer.
Note:
dst
current usage has to be TextureUses::COPY_DST
.
Note: the copy extent is in physical size (rounded to the block size)source§unsafe fn copy_buffer_to_texture<T>(
&mut self,
src: &Resource,
dst: &Resource,
regions: T
)
unsafe fn copy_buffer_to_texture<T>( &mut self, src: &Resource, dst: &Resource, regions: T )
Copy from buffer to texture.
Works with a single array layer.
Note:
dst
current usage has to be TextureUses::COPY_DST
.
Note: the copy extent is in physical size (rounded to the block size)source§unsafe fn copy_texture_to_buffer<T>(
&mut self,
src: &Resource,
src_usage: TextureUses,
dst: &Resource,
regions: T
)
unsafe fn copy_texture_to_buffer<T>( &mut self, src: &Resource, src_usage: TextureUses, dst: &Resource, regions: T )
Copy from texture to buffer.
Works with a single array layer.
Note: the copy extent is in physical size (rounded to the block size)
unsafe fn write_timestamp(&mut self, set: &Resource, index: u32)
unsafe fn reset_queries(&mut self, set: &Resource, range: Range<u32>)
unsafe fn copy_query_results( &mut self, set: &Resource, range: Range<u32>, buffer: &Resource, offset: BufferAddress, stride: BufferSize )
unsafe fn begin_render_pass(&mut self, desc: &RenderPassDescriptor<'_, Api>)
unsafe fn end_render_pass(&mut self)
source§unsafe fn set_bind_group(
&mut self,
layout: &Resource,
index: u32,
group: &Resource,
dynamic_offsets: &[DynamicOffset]
)
unsafe fn set_bind_group( &mut self, layout: &Resource, index: u32, group: &Resource, dynamic_offsets: &[DynamicOffset] )
Sets the bind group at
index
to group
, assuming the layout
of all the preceeding groups to be taken from layout
.source§unsafe fn set_push_constants(
&mut self,
layout: &Resource,
stages: ShaderStages,
offset_bytes: u32,
data: &[u32]
)
unsafe fn set_push_constants( &mut self, layout: &Resource, stages: ShaderStages, offset_bytes: u32, data: &[u32] )
Sets a range in push constant data. Read more
unsafe fn insert_debug_marker(&mut self, label: &str)
unsafe fn begin_debug_marker(&mut self, group_label: &str)
unsafe fn end_debug_marker(&mut self)
unsafe fn set_render_pipeline(&mut self, pipeline: &Resource)
unsafe fn set_index_buffer<'a>( &mut self, binding: BufferBinding<'a, Api>, format: IndexFormat )
unsafe fn set_vertex_buffer<'a>( &mut self, index: u32, binding: BufferBinding<'a, Api> )
unsafe fn set_viewport(&mut self, rect: &Rect<f32>, depth_range: Range<f32>)
unsafe fn set_scissor_rect(&mut self, rect: &Rect<u32>)
unsafe fn set_stencil_reference(&mut self, value: u32)
unsafe fn set_blend_constants(&mut self, color: &[f32; 4])
unsafe fn draw( &mut self, first_vertex: u32, vertex_count: u32, first_instance: u32, instance_count: u32 )
unsafe fn draw_indexed( &mut self, first_index: u32, index_count: u32, base_vertex: i32, first_instance: u32, instance_count: u32 )
unsafe fn draw_indirect( &mut self, buffer: &Resource, offset: BufferAddress, draw_count: u32 )
unsafe fn draw_indexed_indirect( &mut self, buffer: &Resource, offset: BufferAddress, draw_count: u32 )
unsafe fn draw_indirect_count( &mut self, buffer: &Resource, offset: BufferAddress, count_buffer: &Resource, count_offset: BufferAddress, max_count: u32 )
unsafe fn draw_indexed_indirect_count( &mut self, buffer: &Resource, offset: BufferAddress, count_buffer: &Resource, count_offset: BufferAddress, max_count: u32 )
unsafe fn begin_compute_pass(&mut self, desc: &ComputePassDescriptor<'_, Api>)
unsafe fn end_compute_pass(&mut self)
unsafe fn set_compute_pipeline(&mut self, pipeline: &Resource)
unsafe fn dispatch(&mut self, count: [u32; 3])
unsafe fn dispatch_indirect(&mut self, buffer: &Resource, offset: BufferAddress)
source§unsafe fn build_acceleration_structures<'a, T>(
&mut self,
_descriptor_count: u32,
descriptors: T
)
unsafe fn build_acceleration_structures<'a, T>( &mut self, _descriptor_count: u32, descriptors: T )
To get the required sizes for the buffer allocations use
get_acceleration_structure_build_sizes
per descriptor
All buffers must be synchronized externally
All buffer regions, which are written to may only be passed once per function call,
with the exception of updates in the same descriptor.
Consequences of this limitation: Read moreunsafe fn place_acceleration_structure_barrier( &mut self, _barriers: AccelerationStructureBarrier )
source§impl Device<Api> for Context
impl Device<Api> for Context
source§unsafe fn create_buffer(
&self,
desc: &BufferDescriptor<'_>
) -> Result<Resource, DeviceError>
unsafe fn create_buffer( &self, desc: &BufferDescriptor<'_> ) -> Result<Resource, DeviceError>
Creates a new buffer. Read more
unsafe fn destroy_buffer(&self, buffer: Resource)
unsafe fn map_buffer( &self, buffer: &Resource, range: MemoryRange ) -> Result<BufferMapping, DeviceError>
unsafe fn unmap_buffer(&self, buffer: &Resource) -> Result<(), DeviceError>
unsafe fn flush_mapped_ranges<I>(&self, buffer: &Resource, ranges: I)
unsafe fn invalidate_mapped_ranges<I>(&self, buffer: &Resource, ranges: I)
source§unsafe fn create_texture(
&self,
desc: &TextureDescriptor<'_>
) -> Result<Resource, DeviceError>
unsafe fn create_texture( &self, desc: &TextureDescriptor<'_> ) -> Result<Resource, DeviceError>
Creates a new texture. Read more
unsafe fn destroy_texture(&self, texture: Resource)
unsafe fn create_texture_view( &self, texture: &Resource, desc: &TextureViewDescriptor<'_> ) -> Result<Resource, DeviceError>
unsafe fn destroy_texture_view(&self, view: Resource)
unsafe fn create_sampler( &self, desc: &SamplerDescriptor<'_> ) -> Result<Resource, DeviceError>
unsafe fn destroy_sampler(&self, sampler: Resource)
unsafe fn create_command_encoder( &self, desc: &CommandEncoderDescriptor<'_, Api> ) -> Result<Encoder, DeviceError>
unsafe fn destroy_command_encoder(&self, encoder: Encoder)
source§unsafe fn create_bind_group_layout(
&self,
desc: &BindGroupLayoutDescriptor<'_>
) -> Result<Resource, DeviceError>
unsafe fn create_bind_group_layout( &self, desc: &BindGroupLayoutDescriptor<'_> ) -> Result<Resource, DeviceError>
Creates a bind group layout.
unsafe fn destroy_bind_group_layout(&self, bg_layout: Resource)
unsafe fn create_pipeline_layout( &self, desc: &PipelineLayoutDescriptor<'_, Api> ) -> Result<Resource, DeviceError>
unsafe fn destroy_pipeline_layout(&self, pipeline_layout: Resource)
unsafe fn create_bind_group( &self, desc: &BindGroupDescriptor<'_, Api> ) -> Result<Resource, DeviceError>
unsafe fn destroy_bind_group(&self, group: Resource)
unsafe fn create_shader_module( &self, desc: &ShaderModuleDescriptor<'_>, shader: ShaderInput<'_> ) -> Result<Resource, ShaderError>
unsafe fn destroy_shader_module(&self, module: Resource)
unsafe fn create_render_pipeline( &self, desc: &RenderPipelineDescriptor<'_, Api> ) -> Result<Resource, PipelineError>
unsafe fn destroy_render_pipeline(&self, pipeline: Resource)
unsafe fn create_compute_pipeline( &self, desc: &ComputePipelineDescriptor<'_, Api> ) -> Result<Resource, PipelineError>
unsafe fn destroy_compute_pipeline(&self, pipeline: Resource)
unsafe fn create_query_set( &self, desc: &QuerySetDescriptor<Label<'_>> ) -> Result<Resource, DeviceError>
unsafe fn destroy_query_set(&self, set: Resource)
unsafe fn create_fence(&self) -> Result<Resource, DeviceError>
unsafe fn destroy_fence(&self, fence: Resource)
unsafe fn get_fence_value( &self, fence: &Resource ) -> Result<FenceValue, DeviceError>
source§unsafe fn wait(
&self,
fence: &Resource,
value: FenceValue,
timeout_ms: u32
) -> Result<bool, DeviceError>
unsafe fn wait( &self, fence: &Resource, value: FenceValue, timeout_ms: u32 ) -> Result<bool, DeviceError>
Calling wait with a lower value than the current fence value will immediately return.
unsafe fn start_capture(&self) -> bool
unsafe fn stop_capture(&self)
unsafe fn create_acceleration_structure( &self, desc: &AccelerationStructureDescriptor<'_> ) -> Result<Resource, DeviceError>
unsafe fn get_acceleration_structure_build_sizes<'a>( &self, _desc: &GetAccelerationStructureBuildSizesDescriptor<'a, Api> ) -> AccelerationStructureBuildSizes
unsafe fn get_acceleration_structure_device_address( &self, _acceleration_structure: &Resource ) -> BufferAddress
unsafe fn destroy_acceleration_structure( &self, _acceleration_structure: Resource )
source§impl Instance<Api> for Context
impl Instance<Api> for Context
unsafe fn init(desc: &InstanceDescriptor<'_>) -> Result<Self, InstanceError>
unsafe fn create_surface( &self, _display_handle: RawDisplayHandle, _window_handle: RawWindowHandle ) -> Result<Context, InstanceError>
unsafe fn destroy_surface(&self, surface: Context)
unsafe fn enumerate_adapters(&self) -> Vec<ExposedAdapter<Api>>
source§impl Queue<Api> for Context
impl Queue<Api> for Context
source§unsafe fn submit(
&self,
command_buffers: &[&Resource],
signal_fence: Option<(&mut Resource, FenceValue)>
) -> Result<(), DeviceError>
unsafe fn submit( &self, command_buffers: &[&Resource], signal_fence: Option<(&mut Resource, FenceValue)> ) -> Result<(), DeviceError>
Submits the command buffers for execution on GPU. Read more
unsafe fn present( &self, surface: &Context, texture: Resource ) -> Result<(), SurfaceError>
unsafe fn get_timestamp_period(&self) -> f32
source§impl Surface<Api> for Context
impl Surface<Api> for Context
source§unsafe fn configure(
&self,
device: &Context,
config: &SurfaceConfiguration
) -> Result<(), SurfaceError>
unsafe fn configure( &self, device: &Context, config: &SurfaceConfiguration ) -> Result<(), SurfaceError>
Configures the surface to use the given device. Read more
source§unsafe fn unconfigure(&self, device: &Context)
unsafe fn unconfigure(&self, device: &Context)
Unconfigures the surface on the given device. Read more
source§unsafe fn acquire_texture(
&self,
timeout: Option<Duration>
) -> Result<Option<AcquiredSurfaceTexture<Api>>, SurfaceError>
unsafe fn acquire_texture( &self, timeout: Option<Duration> ) -> Result<Option<AcquiredSurfaceTexture<Api>>, SurfaceError>
Returns the next texture to be presented by the swapchain for drawing Read more
unsafe fn discard_texture(&self, texture: Resource)
Auto Trait Implementations§
impl RefUnwindSafe for Api
impl Send for Api
impl Sync for Api
impl Unpin for Api
impl UnwindSafe for Api
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more