vulkan-2.1.0.0: Bindings to the Vulkan graphics API.

Safe HaskellNone
LanguageHaskell2010

Graphics.Vulkan.Extensions.VK_EXT_debug_utils

Synopsis

Documentation

newtype VkDebugUtilsMessageSeverityFlagBitsEXT Source #

VkDebugUtilsMessageSeverityFlagBitsEXT - Bitmask specifying which severities of events cause a debug messenger callback

See Also

VkDebugUtilsMessageSeverityFlagsEXT, vkSubmitDebugUtilsMessageEXT

Instances
Eq VkDebugUtilsMessageSeverityFlagBitsEXT Source # 
Instance details
Ord VkDebugUtilsMessageSeverityFlagBitsEXT Source # 
Instance details
Read VkDebugUtilsMessageSeverityFlagBitsEXT Source # 
Instance details
Show VkDebugUtilsMessageSeverityFlagBitsEXT Source # 
Instance details
Storable VkDebugUtilsMessageSeverityFlagBitsEXT Source # 
Instance details
Bits VkDebugUtilsMessageSeverityFlagBitsEXT Source # 
Instance details

Methods

(.&.) :: VkDebugUtilsMessageSeverityFlagBitsEXT -> VkDebugUtilsMessageSeverityFlagBitsEXT -> VkDebugUtilsMessageSeverityFlagBitsEXT #

(.|.) :: VkDebugUtilsMessageSeverityFlagBitsEXT -> VkDebugUtilsMessageSeverityFlagBitsEXT -> VkDebugUtilsMessageSeverityFlagBitsEXT #

xor :: VkDebugUtilsMessageSeverityFlagBitsEXT -> VkDebugUtilsMessageSeverityFlagBitsEXT -> VkDebugUtilsMessageSeverityFlagBitsEXT #

complement :: VkDebugUtilsMessageSeverityFlagBitsEXT -> VkDebugUtilsMessageSeverityFlagBitsEXT #

shift :: VkDebugUtilsMessageSeverityFlagBitsEXT -> Int -> VkDebugUtilsMessageSeverityFlagBitsEXT #

rotate :: VkDebugUtilsMessageSeverityFlagBitsEXT -> Int -> VkDebugUtilsMessageSeverityFlagBitsEXT #

zeroBits :: VkDebugUtilsMessageSeverityFlagBitsEXT #

bit :: Int -> VkDebugUtilsMessageSeverityFlagBitsEXT #

setBit :: VkDebugUtilsMessageSeverityFlagBitsEXT -> Int -> VkDebugUtilsMessageSeverityFlagBitsEXT #

clearBit :: VkDebugUtilsMessageSeverityFlagBitsEXT -> Int -> VkDebugUtilsMessageSeverityFlagBitsEXT #

complementBit :: VkDebugUtilsMessageSeverityFlagBitsEXT -> Int -> VkDebugUtilsMessageSeverityFlagBitsEXT #

testBit :: VkDebugUtilsMessageSeverityFlagBitsEXT -> Int -> Bool #

bitSizeMaybe :: VkDebugUtilsMessageSeverityFlagBitsEXT -> Maybe Int #

bitSize :: VkDebugUtilsMessageSeverityFlagBitsEXT -> Int #

isSigned :: VkDebugUtilsMessageSeverityFlagBitsEXT -> Bool #

shiftL :: VkDebugUtilsMessageSeverityFlagBitsEXT -> Int -> VkDebugUtilsMessageSeverityFlagBitsEXT #

unsafeShiftL :: VkDebugUtilsMessageSeverityFlagBitsEXT -> Int -> VkDebugUtilsMessageSeverityFlagBitsEXT #

shiftR :: VkDebugUtilsMessageSeverityFlagBitsEXT -> Int -> VkDebugUtilsMessageSeverityFlagBitsEXT #

unsafeShiftR :: VkDebugUtilsMessageSeverityFlagBitsEXT -> Int -> VkDebugUtilsMessageSeverityFlagBitsEXT #

rotateL :: VkDebugUtilsMessageSeverityFlagBitsEXT -> Int -> VkDebugUtilsMessageSeverityFlagBitsEXT #

rotateR :: VkDebugUtilsMessageSeverityFlagBitsEXT -> Int -> VkDebugUtilsMessageSeverityFlagBitsEXT #

popCount :: VkDebugUtilsMessageSeverityFlagBitsEXT -> Int #

FiniteBits VkDebugUtilsMessageSeverityFlagBitsEXT Source # 
Instance details

