Struct vulkano::memory::DeviceMemory
[−]
[src]
pub struct DeviceMemory { /* fields omitted */ }
Represents memory that has been allocated.
The destructor of DeviceMemory
automatically frees the memory.
Example
use vulkano::memory::DeviceMemory; let mem_ty = device.physical_device().memory_types().next().unwrap(); // Allocates 1kB of memory. let memory = DeviceMemory::alloc(device.clone(), mem_ty, 1024).unwrap();
Methods
impl DeviceMemory
[src]
fn alloc(
device: Arc<Device>,
memory_type: MemoryType,
size: usize
) -> Result<DeviceMemory, DeviceMemoryAllocError>
[src]
device: Arc<Device>,
memory_type: MemoryType,
size: usize
) -> Result<DeviceMemory, DeviceMemoryAllocError>
Allocates a chunk of memory from the device.
Some platforms may have a limit on the maximum size of a single allocation. For example, certain systems may fail to create allocations with a size greater than or equal to 4GB.
Panic
- Panics if
size
is 0. - Panics if
memory_type
doesn't belong to the same physical device asdevice
.
fn dedicated_alloc(
device: Arc<Device>,
memory_type: MemoryType,
size: usize,
resource: DedicatedAlloc
) -> Result<DeviceMemory, DeviceMemoryAllocError>
[src]
device: Arc<Device>,
memory_type: MemoryType,
size: usize,
resource: DedicatedAlloc
) -> Result<DeviceMemory, DeviceMemoryAllocError>
Same as alloc
, but allows specifying a resource that will be bound to the memory.
If a buffer or an image is specified in resource
, then the returned memory must not be
bound to a different buffer or image.
If the VK_KHR_dedicated_allocation
extension is enabled on the device, then it will be
used by this method. Otherwise the resource
parameter will be ignored.
fn alloc_and_map(
device: Arc<Device>,
memory_type: MemoryType,
size: usize
) -> Result<MappedDeviceMemory, DeviceMemoryAllocError>
[src]
device: Arc<Device>,
memory_type: MemoryType,
size: usize
) -> Result<MappedDeviceMemory, DeviceMemoryAllocError>
Allocates a chunk of memory and maps it.
Panic
- Panics if
memory_type
doesn't belong to the same physical device asdevice
. - Panics if the memory type is not host-visible.
fn dedicated_alloc_and_map(
device: Arc<Device>,
memory_type: MemoryType,
size: usize,
resource: DedicatedAlloc
) -> Result<MappedDeviceMemory, DeviceMemoryAllocError>
[src]
device: Arc<Device>,
memory_type: MemoryType,
size: usize,
resource: DedicatedAlloc
) -> Result<MappedDeviceMemory, DeviceMemoryAllocError>
Equivalent of dedicated_alloc
for alloc_and_map
.
fn memory_type(&self) -> MemoryType
[src]
Returns the memory type this chunk was allocated on.
fn size(&self) -> usize
[src]
Returns the size in bytes of that memory chunk.
Trait Implementations
impl DeviceOwned for DeviceMemory
[src]
impl Debug for DeviceMemory
[src]
impl VulkanObject for DeviceMemory
[src]
type Object = DeviceMemory
The type of the object.
const TYPE: DebugReportObjectTypeEXT
TYPE: DebugReportObjectTypeEXT = vk::DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT
The DebugReportObjectTypeEXT
of the internal Vulkan handle.
fn internal_object(&self) -> DeviceMemory
[src]
Returns a reference to the object.