Struct gpu_alloc::GpuAllocator[][src]

pub struct GpuAllocator<M> { /* fields omitted */ }
Expand description

Memory allocator for Vulkan-like APIs.

Implementations

impl<M> GpuAllocator<M> where
    M: MemoryBounds + 'static, 
[src]

pub fn new(config: Config, props: DeviceProperties<'_>) -> Self[src]

Creates new instance of GpuAllocator. Provided DeviceProperties should match properties of MemoryDevice that will be used with created GpuAllocator instance.

pub unsafe fn alloc(
    &mut self,
    device: &impl MemoryDevice<M>,
    request: Request
) -> Result<MemoryBlock<M>, AllocationError>
[src]

Allocates memory block from specified device according to the request.

Safety

  • device must be one with DeviceProperties that were provided to create this GpuAllocator instance.
  • Same device instance must be used for all interactions with one GpuAllocator instance and memory blocks allocated from it.

pub unsafe fn alloc_with_dedicated(
    &mut self,
    device: &impl MemoryDevice<M>,
    request: Request,
    dedicated: Dedicated
) -> Result<MemoryBlock<M>, AllocationError>
[src]

Allocates memory block from specified device according to the request. This function allows user to force specific allocation strategy. Improper use can lead to suboptimal performance or too large overhead. Prefer GpuAllocator::alloc if doubt.

Safety

  • device must be one with DeviceProperties that were provided to create this GpuAllocator instance.
  • Same device instance must be used for all interactions with one GpuAllocator instance and memory blocks allocated from it.

pub unsafe fn dealloc(
    &mut self,
    device: &impl MemoryDevice<M>,
    block: MemoryBlock<M>
)
[src]

Deallocates memory block previously allocated from this GpuAllocator instance.

Safety

  • Memory block must have been allocated by this GpuAllocator instance
  • device must be one with DeviceProperties that were provided to create this GpuAllocator instance
  • Same device instance must be used for all interactions with one GpuAllocator instance and memory blocks allocated from it

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

Deallocates leftover memory objects. Should be used before dropping.

Safety

  • device must be one with DeviceProperties that were provided to create this GpuAllocator instance
  • Same device instance must be used for all interactions with one GpuAllocator instance and memory blocks allocated from it

Trait Implementations

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

fn fmt(&self, f: &mut Formatter<'_>) -> Result[src]

Formats the value using the given formatter. Read more

Auto Trait Implementations

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

impl<M> Send for GpuAllocator<M> where
    M: Send

impl<M> Sync for GpuAllocator<M> where
    M: Sync

impl<M> Unpin for GpuAllocator<M>

impl<M> UnwindSafe for GpuAllocator<M> where
    M: RefUnwindSafe

Blanket Implementations

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

pub fn type_id(&self) -> TypeId[src]

Gets the TypeId of self. Read more

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

pub fn borrow(&self) -> &T[src]

Immutably borrows from an owned value. Read more

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

pub fn borrow_mut(&mut self) -> &mut T[src]

Mutably borrows from an owned value. Read more

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

pub fn from(t: T) -> T[src]

Performs the conversion.

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

pub fn into(self) -> U[src]

Performs the conversion.

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.

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

Performs the conversion.

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.

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

Performs the conversion.