pub enum ImageError {
Show 44 variants VulkanError(VulkanError), AllocError(AllocationCreationError), RequirementNotMet { required_for: &'static str, requires_one_of: RequiresOneOf, }, AllocationsWrongNumberOfElements { provided: usize, required: usize, }, Array2dCompatibleNot3d, ArrayLayerOutOfRange { provided_array_layer: u32, image_array_layers: u32, }, AspectNotAllowed { provided_aspect: ImageAspect, allowed_aspects: ImageAspects, }, BlockTexelViewCompatibleNotCompressed, CubeCompatibleNot2d, CubeCompatibleNotEnoughArrayLayers, CubeCompatibleNotSquare, CubeCompatibleMultisampling, DedicatedAllocationMismatch, DedicatedAllocationRequired, DepthStencilFormatsNotSupported, DisjointFormatNotSupported, ExternalMemoryInvalidInitialLayout, FormatNotSupported, FormatUsageNotSupported { usage: &'static str, }, ImageFormatPropertiesNotSupported, MaxArrayLayersExceeded { array_layers: u32, max: u32, }, MaxDimensionsExceeded { extent: [u32; 3], max: [u32; 3], }, MaxFramebufferDimensionsExceeded { extent: [u32; 2], max: [u32; 2], }, MaxMipLevelsExceeded { mip_levels: u32, max: u32, }, MemoryAllocationNotAligned { allocations_index: usize, allocation_offset: DeviceSize, required_alignment: DeviceSize, }, MemoryAllocationTooSmall { allocations_index: usize, allocation_size: DeviceSize, required_size: DeviceSize, }, MemoryExternalHandleTypesDisjoint { allocations_index: usize, image_handle_types: ExternalMemoryHandleTypes, memory_export_handle_types: ExternalMemoryHandleTypes, }, MemoryImportedHandleTypeNotEnabled { allocations_index: usize, image_handle_types: ExternalMemoryHandleTypes, memory_imported_handle_type: ExternalMemoryHandleType, }, MemoryProtectedMismatch { allocations_index: usize, image_protected: bool, memory_protected: bool, }, MemoryTypeNotAllowed { allocations_index: usize, provided_memory_type_index: u32, allowed_memory_type_bits: u32, }, MipLevelOutOfRange { provided_mip_level: u32, image_mip_levels: u32, }, MultisampleCubeCompatible, MultisampleLinearTiling, MultisampleMultipleMipLevels, MultisampleNot2d, OptimalTilingNotSupported, SampleCountNotSupported { samples: SampleCount, supported: SampleCounts, }, SharingQueueFamilyIndexOutOfRange { queue_family_index: u32, queue_family_count: u32, }, StencilUsageMismatch { usage: ImageUsage, stencil_usage: ImageUsage, }, YcbcrFormatInvalidDimensions, YcbcrFormatMultipleMipLevels, YcbcrFormatMultisampling, YcbcrFormatNot2d, DirectImageViewCreationFailed(ImageViewCreationError),
}
Expand description

Error that can happen in image functions.

Variants

VulkanError(VulkanError)

AllocError(AllocationCreationError)

Allocating memory failed.

RequirementNotMet

Fields

required_for: &'static str
requires_one_of: RequiresOneOf

AllocationsWrongNumberOfElements

Fields

provided: usize
required: usize

The provided number of elements in allocations is not what is required for image.

Array2dCompatibleNot3d

The array_2d_compatible flag was enabled, but the image type was not 3D.

ArrayLayerOutOfRange

Fields

provided_array_layer: u32
image_array_layers: u32

The provided array layer is not less than the number of array layers in the image.

AspectNotAllowed

Fields

provided_aspect: ImageAspect
allowed_aspects: ImageAspects

The provided aspect is not present in the image, or is not allowed.

BlockTexelViewCompatibleNotCompressed

The block_texel_view_compatible flag was enabled, but the given format was not compressed.

CubeCompatibleNot2d

The cube_compatible flag was enabled, but the image type was not 2D.

CubeCompatibleNotEnoughArrayLayers

The cube_compatible flag was enabled, but the number of array layers was less than 6.

CubeCompatibleNotSquare

The cube_compatible flag was enabled, but the image dimensions were not square.

CubeCompatibleMultisampling

The cube_compatible flag was enabled together with multisampling.

DedicatedAllocationMismatch

The memory was created dedicated to a resource, but not to this image.