pattern VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT :: VkDebugUtilsMessageSeverityFlagBitsEXT Source #

VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT specifies the most verbose output indicating all diagnostic messages from the Vulkan loader, layers, and drivers should be captured.

pattern VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT :: VkDebugUtilsMessageSeverityFlagBitsEXT Source #

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

pattern VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT :: VkDebugUtilsMessageSeverityFlagBitsEXT Source #

VK_DEBUG_UTILS_MESSAGE_SEVERITY_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_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT :: VkDebugUtilsMessageSeverityFlagBitsEXT Source #

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

newtype VkDebugUtilsMessageTypeFlagBitsEXT Source #

VkDebugUtilsMessageTypeFlagBitsEXT - Bitmask specifying which types of events cause a debug messenger callback

See Also

VkDebugUtilsMessageTypeFlagsEXT

Instances
Eq VkDebugUtilsMessageTypeFlagBitsEXT Source # 
Instance details
Ord VkDebugUtilsMessageTypeFlagBitsEXT Source # 
Instance details
Read VkDebugUtilsMessageTypeFlagBitsEXT Source # 
Instance details
Show VkDebugUtilsMessageTypeFlagBitsEXT Source # 
Instance details
Storable VkDebugUtilsMessageTypeFlagBitsEXT Source # 
Instance details
Bits VkDebugUtilsMessageTypeFlagBitsEXT Source # 
Instance details

Methods

(.&.) :: VkDebugUtilsMessageTypeFlagBitsEXT -> VkDebugUtilsMessageTypeFlagBitsEXT -> VkDebugUtilsMessageTypeFlagBitsEXT #

(.|.) :: VkDebugUtilsMessageTypeFlagBitsEXT -> VkDebugUtilsMessageTypeFlagBitsEXT -> VkDebugUtilsMessageTypeFlagBitsEXT #

xor :: VkDebugUtilsMessageTypeFlagBitsEXT -> VkDebugUtilsMessageTypeFlagBitsEXT -> VkDebugUtilsMessageTypeFlagBitsEXT #

complement :: VkDebugUtilsMessageTypeFlagBitsEXT -> VkDebugUtilsMessageTypeFlagBitsEXT #

shift :: VkDebugUtilsMessageTypeFlagBitsEXT -> Int -> VkDebugUtilsMessageTypeFlagBitsEXT #

rotate :: VkDebugUtilsMessageTypeFlagBitsEXT -> Int -> VkDebugUtilsMessageTypeFlagBitsEXT #

zeroBits :: VkDebugUtilsMessageTypeFlagBitsEXT #

bit :: Int -> VkDebugUtilsMessageTypeFlagBitsEXT #

setBit :: VkDebugUtilsMessageTypeFlagBitsEXT -> Int -> VkDebugUtilsMessageTypeFlagBitsEXT #

clearBit :: VkDebugUtilsMessageTypeFlagBitsEXT -> Int -> VkDebugUtilsMessageTypeFlagBitsEXT #

complementBit :: VkDebugUtilsMessageTypeFlagBitsEXT -> Int -> VkDebugUtilsMessageTypeFlagBitsEXT #

testBit :: VkDebugUtilsMessageTypeFlagBitsEXT -> Int -> Bool #

bitSizeMaybe :: VkDebugUtilsMessageTypeFlagBitsEXT -> Maybe Int #

bitSize :: VkDebugUtilsMessageTypeFlagBitsEXT -> Int #

isSigned :: VkDebugUtilsMessageTypeFlagBitsEXT -> Bool #

shiftL :: VkDebugUtilsMessageTypeFlagBitsEXT -> Int -> VkDebugUtilsMessageTypeFlagBitsEXT #

unsafeShiftL :: VkDebugUtilsMessageTypeFlagBitsEXT -> Int -> VkDebugUtilsMessageTypeFlagBitsEXT #

shiftR :: VkDebugUtilsMessageTypeFlagBitsEXT -> Int -> VkDebugUtilsMessageTypeFlagBitsEXT #

unsafeShiftR :: VkDebugUtilsMessageTypeFlagBitsEXT -> Int -> VkDebugUtilsMessageTypeFlagBitsEXT #

rotateL :: VkDebugUtilsMessageTypeFlagBitsEXT -> Int -> VkDebugUtilsMessageTypeFlagBitsEXT #

rotateR :: VkDebugUtilsMessageTypeFlagBitsEXT -> Int -> VkDebugUtilsMessageTypeFlagBitsEXT #

popCount :: VkDebugUtilsMessageTypeFlagBitsEXT -> Int #

