vulkan-3.13: Bindings to the Vulkan graphics API.
Safe HaskellNone
LanguageHaskell2010

Vulkan.Extensions.VK_EXT_debug_report

Description

Name

VK_EXT_debug_report - instance extension

VK_EXT_debug_report

Name String
VK_EXT_debug_report
Extension Type
Instance extension
Registered Extension Number
12
Revision
10
Extension and Version Dependencies
  • Requires Vulkan 1.0
Deprecation state
  • Deprecated by VK_EXT_debug_utils extension
Special Use
Contact

Other Extension Metadata

Last Modified Date
2020-12-14
IP Status
No known IP claims.
Contributors
  • Courtney Goeltzenleuchter, LunarG
  • Dan Ginsburg, Valve
  • Jon Ashburn, LunarG
  • Mark Lobodzinski, LunarG

Description

Due to the nature of the Vulkan interface, there is very little error information available to the developer and application. By enabling optional validation layers and using the VK_EXT_debug_report extension, developers can obtain much more detailed feedback on the application’s use of Vulkan. This extension defines a way for layers and the implementation to call back to the application for events of interest to the application.

New Object Types

New Commands

New Structures

New Function Pointers

New Enums

New Bitmasks

New Enum Constants

If Version 1.1 is supported:

Examples

VK_EXT_debug_report allows an application to register multiple callbacks with the validation layers. Some callbacks may log the information to a file, others may cause a debug break point or other application defined behavior. An application can register callbacks even when no validation layers are enabled, but they will only be called for loader and, if implemented, driver events.

To capture events that occur while creating or destroying an instance an application can link a DebugReportCallbackCreateInfoEXT structure to the pNext element of the InstanceCreateInfo structure given to createInstance.

Example uses: Create three callback objects. One will log errors and warnings to the debug console using Windows OutputDebugString. The second will cause the debugger to break at that callback when an error happens and the third will log warnings to stdout.

    VkResult res;
    VkDebugReportCallbackEXT cb1, cb2, cb3;

    VkDebugReportCallbackCreateInfoEXT callback1 = {
            VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT,    // sType
            NULL,                                                       // pNext
            VK_DEBUG_REPORT_ERROR_BIT_EXT |                             // flags
            VK_DEBUG_REPORT_WARNING_BIT_EXT,
            myOutputDebugString,                                        // pfnCallback
            NULL                                                        // pUserData
    };
    res = vkCreateDebugReportCallbackEXT(instance, &callback1, &cb1);
    if (res != VK_SUCCESS)
       

    callback.flags = VK_DEBUG_REPORT_ERROR_BIT_EXT;
    callback.pfnCallback = myDebugBreak;
    callback.pUserData = NULL;
    res = vkCreateDebugReportCallbackEXT(instance, &callback, &cb2);
    if (res != VK_SUCCESS)
       

    VkDebugReportCallbackCreateInfoEXT callback3 = {
            VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT,    // sType
            NULL,                                                       // pNext
            VK_DEBUG_REPORT_WARNING_BIT_EXT,                            // flags
            mystdOutLogger,                                             // pfnCallback
            NULL                                                        // pUserData
    };
    res = vkCreateDebugReportCallbackEXT(instance, &callback3, &cb3);
    if (res != VK_SUCCESS)
       

    ...

    
    vkDestroyDebugReportCallbackEXT(instance, cb1);
    vkDestroyDebugReportCallbackEXT(instance, cb2);
    vkDestroyDebugReportCallbackEXT(instance, cb3);

Note

In the initial release of the VK_EXT_debug_report extension, the token STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT was used. Starting in version 2 of the extension branch, STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT is used instead for consistency with Vulkan naming rules. The older enum is still available for backwards compatibility.

Note

In the initial release of the VK_EXT_debug_report extension, the token DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT was used. Starting in version 8 of the extension branch, DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT is used instead for consistency with Vulkan naming rules. The older enum is still available for backwards compatibility.

Issues

1) What is the hierarchy / seriousness of the message flags? E.g. ERROR > WARN > PERF_WARN …​

RESOLVED: There is no specific hierarchy. Each bit is independent and should be checked via bitwise AND. For example:

    if (localFlags & VK_DEBUG_REPORT_ERROR_BIT_EXT) {
        process error message
    }
    if (localFlags & VK_DEBUG_REPORT_DEBUG_BIT_EXT) {
        process debug message
    }

