Struct gpu_alloc::MemoryBlock[][src]

pub struct MemoryBlock<M> { /* fields omitted */ }

Memory block allocated by GpuAllocator.

Implementations

impl<M> MemoryBlock<M>[src]

pub fn memory(&self) -> &M[src]

Returns reference to parent memory object.

pub fn offset(&self) -> u64[src]

Returns offset in bytes from start of memory object to start of this block.

pub fn size(&self) -> u64[src]

Returns size of this memory block.

pub fn props(&self) -> MemoryPropertyFlags[src]

Returns memory property flags for parent memory object.

pub fn memory_type(&self) -> u32[src]

Returns index of type of parent memory object.

pub unsafe fn map(
    &mut self,
    device: &impl MemoryDevice<M>,
    offset: u64,
    size: usize
) -> Result<NonNull<u8>, MapError>
[src]

Returns pointer to mapped memory range of this block. This blocks becomes mapped.

The user of returned pointer must guarantee that any previously submitted command that writes to this range has completed before the host reads from or writes to that range, and that any previously submitted command that reads from that range has completed before the host writes to that region. If the device memory was allocated without the HOST_COHERENT property flag set, these guarantees must be made for an extended range: the user must round down the start of the range to the nearest multiple of non_coherent_atom_size, and round the end of the range up to the nearest multiple of non_coherent_atom_size.

Panics

This function panics if block is currently mapped.

Safety

block must have been allocated from specified device.

pub unsafe fn unmap(&mut self, device: &impl MemoryDevice<M>) -> bool[src]

Unmaps memory range of this block that was previously mapped with Block::map. This block becomes unmapped.

Panics

This function panics if this block is not currently mapped.

Safety

block must have been allocated from specified device.

pub unsafe fn write_bytes(
    &mut self,
    device: &impl MemoryDevice<M>,
    offset: u64,
    data: &[u8]
) -> Result<(), MapError>
[src]

Transiently maps block memory range and copies specified data to the mapped memory range.

Panics

This function panics if block is currently mapped.

Safety

block must have been allocated from specified device. The caller must guarantee that any previously submitted command that reads or writes to this range has completed.

pub unsafe fn read_bytes(
    &mut self,
    device: &impl MemoryDevice<M>,
    offset: u64,
    data: &mut [u8]
) -> Result<(), MapError>
[src]

Transiently maps block memory range and copies specified data from the mapped memory range.

Panics

This function panics if block is currently mapped.

Safety

block must have been allocated from specified device. The caller must guarantee that any previously submitted command that reads to this range has completed.

Trait Implementations

impl<M: Debug> Debug for MemoryBlock<M>[src]

impl<M> Send for MemoryBlock<M> where
    M: Send
[src]

impl<M> Sync for MemoryBlock<M> where
    M: Sync
[src]

Auto Trait Implementations

impl<M> RefUnwindSafe for MemoryBlock<M> where
    M: RefUnwindSafe

impl<M> Unpin for MemoryBlock<M> where
    M: Unpin

impl<M> UnwindSafe for MemoryBlock<M> where
    M: RefUnwindSafe + UnwindSafe

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.