vulkan-3.2.0.0: Bindings to the Vulkan graphics API.

Safe HaskellNone
LanguageHaskell2010

Graphics.Vulkan.Extensions.VK_EXT_debug_report

Synopsis

Documentation

createDebugReportCallbackEXT :: forall io. MonadIO io => Instance -> DebugReportCallbackCreateInfoEXT -> ("allocator" ::: Maybe AllocationCallbacks) -> io DebugReportCallbackEXT Source #

vkCreateDebugReportCallbackEXT - Create a debug report callback object

Parameters

  • instance is the instance the callback will be logged on.

Valid Usage (Implicit)

  • instance must be a valid Instance handle

Return Codes

Success
Failure

See Also

AllocationCallbacks, DebugReportCallbackCreateInfoEXT, DebugReportCallbackEXT, Instance

withDebugReportCallbackEXT :: forall io r. MonadIO io => (io DebugReportCallbackEXT -> (DebugReportCallbackEXT -> io ()) -> r) -> Instance -> DebugReportCallbackCreateInfoEXT -> Maybe AllocationCallbacks -> 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 first argument. To just extract the pair pass '(,)' as the first argument.

destroyDebugReportCallbackEXT :: forall io. MonadIO io => Instance -> DebugReportCallbackEXT -> ("allocator" ::: Maybe AllocationCallbacks) -> io () Source #

vkDestroyDebugReportCallbackEXT - Destroy a debug report callback object

Parameters

  • instance is the instance where the callback was created.
  • 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.
  • pAllocator controls host memory allocation as described in the Memory Allocation chapter.

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
  • callback must be a valid DebugReportCallbackEXT handle
  • If pAllocator is not NULL, pAllocator must be a valid pointer to a valid AllocationCallbacks structure
  • callback must have been created, allocated, or retrieved from instance

Host Synchronization

  • Host access to callback must be externally synchronized

See Also

AllocationCallbacks, DebugReportCallbackEXT, Instance

debugReportMessageEXT :: forall io. MonadIO io => Instance -> DebugReportFlagsEXT -> DebugReportObjectTypeEXT -> ("object" ::: Word64) -> ("location" ::: Word64) -> ("messageCode" ::: Int32) -> ("layerPrefix" ::: ByteString) -> ("message" ::: ByteString) -> io () Source #

vkDebugReportMessageEXT - Inject a message into a debug stream

Parameters

  • instance is the debug stream’s Instance.
  • flags specifies the DebugReportFlagBitsEXT classification of this event/message.
  • objectType is a DebugReportObjectTypeEXT 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. object can be 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

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

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, DebugReportFlagsEXT, StructureType, createDebugReportCallbackEXT

Constructors

DebugReportCallbackCreateInfoEXT 

Fields

Instances
Show DebugReportCallbackCreateInfoEXT Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_EXT_debug_report

Storable DebugReportCallbackCreateInfoEXT Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_EXT_debug_report

FromCStruct DebugReportCallbackCreateInfoEXT Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_EXT_debug_report

ToCStruct DebugReportCallbackCreateInfoEXT Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_EXT_debug_report

Zero DebugReportCallbackCreateInfoEXT Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_EXT_debug_report

newtype DebugReportFlagBitsEXT Source #

VkDebugReportFlagBitsEXT - Bitmask specifying events which cause a debug report callback

See Also

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
Eq DebugReportFlagBitsEXT Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_EXT_debug_report

Ord DebugReportFlagBitsEXT Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_EXT_debug_report

Read DebugReportFlagBitsEXT Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_EXT_debug_report

Show DebugReportFlagBitsEXT Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_EXT_debug_report

Storable DebugReportFlagBitsEXT Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_EXT_debug_report

Bits DebugReportFlagBitsEXT Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_EXT_debug_report

Zero DebugReportFlagBitsEXT Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_EXT_debug_report

newtype DebugReportObjectTypeEXT Source #

VkDebugReportObjectTypeEXT - Specify the type of an object handle

Description

'

DebugReportObjectTypeEXT Vulkan Handle Type
DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT Unknown/Undefined Handle
DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT Instance
DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT PhysicalDevice
DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT Device
DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT Queue
DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT Semaphore
DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT CommandBuffer
DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT Fence
DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT DeviceMemory
DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT Buffer
DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT Image
DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT Event
DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT QueryPool
DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT BufferView
DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT ImageView
DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT ShaderModule
DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT PipelineCache
DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT PipelineLayout
DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT RenderPass
DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT Pipeline
DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT DescriptorSetLayout
DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT Sampler
DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT DescriptorPool
DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT DescriptorSet
DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT Framebuffer
DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT CommandPool
DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT SurfaceKHR
DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT SwapchainKHR
DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT DebugReportCallbackEXT
DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT DisplayKHR
DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT DisplayModeKHR
DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT DescriptorUpdateTemplate

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

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_SAMPLER_YCBCR_CONVERSION_EXT :: DebugReportObjectTypeEXT 
pattern DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT :: DebugReportObjectTypeEXT 
pattern DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT :: DebugReportObjectTypeEXT 
Instances
Eq DebugReportObjectTypeEXT Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_EXT_debug_report

Ord DebugReportObjectTypeEXT Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_EXT_debug_report

Read DebugReportObjectTypeEXT Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_EXT_debug_report

Show DebugReportObjectTypeEXT Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_EXT_debug_report

Storable DebugReportObjectTypeEXT Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_EXT_debug_report

Zero DebugReportObjectTypeEXT Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_EXT_debug_report

type PFN_vkDebugReportCallbackEXT = FunPtr FN_vkDebugReportCallbackEXT Source #

PFN_vkDebugReportCallbackEXT - Application-defined debug report callback function

Parameters

  • objectType is a DebugReportObjectTypeEXT 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 DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT, object is undefined.
  • location is a component (layer, driver, loader) defined value specifying 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 DebugReportCallbackEXT was created.

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

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

createDebugReportCallbackEXT, destroyDebugReportCallbackEXT

Instances
Eq DebugReportCallbackEXT Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.Handles

Ord DebugReportCallbackEXT Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.Handles

Show DebugReportCallbackEXT Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.Handles

Storable DebugReportCallbackEXT Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.Handles

Zero DebugReportCallbackEXT Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.Handles

IsHandle DebugReportCallbackEXT Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.Handles