Files
VulkanDriver/src/vulkan/error_set.zig
Kbz-8 ee49c86ebb
Some checks failed
Build / build (push) Successful in 8m27s
Test / build_and_test (push) Failing after 25m19s
adding secondary command buffers
2026-03-18 03:22:46 +01:00

121 lines
5.1 KiB
Zig

const std = @import("std");
const vk = @import("vulkan");
pub const VkError = error{
NotReady,
Timeout,
EventSet,
EventReset,
Incomplete,
OutOfHostMemory,
OutOfDeviceMemory,
InitializationFailed,
DeviceLost,
MemoryMapFailed,
LayerNotPresent,
ExtensionNotPresent,
FeatureNotPresent,
IncompatibleDriver,
TooManyObjects,
FormatNotSupported,
FragmentedPool,
Unknown,
ValidationFailed,
OutOfPoolMemory,
InvalidExternalHandle,
InvalidOpaqueCaptureAddress,
Fragmentation,
PipelineCompileRequired,
NotPermitted,
SurfaceLostKhr,
NativeWindowInUseKhr,
SuboptimalKhr,
OutOfDateKhr,
IncompatibleDisplayKhr,
InvalidShaderNv,
ImageUsageNotSupportedKhr,
VideoPictureLayoutNotSupportedKhr,
VideoProfileOperationNotSupportedKhr,
VideoProfileFormatNotSupportedKhr,
VideoProfileCodecNotSupportedKhr,
VideoStdVersionNotSupportedKhr,
InvalidDrmFormatModifierPlaneLayoutExt,
FullScreenExclusiveModeLostExt,
ThreadIdleKhr,
ThreadDoneKhr,
OperationDeferredKhr,
OperationNotDeferredKhr,
InvalidVideoStdParametersKhr,
CompressionExhaustedExt,
IncompatibleShaderBinaryExt,
PipelineBinaryMissingKhr,
NotEnoughSpaceKhr,
// == Set of internal errors for better debugging. They map to VK_UNKNOWN_ERROR
InvalidHandleDrv,
InvalidPipelineDrv,
InvalidDeviceMemoryDrv,
};
pub inline fn errorLogger(err: VkError) void {
std.log.scoped(.errorLogger).err("Error logger catched a '{s}'", .{@errorName(err)});
}
pub inline fn errorLoggerContext(err: VkError, context: []const u8) void {
std.log.scoped(.errorLogger).err("Error logger catched a '{s}' in {s}", .{ @errorName(err), context });
}
pub inline fn toVkResult(err: VkError) vk.Result {
errorLogger(err);
return switch (err) {
VkError.NotReady => .not_ready,
VkError.Timeout => .timeout,
VkError.EventSet => .event_set,
VkError.EventReset => .event_reset,
VkError.Incomplete => .incomplete,
VkError.OutOfHostMemory => .error_out_of_host_memory,
VkError.OutOfDeviceMemory => .error_out_of_device_memory,
VkError.InitializationFailed => .error_initialization_failed,
VkError.DeviceLost => .error_device_lost,
VkError.MemoryMapFailed => .error_memory_map_failed,
VkError.LayerNotPresent => .error_layer_not_present,
VkError.ExtensionNotPresent => .error_extension_not_present,
VkError.FeatureNotPresent => .error_feature_not_present,
VkError.IncompatibleDriver => .error_incompatible_driver,
VkError.TooManyObjects => .error_too_many_objects,
VkError.FormatNotSupported => .error_format_not_supported,
VkError.FragmentedPool => .error_fragmented_pool,
VkError.ValidationFailed => .error_validation_failed,
VkError.OutOfPoolMemory => .error_out_of_pool_memory,
VkError.InvalidExternalHandle => .error_invalid_external_handle,
VkError.InvalidOpaqueCaptureAddress => .error_invalid_opaque_capture_address,
VkError.Fragmentation => .error_fragmentation,
VkError.PipelineCompileRequired => .pipeline_compile_required,
VkError.NotPermitted => .error_not_permitted,
VkError.SurfaceLostKhr => .error_surface_lost_khr,
VkError.NativeWindowInUseKhr => .error_native_window_in_use_khr,
VkError.SuboptimalKhr => .suboptimal_khr,
VkError.OutOfDateKhr => .error_out_of_date_khr,
VkError.IncompatibleDisplayKhr => .error_incompatible_display_khr,
VkError.InvalidShaderNv => .error_invalid_shader_nv,
VkError.ImageUsageNotSupportedKhr => .error_image_usage_not_supported_khr,
VkError.VideoPictureLayoutNotSupportedKhr => .error_video_picture_layout_not_supported_khr,
VkError.VideoProfileOperationNotSupportedKhr => .error_video_profile_operation_not_supported_khr,
VkError.VideoProfileFormatNotSupportedKhr => .error_video_profile_format_not_supported_khr,
VkError.VideoProfileCodecNotSupportedKhr => .error_video_profile_codec_not_supported_khr,
VkError.VideoStdVersionNotSupportedKhr => .error_video_std_version_not_supported_khr,
VkError.InvalidDrmFormatModifierPlaneLayoutExt => .error_invalid_drm_format_modifier_plane_layout_ext,
VkError.FullScreenExclusiveModeLostExt => .error_full_screen_exclusive_mode_lost_ext,
VkError.ThreadIdleKhr => .thread_idle_khr,
VkError.ThreadDoneKhr => .thread_done_khr,
VkError.OperationDeferredKhr => .operation_deferred_khr,
VkError.OperationNotDeferredKhr => .operation_not_deferred_khr,
VkError.InvalidVideoStdParametersKhr => .error_invalid_video_std_parameters_khr,
VkError.CompressionExhaustedExt => .error_compression_exhausted_ext,
VkError.IncompatibleShaderBinaryExt => .incompatible_shader_binary_ext,
VkError.PipelineBinaryMissingKhr => .pipeline_binary_missing_khr,
VkError.NotEnoughSpaceKhr => .error_not_enough_space_khr,
VkError.InvalidHandleDrv => .error_validation_failed,
else => .error_unknown,
};
}