Skip to content

Commit 25a23ee

Browse files
llyyrhaasn
authored andcommitted
vulkan: log vulkan driver information
1 parent 563ea4a commit 25a23ee

File tree

4 files changed

+27
-0
lines changed

4 files changed

+27
-0
lines changed

src/vulkan/context.c

+14
Original file line numberDiff line numberDiff line change
@@ -1485,8 +1485,13 @@ pl_vulkan pl_vulkan_create(pl_log log, const struct pl_vulkan_params *params)
14851485
}
14861486
}
14871487

1488+
VkPhysicalDeviceDriverProperties driver_props = {
1489+
.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES,
1490+
};
1491+
14881492
VkPhysicalDeviceIDPropertiesKHR id_props = {
14891493
.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES_KHR,
1494+
.pNext = &driver_props,
14901495
};
14911496

14921497
VkPhysicalDeviceProperties2KHR prop = {
@@ -1504,6 +1509,15 @@ pl_vulkan pl_vulkan_create(pl_log log, const struct pl_vulkan_params *params)
15041509
PL_INFO(vk, " Device UUID: %s", PRINT_UUID(id_props.deviceUUID));
15051510
PL_INFO(vk, " Driver version: %"PRIx32, prop.properties.driverVersion);
15061511
PL_INFO(vk, " API version: %d.%d.%d", PRINTF_VER(prop.properties.apiVersion));
1512+
PL_INFO(vk, " Driver ID: %s", vk_driver_id_name(driver_props.driverID));
1513+
PL_INFO(vk, " Driver name: %s", driver_props.driverName);
1514+
PL_INFO(vk, " Driver info: %s", driver_props.driverInfo);
1515+
PL_INFO(vk, " Conformance version: %u.%u.%u.%u",
1516+
driver_props.conformanceVersion.major,
1517+
driver_props.conformanceVersion.minor,
1518+
driver_props.conformanceVersion.subminor,
1519+
driver_props.conformanceVersion.patch);
1520+
PL_INFO(vk, " Driver UUID: %s", PRINT_UUID(id_props.driverUUID));
15071521

15081522
// Needed by device_init
15091523
vk->api_ver = prop.properties.apiVersion;

src/vulkan/utils.h

+1
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
#include "common.h"
2121

2222
// Return a human-readable name for various vulkan enums
23+
const char *vk_driver_id_name(VkDriverId driver);
2324
const char *vk_res_str(VkResult res);
2425
const char *vk_fmt_name(VkFormat fmt);
2526
const char *vk_csp_name(VkColorSpaceKHR csp);

src/vulkan/utils_gen.c.j2

+11
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,17 @@
11
#define VK_ENABLE_BETA_EXTENSIONS
22
#include "vulkan/utils.h"
33

4+
const char *vk_driver_id_name(VkDriverId driver)
5+
{
6+
switch (driver) {
7+
{% for driver in vkdrivers %}
8+
case {{ driver }}: return "{{ driver }}";
9+
{% endfor %}
10+
11+
default: return "unknown driver";
12+
}
13+
}
14+
415
const char *vk_res_str(VkResult res)
516
{
617
switch (res) {

src/vulkan/utils_gen.py

+1
Original file line numberDiff line numberDiff line change
@@ -211,6 +211,7 @@ def find_registry_xml(datadir):
211211
vkhandles = get_vkenum(registry, 'VkExternalMemoryHandleTypeFlagBits'),
212212
vkalphas = get_vkenum(registry, 'VkCompositeAlphaFlagBitsKHR'),
213213
vktransforms = get_vkenum(registry, 'VkSurfaceTransformFlagBitsKHR'),
214+
vkdrivers = get_vkenum(registry, 'VkDriverId'),
214215
vkobjects = get_vkobjects(registry),
215216
vkstructs = get_vkstructs(registry),
216217
vkaccess = get_vkaccess(registry),

0 commit comments

Comments
 (0)