121 lines
5.1 KiB
Zig
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,
|
|
};
|
|
}
|