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.
Methods
impl ComputePipeline<()>
[src]
impl ComputePipeline<()>
pub fn new<Cs>(
device: Arc<Device>,
shader: &Cs,
specialization: &Cs::SpecializationConstants
) -> 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
) -> Result<ComputePipeline<PipelineLayout<Cs::PipelineLayout>>, ComputePipelineCreationError> where
Cs::PipelineLayout: Clone,
Cs: EntryPointAbstract,
Builds a new ComputePipeline
.
impl<Pl> ComputePipeline<Pl>
[src]
impl<Pl> ComputePipeline<Pl>
pub fn with_pipeline_layout<Cs>(
device: Arc<Device>,
shader: &Cs,
specialization: &Cs::SpecializationConstants,
pipeline_layout: Pl
) -> 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
) -> 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
) -> 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
) -> 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]
impl<Pl> ComputePipeline<Pl>
pub fn device(&self) -> &Arc<Device>
[src]
pub fn device(&self) -> &Arc<Device>
Returns the Device
this compute pipeline was created with.
pub fn layout(&self) -> &Pl
[src]
pub fn layout(&self) -> &Pl
Returns the pipeline layout used in this compute pipeline.
Trait Implementations
impl<Pl> Debug for ComputePipeline<Pl>
[src]
impl<Pl> Debug for ComputePipeline<Pl>
fn fmt(&self, fmt: &mut Formatter) -> Result<(), Error>
[src]
fn fmt(&self, fmt: &mut Formatter) -> Result<(), Error>
Formats the value using the given formatter. Read more
impl<Pl> ComputePipelineAbstract for ComputePipeline<Pl> where
Pl: PipelineLayoutAbstract,
[src]
impl<Pl> ComputePipelineAbstract for ComputePipeline<Pl> where
Pl: PipelineLayoutAbstract,
fn inner(&self) -> ComputePipelineSys
[src]
fn inner(&self) -> ComputePipelineSys
Returns an opaque object that represents the inside of the compute pipeline.
impl<Pl> PipelineLayoutAbstract for ComputePipeline<Pl> where
Pl: PipelineLayoutAbstract,
[src]
impl<Pl> PipelineLayoutAbstract for ComputePipeline<Pl> where
Pl: PipelineLayoutAbstract,
fn sys(&self) -> PipelineLayoutSys
[src]
fn sys(&self) -> PipelineLayoutSys
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>>
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,
fn num_sets(&self) -> usize
[src]
fn num_sets(&self) -> usize
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>
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>
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
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>
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>>
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,
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>
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,
Turns the layout description into a PipelineLayout
object that can be used by Vulkan. Read more
impl<Pl> DeviceOwned for ComputePipeline<Pl>
[src]
impl<Pl> DeviceOwned for ComputePipeline<Pl>
impl<Pl> VulkanObject for ComputePipeline<Pl>
[src]
impl<Pl> VulkanObject for ComputePipeline<Pl>
type Object = Pipeline
The type of the object.
const TYPE: DebugReportObjectTypeEXT
TYPE: DebugReportObjectTypeEXT = vk::DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT
The DebugReportObjectTypeEXT
of the internal Vulkan handle.
fn internal_object(&self) -> Pipeline
[src]
fn internal_object(&self) -> Pipeline
Returns a reference to the object.
Auto Trait Implementations
impl<Pl> Send for ComputePipeline<Pl> where
Pl: Send,
impl<Pl> Send for ComputePipeline<Pl> where
Pl: Send,
impl<Pl> Sync for ComputePipeline<Pl> where
Pl: Sync,
impl<Pl> Sync for ComputePipeline<Pl> where
Pl: Sync,