The validation layers do use them in a hierarchical way (ERROR > WARN > PERF, WARN > DEBUG > INFO) and they (at least at the time of this writing) only set one bit at a time. But it is not a requirement of this extension.

It is possible that a layer may intercept and change, or augment the flags with extension values the application’s debug report handler may not be familiar with, so it is important to treat each flag independently.

2) Should there be a VU requiring DebugReportCallbackCreateInfoEXT::flags to be non-zero?

RESOLVED: It may not be very useful, but we do not need VU statement requiring the DebugReportCallbackCreateInfoEXT::msgFlags at create-time to be non-zero. One can imagine that apps may prefer it as it allows them to set the mask as desired - including nothing - at runtime without having to check.

3) What is the difference between DEBUG_REPORT_DEBUG_BIT_EXT and DEBUG_REPORT_INFORMATION_BIT_EXT?

RESOLVED: DEBUG_REPORT_DEBUG_BIT_EXT specifies information that could be useful debugging the Vulkan implementation itself.

4) How do you compare handles returned by the debug_report callback to the application’s handles?

RESOLVED: Due to the different nature of dispatchable and nondispatchable handles there is no generic way (that we know of) that works for common compilers with 32bit, 64bit, C and C++. We recommend applications use the same cast that the validation layers use:

+

reinterpret_cast<uint64_t &>(dispatchableHandle)
(uint64_t)(nondispatchableHandle)

+ This does require that the app treat dispatchable and nondispatchable handles differently.

Version History

  • Revision 1, 2015-05-20 (Courtney Goetzenleuchter)

    • Initial draft, based on LunarG KHR spec, other KHR specs
  • Revision 2, 2016-02-16 (Courtney Goetzenleuchter)

    • Update usage, documentation
  • Revision 3, 2016-06-14 (Courtney Goetzenleuchter)

    • Update VK_EXT_DEBUG_REPORT_SPEC_VERSION to indicate added support for vkCreateInstance and vkDestroyInstance
  • Revision 4, 2016-12-08 (Mark Lobodzinski)

    • Added Display_KHR, DisplayModeKHR extension objects
    • Added ObjectTable_NVX, IndirectCommandsLayout_NVX extension objects
    • Bumped spec revision
    • Retroactively added version history
  • Revision 5, 2017-01-31 (Baldur Karlsson)

  • Revision 6, 2017-01-31 (Baldur Karlsson)

    • Added VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR_EXT
  • Revision 7, 2017-04-20 (Courtney Goeltzenleuchter)

    • Clarify wording and address questions from developers.
  • Revision 8, 2017-04-21 (Courtney Goeltzenleuchter)

    • Remove unused enum VkDebugReportErrorEXT
  • Revision 9, 2017-09-12 (Tobias Hector)

    • Added interactions with Vulkan 1.1
  • Revision 10, 2020-12-14 (Courtney Goetzenleuchter)

    • Add issue 4 discussing matching handles returned by the extension, based on suggestion in public issue 368.

See Also

PFN_vkDebugReportCallbackEXT, DebugReportCallbackCreateInfoEXT, DebugReportCallbackEXT, DebugReportFlagBitsEXT, DebugReportFlagsEXT, DebugReportObjectTypeEXT, createDebugReportCallbackEXT, debugReportMessageEXT, destroyDebugReportCallbackEXT

Document Notes

For more information, see the Vulkan Specification

This page is a generated document. Fixes and changes should be made to the generator scripts, not directly.

Synopsis

Documentation

createDebugReportCallbackEXT Source #

Arguments

:: forall io. MonadIO io 
=> Instance

instance is the instance the callback will be logged on.

-> DebugReportCallbackCreateInfoEXT

pCreateInfo is a pointer to a DebugReportCallbackCreateInfoEXT structure defining the conditions under which this callback will be called.

-> ("allocator" ::: Maybe AllocationCallbacks)

pAllocator controls host memory allocation as described in the Memory Allocation chapter.

-> io DebugReportCallbackEXT 

vkCreateDebugReportCallbackEXT - Create a debug report callback object

Valid Usage (Implicit)

  • instance must be a valid Instance handle

Return Codes

Success
Failure

See Also

