[−][src]Struct vulkano::pipeline::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.
Pass an optional Arc
to a PipelineCache
to enable pipeline caching. The vulkan
implementation will handle the PipelineCache
and check if it is available.
Check the documentation of the PipelineCache
for more information.
Implementations
impl ComputePipeline<()>
[src]
pub fn new<Cs>(
device: Arc<Device>,
shader: &Cs,
specialization: &Cs::SpecializationConstants,
cache: Option<Arc<PipelineCache>>
) -> Result<ComputePipeline<PipelineLayout<Cs::PipelineLayout>>, ComputePipelineCreationError> where
Cs::PipelineLayout: Clone,
Cs: EntryPointAbstract,
[src]
device: Arc<Device>,
shader: &Cs,
specialization: &Cs::SpecializationConstants,
cache: Option<Arc<PipelineCache>>
) -> Result<ComputePipeline<PipelineLayout<Cs::PipelineLayout>>, ComputePipelineCreationError> where
Cs::PipelineLayout: Clone,
Cs: EntryPointAbstract,
Builds a new ComputePipeline
.
impl<Pl> ComputePipeline<Pl>
[src]
pub fn with_pipeline_layout<Cs>(
device: Arc<Device>,
shader: &Cs,
specialization: &Cs::SpecializationConstants,
pipeline_layout: Pl,
cache: Option<Arc<PipelineCache>>
) -> Result<ComputePipeline<Pl>, ComputePipelineCreationError> where
Cs::PipelineLayout: Clone,
Cs: EntryPointAbstract,
Pl: PipelineLayoutAbstract,
[src]
device: Arc<Device>,
shader: &Cs,
specialization: &Cs::SpecializationConstants,
pipeline_layout: Pl,
cache: Option<Arc<PipelineCache>>
) -> Result<ComputePipeline<Pl>, ComputePipelineCreationError> where
Cs::PipelineLayout: Clone,
Cs: EntryPointAbstract,
Pl: PipelineLayoutAbstract,
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::SpecializationConstants,
pipeline_layout: Pl,
cache: Option<Arc<PipelineCache>>
) -> Result<ComputePipeline<Pl>, ComputePipelineCreationError> where
Cs::PipelineLayout: Clone,
Cs: EntryPointAbstract,
Pl: PipelineLayoutAbstract,
[src]
device: Arc<Device>,
shader: &Cs,
specialization: &Cs::SpecializationConstants,
pipeline_layout: Pl,
cache: Option<Arc<PipelineCache>>
) -> Result<ComputePipeline<Pl>, ComputePipelineCreationError> where
Cs::PipelineLayout: Clone,
Cs: EntryPointAbstract,
Pl: PipelineLayoutAbstract,
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> ComputePipelineAbstract for ComputePipeline<Pl> where
Pl: PipelineLayoutAbstract,
[src]
Pl: PipelineLayoutAbstract,
pub fn inner(&self) -> ComputePipelineSys<'_>
[src]
impl<Pl> Debug for ComputePipeline<Pl>
[src]
impl<Pl> DeviceOwned for ComputePipeline<Pl>
[src]
impl<Pl> PipelineLayoutAbstract for ComputePipeline<Pl> where
Pl: PipelineLayoutAbstract,
[src]
Pl: PipelineLayoutAbstract,
pub fn sys(&self) -> PipelineLayoutSys<'_>
[src]
pub 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,
pub fn num_sets(&self) -> usize
[src]
pub fn num_bindings_in_set(&self, set: usize) -> Option<usize>
[src]
pub fn descriptor(&self, set: usize, binding: usize) -> Option<DescriptorDesc>
[src]
pub fn num_push_constants_ranges(&self) -> usize
[src]
pub fn push_constants_range(
&self,
num: usize
) -> Option<PipelineLayoutDescPcRange>
[src]
&self,
num: usize
) -> Option<PipelineLayoutDescPcRange>
pub fn provided_set_layout(
&self,
_set: usize
) -> Option<Arc<UnsafeDescriptorSetLayout>>
[src]
&self,
_set: usize
) -> Option<Arc<UnsafeDescriptorSetLayout>>
pub fn union<T>(self, other: T) -> PipelineLayoutDescUnion<Self, T> where
Self: Sized,
[src]
Self: Sized,
pub fn check_against_limits(
&self,
device: &Device
) -> Result<(), PipelineLayoutLimitsError>
[src]
&self,
device: &Device
) -> Result<(), PipelineLayoutLimitsError>
pub fn build(
self,
device: Arc<Device>
) -> Result<PipelineLayout<Self>, PipelineLayoutCreationError> where
Self: Sized,
[src]
self,
device: Arc<Device>
) -> Result<PipelineLayout<Self>, PipelineLayoutCreationError> where
Self: Sized,
impl<Pl> VulkanObject for ComputePipeline<Pl>
[src]
type Object = Pipeline
The type of the object.
pub const TYPE: ObjectType
[src]
pub fn internal_object(&self) -> Pipeline
[src]
Auto Trait Implementations
impl<Pl> RefUnwindSafe for ComputePipeline<Pl> where
Pl: RefUnwindSafe,
[src]
Pl: RefUnwindSafe,
impl<Pl> Send for ComputePipeline<Pl> where
Pl: Send,
[src]
Pl: Send,
impl<Pl> Sync for ComputePipeline<Pl> where
Pl: Sync,
[src]
Pl: Sync,
impl<Pl> Unpin for ComputePipeline<Pl> where
Pl: Unpin,
[src]
Pl: Unpin,
impl<Pl> UnwindSafe for ComputePipeline<Pl> where
Pl: UnwindSafe,
[src]
Pl: 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>,