From e154cc0312bf857d3ba618947686c6efee5701e9 Mon Sep 17 00:00:00 2001 From: Erich Gubler Date: Mon, 5 Feb 2024 14:21:22 -0500 Subject: [PATCH] refactor(vulkan): hoist validation layer check This will be used shortly for checking if we should proceed with enabling GPU-based validation. --- wgpu-hal/src/vulkan/instance.rs | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/wgpu-hal/src/vulkan/instance.rs b/wgpu-hal/src/vulkan/instance.rs index c4ef573461..3d4cc84b11 100644 --- a/wgpu-hal/src/vulkan/instance.rs +++ b/wgpu-hal/src/vulkan/instance.rs @@ -643,6 +643,10 @@ impl crate::Instance for super::Instance { .find(|inst_layer| cstr_from_bytes_until_nul(&inst_layer.layer_name) == Some(name)) } + let validation_layer_name = + CStr::from_bytes_with_nul(b"VK_LAYER_KHRONOS_validation\0").unwrap(); + let validation_layer_properties = find_layer(&instance_layers, validation_layer_name); + let nv_optimus_layer = CStr::from_bytes_with_nul(b"VK_LAYER_NV_optimus\0").unwrap(); let has_nv_optimus = find_layer(&instance_layers, nv_optimus_layer).is_some(); @@ -654,9 +658,7 @@ impl crate::Instance for super::Instance { // Request validation layer if asked. let mut debug_utils = None; if desc.flags.intersects(wgt::InstanceFlags::VALIDATION) { - let validation_layer_name = - CStr::from_bytes_with_nul(b"VK_LAYER_KHRONOS_validation\0").unwrap(); - if let Some(layer_properties) = find_layer(&instance_layers, validation_layer_name) { + if let Some(layer_properties) = validation_layer_properties { layers.push(validation_layer_name); if extensions.contains(&ext::DebugUtils::name()) {