VK_EXT_debug_report, AllocationCallbacks, DebugReportCallbackCreateInfoEXT, DebugReportCallbackEXT, Instance

withDebugReportCallbackEXT :: forall io r. MonadIO io => Instance -> DebugReportCallbackCreateInfoEXT -> Maybe AllocationCallbacks -> (io DebugReportCallbackEXT -> (DebugReportCallbackEXT -> io ()) -> r) -> r Source #

A convenience wrapper to make a compatible pair of calls to createDebugReportCallbackEXT and destroyDebugReportCallbackEXT

To ensure that destroyDebugReportCallbackEXT is always called: pass bracket (or the allocate function from your favourite resource management library) as the last argument. To just extract the pair pass (,) as the last argument.

destroyDebugReportCallbackEXT Source #

Arguments

:: forall io. MonadIO io 
=> Instance

instance is the instance where the callback was created.

-> DebugReportCallbackEXT

callback is the DebugReportCallbackEXT 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 destroyDebugReportCallbackEXT must not be called when a callback is active.

-> ("allocator" ::: Maybe AllocationCallbacks)

pAllocator controls host memory allocation as described in the Memory Allocation chapter.

-> io () 

vkDestroyDebugReportCallbackEXT - Destroy a debug report callback object

Valid Usage

  • If AllocationCallbacks were provided when callback was created, a compatible set of callbacks must be provided here

Valid Usage (Implicit)

  • instance must be a valid Instance handle
  • If callback is not NULL_HANDLE, callback must be a valid DebugReportCallbackEXT handle
  • If pAllocator is not NULL, pAllocator must be a valid pointer to a valid AllocationCallbacks structure
  • If callback is a valid handle, it must have been created, allocated, or retrieved from instance

Host Synchronization

  • Host access to callback must be externally synchronized

See Also

VK_EXT_debug_report, AllocationCallbacks, DebugReportCallbackEXT, Instance

debugReportMessageEXT Source #

Arguments

:: forall io. MonadIO io 
=> Instance

instance is the debug stream’s Instance.

-> DebugReportFlagsEXT

flags specifies the DebugReportFlagBitsEXT classification of this event/message.

-> DebugReportObjectTypeEXT

objectType is a DebugReportObjectTypeEXT specifying the type of object being used or created at the time the event was triggered.

-> ("object" ::: Word64)

object is the object where the issue was detected. object can be NULL_HANDLE if there is no object associated with the event.

-> ("location" ::: Word64)

location is an application defined value.

-> ("messageCode" ::: Int32)

messageCode is an application defined value.

-> ("layerPrefix" ::: ByteString)

pLayerPrefix is the abbreviation of the component making this event/message.

-> ("message" ::: ByteString)

pMessage is a null-terminated string detailing the trigger conditions.

-> io () 

vkDebugReportMessageEXT - Inject a message into a debug stream

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

Valid Usage (Implicit)

  • instance must be a valid Instance handle
  • flags must be a valid combination of DebugReportFlagBitsEXT values
  • flags must not be 0
  • objectType must be a valid DebugReportObjectTypeEXT value
  • pLayerPrefix must be a null-terminated UTF-8 string
  • pMessage must be a null-terminated UTF-8 string

See Also

VK_EXT_debug_report, DebugReportFlagsEXT, DebugReportObjectTypeEXT, Instance

data DebugReportCallbackCreateInfoEXT Source #

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

Description

For each DebugReportCallbackEXT that is created the DebugReportCallbackCreateInfoEXT::flags determine when that DebugReportCallbackCreateInfoEXT::pfnCallback is called. When an event happens, the implementation will do a bitwise AND of the event’s DebugReportFlagBitsEXT flags to each DebugReportCallbackEXT 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 DebugReportCallbackEXT 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 (Implicit)

See Also

PFN_vkDebugReportCallbackEXT, VK_EXT_debug_report, DebugReportFlagsEXT, StructureType, createDebugReportCallbackEXT

Constructors

DebugReportCallbackCreateInfoEXT 

Fields

Instances

Instances details
Show DebugReportCallbackCreateInfoEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_debug_report

Storable DebugReportCallbackCreateInfoEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_debug_report

FromCStruct DebugReportCallbackCreateInfoEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_debug_report

ToCStruct DebugReportCallbackCreateInfoEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_debug_report

Zero DebugReportCallbackCreateInfoEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_debug_report

