vulkan-2.1.0.0: Bindings to the Vulkan graphics API.

Safe HaskellNone
LanguageHaskell2010

Graphics.Vulkan.Extensions.VK_EXT_debug_report

Synopsis

Documentation

newtype VkDebugReportObjectTypeEXT Source #

VkDebugReportObjectTypeEXT - Specify the type of an object handle

Description

'

VkDebugReportObjectTypeEXT Vulkan Handle Type
VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT Unknown/Undefined Handle
VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT VkInstance
VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT VkPhysicalDevice
VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT VkDevice
VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT VkQueue
VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT VkSemaphore
VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT VkCommandBuffer
VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT VkFence
VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT VkDeviceMemory
VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT VkBuffer
VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT VkImage
VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT VkEvent
VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT VkQueryPool
VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT VkBufferView
VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT VkImageView
VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT VkShaderModule
VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT VkPipelineCache
VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT VkPipelineLayout
VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT VkRenderPass
VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT VkPipeline
VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT VkDescriptorSetLayout
VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT VkSampler
VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT VkDescriptorPool
VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT VkDescriptorSet
VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT VkFramebuffer
VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT VkCommandPool
VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT VkSurfaceKHR
VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT VkSwapchainKHR
VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT VkDebugReportCallbackEXT
VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT VkDisplayKHR
VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT VkDisplayModeKHR
VK_DEBUG_REPORT_OBJECT_TYPE_OBJECT_TABLE_NVX_EXT VkObjectTableNVX
VK_DEBUG_REPORT_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX_EXT VkIndirectCommandsLayoutNVX
VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR_EXT VkDescriptorUpdateTemplate

VkDebugReportObjectTypeEXT and Vulkan Handle Relationship

Note

The primary expected use of VK_ERROR_VALIDATION_FAILED_EXT is for validation layer testing. It is not expected that an application would see this error code during normal use of the validation layers.

See Also

VkDebugMarkerObjectNameInfoEXT, VkDebugMarkerObjectTagInfoEXT, vkDebugReportMessageEXT

Instances
Eq VkDebugReportObjectTypeEXT Source # 
Instance details
Ord VkDebugReportObjectTypeEXT Source # 
Instance details
Read VkDebugReportObjectTypeEXT Source # 
Instance details
Show VkDebugReportObjectTypeEXT Source # 
Instance details
Storable VkDebugReportObjectTypeEXT Source # 
Instance details

newtype VkDebugReportFlagBitsEXT Source #

VkDebugReportFlagBitsEXT - Bitmask specifying events which cause a debug report callback

See Also

VkDebugReportFlagsEXT

Instances
Eq VkDebugReportFlagBitsEXT Source # 
Instance details
Ord VkDebugReportFlagBitsEXT Source # 
Instance details
Read VkDebugReportFlagBitsEXT Source # 
Instance details
Show VkDebugReportFlagBitsEXT Source # 
Instance details
Storable VkDebugReportFlagBitsEXT Source # 
Instance details
Bits VkDebugReportFlagBitsEXT Source # 
Instance details
FiniteBits VkDebugReportFlagBitsEXT Source # 
Instance details

pattern VK_DEBUG_REPORT_INFORMATION_BIT_EXT :: VkDebugReportFlagBitsEXT Source #

VK_DEBUG_REPORT_INFORMATION_BIT_EXT specifies an informational message such as resource details that may be handy when debugging an application.

pattern VK_DEBUG_REPORT_WARNING_BIT_EXT :: VkDebugReportFlagBitsEXT Source #

VK_DEBUG_REPORT_WARNING_BIT_EXT specifies use of Vulkan that may expose an app bug. Such cases may not be immediately harmful, such as a fragment shader outputting to a location with no attachment. Other cases may point to behavior that is almost certainly bad when unintended such as using an image whose memory has not been filled. In general if you see a warning but you know that the behavior is intended/desired, then simply ignore the warning.

pattern VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT :: VkDebugReportFlagBitsEXT Source #

VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT specifies a potentially non-optimal use of Vulkan, e.g. using vkCmdClearColorImage when setting VkAttachmentDescription::loadOp to VK_ATTACHMENT_LOAD_OP_CLEAR would have worked.

