Struct vulkano::pipeline::ComputePipeline [−][src]
pub struct ComputePipeline<Pl> { /* fields omitted */ }
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]
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]
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]Builds a new ComputePipeline
.
impl<Pl> ComputePipeline<Pl>
[src]
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]
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]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]
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]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]
impl<Pl> ComputePipeline<Pl>
[src]Trait Implementations
impl<Pl> ComputePipelineAbstract for ComputePipeline<Pl> where
Pl: PipelineLayoutAbstract,
[src]
impl<Pl> ComputePipelineAbstract for ComputePipeline<Pl> where
Pl: PipelineLayoutAbstract,
[src]fn inner(&self) -> ComputePipelineSys<'_>
[src]
fn inner(&self) -> ComputePipelineSys<'_>
[src]Returns an opaque object that represents the inside of the compute pipeline.
impl<Pl> Debug for ComputePipeline<Pl>
[src]
impl<Pl> Debug for ComputePipeline<Pl>
[src]impl<Pl> DeviceOwned for ComputePipeline<Pl>
[src]
impl<Pl> DeviceOwned for ComputePipeline<Pl>
[src]impl<Pl> PipelineLayoutAbstract for ComputePipeline<Pl> where
Pl: PipelineLayoutAbstract,
[src]
impl<Pl> PipelineLayoutAbstract for ComputePipeline<Pl> where
Pl: PipelineLayoutAbstract,
[src]fn sys(&self) -> PipelineLayoutSys<'_>
[src]
fn sys(&self) -> PipelineLayoutSys<'_>
[src]Returns an opaque object that allows internal access to the pipeline layout. Read more
fn descriptor_set_layout(
&self,
index: usize
) -> Option<&Arc<UnsafeDescriptorSetLayout>>
[src]
fn descriptor_set_layout(
&self,
index: usize
) -> Option<&Arc<UnsafeDescriptorSetLayout>>
[src]Returns the UnsafeDescriptorSetLayout
object of the specified set index. Read more
impl<Pl> PipelineLayoutDesc for ComputePipeline<Pl> where
Pl: PipelineLayoutDesc,
[src]
impl<Pl> PipelineLayoutDesc for ComputePipeline<Pl> where
Pl: PipelineLayoutDesc,
[src]fn num_sets(&self) -> usize
[src]
fn num_sets(&self) -> usize
[src]Returns the number of sets in the layout. Includes possibly empty sets. Read more
fn num_bindings_in_set(&self, set: usize) -> Option<usize>
[src]
fn num_bindings_in_set(&self, set: usize) -> Option<usize>
[src]Returns the number of descriptors in the set. Includes possibly empty descriptors. Read more
fn descriptor(&self, set: usize, binding: usize) -> Option<DescriptorDesc>
[src]
fn descriptor(&self, set: usize, binding: usize) -> Option<DescriptorDesc>
[src]Returns the descriptor for the given binding of the given set. Read more
fn num_push_constants_ranges(&self) -> usize
[src]
fn num_push_constants_ranges(&self) -> usize
[src]Returns the number of push constant ranges of the layout.
fn push_constants_range(&self, num: usize) -> Option<PipelineLayoutDescPcRange>
[src]
fn push_constants_range(&self, num: usize) -> Option<PipelineLayoutDescPcRange>
[src]Returns a description of the given push constants range. Read more
fn provided_set_layout(
&self,
_set: usize
) -> Option<Arc<UnsafeDescriptorSetLayout>>
[src]
fn provided_set_layout(
&self,
_set: usize
) -> Option<Arc<UnsafeDescriptorSetLayout>>
[src]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> where
Self: Sized,
[src]
fn union<T>(self, other: T) -> PipelineLayoutDescUnion<Self, T> where
Self: Sized,
[src]Builds the union of this layout and another.
fn check_against_limits(
&self,
device: &Device
) -> Result<(), PipelineLayoutLimitsError>
[src]
fn check_against_limits(
&self,
device: &Device
) -> Result<(), PipelineLayoutLimitsError>
[src]Checks whether this description fulfills the device limits requirements.
fn build(
self,
device: Arc<Device>
) -> Result<PipelineLayout<Self>, PipelineLayoutCreationError> where
Self: Sized,
[src]
fn build(
self,
device: Arc<Device>
) -> Result<PipelineLayout<Self>, PipelineLayoutCreationError> where
Self: Sized,
[src]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> VulkanObject for ComputePipeline<Pl>
[src]const TYPE: ObjectType
[src]
const TYPE: ObjectType
[src]The ObjectType
of the internal Vulkan handle.
fn internal_object(&self) -> Pipeline
[src]
fn internal_object(&self) -> Pipeline
[src]Returns a reference to the object.
Auto Trait Implementations
impl<Pl> RefUnwindSafe for ComputePipeline<Pl> where
Pl: RefUnwindSafe,
Pl: RefUnwindSafe,
impl<Pl> Send for ComputePipeline<Pl> where
Pl: Send,
Pl: Send,
impl<Pl> Sync for ComputePipeline<Pl> where
Pl: Sync,
Pl: Sync,
impl<Pl> Unpin for ComputePipeline<Pl> where
Pl: Unpin,
Pl: Unpin,
impl<Pl> UnwindSafe for ComputePipeline<Pl> where
Pl: UnwindSafe,
Pl: UnwindSafe,
Blanket Implementations
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]pub fn borrow_mut(&mut self) -> &mut T
[src]
pub fn borrow_mut(&mut self) -> &mut T
[src]Mutably borrows from an owned value. Read more
impl<T> Content for T
[src]
impl<T> Content for T
[src]pub fn ref_from_ptr(*mut c_void, usize) -> Option<*mut T>
[src]
pub fn ref_from_ptr(*mut c_void, usize) -> Option<*mut T>
[src]Builds a pointer to this type from a raw pointer.
pub fn is_size_suitable(usize) -> bool
[src]
pub fn is_size_suitable(usize) -> bool
[src]Returns true if the size is suitable to store a type like this.
pub fn indiv_size() -> usize
[src]
pub fn indiv_size() -> usize
[src]Returns the size of an individual element.