FiniteBits VkDebugUtilsMessageTypeFlagBitsEXT Source # 
Instance details

pattern VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT :: VkDebugUtilsMessageTypeFlagBitsEXT Source #

VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT specifies that some general event has occurred. This is typically a non-specification, non-performance event.

pattern VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT :: VkDebugUtilsMessageTypeFlagBitsEXT Source #

VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT specifies that something has occurred during validation against the Vulkan specification that may indicate invalid behavior.

pattern VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT :: VkDebugUtilsMessageTypeFlagBitsEXT Source #

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

newtype VkDebugUtilsMessengerCreateFlagsEXT Source #

Instances
Eq VkDebugUtilsMessengerCreateFlagsEXT Source # 
Instance details
Ord VkDebugUtilsMessengerCreateFlagsEXT Source # 
Instance details
Read VkDebugUtilsMessengerCreateFlagsEXT Source # 
Instance details
Show VkDebugUtilsMessengerCreateFlagsEXT Source # 
Instance details
Storable VkDebugUtilsMessengerCreateFlagsEXT Source # 
Instance details
Bits VkDebugUtilsMessengerCreateFlagsEXT Source # 
Instance details

Methods

(.&.) :: VkDebugUtilsMessengerCreateFlagsEXT -> VkDebugUtilsMessengerCreateFlagsEXT -> VkDebugUtilsMessengerCreateFlagsEXT #

(.|.) :: VkDebugUtilsMessengerCreateFlagsEXT -> VkDebugUtilsMessengerCreateFlagsEXT -> VkDebugUtilsMessengerCreateFlagsEXT #

xor :: VkDebugUtilsMessengerCreateFlagsEXT -> VkDebugUtilsMessengerCreateFlagsEXT -> VkDebugUtilsMessengerCreateFlagsEXT #

complement :: VkDebugUtilsMessengerCreateFlagsEXT -> VkDebugUtilsMessengerCreateFlagsEXT #

shift :: VkDebugUtilsMessengerCreateFlagsEXT -> Int -> VkDebugUtilsMessengerCreateFlagsEXT #

rotate :: VkDebugUtilsMessengerCreateFlagsEXT -> Int -> VkDebugUtilsMessengerCreateFlagsEXT #

zeroBits :: VkDebugUtilsMessengerCreateFlagsEXT #

bit :: Int -> VkDebugUtilsMessengerCreateFlagsEXT #

setBit :: VkDebugUtilsMessengerCreateFlagsEXT -> Int -> VkDebugUtilsMessengerCreateFlagsEXT #

clearBit :: VkDebugUtilsMessengerCreateFlagsEXT -> Int -> VkDebugUtilsMessengerCreateFlagsEXT #

complementBit :: VkDebugUtilsMessengerCreateFlagsEXT -> Int -> VkDebugUtilsMessengerCreateFlagsEXT #

testBit :: VkDebugUtilsMessengerCreateFlagsEXT -> Int -> Bool #

bitSizeMaybe :: VkDebugUtilsMessengerCreateFlagsEXT -> Maybe Int #

bitSize :: VkDebugUtilsMessengerCreateFlagsEXT -> Int #

isSigned :: VkDebugUtilsMessengerCreateFlagsEXT -> Bool #

shiftL :: VkDebugUtilsMessengerCreateFlagsEXT -> Int -> VkDebugUtilsMessengerCreateFlagsEXT #

unsafeShiftL :: VkDebugUtilsMessengerCreateFlagsEXT -> Int -> VkDebugUtilsMessengerCreateFlagsEXT #

shiftR :: VkDebugUtilsMessengerCreateFlagsEXT -> Int -> VkDebugUtilsMessengerCreateFlagsEXT #

unsafeShiftR :: VkDebugUtilsMessengerCreateFlagsEXT -> Int -> VkDebugUtilsMessengerCreateFlagsEXT #

rotateL :: VkDebugUtilsMessengerCreateFlagsEXT -> Int -> VkDebugUtilsMessengerCreateFlagsEXT #

rotateR :: VkDebugUtilsMessengerCreateFlagsEXT -> Int -> VkDebugUtilsMessengerCreateFlagsEXT #

popCount :: VkDebugUtilsMessengerCreateFlagsEXT -> Int #

FiniteBits VkDebugUtilsMessengerCreateFlagsEXT Source # 
Instance details

newtype VkDebugUtilsMessengerCallbackDataFlagsEXT Source #

