vkDebugReportMessageEXT(3)

# vkDebugReportMessageEXT(3) Manual Page

## Name

vkDebugReportMessageEXT - Inject a message into a debug stream

## C Specification

To inject its own messages into the debug stream, call:

    // Provided by VK_EXT_debug_report
    void vkDebugReportMessageEXT(
        VkInstance                                  instance,
        VkDebugReportFlagsEXT                       flags,
        VkDebugReportObjectTypeEXT                  objectType,
        uint64_t                                    object,
        size_t                                      location,
        int32_t                                     messageCode,
        const char*                                 pLayerPrefix,
        const char*                                 pMessage);

## Parameters

- `instance` is the debug stream’s VkInstance.

- `flags` specifies the VkDebugReportFlagBitsEXT classification of this event/message.

- `objectType` is a VkDebugReportObjectTypeEXT 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 VK_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 UTF-8 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

- VUID-vkDebugReportMessageEXT-object-01241
  `object` must be a Vulkan object or VK_NULL_HANDLE

- VUID-vkDebugReportMessageEXT-objectType-01498
  If `objectType` is not VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT and `object` is not VK_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

Valid Usage (Implicit)

- VUID-vkDebugReportMessageEXT-instance-parameter
  `instance` must be a valid VkInstance handle

- VUID-vkDebugReportMessageEXT-flags-parameter
  `flags` must be a valid combination of VkDebugReportFlagBitsEXT values

- VUID-vkDebugReportMessageEXT-flags-requiredbitmask
  `flags` must not be `0`

- VUID-vkDebugReportMessageEXT-objectType-parameter
  `objectType` must be a valid VkDebugReportObjectTypeEXT value

- VUID-vkDebugReportMessageEXT-pLayerPrefix-parameter
  `pLayerPrefix` must be a null-terminated UTF-8 string

- VUID-vkDebugReportMessageEXT-pMessage-parameter
  `pMessage` must be a null-terminated UTF-8 string

## See Also

VK_EXT_debug_report, VkDebugReportFlagsEXT, VkDebugReportObjectTypeEXT, VkInstance

## Document Notes

For more information, see the Vulkan Specification.

This page is extracted from the Vulkan Specification. Fixes and changes should be made to the Specification, not directly.

## Copyright

Copyright 2014-2026 The Khronos Group Inc.

SPDX-License-Identifier: CC-BY-4.0