diff options
| -rw-r--r-- | src/main.rs | 60 |
1 files changed, 29 insertions, 31 deletions
diff --git a/src/main.rs b/src/main.rs index 6c06a26..7c04245 100644 --- a/src/main.rs +++ b/src/main.rs @@ -350,11 +350,11 @@ impl Surreality { } // Request the LunarG validation layer, when appropriate. + let validation_layer_name = vk::ExtensionName::from_bytes( + b"VK_LAYER_KHRONOS_validation"); if enable_validation { - let layer_name = vk::ExtensionName::from_bytes( - b"VK_LAYER_KHRONOS_validation"); - if available_layers.contains(&layer_name) { - layers.push(layer_name.as_ptr()); + if available_layers.contains(&validation_layer_name) { + layers.push(validation_layer_name.as_ptr()); self.enable_validation.set(enable_validation).unwrap(); } else { @@ -506,48 +506,46 @@ impl Surreality { let mut extensions = Vec::new(); let mut layers = Vec::new(); + let validation_layer_name = vk::ExtensionName::from_bytes( + b"VK_LAYER_KHRONOS_validation"); if *self.enable_validation.get().unwrap() { - let layer_name = vk::ExtensionName::from_bytes( - b"VK_LAYER_KHRONOS_validation"); // It's not concerning if this isn't supported, because device // layers are ignored on recent versions, they're purely historical. - if available_extensions.contains(&layer_name) { - layers.push(layer_name.as_ptr()); + if available_extensions.contains(&validation_layer_name) { + layers.push(validation_layer_name.as_ptr()); } } + let portability_extension_name = vk::ExtensionName::from_bytes( + b"VK_KHR_portability_subset"); if *self.enable_portability.get().unwrap() { // This is untested, since the only scenario where it would come up // is on a Mac, which we don't actually support. Sorry, and good luck. - let layer_name = vk::ExtensionName::from_bytes( - b"VK_KHR_portability_subset"); - if available_extensions.contains(&layer_name) { - extensions.push(layer_name.as_ptr()); + if available_extensions.contains(&portability_extension_name) { + extensions.push(portability_extension_name.as_ptr()); } } - { - let layer_name = vk::KHR_SWAPCHAIN_EXTENSION.name; - if available_extensions.contains(&layer_name) { - // It's important that we not call the swapchain extension - // functions until we've verified the extension is supported. To - // emphasize that, we do it on a separate line. - // - // We've done this check once already, in scoring, and now here - // we are discarding its results a second time. We'll do it for the - // third and last time in swapchain creation. - if let Acceptable::Accepted(_) - = self.find_device_swapchain_features(&physical_device)? - { - extensions.push(layer_name.as_ptr()); - - self.enable_swapchain.set(true).unwrap(); - } else { - self.enable_swapchain.set(false).unwrap(); - } + let swapchain_extension_name = vk::KHR_SWAPCHAIN_EXTENSION.name; + if available_extensions.contains(&swapchain_extension_name) { + // It's important that we not call the swapchain extension + // functions until we've verified the extension is supported. To + // emphasize that, we do it on a separate line. + // + // We've done this check once already, in scoring, and now here + // we are discarding its results a second time. We'll do it for the + // third and last time in swapchain creation. + if let Acceptable::Accepted(_) + = self.find_device_swapchain_features(&physical_device)? + { + extensions.push(swapchain_extension_name.as_ptr()); + + self.enable_swapchain.set(true).unwrap(); } else { self.enable_swapchain.set(false).unwrap(); } + } else { + self.enable_swapchain.set(false).unwrap(); } // We have one or more queue family indices; we don't know a priori |