Instances
Eq VkDebugUtilsMessengerCallbackDataFlagsEXT Source # 
Instance details
Ord VkDebugUtilsMessengerCallbackDataFlagsEXT Source # 
Instance details
Read VkDebugUtilsMessengerCallbackDataFlagsEXT Source # 
Instance details
Show VkDebugUtilsMessengerCallbackDataFlagsEXT Source # 
Instance details
Storable VkDebugUtilsMessengerCallbackDataFlagsEXT Source # 
Instance details
Bits VkDebugUtilsMessengerCallbackDataFlagsEXT Source # 
Instance details

Methods

(.&.) :: VkDebugUtilsMessengerCallbackDataFlagsEXT -> VkDebugUtilsMessengerCallbackDataFlagsEXT -> VkDebugUtilsMessengerCallbackDataFlagsEXT #

(.|.) :: VkDebugUtilsMessengerCallbackDataFlagsEXT -> VkDebugUtilsMessengerCallbackDataFlagsEXT -> VkDebugUtilsMessengerCallbackDataFlagsEXT #

xor :: VkDebugUtilsMessengerCallbackDataFlagsEXT -> VkDebugUtilsMessengerCallbackDataFlagsEXT -> VkDebugUtilsMessengerCallbackDataFlagsEXT #

complement :: VkDebugUtilsMessengerCallbackDataFlagsEXT -> VkDebugUtilsMessengerCallbackDataFlagsEXT #

shift :: VkDebugUtilsMessengerCallbackDataFlagsEXT -> Int -> VkDebugUtilsMessengerCallbackDataFlagsEXT #

rotate :: VkDebugUtilsMessengerCallbackDataFlagsEXT -> Int -> VkDebugUtilsMessengerCallbackDataFlagsEXT #

zeroBits :: VkDebugUtilsMessengerCallbackDataFlagsEXT #

bit :: Int -> VkDebugUtilsMessengerCallbackDataFlagsEXT #

setBit :: VkDebugUtilsMessengerCallbackDataFlagsEXT -> Int -> VkDebugUtilsMessengerCallbackDataFlagsEXT #

clearBit :: VkDebugUtilsMessengerCallbackDataFlagsEXT -> Int -> VkDebugUtilsMessengerCallbackDataFlagsEXT #

complementBit :: VkDebugUtilsMessengerCallbackDataFlagsEXT -> Int -> VkDebugUtilsMessengerCallbackDataFlagsEXT #

testBit :: VkDebugUtilsMessengerCallbackDataFlagsEXT -> Int -> Bool #

bitSizeMaybe :: VkDebugUtilsMessengerCallbackDataFlagsEXT -> Maybe Int #

bitSize :: VkDebugUtilsMessengerCallbackDataFlagsEXT -> Int #

isSigned :: VkDebugUtilsMessengerCallbackDataFlagsEXT -> Bool #

shiftL :: VkDebugUtilsMessengerCallbackDataFlagsEXT -> Int -> VkDebugUtilsMessengerCallbackDataFlagsEXT #

unsafeShiftL :: VkDebugUtilsMessengerCallbackDataFlagsEXT -> Int -> VkDebugUtilsMessengerCallbackDataFlagsEXT #

shiftR :: VkDebugUtilsMessengerCallbackDataFlagsEXT -> Int -> VkDebugUtilsMessengerCallbackDataFlagsEXT #

unsafeShiftR :: VkDebugUtilsMessengerCallbackDataFlagsEXT -> Int -> VkDebugUtilsMessengerCallbackDataFlagsEXT #

rotateL :: VkDebugUtilsMessengerCallbackDataFlagsEXT -> Int -> VkDebugUtilsMessengerCallbackDataFlagsEXT #

rotateR :: VkDebugUtilsMessengerCallbackDataFlagsEXT -> Int -> VkDebugUtilsMessengerCallbackDataFlagsEXT #

popCount :: VkDebugUtilsMessengerCallbackDataFlagsEXT -> Int #

FiniteBits VkDebugUtilsMessengerCallbackDataFlagsEXT Source # 
Instance details

type PFN_vkDebugUtilsMessengerCallbackEXT = Ptr (("messageSeverity" ::: VkDebugUtilsMessageSeverityFlagBitsEXT) -> ("messageType" ::: VkDebugUtilsMessageTypeFlagsEXT) -> ("pCallbackData" ::: Ptr VkDebugUtilsMessengerCallbackDataEXT) -> ("pUserData" ::: Ptr ()) -> IO VkBool32) Source #

PFN_vkDebugUtilsMessengerCallbackEXT - Application-defined debug messenger callback function

Parameters

Description

The callback must not call vkDestroyDebugUtilsMessengerEXT.

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.