DedicatedAllocationRequired

A dedicated allocation is required for this image, but one was not provided.

DepthStencilFormatsNotSupported

The image has a format with both a depth and a stencil aspect, which is not supported for this operation.

DisjointFormatNotSupported

The disjoint flag was enabled, but the given format is either not multi-planar, or does not support disjoint images.

ExternalMemoryInvalidInitialLayout

One or more external memory handle types were provided, but the initial layout was not Undefined.

FormatNotSupported

The given format was not supported by the device.

FormatUsageNotSupported

Fields

usage: &'static str

A requested usage flag was not supported by the given format.

ImageFormatPropertiesNotSupported

The image configuration as queried through the image_format_properties function was not supported by the device.

MaxArrayLayersExceeded

Fields

array_layers: u32
max: u32

The number of array layers exceeds the maximum supported by the device for this image configuration.

MaxDimensionsExceeded

Fields

extent: [u32; 3]
max: [u32; 3]

The specified dimensions exceed the maximum supported by the device for this image configuration.

MaxFramebufferDimensionsExceeded

Fields

extent: [u32; 2]
max: [u32; 2]

The usage included one of the attachment types, and the specified width and height exceeded the max_framebuffer_width or max_framebuffer_height limits.

MaxMipLevelsExceeded

Fields

mip_levels: u32
max: u32

The maximum number of mip levels for the given dimensions has been exceeded.

MemoryAllocationNotAligned

Fields

allocations_index: usize
allocation_offset: DeviceSize
required_alignment: DeviceSize

In an allocations element, the offset of the allocation does not have the required alignment.

MemoryAllocationTooSmall

Fields

allocations_index: usize
allocation_size: DeviceSize
required_size: DeviceSize

In an allocations element, the size of the allocation is smaller than what is required.

MemoryExternalHandleTypesDisjoint

Fields

allocations_index: usize
image_handle_types: ExternalMemoryHandleTypes
memory_export_handle_types: ExternalMemoryHandleTypes

In an allocations element, the memory was created with export handle types, but none of these handle types were enabled on the image.

MemoryImportedHandleTypeNotEnabled

Fields

allocations_index: usize
image_handle_types: ExternalMemoryHandleTypes
memory_imported_handle_type: ExternalMemoryHandleType

In an allocations element, the memory was created with an import, but the import’s handle type was not enabled on the image.

MemoryProtectedMismatch

Fields

allocations_index: usize
image_protected: bool
memory_protected: bool

In an allocations element, the protection of image and memory are not equal.

MemoryTypeNotAllowed

Fields

allocations_index: usize
provided_memory_type_index: u32
allowed_memory_type_bits: u32

In an allocations element, the provided memory type is not one of the allowed memory types that can be bound to this image or image plane.

MipLevelOutOfRange

Fields

provided_mip_level: u32
image_mip_levels: u32

The provided mip level is not less than the number of mip levels in the image.

MultisampleCubeCompatible

Multisampling was enabled, and the cube_compatible flag was set.

MultisampleLinearTiling

Multisampling was enabled, and tiling was Linear.

MultisampleMultipleMipLevels

Multisampling was enabled, and multiple mip levels were specified.

MultisampleNot2d

Multisampling was enabled, but the image type was not 2D.

OptimalTilingNotSupported

The image has optimal tiling, which is not supported for this operation.

SampleCountNotSupported

Fields

samples: SampleCount
supported: SampleCounts

The sample count is not supported by the device for this image configuration.

SharingQueueFamilyIndexOutOfRange

Fields

queue_family_index: u32
queue_family_count: u32

The sharing mode was set to Concurrent, but one of the specified queue family indices was out of range.

StencilUsageMismatch

Fields

usage: ImageUsage
stencil_usage: ImageUsage

The provided usage and stencil_usage have different values for depth_stencil_attachment or transient_attachment.

YcbcrFormatInvalidDimensions

A YCbCr format was given, but the specified width and/or height was not a multiple of 2 as required by the format’s chroma subsampling.

YcbcrFormatMultipleMipLevels

A YCbCr format was given, and multiple mip levels were specified.

YcbcrFormatMultisampling

A YCbCr format was given, and multisampling was enabled.

YcbcrFormatNot2d

A YCbCr format was given, but the image type was not 2D.

DirectImageViewCreationFailed(ImageViewCreationError)

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.
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.