MCPcopy Create free account
hub / github.com/KhronosGroup/Vulkan-Samples / enable_layer_setting

Function enable_layer_setting

framework/vulkan_sample.h:718–763  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

716 [](vk::ExtensionProperties const &extension) { return strcmp(extension.extensionName, VK_EXT_LAYER_SETTINGS_EXTENSION_NAME) == 0; }))
717 {
718 is_available = true;
719 }
720 }
721#endif
722
723 if (!is_available)
724 {
725 LOGW("Layer: {} not found. Disabling layer setting: {}", requested_layer_setting.pLayerName, requested_layer_setting.pSettingName);
726 return false;
727 }
728
729 bool is_already_enabled = std::ranges::any_of(enabled_layer_settings,
730 [&requested_layer_setting](vk::LayerSettingEXT const &enabled_layer_setting) {
731 return (strcmp(requested_layer_setting.pLayerName, enabled_layer_setting.pLayerName) == 0) &&
732 (strcmp(requested_layer_setting.pSettingName, enabled_layer_setting.pSettingName) == 0);
733 });
734
735 if (is_already_enabled)
736 {
737 LOGW("Ignoring duplicated layer setting {} in layer {}.", requested_layer_setting.pSettingName, requested_layer_setting.pLayerName);
738 return false;
739 }
740
741 LOGI("Enabling layer setting {} in layer {}.", requested_layer_setting.pSettingName, requested_layer_setting.pLayerName);
742 enabled_layer_settings.push_back(requested_layer_setting);
743 return true;
744}
745
746inline bool enable_layer_setting(VkLayerSettingEXT const &requested_layer_setting,
747 uint32_t enabled_layers_count,
748 char const *const *enabled_layers,
749 std::vector<vk::LayerSettingEXT> &enabled_layer_settings)
750{
751 return enable_layer_setting(
752 reinterpret_cast<vk::LayerSettingEXT const &>(requested_layer_setting), enabled_layers_count, enabled_layers, enabled_layer_settings);
753}
754
755template <vkb::BindingType bindingType>
756inline void VulkanSample<bindingType>::extend_instance_create_info_impl(vkb::StructureChainBuilderCpp<vk::InstanceCreateInfo> &scb) const
757{
758 vk::InstanceCreateInfo const *create_info = scb.get_struct<vk::InstanceCreateInfo>();
759 assert(create_info);
760
761#if defined(VKB_DEBUG) || defined(VKB_VALIDATION_LAYERS)
762 if (contains(create_info->enabledExtensionCount, create_info->ppEnabledExtensionNames, VK_EXT_DEBUG_UTILS_EXTENSION_NAME))
763 {
764 scb.add_struct(get_debug_utils_messenger_create_info());
765 }
766 else if (contains(create_info->enabledExtensionCount, create_info->ppEnabledExtensionNames, VK_EXT_DEBUG_REPORT_EXTENSION_NAME))

Callers 1

Calls

no outgoing calls

Tested by

no test coverage detected