newtype DebugReportFlagBitsEXT Source #

VkDebugReportFlagBitsEXT - Bitmask specifying events which cause a debug report callback

See Also

VK_EXT_debug_report, DebugReportFlagsEXT

Bundled Patterns

pattern DEBUG_REPORT_INFORMATION_BIT_EXT :: DebugReportFlagBitsEXT

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

pattern DEBUG_REPORT_WARNING_BIT_EXT :: DebugReportFlagBitsEXT

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 DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT :: DebugReportFlagBitsEXT

DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT specifies a potentially non-optimal use of Vulkan, e.g. using cmdClearColorImage when setting AttachmentDescription::loadOp to ATTACHMENT_LOAD_OP_CLEAR would have worked.

pattern DEBUG_REPORT_ERROR_BIT_EXT :: DebugReportFlagBitsEXT

DEBUG_REPORT_ERROR_BIT_EXT specifies that the application has violated a valid usage condition of the specification.

pattern DEBUG_REPORT_DEBUG_BIT_EXT :: DebugReportFlagBitsEXT

DEBUG_REPORT_DEBUG_BIT_EXT specifies diagnostic information from the implementation and layers.

Instances

Instances details
Eq DebugReportFlagBitsEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_debug_report

Ord DebugReportFlagBitsEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_debug_report

Read DebugReportFlagBitsEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_debug_report

Show DebugReportFlagBitsEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_debug_report

Storable DebugReportFlagBitsEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_debug_report

Bits DebugReportFlagBitsEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_debug_report

FiniteBits DebugReportFlagBitsEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_debug_report

Zero DebugReportFlagBitsEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_debug_report

newtype DebugReportObjectTypeEXT Source #

VkDebugReportObjectTypeEXT - Specify the type of an object handle

Description

'

DebugReportObjectTypeEXTVulkan Handle Type
DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXTUnknown/Undefined Handle
DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXTInstance
DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXTPhysicalDevice
DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXTDevice
DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXTQueue
DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXTSemaphore
DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXTCommandBuffer
DEBUG_REPORT_OBJECT_TYPE_FENCE_EXTFence
DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXTDeviceMemory
DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXTBuffer
DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXTImage
DEBUG_REPORT_OBJECT_TYPE_EVENT_EXTEvent
DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXTQueryPool
DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXTBufferView
DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXTImageView
DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXTShaderModule
DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXTPipelineCache
DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXTPipelineLayout
DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXTRenderPass
DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXTPipeline
DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXTDescriptorSetLayout
DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXTSampler
DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXTDescriptorPool
DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXTDescriptorSet
DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXTFramebuffer
DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXTCommandPool
DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXTSurfaceKHR
DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXTSwapchainKHR
DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXTDebugReportCallbackEXT
DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXTDisplayKHR
DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXTDisplayModeKHR
DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXTDescriptorUpdateTemplate

DebugReportObjectTypeEXT and Vulkan Handle Relationship

Note

The primary expected use of 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

VK_EXT_debug_marker, VK_EXT_debug_report, DebugMarkerObjectNameInfoEXT, DebugMarkerObjectTagInfoEXT, debugReportMessageEXT

Bundled Patterns