See Also

VkDebugUtilsMessengerCreateInfoEXT

type VkDebugUtilsMessengerEXT = Ptr VkDebugUtilsMessengerEXT_T Source #

VkDebugUtilsMessengerEXT - Opaque handle to a debug messenger object

Description

The debug messenger will provide detailed feedback on the application’s use of Vulkan when events of interest occur. When an event of interest does occur, the debug messenger will submit a debug message to the debug callback that was provided during its creation. Additionally, the debug messenger is responsible with filtering out debug messages that the callback isn’t interested in and will only provide desired debug messages.

See Also

vkCreateDebugUtilsMessengerEXT, vkDestroyDebugUtilsMessengerEXT

vkSetDebugUtilsObjectNameEXT :: ("device" ::: VkDevice) -> ("pNameInfo" ::: Ptr VkDebugUtilsObjectNameInfoEXT) -> IO VkResult Source #

vkSetDebugUtilsObjectNameEXT - Give a user-friendly name to an object

Parameters

  • device is the device that created the object.

Valid Usage (Implicit)

  • device must be a valid VkDevice handle
  • pNameInfo must be a valid pointer to a valid VkDebugUtilsObjectNameInfoEXT structure

Host Synchronization

  • Host access to pNameInfo.objectHandle must be externally synchronized

Return Codes

[Success] - VK_SUCCESS

[Failure] - VK_ERROR_OUT_OF_HOST_MEMORY

  • VK_ERROR_OUT_OF_DEVICE_MEMORY

See Also

VkDebugUtilsObjectNameInfoEXT, VkDevice

vkSetDebugUtilsObjectTagEXT :: ("device" ::: VkDevice) -> ("pTagInfo" ::: Ptr VkDebugUtilsObjectTagInfoEXT) -> IO VkResult Source #

vkSetDebugUtilsObjectTagEXT - Attach arbitrary data to an object

Parameters

  • device is the device that created the object.
  • pTagInfo is a pointer to an instance of the VkDebugUtilsObjectTagInfoEXT structure specifying the parameters of the tag to attach to the object.

Valid Usage (Implicit)

  • device must be a valid VkDevice handle
  • pTagInfo must be a valid pointer to a valid VkDebugUtilsObjectTagInfoEXT structure

Host Synchronization

  • Host access to pTagInfo.objectHandle must be externally synchronized

Return Codes

[Success] - VK_SUCCESS

[Failure] - VK_ERROR_OUT_OF_HOST_MEMORY

  • VK_ERROR_OUT_OF_DEVICE_MEMORY

See Also

VkDebugUtilsObjectTagInfoEXT, VkDevice

vkQueueBeginDebugUtilsLabelEXT :: ("queue" ::: VkQueue) -> ("pLabelInfo" ::: Ptr VkDebugUtilsLabelEXT) -> IO () Source #

vkQueueBeginDebugUtilsLabelEXT - Open a queue debug label region

Parameters

  • queue is the queue in which to start a debug label region.
  • pLabelInfo is a pointer to an instance of the VkDebugUtilsLabelEXT structure specifying the parameters of the label region to open.

Valid Usage (Implicit)

  • queue must be a valid VkQueue handle
  • pLabelInfo must be a valid pointer to a valid VkDebugUtilsLabelEXT structure

Command Properties

'

Command Buffer Levels Render Pass Scope Supported Queue Types Pipeline Type
- - Any -

See Also

VkDebugUtilsLabelEXT, VkQueue

vkQueueEndDebugUtilsLabelEXT :: ("queue" ::: VkQueue) -> IO () Source #

vkQueueEndDebugUtilsLabelEXT - Close a queue debug label region

Parameters

  • queue is the queue in which a debug label region should be closed.

Description

The calls to vkQueueBeginDebugUtilsLabelEXT and vkQueueEndDebugUtilsLabelEXT must be matched and balanced.

Valid Usage

  • There must be an outstanding vkQueueBeginDebugUtilsLabelEXT command prior to the vkQueueEndDebugUtilsLabelEXT on the queue

Valid Usage (Implicit)

  • queue must be a valid VkQueue handle

Command Properties

'

Command Buffer Levels Render Pass Scope Supported Queue Types Pipeline Type
- - Any -

See Also

VkQueue

vkQueueInsertDebugUtilsLabelEXT :: ("queue" ::: VkQueue) -> ("pLabelInfo" ::: Ptr VkDebugUtilsLabelEXT) -> IO () Source #

vkQueueInsertDebugUtilsLabelEXT - Insert a label into a queue

