[−][src]Struct vulkano::buffer::device_local::DeviceLocalBuffer
Buffer whose content is in device-local memory.
This buffer type is useful in order to store intermediary data. For example you execute a compute shader that writes to this buffer, then read the content of the buffer in a following compute or graphics pipeline.
The DeviceLocalBuffer
will be in device-local memory, unless the device doesn't provide any
device-local memory.
Implementations
impl<T> DeviceLocalBuffer<T>
[src]
pub fn new<'a, I>(
device: Arc<Device>,
usage: BufferUsage,
queue_families: I
) -> Result<Arc<DeviceLocalBuffer<T>>, DeviceMemoryAllocError> where
I: IntoIterator<Item = QueueFamily<'a>>,
[src]
device: Arc<Device>,
usage: BufferUsage,
queue_families: I
) -> Result<Arc<DeviceLocalBuffer<T>>, DeviceMemoryAllocError> where
I: IntoIterator<Item = QueueFamily<'a>>,
Builds a new buffer. Only allowed for sized data.
impl<T> DeviceLocalBuffer<[T]>
[src]
pub fn array<'a, I>(
device: Arc<Device>,
len: usize,
usage: BufferUsage,
queue_families: I
) -> Result<Arc<DeviceLocalBuffer<[T]>>, DeviceMemoryAllocError> where
I: IntoIterator<Item = QueueFamily<'a>>,
[src]
device: Arc<Device>,
len: usize,
usage: BufferUsage,
queue_families: I
) -> Result<Arc<DeviceLocalBuffer<[T]>>, DeviceMemoryAllocError> where
I: IntoIterator<Item = QueueFamily<'a>>,
Builds a new buffer. Can be used for arrays.
impl<T: ?Sized> DeviceLocalBuffer<T>
[src]
pub unsafe fn raw<'a, I>(
device: Arc<Device>,
size: usize,
usage: BufferUsage,
queue_families: I
) -> Result<Arc<DeviceLocalBuffer<T>>, DeviceMemoryAllocError> where
I: IntoIterator<Item = QueueFamily<'a>>,
[src]
device: Arc<Device>,
size: usize,
usage: BufferUsage,
queue_families: I
) -> Result<Arc<DeviceLocalBuffer<T>>, DeviceMemoryAllocError> where
I: IntoIterator<Item = QueueFamily<'a>>,
Builds a new buffer without checking the size.
Safety
You must ensure that the size that you pass is correct for T
.
impl<T: ?Sized, A> DeviceLocalBuffer<T, A>
[src]
pub fn queue_families(&self) -> Vec<QueueFamily<'_>>
[src]
Returns the queue families this buffer can be used on.
Trait Implementations
impl<T: ?Sized, A> BufferAccess for DeviceLocalBuffer<T, A> where
T: 'static + Send + Sync,
[src]
T: 'static + Send + Sync,
pub fn inner(&self) -> BufferInner<'_>
[src]
pub fn size(&self) -> usize
[src]
pub fn conflicts_buffer(&self, other: &dyn BufferAccess) -> bool
[src]
pub fn conflicts_image(&self, other: &dyn ImageAccess) -> bool
[src]
pub fn conflict_key(&self) -> (u64, usize)
[src]
pub fn try_gpu_lock(
&self,
exclusive: bool,
_: &Queue
) -> Result<(), AccessError>
[src]
&self,
exclusive: bool,
_: &Queue
) -> Result<(), AccessError>
pub unsafe fn increase_gpu_lock(&self)
[src]
pub unsafe fn unlock(&self)
[src]
pub fn as_buffer_slice(&self) -> BufferSlice<Self::Content, &Self> where
Self: Sized + TypedBufferAccess,
[src]
Self: Sized + TypedBufferAccess,
pub fn slice<T>(&self, range: Range<usize>) -> Option<BufferSlice<[T], &Self>> where
Self: Sized + TypedBufferAccess<Content = [T]>,
[src]
Self: Sized + TypedBufferAccess<Content = [T]>,
pub fn into_buffer_slice(self) -> BufferSlice<Self::Content, Self> where
Self: Sized + TypedBufferAccess,
[src]
Self: Sized + TypedBufferAccess,
pub fn index<T>(&self, index: usize) -> Option<BufferSlice<[T], &Self>> where
Self: Sized + TypedBufferAccess<Content = [T]>,
[src]
Self: Sized + TypedBufferAccess<Content = [T]>,
pub fn raw_device_address(
&self
) -> Result<NonZeroU64, DeviceAddressUsageNotEnabledError>
[src]
&self
) -> Result<NonZeroU64, DeviceAddressUsageNotEnabledError>
impl<T: Debug + ?Sized, A: Debug> Debug for DeviceLocalBuffer<T, A>
[src]
impl<T: ?Sized, A> DeviceOwned for DeviceLocalBuffer<T, A>
[src]
impl<T: ?Sized, A> Eq for DeviceLocalBuffer<T, A> where
T: 'static + Send + Sync,
[src]
T: 'static + Send + Sync,
impl<T: ?Sized, A> Hash for DeviceLocalBuffer<T, A> where
T: 'static + Send + Sync,
[src]
T: 'static + Send + Sync,
pub fn hash<H: Hasher>(&self, state: &mut H)
[src]
pub fn hash_slice<H>(data: &[Self], state: &mut H) where
H: Hasher,
1.3.0[src]
H: Hasher,
impl<T: ?Sized, A> PartialEq<DeviceLocalBuffer<T, A>> for DeviceLocalBuffer<T, A> where
T: 'static + Send + Sync,
[src]
T: 'static + Send + Sync,
pub fn eq(&self, other: &Self) -> bool
[src]
#[must_use]pub fn ne(&self, other: &Rhs) -> bool
1.0.0[src]
impl<T: ?Sized, A> TypedBufferAccess for DeviceLocalBuffer<T, A> where
T: 'static + Send + Sync,
[src]
T: 'static + Send + Sync,
Auto Trait Implementations
impl<T: ?Sized, A> RefUnwindSafe for DeviceLocalBuffer<T, A> where
A: RefUnwindSafe,
T: RefUnwindSafe,
[src]
A: RefUnwindSafe,
T: RefUnwindSafe,
impl<T: ?Sized, A> Send for DeviceLocalBuffer<T, A> where
A: Send,
T: Send,
[src]
A: Send,
T: Send,
impl<T: ?Sized, A> Sync for DeviceLocalBuffer<T, A> where
A: Sync,
T: Sync,
[src]
A: Sync,
T: Sync,
impl<T: ?Sized, A> Unpin for DeviceLocalBuffer<T, A> where
A: Unpin,
[src]
A: Unpin,
impl<T: ?Sized, A> UnwindSafe for DeviceLocalBuffer<T, A> where
A: UnwindSafe,
T: UnwindSafe,
[src]
A: UnwindSafe,
T: UnwindSafe,
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> Content for T
[src]
pub fn ref_from_ptr(*mut c_void, usize) -> Option<*mut T>
[src]
pub fn is_size_suitable(usize) -> bool
[src]
pub fn indiv_size() -> usize
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
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]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,