pattern DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT :: DebugReportObjectTypeEXT 
pattern DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT :: DebugReportObjectTypeEXT 
pattern DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT :: DebugReportObjectTypeEXT 
pattern DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT :: DebugReportObjectTypeEXT 
pattern DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT :: DebugReportObjectTypeEXT 
pattern DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT :: DebugReportObjectTypeEXT 
pattern DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT :: DebugReportObjectTypeEXT 
pattern DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT :: DebugReportObjectTypeEXT 
pattern DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT :: DebugReportObjectTypeEXT 
pattern DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT :: DebugReportObjectTypeEXT 
pattern DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT :: DebugReportObjectTypeEXT 
pattern DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT :: DebugReportObjectTypeEXT 
pattern DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT :: DebugReportObjectTypeEXT 
pattern DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT :: DebugReportObjectTypeEXT 
pattern DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT :: DebugReportObjectTypeEXT 
pattern DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT :: DebugReportObjectTypeEXT 
pattern DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT :: DebugReportObjectTypeEXT 
pattern DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT :: DebugReportObjectTypeEXT 
pattern DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT :: DebugReportObjectTypeEXT 
pattern DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT :: DebugReportObjectTypeEXT 
pattern DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT :: DebugReportObjectTypeEXT 
pattern DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT :: DebugReportObjectTypeEXT 
pattern DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT :: DebugReportObjectTypeEXT 
pattern DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT :: DebugReportObjectTypeEXT 
pattern DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT :: DebugReportObjectTypeEXT 
pattern DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT :: DebugReportObjectTypeEXT 
pattern DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT :: DebugReportObjectTypeEXT 
pattern DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT :: DebugReportObjectTypeEXT 
pattern DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT :: DebugReportObjectTypeEXT 
pattern DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT :: DebugReportObjectTypeEXT 
pattern DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT :: DebugReportObjectTypeEXT 
pattern DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT :: DebugReportObjectTypeEXT 
pattern DEBUG_REPORT_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA_EXT :: DebugReportObjectTypeEXT 
pattern DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT :: DebugReportObjectTypeEXT 
pattern DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT :: DebugReportObjectTypeEXT 
pattern DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT :: DebugReportObjectTypeEXT 
pattern DEBUG_REPORT_OBJECT_TYPE_CU_FUNCTION_NVX_EXT :: DebugReportObjectTypeEXT 
pattern DEBUG_REPORT_OBJECT_TYPE_CU_MODULE_NVX_EXT :: DebugReportObjectTypeEXT 
pattern DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT :: DebugReportObjectTypeEXT 

Instances

Instances details
Eq DebugReportObjectTypeEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_debug_report

Ord DebugReportObjectTypeEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_debug_report

Read DebugReportObjectTypeEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_debug_report

Show DebugReportObjectTypeEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_debug_report

Storable DebugReportObjectTypeEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_debug_report

Zero DebugReportObjectTypeEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_debug_report

type PFN_vkDebugReportCallbackEXT = FunPtr FN_vkDebugReportCallbackEXT Source #

PFN_vkDebugReportCallbackEXT - Application-defined debug report callback function

Description

The callback must not call destroyDebugReportCallbackEXT.

The callback returns a Bool32, which is interpreted in a layer-specified manner. The application should always return FALSE. The TRUE value is reserved for use in layer development.

object must be a Vulkan object or NULL_HANDLE. If objectType is not DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT and object is not NULL_HANDLE, object must be a Vulkan object of the corresponding type associated with objectType as defined in https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#debug-report-object-types.

See Also

VK_EXT_debug_report, DebugReportCallbackCreateInfoEXT

type FN_vkDebugReportCallbackEXT = DebugReportFlagsEXT -> DebugReportObjectTypeEXT -> ("object" ::: Word64) -> ("location" ::: CSize) -> ("messageCode" ::: Int32) -> ("pLayerPrefix" ::: Ptr CChar) -> ("pMessage" ::: Ptr CChar) -> ("pUserData" ::: Ptr ()) -> IO Bool32 Source #

pattern EXT_DEBUG_REPORT_SPEC_VERSION :: forall a. Integral a => a Source #

type EXT_DEBUG_REPORT_EXTENSION_NAME = "VK_EXT_debug_report" Source #

pattern EXT_DEBUG_REPORT_EXTENSION_NAME :: forall a. (Eq a, IsString a) => a Source #

newtype DebugReportCallbackEXT Source #

VkDebugReportCallbackEXT - Opaque handle to a debug report callback object

See Also

VK_EXT_debug_report, createDebugReportCallbackEXT, destroyDebugReportCallbackEXT

Instances

Instances details
Eq DebugReportCallbackEXT Source # 
Instance details

Defined in Vulkan.Extensions.Handles

Ord DebugReportCallbackEXT Source # 
Instance details

Defined in Vulkan.Extensions.Handles

Show DebugReportCallbackEXT Source # 
Instance details

Defined in Vulkan.Extensions.Handles

Storable DebugReportCallbackEXT Source # 
Instance details

Defined in Vulkan.Extensions.Handles

Zero DebugReportCallbackEXT Source # 
Instance details

Defined in Vulkan.Extensions.Handles

HasObjectType DebugReportCallbackEXT Source # 
Instance details

Defined in Vulkan.Extensions.Handles

IsHandle DebugReportCallbackEXT Source # 
Instance details

Defined in Vulkan.Extensions.Handles