Class EXTToolingInfo


  • public class EXTToolingInfo
    extends java.lang.Object
    When an error occurs during application development, a common question is "What tools are actually running right now?" This extension adds the ability to query that information directly from the Vulkan implementation.

    Outdated versions of one tool might not play nicely with another, or perhaps a tool is not actually running when it should have been. Trying to figure that out can cause headaches as it is necessary to consult each known tool to figure out what is going on — in some cases the tool might not even be known.

    Typically, the expectation is that developers will simply print out this information for visual inspection when an issue occurs, however a small amount of semantic information about what the tool is doing is provided to help identify it programmatically. For example, if the advertised limits or features of an implementation are unexpected, is there a tool active which modifies these limits? Or if an application is providing debug markers, but the implementation is not actually doing anything with that information, this can quickly point that out.

    Promotion to Vulkan 1.3

    Functionality in this extension is included in core Vulkan 1.3, with the EXT suffix omitted. The original type, enum and command names are still available as aliases of the core functionality.

    Examples
    
     uint32_t num_tools;
     VkPhysicalDeviceToolPropertiesEXT *pToolProperties;
     vkGetPhysicalDeviceToolPropertiesEXT(physicalDevice, &num_tools, NULL);
     
     pToolProperties = (VkPhysicalDeviceToolPropertiesEXT*)malloc(sizeof(VkPhysicalDeviceToolPropertiesEXT) * num_tools);
     
     vkGetPhysicalDeviceToolPropertiesEXT(physicalDevice, &num_tools, pToolProperties);
     
     for (int i = 0; i < num_tools; ++i) {
         printf("%s:\n", pToolProperties[i].name);
         printf("Version:\n");
         printf("%s:\n", pToolProperties[i].version);
         printf("Description:\n");
         printf("\t%s\n", pToolProperties[i].description);
         printf("Purposes:\n");
         printf("\t%s\n", VkToolPurposeFlagBitsEXT_to_string(pToolProperties[i].purposes));
         if (strnlen_s(pToolProperties[i].layer,VK_MAX_EXTENSION_NAME_SIZE) > 0) {
             printf("Corresponding Layer:\n");
             printf("\t%s\n", pToolProperties[i].layer);
         }
     }
    VK_EXT_tooling_info
    Name String
    VK_EXT_tooling_info
    Extension Type
    Device extension
    Registered Extension Number
    246
    Revision
    1
    Extension and Version Dependencies
    • Requires Vulkan 1.0
    Deprecation state
    Contact
    Other Extension Metadata
    Last Modified Date
    2018-11-05
    Interactions and External Dependencies
    • Promoted to Vulkan 1.3 Core
    Contributors
    • Rolando Caloca
    • Matthaeus Chajdas
    • Baldur Karlsson
    • Daniel Rakos