[−][src]Struct nannou::vk::ComputePipeline
A pipeline object that describes to the Vulkan implementation how it should perform compute operations.
The template parameter contains the descriptor set to use with this pipeline.
All compute pipeline objects implement the ComputePipelineAbstract
trait. You can turn any
Arc<ComputePipeline<Pl>>
into an Arc<ComputePipelineAbstract>
if necessary.
Methods
impl ComputePipeline<()>
[src]
pub fn new<Cs>(
device: Arc<Device>,
shader: &Cs,
specialization: &<Cs as EntryPointAbstract>::SpecializationConstants
) -> Result<ComputePipeline<PipelineLayout<<Cs as EntryPointAbstract>::PipelineLayout>>, ComputePipelineCreationError> where
Cs: EntryPointAbstract,
<Cs as EntryPointAbstract>::PipelineLayout: Clone,
[src]
device: Arc<Device>,
shader: &Cs,
specialization: &<Cs as EntryPointAbstract>::SpecializationConstants
) -> Result<ComputePipeline<PipelineLayout<<Cs as EntryPointAbstract>::PipelineLayout>>, ComputePipelineCreationError> where
Cs: EntryPointAbstract,
<Cs as EntryPointAbstract>::PipelineLayout: Clone,
Builds a new ComputePipeline
.
impl<Pl> ComputePipeline<Pl>
[src]
pub fn with_pipeline_layout<Cs>(
device: Arc<Device>,
shader: &Cs,
specialization: &<Cs as EntryPointAbstract>::SpecializationConstants,
pipeline_layout: Pl
) -> Result<ComputePipeline<Pl>, ComputePipelineCreationError> where
Cs: EntryPointAbstract,
Pl: PipelineLayoutAbstract,
<Cs as EntryPointAbstract>::PipelineLayout: Clone,
[src]
device: Arc<Device>,
shader: &Cs,
specialization: &<Cs as EntryPointAbstract>::SpecializationConstants,
pipeline_layout: Pl
) -> Result<ComputePipeline<Pl>, ComputePipelineCreationError> where
Cs: EntryPointAbstract,
Pl: PipelineLayoutAbstract,
<Cs as EntryPointAbstract>::PipelineLayout: Clone,
Builds a new ComputePipeline
with a specific pipeline layout.
An error will be returned if the pipeline layout isn't a superset of what the shader uses.
pub unsafe fn with_unchecked_pipeline_layout<Cs>(
device: Arc<Device>,
shader: &Cs,
specialization: &<Cs as EntryPointAbstract>::SpecializationConstants,
pipeline_layout: Pl
) -> Result<ComputePipeline<Pl>, ComputePipelineCreationError> where
Cs: EntryPointAbstract,
Pl: PipelineLayoutAbstract,
<Cs as EntryPointAbstract>::PipelineLayout: Clone,
[src]
device: Arc<Device>,
shader: &Cs,
specialization: &<Cs as EntryPointAbstract>::SpecializationConstants,
pipeline_layout: Pl
) -> Result<ComputePipeline<Pl>, ComputePipelineCreationError> where
Cs: EntryPointAbstract,
Pl: PipelineLayoutAbstract,
<Cs as EntryPointAbstract>::PipelineLayout: Clone,
Same as with_pipeline_layout
, but doesn't check whether the pipeline layout is a
superset of what the shader expects.
impl<Pl> ComputePipeline<Pl>
[src]
pub fn device(&self) -> &Arc<Device>
[src]
Returns the Device
this compute pipeline was created with.
pub fn layout(&self) -> &Pl
[src]
Returns the pipeline layout used in this compute pipeline.
Trait Implementations
impl<Pl> DeviceOwned for ComputePipeline<Pl>
[src]
impl<Pl> PipelineLayoutAbstract for ComputePipeline<Pl> where
Pl: PipelineLayoutAbstract,
[src]
Pl: PipelineLayoutAbstract,
fn sys(&self) -> PipelineLayoutSys
[src]
fn descriptor_set_layout(
&self,
index: usize
) -> Option<&Arc<UnsafeDescriptorSetLayout>>
[src]
&self,
index: usize
) -> Option<&Arc<UnsafeDescriptorSetLayout>>
impl<Pl> PipelineLayoutDesc for ComputePipeline<Pl> where
Pl: PipelineLayoutDesc,
[src]
Pl: PipelineLayoutDesc,
fn num_sets(&self) -> usize
[src]
fn num_bindings_in_set(&self, set: usize) -> Option<usize>
[src]
fn descriptor(&self, set: usize, binding: usize) -> Option<DescriptorDesc>
[src]
fn num_push_constants_ranges(&self) -> usize
[src]
fn push_constants_range(&self, num: usize) -> Option<PipelineLayoutDescPcRange>
[src]
fn provided_set_layout(
&self,
_set: usize
) -> Option<Arc<UnsafeDescriptorSetLayout>>
[src]
&self,
_set: usize
) -> Option<Arc<UnsafeDescriptorSetLayout>>
If the PipelineLayoutDesc
implementation is able to provide an existing UnsafeDescriptorSetLayout
for a given set, it can do so by returning it here. Read more
fn union<T>(self, other: T) -> PipelineLayoutDescUnion<Self, T>
[src]
Builds the union of this layout and another.
fn check_against_limits(
&self,
device: &Device
) -> Result<(), PipelineLayoutLimitsError>
[src]
&self,
device: &Device
) -> Result<(), PipelineLayoutLimitsError>
Checks whether this description fulfills the device limits requirements.
fn build(
self,
device: Arc<Device>
) -> Result<PipelineLayout<Self>, PipelineLayoutCreationError>
[src]
self,
device: Arc<Device>
) -> Result<PipelineLayout<Self>, PipelineLayoutCreationError>
Turns the layout description into a PipelineLayout
object that can be used by Vulkan. Read more
impl<Pl> VulkanObject for ComputePipeline<Pl>
[src]
impl<Pl> Debug for ComputePipeline<Pl>
[src]
impl<Pl> ComputePipelineAbstract for ComputePipeline<Pl> where
Pl: PipelineLayoutAbstract,
[src]
Pl: PipelineLayoutAbstract,
fn inner(&self) -> ComputePipelineSys
[src]
Auto Trait Implementations
impl<Pl> Send for ComputePipeline<Pl> where
Pl: Send,
Pl: Send,
impl<Pl> Sync for ComputePipeline<Pl> where
Pl: Sync,
Pl: Sync,
Blanket Implementations
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.
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>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> PipelineLayoutDesc for T where
T: SafeDeref,
<T as Deref>::Target: PipelineLayoutDesc,
[src]
T: SafeDeref,
<T as Deref>::Target: PipelineLayoutDesc,
fn num_sets(&self) -> usize
[src]
fn num_bindings_in_set(&self, set: usize) -> Option<usize>
[src]
fn descriptor(&self, set: usize, binding: usize) -> Option<DescriptorDesc>
[src]
fn num_push_constants_ranges(&self) -> usize
[src]
fn push_constants_range(&self, num: usize) -> Option<PipelineLayoutDescPcRange>
[src]
fn provided_set_layout(
&self,
_set: usize
) -> Option<Arc<UnsafeDescriptorSetLayout>>
[src]
&self,
_set: usize
) -> Option<Arc<UnsafeDescriptorSetLayout>>
If the PipelineLayoutDesc
implementation is able to provide an existing UnsafeDescriptorSetLayout
for a given set, it can do so by returning it here. Read more
fn union<T>(self, other: T) -> PipelineLayoutDescUnion<Self, T>
[src]
Builds the union of this layout and another.
fn check_against_limits(
&self,
device: &Device
) -> Result<(), PipelineLayoutLimitsError>
[src]
&self,
device: &Device
) -> Result<(), PipelineLayoutLimitsError>
Checks whether this description fulfills the device limits requirements.
fn build(
self,
device: Arc<Device>
) -> Result<PipelineLayout<Self>, PipelineLayoutCreationError>
[src]
self,
device: Arc<Device>
) -> Result<PipelineLayout<Self>, PipelineLayoutCreationError>
Turns the layout description into a PipelineLayout
object that can be used by Vulkan. Read more
impl<T> DeviceOwned for T where
T: Deref,
<T as Deref>::Target: DeviceOwned,
[src]
T: Deref,
<T as Deref>::Target: DeviceOwned,
impl<T> Content for T
[src]
fn ref_from_ptr(ptr: *mut c_void, size: usize) -> Option<*mut T>
[src]
fn is_size_suitable(size: usize) -> bool
[src]
fn indiv_size() -> usize
[src]
impl<T> PipelineLayoutAbstract for T where
T: SafeDeref,
<T as Deref>::Target: PipelineLayoutAbstract,
[src]
T: SafeDeref,
<T as Deref>::Target: PipelineLayoutAbstract,
fn sys(&self) -> PipelineLayoutSys
[src]
fn descriptor_set_layout(
&self,
index: usize
) -> Option<&Arc<UnsafeDescriptorSetLayout>>
[src]
&self,
index: usize
) -> Option<&Arc<UnsafeDescriptorSetLayout>>
impl<T> ComputePipelineAbstract for T where
T: SafeDeref,
<T as Deref>::Target: ComputePipelineAbstract,
[src]
T: SafeDeref,
<T as Deref>::Target: ComputePipelineAbstract,
fn inner(&self) -> ComputePipelineSys
[src]
impl<T, U> PipelineLayoutPushConstantsCompatible<U> for T where
T: PipelineLayoutDesc + ?Sized,
U: ?Sized,
[src]
T: PipelineLayoutDesc + ?Sized,
U: ?Sized,
fn is_compatible(&self, &U) -> bool
[src]
impl<T, U> PipelineLayoutSuperset<U> for T where
T: PipelineLayoutDesc + ?Sized,
U: PipelineLayoutDesc + ?Sized,
[src]
T: PipelineLayoutDesc + ?Sized,
U: PipelineLayoutDesc + ?Sized,
fn ensure_superset_of(
&self,
other: &U
) -> Result<(), PipelineLayoutNotSupersetError>
[src]
&self,
other: &U
) -> Result<(), PipelineLayoutNotSupersetError>
impl<T, U> PipelineLayoutSetsCompatible<U> for T where
T: PipelineLayoutDesc + ?Sized,
U: DescriptorSetsCollection + ?Sized,
[src]
T: PipelineLayoutDesc + ?Sized,
U: DescriptorSetsCollection + ?Sized,
fn is_compatible(&self, sets: &U) -> bool
[src]
impl<T> SafeBorrow<T> for T
[src]
impl<T> Erased for T
impl<S> FromSample<S> for S
[src]
fn from_sample_(s: S) -> S
[src]
impl<T, U> ToSample<U> for T where
U: FromSample<T>,
[src]
U: FromSample<T>,
fn to_sample_(self) -> U
[src]
impl<S, T> Duplex<S> for T where
T: FromSample<S> + ToSample<S>,
[src]
T: FromSample<S> + ToSample<S>,
impl<T> SetParameter for T
fn set<T>(&mut self, value: T) -> <T as Parameter<Self>>::Result where
T: Parameter<Self>,
T: Parameter<Self>,
Sets value
as a parameter of self
.
impl<T> SetParameter for T
fn set<T>(&mut self, value: T) -> <T as Parameter<Self>>::Result where
T: Parameter<Self>,
T: Parameter<Self>,
Sets value
as a parameter of self
.