Parameters

  • queue is the queue into which a debug label will be inserted.
  • pLabelInfo is a pointer to an instance of the VkDebugUtilsLabelEXT structure specifying the parameters of the label to insert.

Valid Usage (Implicit)

  • queue must be a valid VkQueue handle
  • pLabelInfo must be a valid pointer to a valid VkDebugUtilsLabelEXT structure

Command Properties

'

Command Buffer Levels Render Pass Scope Supported Queue Types Pipeline Type
- - Any -

See Also

VkDebugUtilsLabelEXT, VkQueue

vkCmdBeginDebugUtilsLabelEXT :: ("commandBuffer" ::: VkCommandBuffer) -> ("pLabelInfo" ::: Ptr VkDebugUtilsLabelEXT) -> IO () Source #

vkCmdBeginDebugUtilsLabelEXT - Open a command buffer debug label region

Parameters

  • commandBuffer is the command buffer into which the command is recorded.
  • pLabelInfo is a pointer to an instance of the VkDebugUtilsLabelEXT structure specifying the parameters of the label region to open.

Valid Usage (Implicit)

  • commandBuffer must be a valid VkCommandBuffer handle
  • pLabelInfo must be a valid pointer to a valid VkDebugUtilsLabelEXT structure
  • commandBuffer must be in the recording state
  • The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations

Host Synchronization

  • Host access to the VkCommandPool that commandBuffer was allocated from must be externally synchronized

Command Properties

'

Command Buffer Levels Render Pass Scope Supported Queue Types Pipeline Type
Primary Secondary Both Graphics Compute

See Also

VkCommandBuffer, VkDebugUtilsLabelEXT

vkCmdEndDebugUtilsLabelEXT :: ("commandBuffer" ::: VkCommandBuffer) -> IO () Source #

vkCmdEndDebugUtilsLabelEXT - Close a command buffer label region

Parameters

  • commandBuffer is the command buffer into which the command is recorded.

Description

An application may open a debug label region in one command buffer and close it in another, or otherwise split debug label regions across multiple command buffers or multiple queue submissions. When viewed from the linear series of submissions to a single queue, the calls to vkCmdBeginDebugUtilsLabelEXT and vkCmdEndDebugUtilsLabelEXT must be matched and balanced.

Valid Usage

  • There must be an outstanding vkCmdBeginDebugUtilsLabelEXT command prior to the vkCmdEndDebugUtilsLabelEXT on the queue that commandBuffer is submitted to
  • If commandBuffer is a secondary command buffer, there must be an outstanding vkCmdBeginDebugUtilsLabelEXT command recorded to commandBuffer that has not previously been ended by a call to vkCmdEndDebugUtilsLabelEXT.

Valid Usage (Implicit)

  • commandBuffer must be a valid VkCommandBuffer handle
  • commandBuffer must be in the recording state
  • The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations

Host Synchronization

  • Host access to the VkCommandPool that commandBuffer was allocated from must be externally synchronized

Command Properties

'

Command Buffer Levels Render Pass Scope Supported Queue Types Pipeline Type
Primary Secondary Both Graphics Compute

See Also

VkCommandBuffer

vkCmdInsertDebugUtilsLabelEXT :: ("commandBuffer" ::: VkCommandBuffer) -> ("pLabelInfo" ::: Ptr VkDebugUtilsLabelEXT) -> IO () Source #

vkCmdInsertDebugUtilsLabelEXT - Insert a label into a command buffer

Parameters

  • commandBuffer is the command buffer into which the command is recorded.
  • pInfo is a pointer to an instance of the VkDebugUtilsLabelEXT structure specifying the parameters of the label to insert.

Valid Usage (Implicit)

  • commandBuffer must be a valid VkCommandBuffer handle
  • pLabelInfo must be a valid pointer to a valid VkDebugUtilsLabelEXT structure
  • commandBuffer must be in the recording state
  • The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations

Host Synchronization

  • Host access to the VkCommandPool that commandBuffer was allocated from must be externally synchronized

Command Properties

'

Command Buffer Levels Render Pass Scope Supported Queue Types Pipeline Type
Primary Secondary Both Graphics Compute

See Also

VkCommandBuffer, VkDebugUtilsLabelEXT

vkCreateDebugUtilsMessengerEXT :: ("instance" ::: VkInstance) -> ("pCreateInfo" ::: Ptr VkDebugUtilsMessengerCreateInfoEXT) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> ("pMessenger" ::: Ptr VkDebugUtilsMessengerEXT) -> IO VkResult Source #

