pub enum GraphicsPipelineCreationError {
Show 39 variants RequirementNotMet { required_for: &'static str, requires_one_of: RequiresOneOf, }, ColorAttachmentFormatBlendNotSupported { attachment_index: u32, }, ColorAttachmentFormatUsageNotSupported { attachment_index: u32, }, DepthAttachmentFormatUsageNotSupported, DepthStencilAttachmentFormatMismatch, FragmentShaderRenderPassIncompatible, IncompatiblePipelineLayout(PipelineLayoutSupersetError), IncompatibleSpecializationConstants, IncompatibleVertexDefinition(IncompatibleVertexDefinitionError), InvalidPrimitiveTopology, InvalidNumPatchControlPoints, MaxDiscardRectanglesExceeded { max: u32, obtained: u32, }, MaxMultiviewViewCountExceeded { view_count: u32, max: 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, }, MinVertexInputBindingStrideAlignmentExceeded { binding: u32, max: u32, obtained: u32, }, MaxViewportDimensionsExceeded, MismatchBlendingAttachmentsCount, MultisampleRasterizationSamplesMismatch, NoDepthAttachment, NoStencilAttachment, OomError(OomError), DescriptorSetLayoutCreationError(DescriptorSetLayoutCreationError), PipelineLayoutCreationError(PipelineLayoutCreationError), ShaderStagesMismatch(ShaderInterfaceMismatchError), StencilAttachmentFormatUsageNotSupported, 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

RequirementNotMet

Fields

required_for: &'static str
requires_one_of: RequiresOneOf

ColorAttachmentFormatBlendNotSupported

Fields

attachment_index: u32

A color attachment has a format that does not support blending.

ColorAttachmentFormatUsageNotSupported

Fields

attachment_index: u32

A color attachment has a format that does not support that usage.

DepthAttachmentFormatUsageNotSupported

The depth attachment has a format that does not support that usage.

DepthStencilAttachmentFormatMismatch

The depth and stencil attachments have different formats.

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.

MaxMultiviewViewCountExceeded

Fields

view_count: u32
max: u32

The max_multiview_view_count limit 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.

MinVertexInputBindingStrideAlignmentExceeded

Fields

binding: u32

Index of the faulty binding.

max: u32

Maximum allowed value.

obtained: u32

Value that was passed.

The min_vertex_input_binding_stride_alignment limit was 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.

MultisampleRasterizationSamplesMismatch

The provided rasterization_samples does not match the number of samples of the render 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.

StencilAttachmentFormatUsageNotSupported

The stencil attachment has a format that does not support that usage.

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
👎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
🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more
Converts to this type from the input type.
Converts to this type from the input type.
Converts to this type from the input type.
Converts to this type from the input type.
Converts to this type from the input type.
Converts to this type from the input type.
This method tests for self and other values to be equal, and is used by ==. Read more
This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason. Read more

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.

🔬This is a nightly-only experimental API. (provide_any)
Data providers should implement this method to provide all values they are able to provide by using demand. Read more
The resulting type after obtaining ownership.
Creates owned data from borrowed data, usually by cloning. Read more
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.