pub struct Device {
shared: Arc<AdapterShared>,
main_vao: <Context as HasContext>::VertexArray,
render_doc: RenderDoc,
counters: HalCounters,
}
Fields§
§main_vao: <Context as HasContext>::VertexArray
§render_doc: RenderDoc
§counters: HalCounters
Implementations§
§impl Device
impl Device
pub fn context(&self) -> &AdapterContext
pub fn context(&self) -> &AdapterContext
Returns the underlying EGL context.
§impl Device
impl Device
pub unsafe fn texture_from_raw(
&self,
name: NonZero<u32>,
desc: &TextureDescriptor<'_>,
drop_guard: Option<Box<dyn Any + Sync + Send>>
) -> Texture
pub unsafe fn texture_from_raw( &self, name: NonZero<u32>, desc: &TextureDescriptor<'_>, drop_guard: Option<Box<dyn Any + Sync + Send>> ) -> Texture
pub unsafe fn texture_from_raw_renderbuffer(
&self,
name: NonZero<u32>,
desc: &TextureDescriptor<'_>,
drop_guard: Option<Box<dyn Any + Sync + Send>>
) -> Texture
pub unsafe fn texture_from_raw_renderbuffer( &self, name: NonZero<u32>, desc: &TextureDescriptor<'_>, drop_guard: Option<Box<dyn Any + Sync + Send>> ) -> Texture
Trait Implementations§
§impl Device for Device
impl Device for Device
type A = Api
§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
§unsafe fn destroy_buffer(&self, buffer: Buffer)
unsafe fn destroy_buffer(&self, buffer: Buffer)
Free
buffer
and any GPU resources it owns. Read more§unsafe fn map_buffer(
&self,
buffer: &Buffer,
range: Range<u64>
) -> Result<BufferMapping, DeviceError>
unsafe fn map_buffer( &self, buffer: &Buffer, range: Range<u64> ) -> Result<BufferMapping, DeviceError>
Return a pointer to CPU memory mapping the contents of
buffer
. Read more§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 more§unsafe fn flush_mapped_ranges<I>(&self, buffer: &Buffer, ranges: I)
unsafe fn flush_mapped_ranges<I>(&self, buffer: &Buffer, ranges: I)
Indicate that CPU writes to mapped buffer memory should be made visible to the GPU. Read more
§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
§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)
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)
§unsafe fn create_command_encoder(
&self,
_desc: &CommandEncoderDescriptor<'_, Api>
) -> Result<CommandEncoder, DeviceError>
unsafe fn create_command_encoder( &self, _desc: &CommandEncoderDescriptor<'_, Api> ) -> Result<CommandEncoder, DeviceError>
Create a fresh
CommandEncoder
. Read moreunsafe fn destroy_command_encoder(&self, _encoder: CommandEncoder)
§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<'_, Api> ) -> Result<PipelineLayout, DeviceError>
unsafe fn destroy_pipeline_layout(&self, _pipeline_layout: PipelineLayout)
unsafe fn create_bind_group( &self, desc: &BindGroupDescriptor<'_, Api> ) -> 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<'_, Api> ) -> Result<RenderPipeline, PipelineError>
unsafe fn destroy_render_pipeline(&self, pipeline: RenderPipeline)
unsafe fn create_compute_pipeline( &self, desc: &ComputePipelineDescriptor<'_, Api> ) -> Result<ComputePipeline, PipelineError>
unsafe fn destroy_compute_pipeline(&self, pipeline: ComputePipeline)
unsafe fn create_pipeline_cache( &self, _: &PipelineCacheDescriptor<'_> ) -> Result<(), PipelineCacheError>
unsafe fn destroy_pipeline_cache(&self, _: ())
unsafe fn create_query_set( &self, desc: &QuerySetDescriptor<Option<&str>> ) -> 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<u64, DeviceError>
§unsafe fn wait(
&self,
fence: &Fence,
wait_value: u64,
timeout_ms: u32
) -> Result<bool, DeviceError>
unsafe fn wait( &self, fence: &Fence, wait_value: u64, 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<(), 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: &() ) -> u64
unsafe fn destroy_acceleration_structure(&self, _acceleration_structure: ())
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>>
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
source§impl<T> CheckedAs for T
impl<T> CheckedAs for T
source§fn checked_as<Dst>(self) -> Option<Dst>where
T: CheckedCast<Dst>,
fn checked_as<Dst>(self) -> Option<Dst>where
T: CheckedCast<Dst>,
Casts the value.
source§impl<Src, Dst> CheckedCastFrom<Src> for Dstwhere
Src: CheckedCast<Dst>,
impl<Src, Dst> CheckedCastFrom<Src> for Dstwhere
Src: CheckedCast<Dst>,
source§fn checked_cast_from(src: Src) -> Option<Dst>
fn checked_cast_from(src: Src) -> Option<Dst>
Casts the value.
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Convert
Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Convert
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert
&Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.§impl<T> DowncastSync for T
impl<T> DowncastSync for T
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
source§impl<T> IntoEither for T
impl<T> IntoEither for T
source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
Converts
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moresource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
Converts
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moresource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T
in a tonic::Request
source§impl<Src, Dst> LosslessTryInto<Dst> for Srcwhere
Dst: LosslessTryFrom<Src>,
impl<Src, Dst> LosslessTryInto<Dst> for Srcwhere
Dst: LosslessTryFrom<Src>,
source§fn lossless_try_into(self) -> Option<Dst>
fn lossless_try_into(self) -> Option<Dst>
Performs the conversion.
source§impl<Src, Dst> LossyInto<Dst> for Srcwhere
Dst: LossyFrom<Src>,
impl<Src, Dst> LossyInto<Dst> for Srcwhere
Dst: LossyFrom<Src>,
source§fn lossy_into(self) -> Dst
fn lossy_into(self) -> Dst
Performs the conversion.
source§impl<T> OverflowingAs for T
impl<T> OverflowingAs for T
source§fn overflowing_as<Dst>(self) -> (Dst, bool)where
T: OverflowingCast<Dst>,
fn overflowing_as<Dst>(self) -> (Dst, bool)where
T: OverflowingCast<Dst>,
Casts the value.
source§impl<Src, Dst> OverflowingCastFrom<Src> for Dstwhere
Src: OverflowingCast<Dst>,
impl<Src, Dst> OverflowingCastFrom<Src> for Dstwhere
Src: OverflowingCast<Dst>,
source§fn overflowing_cast_from(src: Src) -> (Dst, bool)
fn overflowing_cast_from(src: Src) -> (Dst, bool)
Casts the value.
§impl<T> Pointable for T
impl<T> Pointable for T
source§impl<T> SaturatingAs for T
impl<T> SaturatingAs for T
source§fn saturating_as<Dst>(self) -> Dstwhere
T: SaturatingCast<Dst>,
fn saturating_as<Dst>(self) -> Dstwhere
T: SaturatingCast<Dst>,
Casts the value.
source§impl<Src, Dst> SaturatingCastFrom<Src> for Dstwhere
Src: SaturatingCast<Dst>,
impl<Src, Dst> SaturatingCastFrom<Src> for Dstwhere
Src: SaturatingCast<Dst>,
source§fn saturating_cast_from(src: Src) -> Dst
fn saturating_cast_from(src: Src) -> Dst
Casts the value.
source§impl<T> UnwrappedAs for T
impl<T> UnwrappedAs for T
source§fn unwrapped_as<Dst>(self) -> Dstwhere
T: UnwrappedCast<Dst>,
fn unwrapped_as<Dst>(self) -> Dstwhere
T: UnwrappedCast<Dst>,
Casts the value.
source§impl<Src, Dst> UnwrappedCastFrom<Src> for Dstwhere
Src: UnwrappedCast<Dst>,
impl<Src, Dst> UnwrappedCastFrom<Src> for Dstwhere
Src: UnwrappedCast<Dst>,
source§fn unwrapped_cast_from(src: Src) -> Dst
fn unwrapped_cast_from(src: Src) -> Dst
Casts the value.
§impl<T> WithSubscriber for T
impl<T> WithSubscriber for T
§fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where
S: Into<Dispatch>,
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where
S: Into<Dispatch>,
§fn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
source§impl<T> WrappingAs for T
impl<T> WrappingAs for T
source§fn wrapping_as<Dst>(self) -> Dstwhere
T: WrappingCast<Dst>,
fn wrapping_as<Dst>(self) -> Dstwhere
T: WrappingCast<Dst>,
Casts the value.
source§impl<Src, Dst> WrappingCastFrom<Src> for Dstwhere
Src: WrappingCast<Dst>,
impl<Src, Dst> WrappingCastFrom<Src> for Dstwhere
Src: WrappingCast<Dst>,
source§fn wrapping_cast_from(src: Src) -> Dst
fn wrapping_cast_from(src: Src) -> Dst
Casts the value.