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.
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.
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| Modifier and Type | Field and Description |
|---|---|
| public static final String | VK_EXT_TOOLING_INFO_EXTENSION_NAME
The extension name. |
| public static final int | VK_EXT_TOOLING_INFO_SPEC_VERSION
The extension specification version. |
| public static final int | VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES_EXT
Extends |
| public static final int | VK_TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT_EXT
Extends |
| public static final int | VK_TOOL_PURPOSE_DEBUG_MARKERS_BIT_EXT
Extends |
| public static final int | VK_TOOL_PURPOSE_DEBUG_REPORTING_BIT_EXT
Extends |
| public static final int | VK_TOOL_PURPOSE_MODIFYING_FEATURES_BIT_EXT
Extends |
| public static final int | VK_TOOL_PURPOSE_PROFILING_BIT_EXT
Extends |
| public static final int | VK_TOOL_PURPOSE_TRACING_BIT_EXT
Extends |
| public static final int | VK_TOOL_PURPOSE_VALIDATION_BIT_EXT
Extends |
| Access | Constructor and Description |
|---|---|
| protected |
| Modifier and Type | Method and Description |
|---|---|
| public static int | nvkGetPhysicalDeviceToolPropertiesEXT(VkPhysicalDevice physicalDevice, long
a pointer to an integer describing the number of tools active on pToolCount, long pToolProperties)physicalDevice.Unsafe version of: |
| public static int | vkGetPhysicalDeviceToolPropertiesEXT(VkPhysicalDevice
the handle to the physical device to query for active tools. physicalDevice, IntBuffer a pointer to an integer describing the number of tools active on pToolCount, VkPhysicalDeviceToolProperties.physicalDevice.either pToolPropertiesNULL or a pointer to an array of VkPhysicalDeviceToolProperties structures. |
| public static int | vkGetPhysicalDeviceToolPropertiesEXT(VkPhysicalDevice physicalDevice, int[] pToolCount, VkPhysicalDeviceToolProperties.
Array version of: |
| VK_EXT_TOOLING_INFO_EXTENSION_NAME | back to summary |
|---|---|
| public static final String VK_EXT_TOOLING_INFO_EXTENSION_NAME The extension name. | |
| VK_EXT_TOOLING_INFO_SPEC_VERSION | back to summary |
|---|---|
| public static final int VK_EXT_TOOLING_INFO_SPEC_VERSION The extension specification version. | |
| VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES_EXT | back to summary |
|---|---|
| public static final int VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES_EXT Extends | |
| VK_TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT_EXT | back to summary |
|---|---|
| public static final int VK_TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT_EXT Extends Enum values: | |
| VK_TOOL_PURPOSE_DEBUG_MARKERS_BIT_EXT | back to summary |
|---|---|
| public static final int VK_TOOL_PURPOSE_DEBUG_MARKERS_BIT_EXT Extends Enum values: | |
| VK_TOOL_PURPOSE_DEBUG_REPORTING_BIT_EXT | back to summary |
|---|---|
| public static final int VK_TOOL_PURPOSE_DEBUG_REPORTING_BIT_EXT Extends Enum values: | |
| VK_TOOL_PURPOSE_MODIFYING_FEATURES_BIT_EXT | back to summary |
|---|---|
| public static final int VK_TOOL_PURPOSE_MODIFYING_FEATURES_BIT_EXT Extends Enum values: | |
| VK_TOOL_PURPOSE_PROFILING_BIT_EXT | back to summary |
|---|---|
| public static final int VK_TOOL_PURPOSE_PROFILING_BIT_EXT Extends Enum values: | |
| VK_TOOL_PURPOSE_TRACING_BIT_EXT | back to summary |
|---|---|
| public static final int VK_TOOL_PURPOSE_TRACING_BIT_EXT Extends Enum values: | |
| VK_TOOL_PURPOSE_VALIDATION_BIT_EXT | back to summary |
|---|---|
| public static final int VK_TOOL_PURPOSE_VALIDATION_BIT_EXT Extends Enum values: | |
| EXTToolingInfo | back to summary |
|---|---|
| protected EXTToolingInfo() | |
| nvkGetPhysicalDeviceToolPropertiesEXT | back to summary |
|---|---|
| public static int nvkGetPhysicalDeviceToolPropertiesEXT(VkPhysicalDevice physicalDevice, long pToolCount, long pToolProperties) Unsafe version of:
| |
| vkGetPhysicalDeviceToolPropertiesEXT | back to summary |
|---|---|
| public static int vkGetPhysicalDeviceToolPropertiesEXT(VkPhysicalDevice physicalDevice, IntBuffer pToolCount, VkPhysicalDeviceToolProperties. See
| |
| vkGetPhysicalDeviceToolPropertiesEXT | back to summary |
|---|---|
| public static int vkGetPhysicalDeviceToolPropertiesEXT(VkPhysicalDevice physicalDevice, int[] pToolCount, VkPhysicalDeviceToolProperties. Array version of:
| |