logo
pub enum GraphicsPipelineCreationError {
Show 32 variants ExtensionNotEnabled { extension: &'static str, reason: &'static str, }, FeatureNotEnabled { feature: &'static str, reason: &'static str, }, FragmentShaderRenderPassIncompatible, IncompatiblePipelineLayout(PipelineLayoutSupersetError), IncompatibleSpecializationConstants, IncompatibleVertexDefinition(IncompatibleVertexDefinitionError), InvalidPrimitiveTopology, InvalidNumPatchControlPoints, MaxDiscardRectanglesExceeded { max: u32, obtained: u32, }, MaxVertexAttribDivisorExceeded { binding: u32, max: u32, obtained: u32, }, MaxVertexInputAttributesExceeded { max: u32, obtained: usize, }, MaxVertexInputAttributeOffsetExceeded { max: u32, obtained: u32, }, MaxVertexInputBindingsExceeded { max: u32, obtained: u32, }, MaxVertexInputBindingStrideExceeded { binding: u32, max: u32, obtained: u32, }, MaxViewportsExceeded { max: u32, obtained: u32, }, MaxViewportDimensionsExceeded, MismatchBlendingAttachmentsCount, NoDepthAttachment, NoStencilAttachment, OomError(OomError), DescriptorSetLayoutCreationError(DescriptorSetLayoutCreationError), PipelineLayoutCreationError(PipelineLayoutCreationError), ShaderStagesMismatch(ShaderInterfaceMismatchError), StrictLinesNotSupported, TopologyNotMatchingGeometryShader, VertexInputAttributeIncompatibleFormat { location: u32, shader_type: NumericType, attribute_type: NumericType, }, VertexInputAttributeInvalidBinding { location: u32, binding: u32, }, VertexInputAttributeMissing { location: u32, }, VertexInputAttributeUnsupportedFormat { location: u32, format: Format, }, ViewportBoundsExceeded, WrongShaderType, WrongStencilState,
}
Expand description

Error that can happen when creating a graphics pipeline.

Variants

ExtensionNotEnabled

Fields

extension: &'static str
reason: &'static str

A device extension that was required for a particular setting on the graphics pipeline was not enabled.

FeatureNotEnabled

Fields

feature: &'static str
reason: &'static str

A device feature that was required for a particular setting on the graphics pipeline was not enabled.

FragmentShaderRenderPassIncompatible

The output of the fragment shader is not compatible with what the render pass subpass expects.

IncompatiblePipelineLayout(PipelineLayoutSupersetError)

The pipeline layout is not compatible with what the shaders expect.

IncompatibleSpecializationConstants

The provided specialization constants are not compatible with what the shader expects.

IncompatibleVertexDefinition(IncompatibleVertexDefinitionError)

The vertex definition is not compatible with the input of the vertex shader.

InvalidPrimitiveTopology

Tried to use a patch list without a tessellation shader, or a non-patch-list with a tessellation shader.

InvalidNumPatchControlPoints

patch_control_points was not greater than 0 and less than or equal to the max_tessellation_patch_size limit.

MaxDiscardRectanglesExceeded

Fields

max: u32

Maximum allowed value.

obtained: u32

Value that was passed.

The maximum number of discard rectangles has been exceeded.

MaxVertexAttribDivisorExceeded

Fields

binding: u32

Index of the faulty binding.

max: u32

Maximum allowed value.

obtained: u32

Value that was passed.

The maximum value for the instance rate divisor has been exceeded.

MaxVertexInputAttributesExceeded

Fields

max: u32

Maximum allowed value.

obtained: usize

Value that was passed.

The maximum number of vertex attributes has been exceeded.

MaxVertexInputAttributeOffsetExceeded

Fields

max: u32

Maximum allowed value.

obtained: u32

Value that was passed.

The maximum offset for a vertex attribute has been exceeded. This means that your vertex struct is too large.

MaxVertexInputBindingsExceeded

Fields

max: u32

Maximum allowed value.

obtained: u32

Value that was passed.

The maximum number of vertex sources has been exceeded.

MaxVertexInputBindingStrideExceeded

Fields

binding: u32

Index of the faulty binding.

max: u32

Maximum allowed value.

obtained: u32

Value that was passed.

The maximum stride value for vertex input (ie. the distance between two vertex elements) has been exceeded.

MaxViewportsExceeded

Fields

max: u32

Maximum allowed value.

obtained: u32

Value that was passed.

The maximum number of viewports has been exceeded.

MaxViewportDimensionsExceeded

The maximum dimensions of viewports has been exceeded.

MismatchBlendingAttachmentsCount

The number of attachments specified in the blending does not match the number of attachments in the subpass.

NoDepthAttachment

The depth test requires a depth attachment but render pass has no depth attachment, or depth writing is enabled and the depth attachment is read-only.

NoStencilAttachment

The stencil test requires a stencil attachment but render pass has no stencil attachment, or stencil writing is enabled and the stencil attachment is read-only.

OomError(OomError)

Not enough memory.

DescriptorSetLayoutCreationError(DescriptorSetLayoutCreationError)

Error while creating a descriptor set layout object.

PipelineLayoutCreationError(PipelineLayoutCreationError)

Error while creating the pipeline layout object.

ShaderStagesMismatch(ShaderInterfaceMismatchError)

The output interface of one shader and the input interface of the next shader do not match.

StrictLinesNotSupported

The strict_lines device property was false.

TopologyNotMatchingGeometryShader

The primitives topology does not match what the geometry shader expects.

VertexInputAttributeIncompatibleFormat

Fields

location: u32
shader_type: NumericType
attribute_type: NumericType

The type of the shader input variable at the given location is not compatible with the format of the corresponding vertex input attribute.

VertexInputAttributeInvalidBinding

Fields

location: u32
binding: u32

The binding number specified by a vertex input attribute does not exist in the provided list of binding descriptions.

VertexInputAttributeMissing

Fields

location: u32

The vertex shader expects an input variable at the given location, but no vertex input attribute exists for that location.

VertexInputAttributeUnsupportedFormat

Fields

location: u32
format: Format

The format specified by a vertex input attribute is not supported for vertex buffers.

ViewportBoundsExceeded

The minimum or maximum bounds of viewports have been exceeded.

WrongShaderType

The wrong type of shader has been passed.

For example you passed a vertex shader as the fragment shader.

WrongStencilState

The requested stencil test is invalid.

Trait Implementations

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

Formats the value using the given formatter. Read more

Formats the value using the given formatter. Read more

The lower-level source of this error, if any. Read more

🔬 This is a nightly-only experimental API. (backtrace)

Returns a stack backtrace, if available, of where this error occurred. Read more

👎 Deprecated since 1.42.0:

use the Display impl or to_string()

👎 Deprecated since 1.33.0:

replaced by Error::source, which can support downcasting

Performs the conversion.

Performs the conversion.

Performs the conversion.

Performs the conversion.

Performs the conversion.

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

The resulting type after obtaining ownership.

Creates owned data from borrowed data, usually by cloning. Read more

🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

Converts the given value to a String. Read more

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.