pub struct Allocation { /* private fields */ }
Expand description

A GPU memory allocation.

Implementations§

source§

impl Allocation

source

pub unsafe fn memory(&self) -> DeviceMemory

The underlying Vulkan memory handle.

Safety

Unsafe because the allocation logically owns the device memory. It is incorrect to free the memory by any means other than to return the full allocation instance to the memory allocator.

source

pub fn offset_in_bytes(&self) -> DeviceSize

The offset where this allocation begins in device memory.

This is needed because some memory allocator implementations will subdivide big regions of GPU memory into smaller allocations. Therefore the actual device memory handle can be shared by many allocations.

source

pub fn size_in_bytes(&self) -> DeviceSize

The size of the allocation in bytes.

source

pub fn allocation_requirements(&self) -> &AllocationRequirements

The allocation requirements used when acquiring the device memory.

source

pub unsafe fn map(&self, device: &Device) -> Result<*mut c_void, AllocatorError>

Map the allocation into application address space.

Safety

Unsafe because:

  • The application must synchronize access to the underlying device memory. All previously submitted GPU commands which write to the memory owned by this alloctaion must be finished before the host reads or writes from the mapped pointer.
  • Synchronization requirements vary depending on the HOST_COHERENT memory property. See the Vulkan spec for details.

For details, see the specification at: https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/vkMapMemory.html

source

pub unsafe fn unmap(&self, device: &Device) -> Result<(), AllocatorError>

Unmap the allocation.

Safety

Unsafe because:

  • The pointer returned by map() must not be used after the call to unmap()
  • The application must synchronize all host access to the allocation.

Trait Implementations§

source§

impl Clone for Allocation

source§

fn clone(&self) -> Allocation

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Allocation

source§

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

Formats the value using the given formatter. Read more
source§

impl Display for Allocation

source§

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

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

const: unstable · source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

const: unstable · source§

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

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

const: unstable · source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

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

const: unstable · 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> ToOwned for Twhere T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T> ToString for Twhere T: Display + ?Sized,

source§

default fn to_string(&self) -> String

Converts the given value to a String. Read more
source§

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

§

type Error = Infallible

The type returned in the event of a conversion error.
const: unstable · source§

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

Performs the conversion.
source§

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

§

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

The type returned in the event of a conversion error.
const: unstable · source§

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

Performs the conversion.