| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
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
- Ratification Status
- Not ratified
- Extension and Version Dependencies
- None
- API Interactions
- Interacts with VK_VERSION_1_1
- Deprecation State
- Deprecated by VK_EXT_debug_utils extension
- Special Use
- Contact
- Courtney Goeltzenleuchter @courtney-g%0A*Here describe the issue or question you have about the VK_EXT_debug_report extension*
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
EXT_DEBUG_REPORT_SPEC_VERSIONExtending
ObjectType:Extending
Result:Extending
StructureType:
If Vulkan Version 1.1 is supported:
Extending
DebugReportObjectTypeEXT:
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 chain of the
InstanceCreateInfo structure passed
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 = {
.sType = VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT,
.pNext = NULL,
.flags = VK_DEBUG_REPORT_ERROR_BIT_EXT |
VK_DEBUG_REPORT_WARNING_BIT_EXT,
.pfnCallback = myOutputDebugString,
.pUserData = NULL
};
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 = {
.sType = VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT,
.pNext = NULL,
.flags = VK_DEBUG_REPORT_WARNING_BIT_EXT,
.pfnCallback = mystdOutLogger,
.pUserData = NULL
};
res = vkCreateDebugReportCallbackEXT(instance, &callback3, &cb3);
if (res != VK_SUCCESS)
...
vkDestroyDebugReportCallbackEXT(instance, cb1);
vkDestroyDebugReportCallbackEXT(instance, cb2);
vkDestroyDebugReportCallbackEXT(instance, cb3);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.
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 C and C++ compilers in both 32-bit and 64-bit ABIs. 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 application 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)
- Moved definition of
DebugReportObjectTypeEXTfrom debug marker chapter
- Moved definition of
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
No cross-references are available
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
- createDebugReportCallbackEXT :: MonadIO io => Instance -> DebugReportCallbackCreateInfoEXT -> ("allocator" ::: Maybe AllocationCallbacks) -> io DebugReportCallbackEXT
- withDebugReportCallbackEXT :: MonadIO io => Instance -> DebugReportCallbackCreateInfoEXT -> Maybe AllocationCallbacks -> (io DebugReportCallbackEXT -> (DebugReportCallbackEXT -> io ()) -> r) -> r
- destroyDebugReportCallbackEXT :: MonadIO io => Instance -> DebugReportCallbackEXT -> ("allocator" ::: Maybe AllocationCallbacks) -> io ()
- debugReportMessageEXT :: MonadIO io => Instance -> DebugReportFlagsEXT -> DebugReportObjectTypeEXT -> ("object" ::: Word64) -> ("location" ::: Word64) -> ("messageCode" ::: Int32) -> ("layerPrefix" ::: ByteString) -> ("message" ::: ByteString) -> io ()
- pattern STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT :: StructureType
- pattern ERROR_VALIDATION_FAILED_EXT :: Result
- pattern DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT :: DebugReportObjectTypeEXT
- pattern DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT :: DebugReportObjectTypeEXT
- data DebugReportCallbackCreateInfoEXT = DebugReportCallbackCreateInfoEXT {}
- type DebugReportFlagsEXT = DebugReportFlagBitsEXT
- newtype DebugReportFlagBitsEXT where
- DebugReportFlagBitsEXT Flags
- pattern DEBUG_REPORT_INFORMATION_BIT_EXT :: DebugReportFlagBitsEXT
- pattern DEBUG_REPORT_WARNING_BIT_EXT :: DebugReportFlagBitsEXT
- pattern DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT :: DebugReportFlagBitsEXT
- pattern DEBUG_REPORT_ERROR_BIT_EXT :: DebugReportFlagBitsEXT
- pattern DEBUG_REPORT_DEBUG_BIT_EXT :: DebugReportFlagBitsEXT
- newtype DebugReportObjectTypeEXT where
- DebugReportObjectTypeEXT Int32
- 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_CUDA_FUNCTION_NV_EXT :: DebugReportObjectTypeEXT
- pattern DEBUG_REPORT_OBJECT_TYPE_CUDA_MODULE_NV_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
- type PFN_vkDebugReportCallbackEXT = FunPtr FN_vkDebugReportCallbackEXT
- type FN_vkDebugReportCallbackEXT = DebugReportFlagsEXT -> DebugReportObjectTypeEXT -> ("object" ::: Word64) -> ("location" ::: CSize) -> ("messageCode" ::: Int32) -> ("pLayerPrefix" ::: Ptr CChar) -> ("pMessage" ::: Ptr CChar) -> ("pUserData" ::: Ptr ()) -> IO Bool32
- type EXT_DEBUG_REPORT_SPEC_VERSION = 10
- pattern EXT_DEBUG_REPORT_SPEC_VERSION :: Integral a => a
- type EXT_DEBUG_REPORT_EXTENSION_NAME = "VK_EXT_debug_report"
- pattern EXT_DEBUG_REPORT_EXTENSION_NAME :: (Eq a, IsString a) => a
- newtype DebugReportCallbackEXT = DebugReportCallbackEXT Word64
Documentation
createDebugReportCallbackEXT Source #
Arguments
| :: MonadIO io | |
| => Instance |
|
| -> DebugReportCallbackCreateInfoEXT |
|
| -> ("allocator" ::: Maybe AllocationCallbacks) |
|
| -> io DebugReportCallbackEXT |
vkCreateDebugReportCallbackEXT - Create a debug report callback object
Valid Usage (Implicit)
-
instancemust be a validInstancehandle
-
pCreateInfomust be a valid pointer to a validDebugReportCallbackCreateInfoEXTstructure - If
pAllocatoris notNULL,pAllocatormust be a valid pointer to a validAllocationCallbacksstructure -
pCallbackmust be a valid pointer to aDebugReportCallbackEXThandle
Return Codes
See Also
VK_EXT_debug_report,
AllocationCallbacks,
DebugReportCallbackCreateInfoEXT,
DebugReportCallbackEXT,
Instance
withDebugReportCallbackEXT :: 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
| :: MonadIO io | |
| => Instance |
|
| -> DebugReportCallbackEXT |
|
| -> ("allocator" ::: Maybe AllocationCallbacks) |
|
| -> io () |
vkDestroyDebugReportCallbackEXT - Destroy a debug report callback object
Valid Usage
- If
AllocationCallbackswere provided whencallbackwas created, a compatible set of callbacks must be provided here
- If no
AllocationCallbackswere provided whencallbackwas created,pAllocatormust beNULL
Valid Usage (Implicit)
-
instancemust be a validInstancehandle
- If
callbackis notNULL_HANDLE,callbackmust be a validDebugReportCallbackEXThandle - If
pAllocatoris notNULL,pAllocatormust be a valid pointer to a validAllocationCallbacksstructure - If
callbackis a valid handle, it must have been created, allocated, or retrieved frominstance
Host Synchronization
- Host access to
callbackmust be externally synchronized
See Also
VK_EXT_debug_report,
AllocationCallbacks,
DebugReportCallbackEXT,
Instance
debugReportMessageEXT Source #
Arguments
| :: MonadIO io | |
| => Instance |
|
| -> DebugReportFlagsEXT |
|
| -> DebugReportObjectTypeEXT |
|
| -> ("object" ::: Word64) |
|
| -> ("location" ::: Word64) |
|
| -> ("messageCode" ::: Int32) |
|
| -> ("layerPrefix" ::: ByteString) |
|
| -> ("message" ::: ByteString) |
|
| -> 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
-
objectmust be a Vulkan object orNULL_HANDLE
- If
objectTypeis notDEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXTandobjectis notNULL_HANDLE,objectmust be a Vulkan object of the corresponding type associated withobjectTypeas defined in https://registry.khronos.org/vulkan/specs/latest/html/vkspec.html#debug-report-object-types
Valid Usage (Implicit)
-
instancemust be a validInstancehandle
-
flagsmust be a valid combination ofDebugReportFlagBitsEXTvalues -
flagsmust not be0 -
objectTypemust be a validDebugReportObjectTypeEXTvalue -
pLayerPrefixmust be a null-terminated UTF-8 string -
pMessagemust be a null-terminated UTF-8 string
See Also
VK_EXT_debug_report,
DebugReportFlagsEXT, DebugReportObjectTypeEXT,
Instance
pattern ERROR_VALIDATION_FAILED_EXT :: Result Source #
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
newtype DebugReportFlagBitsEXT Source #
VkDebugReportFlagBitsEXT - Bitmask specifying events which cause a debug report callback
Description
DEBUG_REPORT_ERROR_BIT_EXTspecifies that the application has violated a valid usage condition of the specification.
DEBUG_REPORT_WARNING_BIT_EXTspecifies use of Vulkan that may expose an application 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.DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXTspecifies a potentially non-optimal use of Vulkan, e.g. usingcmdClearColorImagewhen settingAttachmentDescription::loadOptoATTACHMENT_LOAD_OP_CLEARwould have worked.DEBUG_REPORT_INFORMATION_BIT_EXTspecifies an informational message such as resource details that may be handy when debugging an application.DEBUG_REPORT_DEBUG_BIT_EXTspecifies diagnostic information from the implementation and layers.
See Also
Constructors
| DebugReportFlagBitsEXT Flags |
Bundled Patterns
Instances
newtype DebugReportObjectTypeEXT Source #
VkDebugReportObjectTypeEXT - Specify the type of an object handle
Description
'
DebugReportObjectTypeEXT and Vulkan Handle Relationship
The primary expected use of ERROR_VALIDATION_FAILED_EXT is for
validation layer testing to prevent invalid commands from reaching the
ICD. It is not expected that an application would see this error code
during normal use of the validation layers. If an application returns
TRUE in
DebugUtilsMessengerCallbackDataEXT,
the validation layers will return this error code instead of passing the
command down the dispatch chain.
See Also
PFN_vkDebugReportCallbackEXT,
VK_EXT_debug_marker,
VK_EXT_debug_report,
DebugMarkerObjectNameInfoEXT,
DebugMarkerObjectTagInfoEXT,
debugReportMessageEXT
Constructors
| DebugReportObjectTypeEXT Int32 |
Bundled Patterns
Instances
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://registry.khronos.org/vulkan/specs/latest/html/vkspec.html#debug-report-object-types.
See Also
VK_EXT_debug_report,
Bool32,
DebugReportCallbackCreateInfoEXT, DebugReportFlagsEXT,
DebugReportObjectTypeEXT
type FN_vkDebugReportCallbackEXT = DebugReportFlagsEXT -> DebugReportObjectTypeEXT -> ("object" ::: Word64) -> ("location" ::: CSize) -> ("messageCode" ::: Int32) -> ("pLayerPrefix" ::: Ptr CChar) -> ("pMessage" ::: Ptr CChar) -> ("pUserData" ::: Ptr ()) -> IO Bool32 Source #
type EXT_DEBUG_REPORT_SPEC_VERSION = 10 Source #
pattern EXT_DEBUG_REPORT_SPEC_VERSION :: Integral a => a Source #
type EXT_DEBUG_REPORT_EXTENSION_NAME = "VK_EXT_debug_report" Source #
pattern EXT_DEBUG_REPORT_EXTENSION_NAME :: (Eq a, IsString a) => a Source #
newtype DebugReportCallbackEXT Source #
VkDebugReportCallbackEXT - Opaque handle to a debug report callback object
See Also
VK_DEFINE_NON_DISPATCHABLE_HANDLE,
VK_EXT_debug_report,
createDebugReportCallbackEXT,
destroyDebugReportCallbackEXT
Constructors
| DebugReportCallbackEXT Word64 |