pattern VK_DEBUG_REPORT_ERROR_BIT_EXT :: VkDebugReportFlagBitsEXT Source #

VK_DEBUG_REPORT_ERROR_BIT_EXT specifies that an error that may cause undefined results, including an application crash.

pattern VK_DEBUG_REPORT_DEBUG_BIT_EXT :: VkDebugReportFlagBitsEXT Source #

VK_DEBUG_REPORT_DEBUG_BIT_EXT specifies diagnostic information from the implementation and layers.

type PFN_vkDebugReportCallbackEXT = Ptr (("flags" ::: VkDebugReportFlagsEXT) -> ("objectType" ::: VkDebugReportObjectTypeEXT) -> ("object" ::: Word64) -> ("location" ::: CSize) -> ("messageCode" ::: Int32) -> ("pLayerPrefix" ::: Ptr CChar) -> ("pMessage" ::: Ptr CChar) -> ("pUserData" ::: Ptr ()) -> IO VkBool32) Source #

PFN_vkDebugReportCallbackEXT - Application-defined debug report callback function

Parameters

  • objectType is a VkDebugReportObjectTypeEXT value specifying the type of object being used or created at the time the event was triggered.
  • object is the object where the issue was detected. If objectType is VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT, object is undefined.
  • location is a component (layer, driver, loader) defined value that specifies the location of the trigger. This is an optional value.
  • messageCode is a layer-defined value indicating what test triggered this callback.
  • pLayerPrefix is a null-terminated string that is an abbreviation of the name of the component making the callback. pLayerPrefix is only valid for the duration of the callback.
  • pMessage is a null-terminated string detailing the trigger conditions. pMessage is only valid for the duration of the callback.
  • pUserData is the user data given when the VkDebugReportCallbackEXT was created.

Description

The callback must not call vkDestroyDebugReportCallbackEXT.

The callback returns a VkBool32, which is interpreted in a layer-specified manner. The application should always return VK_FALSE. The VK_TRUE value is reserved for use in layer development.

object must be a Vulkan object or VK_NULL_HANDLE. If objectType is not VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT and object is not VK_NULL_HANDLE, object must be a Vulkan object of the corresponding type associated with objectType as defined in {html_spec_relative}#debug-report-object-types.

See Also

VkDebugReportCallbackCreateInfoEXT

type VkDebugReportCallbackEXT = Ptr VkDebugReportCallbackEXT_T Source #

VkDebugReportCallbackEXT - Opaque handle to a debug report callback object

See Also

vkCreateDebugReportCallbackEXT, vkDestroyDebugReportCallbackEXT

vkCreateDebugReportCallbackEXT :: ("instance" ::: VkInstance) -> ("pCreateInfo" ::: Ptr VkDebugReportCallbackCreateInfoEXT) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> ("pCallback" ::: Ptr VkDebugReportCallbackEXT) -> IO VkResult Source #

vkCreateDebugReportCallbackEXT - Create a debug report callback object

Parameters

  • instance the instance the callback will be logged on.
  • pCreateInfo points to a VkDebugReportCallbackCreateInfoEXT structure which defines the conditions under which this callback will be called.
  • pAllocator controls host memory allocation as described in the Memory Allocation chapter.
  • pCallback is a pointer to record the VkDebugReportCallbackEXT object created.

Valid Usage (Implicit)

  • instance must be a valid VkInstance handle
  • pCreateInfo must be a valid pointer to a valid VkDebugReportCallbackCreateInfoEXT structure
  • If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
  • pCallback must be a valid pointer to a VkDebugReportCallbackEXT handle

Return Codes

[Success] - VK_SUCCESS

[Failure] - VK_ERROR_OUT_OF_HOST_MEMORY

See Also

VkAllocationCallbacks, VkDebugReportCallbackCreateInfoEXT, VkDebugReportCallbackEXT, VkInstance

vkDestroyDebugReportCallbackEXT :: ("instance" ::: VkInstance) -> ("callback" ::: VkDebugReportCallbackEXT) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> IO () Source #

vkDestroyDebugReportCallbackEXT - Destroy a debug report callback object

