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

Vulkan.Extensions.VK_EXT_debug_report

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

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 first argument. To just extract the pair pass (,) as the first 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

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

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

Instances details
Show DebugReportCallbackCreateInfoEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_debug_report

Generic DebugReportCallbackCreateInfoEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_debug_report

Associated Types

type Rep DebugReportCallbackCreateInfoEXT :: Type -> Type #

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

type Rep DebugReportCallbackCreateInfoEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_debug_report

type Rep DebugReportCallbackCreateInfoEXT = D1 ('MetaData "DebugReportCallbackCreateInfoEXT" "Vulkan.Extensions.VK_EXT_debug_report" "vulkan-3.5-inplace" 'False) (C1 ('MetaCons "DebugReportCallbackCreateInfoEXT" 'PrefixI 'True) (S1 ('MetaSel ('Just "flags") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 DebugReportFlagsEXT) :*: (S1 ('MetaSel ('Just "pfnCallback") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 PFN_vkDebugReportCallbackEXT) :*: S1 ('MetaSel ('Just "userData") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 (Ptr ())))))

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

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

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

'

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

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

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

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