pub struct Device {
shared: Arc<AdapterShared>,
main_vao: VertexArray,
counters: HalCounters,
}
Fields§
§main_vao: VertexArray
§counters: HalCounters
Implementations§
source§impl Device
impl Device
sourcepub unsafe fn texture_from_raw(
&self,
name: NonZeroU32,
desc: &TextureDescriptor<'_>,
drop_callback: Option<DropCallback>,
) -> Texture
pub unsafe fn texture_from_raw( &self, name: NonZeroU32, desc: &TextureDescriptor<'_>, drop_callback: Option<DropCallback>, ) -> Texture
sourcepub unsafe fn texture_from_raw_renderbuffer(
&self,
name: NonZeroU32,
desc: &TextureDescriptor<'_>,
drop_callback: Option<DropCallback>,
) -> Texture
pub unsafe fn texture_from_raw_renderbuffer( &self, name: NonZeroU32, desc: &TextureDescriptor<'_>, drop_callback: Option<DropCallback>, ) -> Texture
unsafe fn compile_shader( gl: &Context, shader: &str, naga_stage: ShaderStage, label: Option<&str>, ) -> Result<Shader, PipelineError>
fn create_shader( gl: &Context, naga_stage: ShaderStage, stage: &ProgrammableStage<'_, ShaderModule>, context: CompilationContext<'_>, program: Program, ) -> Result<Shader, PipelineError>
unsafe fn create_pipeline<'a>( &self, gl: &Context, shaders: ArrayVec<(ShaderStage, &'a ProgrammableStage<'a, ShaderModule>), { crate::MAX_CONCURRENT_SHADER_STAGES }>, layout: &PipelineLayout, label: Option<&str>, multiview: Option<NonZeroU32>, ) -> Result<Arc<PipelineInner>, PipelineError>
unsafe fn create_program<'a>( gl: &Context, shaders: ArrayVec<(ShaderStage, &'a ProgrammableStage<'a, ShaderModule>), { crate::MAX_CONCURRENT_SHADER_STAGES }>, layout: &PipelineLayout, label: Option<&str>, multiview: Option<NonZeroU32>, glsl_version: Version, private_caps: PrivateCapabilities, ) -> Result<Arc<PipelineInner>, PipelineError>
Trait Implementations§
source§impl Device for Device
impl Device for Device
type A = Api
source§unsafe fn create_buffer(
&self,
desc: &BufferDescriptor<'_>,
) -> Result<Buffer, DeviceError>
unsafe fn create_buffer( &self, desc: &BufferDescriptor<'_>, ) -> Result<Buffer, DeviceError>
Creates a new buffer. Read more
source§unsafe fn destroy_buffer(&self, buffer: Buffer)
unsafe fn destroy_buffer(&self, buffer: Buffer)
Free
buffer
and any GPU resources it owns. Read moresource§unsafe fn add_raw_buffer(&self, _buffer: &Buffer)
unsafe fn add_raw_buffer(&self, _buffer: &Buffer)
A hook for when a wgpu-core buffer is created from a raw wgpu-hal buffer.
source§unsafe fn map_buffer(
&self,
buffer: &Buffer,
range: MemoryRange,
) -> Result<BufferMapping, DeviceError>
unsafe fn map_buffer( &self, buffer: &Buffer, range: MemoryRange, ) -> Result<BufferMapping, DeviceError>
Return a pointer to CPU memory mapping the contents of
buffer
. Read moresource§unsafe fn unmap_buffer(&self, buffer: &Buffer)
unsafe fn unmap_buffer(&self, buffer: &Buffer)
Remove the mapping established by the last call to
Device::map_buffer
. Read moresource§unsafe fn flush_mapped_ranges<I>(&self, buffer: &Buffer, ranges: I)where
I: Iterator<Item = MemoryRange>,
unsafe fn flush_mapped_ranges<I>(&self, buffer: &Buffer, ranges: I)where
I: Iterator<Item = MemoryRange>,
Indicate that CPU writes to mapped buffer memory should be made visible to the GPU. Read more
source§unsafe fn invalidate_mapped_ranges<I>(&self, _buffer: &Buffer, _ranges: I)
unsafe fn invalidate_mapped_ranges<I>(&self, _buffer: &Buffer, _ranges: I)
Indicate that GPU writes to mapped buffer memory should be made visible to the CPU. Read more
source§unsafe fn create_texture(
&self,
desc: &TextureDescriptor<'_>,
) -> Result<Texture, DeviceError>
unsafe fn create_texture( &self, desc: &TextureDescriptor<'_>, ) -> Result<Texture, DeviceError>
Creates a new texture. Read more
unsafe fn destroy_texture(&self, texture: Texture)
source§unsafe fn add_raw_texture(&self, _texture: &Texture)
unsafe fn add_raw_texture(&self, _texture: &Texture)
A hook for when a wgpu-core texture is created from a raw wgpu-hal texture.
unsafe fn create_texture_view( &self, texture: &Texture, desc: &TextureViewDescriptor<'_>, ) -> Result<TextureView, DeviceError>
unsafe fn destroy_texture_view(&self, _view: TextureView)
unsafe fn create_sampler( &self, desc: &SamplerDescriptor<'_>, ) -> Result<Sampler, DeviceError>
unsafe fn destroy_sampler(&self, sampler: Sampler)
source§unsafe fn create_command_encoder(
&self,
_desc: &CommandEncoderDescriptor<'_, Queue>,
) -> Result<CommandEncoder, DeviceError>
unsafe fn create_command_encoder( &self, _desc: &CommandEncoderDescriptor<'_, Queue>, ) -> Result<CommandEncoder, DeviceError>
Create a fresh
CommandEncoder
. Read moreunsafe fn destroy_command_encoder(&self, _encoder: CommandEncoder)
source§unsafe fn create_bind_group_layout(
&self,
desc: &BindGroupLayoutDescriptor<'_>,
) -> Result<BindGroupLayout, DeviceError>
unsafe fn create_bind_group_layout( &self, desc: &BindGroupLayoutDescriptor<'_>, ) -> Result<BindGroupLayout, DeviceError>
Creates a bind group layout.
unsafe fn destroy_bind_group_layout(&self, _bg_layout: BindGroupLayout)
unsafe fn create_pipeline_layout( &self, desc: &PipelineLayoutDescriptor<'_, BindGroupLayout>, ) -> Result<PipelineLayout, DeviceError>
unsafe fn destroy_pipeline_layout(&self, _pipeline_layout: PipelineLayout)
unsafe fn create_bind_group( &self, desc: &BindGroupDescriptor<'_, BindGroupLayout, Buffer, Sampler, TextureView, AccelerationStructure>, ) -> Result<BindGroup, DeviceError>
unsafe fn destroy_bind_group(&self, _group: BindGroup)
unsafe fn create_shader_module( &self, desc: &ShaderModuleDescriptor<'_>, shader: ShaderInput<'_>, ) -> Result<ShaderModule, ShaderError>
unsafe fn destroy_shader_module(&self, _module: ShaderModule)
unsafe fn create_render_pipeline( &self, desc: &RenderPipelineDescriptor<'_, PipelineLayout, ShaderModule, PipelineCache>, ) -> Result<RenderPipeline, PipelineError>
unsafe fn destroy_render_pipeline(&self, pipeline: RenderPipeline)
unsafe fn create_compute_pipeline( &self, desc: &ComputePipelineDescriptor<'_, PipelineLayout, ShaderModule, PipelineCache>, ) -> Result<ComputePipeline, PipelineError>
unsafe fn destroy_compute_pipeline(&self, pipeline: ComputePipeline)
unsafe fn create_pipeline_cache( &self, _: &PipelineCacheDescriptor<'_>, ) -> Result<PipelineCache, PipelineCacheError>
unsafe fn destroy_pipeline_cache(&self, _: PipelineCache)
unsafe fn create_query_set( &self, desc: &QuerySetDescriptor<Label<'_>>, ) -> Result<QuerySet, DeviceError>
unsafe fn destroy_query_set(&self, set: QuerySet)
unsafe fn create_fence(&self) -> Result<Fence, DeviceError>
unsafe fn destroy_fence(&self, fence: Fence)
unsafe fn get_fence_value( &self, fence: &Fence, ) -> Result<FenceValue, DeviceError>
source§unsafe fn wait(
&self,
fence: &Fence,
wait_value: FenceValue,
timeout_ms: u32,
) -> Result<bool, DeviceError>
unsafe fn wait( &self, fence: &Fence, wait_value: FenceValue, timeout_ms: u32, ) -> Result<bool, DeviceError>
unsafe fn start_capture(&self) -> bool
unsafe fn stop_capture(&self)
unsafe fn create_acceleration_structure( &self, _desc: &AccelerationStructureDescriptor<'_>, ) -> Result<AccelerationStructure, DeviceError>
unsafe fn get_acceleration_structure_build_sizes<'a>( &self, _desc: &GetAccelerationStructureBuildSizesDescriptor<'a, Buffer>, ) -> AccelerationStructureBuildSizes
unsafe fn get_acceleration_structure_device_address( &self, _acceleration_structure: &AccelerationStructure, ) -> BufferAddress
unsafe fn destroy_acceleration_structure( &self, _acceleration_structure: AccelerationStructure, )
fn get_internal_counters(&self) -> HalCounters
fn pipeline_cache_validation_key(&self) -> Option<[u8; 16]>
unsafe fn pipeline_cache_get_data( &self, cache: &<Self::A as Api>::PipelineCache, ) -> Option<Vec<u8>>
fn generate_allocator_report(&self) -> Option<AllocatorReport>
source§impl DynResource for Device
impl DynResource for Device
impl Send for Device
impl Sync for Device
Auto Trait Implementations§
impl Freeze for Device
impl !RefUnwindSafe for Device
impl Unpin for Device
impl !UnwindSafe for Device
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