vkd3d: Load VK_LAYER_KHRONOS_validation if we enable debug mode.
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
This commit is contained in:
parent
9e8b2a22ed
commit
9073579b7a
|
@ -528,6 +528,33 @@ static HRESULT vkd3d_instance_init(struct vkd3d_instance *instance,
|
|||
instance_info.ppEnabledExtensionNames = extensions;
|
||||
vkd3d_free(user_extension_supported);
|
||||
|
||||
if (instance->config_flags & VKD3D_CONFIG_FLAG_VULKAN_DEBUG)
|
||||
{
|
||||
static const char *debug_layer_name = "VK_LAYER_KHRONOS_validation";
|
||||
VkLayerProperties *layers = NULL;
|
||||
uint32_t layer_count, i;
|
||||
|
||||
if (vk_global_procs->vkEnumerateInstanceLayerProperties(&layer_count, NULL) == VK_SUCCESS &&
|
||||
layer_count &&
|
||||
(layers = vkd3d_malloc(layer_count * sizeof(*layers))) &&
|
||||
vk_global_procs->vkEnumerateInstanceLayerProperties(&layer_count, layers) == VK_SUCCESS)
|
||||
{
|
||||
for (i = 0; i < layer_count; i++)
|
||||
{
|
||||
if (strcmp(layers[i].layerName, debug_layer_name) == 0)
|
||||
{
|
||||
instance_info.enabledLayerCount = 1;
|
||||
instance_info.ppEnabledLayerNames = &debug_layer_name;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (instance_info.enabledLayerCount == 0)
|
||||
ERR("Failed to enumerate instance layers, will not use VK_LAYER_KHRONOS_validation!\n");
|
||||
vkd3d_free(layers);
|
||||
}
|
||||
|
||||
vr = vk_global_procs->vkCreateInstance(&instance_info, NULL, &vk_instance);
|
||||
vkd3d_free((void *)extensions);
|
||||
if (vr < 0)
|
||||
|
|
|
@ -950,6 +950,7 @@ HRESULT vkd3d_load_vk_global_procs(struct vkd3d_vk_global_procs *procs,
|
|||
|
||||
LOAD_GLOBAL_PFN(vkCreateInstance)
|
||||
LOAD_GLOBAL_PFN(vkEnumerateInstanceExtensionProperties)
|
||||
LOAD_GLOBAL_PFN(vkEnumerateInstanceLayerProperties)
|
||||
MAYBE_LOAD_GLOBAL_PFN(vkEnumerateInstanceVersion)
|
||||
|
||||
TRACE("Loaded global Vulkan procs.\n");
|
||||
|
|
|
@ -80,6 +80,7 @@ struct vkd3d_vk_global_procs
|
|||
PFN_vkCreateInstance vkCreateInstance;
|
||||
PFN_vkEnumerateInstanceVersion vkEnumerateInstanceVersion;
|
||||
PFN_vkEnumerateInstanceExtensionProperties vkEnumerateInstanceExtensionProperties;
|
||||
PFN_vkEnumerateInstanceLayerProperties vkEnumerateInstanceLayerProperties;
|
||||
PFN_vkGetInstanceProcAddr vkGetInstanceProcAddr;
|
||||
};
|
||||
|
||||
|
|
Loading…
Reference in New Issue