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]

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]

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]

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]

fn inner(&self) -> ComputePipelineSys<'_>[src]

Returns an opaque object that represents the inside of the compute pipeline.

impl<Pl> Debug for ComputePipeline<Pl>[src]

fn fmt(&self, fmt: &mut Formatter<'_>) -> Result<(), Error>[src]

Formats the value using the given formatter. Read more

impl<Pl> DeviceOwned for ComputePipeline<Pl>[src]

fn device(&self) -> &Arc<Device>[src]

Returns the device that owns Self.

impl<Pl> PipelineLayoutAbstract for ComputePipeline<Pl> where
    Pl: PipelineLayoutAbstract
[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]

Returns the UnsafeDescriptorSetLayout object of the specified set index. Read more

impl<Pl> PipelineLayoutDesc for ComputePipeline<Pl> where
    Pl: PipelineLayoutDesc
[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]

Returns the number of descriptors in the set. Includes possibly empty descriptors. Read more

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]

Returns the number of push constant ranges of the layout.

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]

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]

Builds the union of this layout and another.

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]

Turns the layout description into a PipelineLayout object that can be used by Vulkan. Read more

impl<Pl> VulkanObject for ComputePipeline<Pl>[src]

type Object = Pipeline

The type of the object.

const TYPE: ObjectType[src]

The ObjectType of the internal Vulkan handle.

fn internal_object(&self) -> Pipeline[src]

Returns a reference to the object.

Auto Trait Implementations

impl<Pl> RefUnwindSafe for ComputePipeline<Pl> where
    Pl: RefUnwindSafe

impl<Pl> Send for ComputePipeline<Pl> where
    Pl: Send

impl<Pl> Sync for ComputePipeline<Pl> where
    Pl: Sync

impl<Pl> Unpin for ComputePipeline<Pl> where
    Pl: Unpin

impl<Pl> UnwindSafe for ComputePipeline<Pl> where
    Pl: UnwindSafe

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

pub fn type_id(&self) -> TypeId[src]

Gets the TypeId of self. Read more

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

pub fn borrow(&self) -> &T[src]

Immutably borrows from an owned value. Read more

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

pub fn borrow_mut(&mut self) -> &mut T[src]

Mutably borrows from an owned value. Read more

impl<T> Content for 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]

Returns true if the size is suitable to store a type like this.

pub fn indiv_size() -> usize[src]

Returns the size of an individual element.

impl<T> From<T> for T[src]

pub fn from(t: T) -> T[src]

Performs the conversion.

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

pub fn into(self) -> U[src]

Performs the conversion.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

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]

Performs the conversion.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>[src]

Performs the conversion.