Struct DeviceBuffer

Source
pub struct DeviceBuffer<T> { /* private fields */ }
Expand description

Device memory buffer

Implementations§

Source§

impl<T: Copy> DeviceBuffer<T>

Source

pub fn new(len: usize, device: Arc<Device>) -> Result<Self>

Allocate a new device buffer

Source

pub fn len(&self) -> usize

Get buffer length

Source

pub fn is_empty(&self) -> bool

Check if buffer is empty

Source

pub fn device(&self) -> &Arc<Device>

Get the device this buffer is allocated on

Source

pub unsafe fn as_ptr(&self) -> *const T

Get raw device pointer

§Safety

The caller must ensure that the returned pointer is not used after the DeviceBuffer is dropped. The caller must also ensure that the memory is not accessed concurrently.

Source

pub unsafe fn as_mut_ptr(&mut self) -> *mut T

Get mutable raw device pointer

§Safety

The caller must ensure that the returned pointer is not used after the DeviceBuffer is dropped. The caller must also ensure that the memory is not accessed concurrently.

Source

pub fn copy_from_host(&mut self, data: &[T]) -> Result<()>

Copy from host memory

Source

pub fn copy_to_host(&self, data: &mut [T]) -> Result<()>

Copy to host memory

Source

pub fn fill(&mut self, value: T) -> Result<()>

Fill buffer with a value

Auto Trait Implementations§

§

impl<T> Freeze for DeviceBuffer<T>

§

impl<T> RefUnwindSafe for DeviceBuffer<T>
where T: RefUnwindSafe,

§

impl<T> !Send for DeviceBuffer<T>

§

impl<T> !Sync for DeviceBuffer<T>

§

impl<T> Unpin for DeviceBuffer<T>
where T: Unpin,

§

impl<T> UnwindSafe for DeviceBuffer<T>
where T: UnwindSafe,

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> Downcast<T> for T

Source§

fn downcast(&self) -> &T

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> Upcast<T> for T

Source§

fn upcast(&self) -> Option<&T>

Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V