chromium/third_party/vulkan-validation-layers/src/layers/layer_options.h

/* Copyright (c) 2022-2024 The Khronos Group Inc.
 * Copyright (c) 2022-2024 Valve Corporation
 * Copyright (c) 2022-2024 LunarG, Inc.
 * Modifications Copyright (C) 2020 Advanced Micro Devices, Inc. All rights reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

#pragma once
#include <array>
#include <vector>
#include <string>
#include <cstdint>
#include <vulkan/vulkan.h>
#include <vulkan/utility/vk_struct_helper.hpp>
#include "containers/custom_containers.h"

#define OBJECT_LAYER_NAME

enum ValidationCheckDisables {};

enum ValidationCheckEnables {};

// CHECK_DISABLED and CHECK_ENABLED vectors are containers for bools that can opt in or out of specific classes of validation
// checks. Enum values can be specified via the vk_layer_settings.txt config file or at CreateInstance time via the
// VK_EXT_validation_features extension that can selectively disable or enable checks.
enum DisableFlags {};

enum EnableFlags {};

CHECK_DISABLED;
CHECK_ENABLED;

// General settings to be used by all parts of the Validation Layers
struct GlobalSettings {};

class DebugReport;
struct GpuAVSettings;
struct DebugPrintfSettings;
struct SyncValSettings;
struct MessageFormatSettings;
struct ConfigAndEnvSettings {};
const std::vector<std::string> &GetDisableFlagNameHelper();
const std::vector<std::string> &GetEnableFlagNameHelper();

// Process validation features, flags and settings specified through extensions, a layer settings file, or environment variables
void ProcessConfigAndEnvSettings(ConfigAndEnvSettings *settings_data);