Parameters

  • instance the instance where the callback was created.
  • callback the VkDebugReportCallbackEXT object to destroy. callback is an externally synchronized object and must not be used on more than one thread at a time. This means that vkDestroyDebugReportCallbackEXT must not be called when a callback is active.
  • pAllocator controls host memory allocation as described in the Memory Allocation chapter.

Valid Usage

  • If VkAllocationCallbacks were provided when callback was created, a compatible set of callbacks must be provided here
  • If no VkAllocationCallbacks were provided when callback was created, pAllocator must be NULL

Valid Usage (Implicit)

  • instance must be a valid VkInstance handle
  • callback must be a valid VkDebugReportCallbackEXT handle
  • If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
  • callback must have been created, allocated, or retrieved from instance

Host Synchronization

  • Host access to callback must be externally synchronized

See Also

VkAllocationCallbacks, VkDebugReportCallbackEXT, VkInstance

vkDebugReportMessageEXT :: ("instance" ::: VkInstance) -> ("flags" ::: VkDebugReportFlagsEXT) -> ("objectType" ::: VkDebugReportObjectTypeEXT) -> ("object" ::: Word64) -> ("location" ::: CSize) -> ("messageCode" ::: Int32) -> ("pLayerPrefix" ::: Ptr CChar) -> ("pMessage" ::: Ptr CChar) -> IO () Source #

vkDebugReportMessageEXT - Inject a message into a debug stream

Parameters

  • instance is the debug stream’s VkInstance.
  • flags specifies the VkDebugReportFlagBitsEXT classification of this event/message.
  • objectType is a VkDebugReportObjectTypeEXT specifying the type of object being used or created at the time the event was triggered.
  • object this is the object where the issue was detected. object can be VK_NULL_HANDLE if there is no object associated with the event.
  • location is an application defined value.
  • messageCode is an application defined value.
  • pLayerPrefix is the abbreviation of the component making this event/message.
  • pMessage is a null-terminated string detailing the trigger conditions.

Description

The call will propagate through the layers and generate callback(s) as indicated by the message’s flags. The parameters are passed on to the callback in addition to the pUserData value that was defined at the time the callback was registered.

Valid Usage

  • object must be a Vulkan object or VK_NULL_HANDLE
  • If objectType is not VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT and object is not VK_NULL_HANDLE, object must be a Vulkan object of the corresponding type associated with objectType as defined in {html_spec_relative}#debug-report-object-types.

Valid Usage (Implicit)

  • instance must be a valid VkInstance handle

See Also

VkDebugReportFlagsEXT, VkDebugReportObjectTypeEXT, VkInstance

data VkDebugReportCallbackCreateInfoEXT Source #

VkDebugReportCallbackCreateInfoEXT - Structure specifying parameters of a newly created debug report callback

Description

For each VkDebugReportCallbackEXT that is created the VkDebugReportCallbackCreateInfoEXT::flags determine when that VkDebugReportCallbackCreateInfoEXT::pfnCallback is called. When an event happens, the implementation will do a bitwise AND of the event’s VkDebugReportFlagBitsEXT flags to each VkDebugReportCallbackEXT object’s flags. For each non-zero result the corresponding callback will be called. The callback will come directly from the component that detected the event, unless some other layer intercepts the calls for its own purposes (filter them in a different way, log to a system error log, etc.).

An application may receive multiple callbacks if multiple VkDebugReportCallbackEXT objects were created. A callback will always be executed in the same thread as the originating Vulkan call.

A callback may be called from multiple threads simultaneously (if the application is making Vulkan calls from multiple threads).

Valid Usage

Valid Usage (Implicit)

  • sType must be VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT

See Also

PFN_vkDebugReportCallbackEXT, VkDebugReportFlagsEXT, VkStructureType, vkCreateDebugReportCallbackEXT

Constructors

VkDebugReportCallbackCreateInfoEXT 

Fields

type VkDebugReportFlagsEXT = VkDebugReportFlagBitsEXT Source #

VkDebugReportFlagsEXT - Bitmask of VkDebugReportFlagBitsEXT

Description

VkDebugReportFlagsEXT is a bitmask type for setting a mask of zero or more VkDebugReportFlagBitsEXT.

See Also

VkDebugReportCallbackCreateInfoEXT, VkDebugReportFlagBitsEXT, vkDebugReportMessageEXT