vkCreateDebugUtilsMessengerEXT - Create a debug messenger object

Parameters

  • instance the instance the messenger will be used with.
  • pCreateInfo points to a VkDebugUtilsMessengerCreateInfoEXT structure which contains the callback pointer as well as defines the conditions under which this messenger will trigger the callback.
  • pAllocator controls host memory allocation as described in the Memory Allocation chapter.
  • pMessenger is a pointer to record the VkDebugUtilsMessengerEXT object created.

Valid Usage (Implicit)

  • instance must be a valid VkInstance handle
  • pCreateInfo must be a valid pointer to a valid VkDebugUtilsMessengerCreateInfoEXT structure
  • If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
  • pMessenger must be a valid pointer to a VkDebugUtilsMessengerEXT handle

Return Codes

[Success] - VK_SUCCESS

[Failure] - VK_ERROR_OUT_OF_HOST_MEMORY

See Also

VkAllocationCallbacks, VkDebugUtilsMessengerCreateInfoEXT, VkDebugUtilsMessengerEXT, VkInstance

vkDestroyDebugUtilsMessengerEXT :: ("instance" ::: VkInstance) -> ("messenger" ::: VkDebugUtilsMessengerEXT) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> IO () Source #

vkDestroyDebugUtilsMessengerEXT - Destroy a debug messenger object

Parameters

  • instance the instance where the callback was created.
  • messenger the VkDebugUtilsMessengerEXT object to destroy. messenger is an externally synchronized object and must not be used on more than one thread at a time. This means that vkDestroyDebugUtilsMessengerEXT 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 messenger was created, a compatible set of callbacks must be provided here
  • If no VkAllocationCallbacks were provided when messenger was created, pAllocator must be NULL

Valid Usage (Implicit)

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

Host Synchronization

  • Host access to messenger must be externally synchronized

See Also

VkAllocationCallbacks, VkDebugUtilsMessengerEXT, VkInstance

vkSubmitDebugUtilsMessageEXT :: ("instance" ::: VkInstance) -> ("messageSeverity" ::: VkDebugUtilsMessageSeverityFlagBitsEXT) -> ("messageTypes" ::: VkDebugUtilsMessageTypeFlagsEXT) -> ("pCallbackData" ::: Ptr VkDebugUtilsMessengerCallbackDataEXT) -> IO () Source #

vkSubmitDebugUtilsMessageEXT - Inject a message into a debug stream

Parameters

  • instance is the debug stream’s VkInstance.

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 messenger was registered.

Valid Usage (Implicit)

  • instance must be a valid VkInstance handle

See Also

VkDebugUtilsMessageSeverityFlagBitsEXT, VkDebugUtilsMessageTypeFlagsEXT, VkDebugUtilsMessengerCallbackDataEXT, VkInstance

data VkDebugUtilsObjectNameInfoEXT Source #

VkDebugUtilsObjectNameInfoEXT - Specify parameters of a name to give to an object

Description

Applications may change the name associated with an object simply by calling vkSetDebugUtilsObjectNameEXT again with a new string. If pObjectName is an empty string, then any previously set name is removed.

Valid Usage

  • objectType must not be VK_OBJECT_TYPE_UNKNOWN

Valid Usage (Implicit)

  • sType must be VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT
  • pNext must be NULL
  • objectType must be a valid VkObjectType value
  • If pObjectName is not NULL, pObjectName must be a null-terminated UTF-8 string

See Also

VkDebugUtilsMessengerCallbackDataEXT, VkObjectType, VkStructureType, vkSetDebugUtilsObjectNameEXT

Constructors

VkDebugUtilsObjectNameInfoEXT 

Fields

data VkDebugUtilsObjectTagInfoEXT Source #

VkDebugUtilsObjectTagInfoEXT - Specify parameters of a tag to attach to an object

Description

The tagName parameter gives a name or identifier to the type of data being tagged. This can be used by debugging layers to easily filter for only data that can be used by that implementation.

Valid Usage

  • objectType must not be VK_OBJECT_TYPE_UNKNOWN

Valid Usage (Implicit)

  • sType must be VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT
  • pNext must be NULL
  • objectType must be a valid VkObjectType value
  • pTag must be a valid pointer to an array of tagSize bytes
  • tagSize must be greater than 0

See Also

VkObjectType, VkStructureType, vkSetDebugUtilsObjectTagEXT

Constructors

VkDebugUtilsObjectTagInfoEXT 

Fields

data VkDebugUtilsLabelEXT Source #

VkDebugUtilsLabelEXT - Specify parameters of a label region

Valid Usage (Implicit)

  • sType must be VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT
  • pNext must be NULL
  • pLabelName must be a null-terminated UTF-8 string

See Also

VkDebugUtilsMessengerCallbackDataEXT, VkStructureType, vkCmdBeginDebugUtilsLabelEXT, vkCmdInsertDebugUtilsLabelEXT, vkQueueBeginDebugUtilsLabelEXT, vkQueueInsertDebugUtilsLabelEXT

Constructors

VkDebugUtilsLabelEXT 

Fields

  • vkSType :: VkStructureType

    sType is the type of this structure.

  • vkPNext :: Ptr ()

    pNext is NULL or a pointer to an extension-specific structure.

  • vkPLabelName :: Ptr CChar

    pLabelName is a pointer to a null-terminated UTF-8 string that contains the name of the label.

  • vkColor :: Vector 4 CFloat

    color is an optional RGBA color value that can be associated with the label. A particular implementation may choose to ignore this color value. The values contain RGBA values in order, in the range 0.0 to 1.0. If all elements in color are set to 0.0 then it is ignored.

data VkDebugUtilsMessengerCreateInfoEXT Source #

VkDebugUtilsMessengerCreateInfoEXT - Structure specifying parameters of a newly created debug messenger

Description

For each VkDebugUtilsMessengerEXT that is created the VkDebugUtilsMessengerCreateInfoEXT::messageSeverity and VkDebugUtilsMessengerCreateInfoEXT::messageTypes determine when that VkDebugUtilsMessengerCreateInfoEXT::pfnUserCallback is called. The process to determine if the user’s pfnUserCallback is triggered when an event occurs is as follows:

  1. The implementation will perform a bitwise AND of the event’s VkDebugUtilsMessageSeverityFlagBitsEXT with the messageSeverity provided during creation of the VkDebugUtilsMessengerEXT object.

    1. If the value is 0, the message is skipped.
  2. The implementation will perform bitwise AND of the event’s VkDebugUtilsMessageTypeFlagBitsEXT with the messageType provided during the creation of the VkDebugUtilsMessengerEXT object.

    1. If the value is 0, the message is skipped.
  3. The callback will trigger a debug message for the current event

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 can receive multiple callbacks if multiple VkDebugUtilsMessengerEXT objects are created. A callback will always be executed in the same thread as the originating Vulkan call.

A callback can 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_UTILS_MESSENGER_CREATE_INFO_EXT

See Also

PFN_vkDebugUtilsMessengerCallbackEXT, VkDebugUtilsMessageSeverityFlagsEXT, VkDebugUtilsMessageTypeFlagsEXT, VkDebugUtilsMessengerCreateFlagsEXT, VkStructureType, vkCreateDebugUtilsMessengerEXT

Constructors

VkDebugUtilsMessengerCreateInfoEXT 

Fields

data VkDebugUtilsMessengerCallbackDataEXT Source #

VkDebugUtilsMessengerCallbackDataEXT - Structure specifying parameters returned to the callback

Description

Note

This structure should only be considered valid during the lifetime of the triggered callback.

Since adding queue and command buffer labels behaves like pushing and popping onto a stack, the order of both pQueueLabels and pCmdBufLabels is based on the order the labels were defined. The result is that the first label in either pQueueLabels or pCmdBufLabels will be the first defined (and therefore the oldest) while the last label in each list will be the most recent.

Note

pQueueLabels will only be non-NULL if one of the objects in pObjects can be related directly to a defined VkQueue which has had one or more labels associated with it.

Likewise, pCmdBufLabels will only be non-NULL if one of the objects in pObjects can be related directly to a defined VkCommandBuffer which has had one or more labels associated with it. Additionally, while command buffer labels allow for beginning and ending across different command buffers, the debug messaging framework cannot guarantee that labels in pCmdBufLables will contain those defined outside of the associated command buffer. This is partially due to the fact that the association of one command buffer with another may not have been defined at the time the debug message is triggered.

Valid Usage (Implicit)

  • sType must be VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT
  • pNext must be NULL
  • flags must be 0
  • If pMessageIdName is not NULL, pMessageIdName must be a null-terminated UTF-8 string
  • pMessage must be a null-terminated UTF-8 string
  • objectCount must be greater than 0

See Also

VkDebugUtilsLabelEXT, VkDebugUtilsMessengerCallbackDataFlagsEXT, VkDebugUtilsObjectNameInfoEXT, VkStructureType, vkSubmitDebugUtilsMessageEXT

Constructors

VkDebugUtilsMessengerCallbackDataEXT 

Fields