mirror of
https://github.com/KhronosGroup/Vulkan-Utility-Libraries.git
synced 2025-06-01 09:27:54 +00:00
72 lines
2 KiB
C
72 lines
2 KiB
C
// Copyright 2023 The Khronos Group Inc.
|
|
// Copyright 2023 Valve Corporation
|
|
// Copyright 2023 LunarG, Inc.
|
|
//
|
|
// SPDX-License-Identifier: Apache-2.0
|
|
//
|
|
// Author(s):
|
|
// - Christophe Riccio <christophe@lunarg.com>
|
|
|
|
#pragma once
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
#include <vulkan/vk_layer.h>
|
|
|
|
#define VK_EXT_layer_settings 1
|
|
#define VK_EXT_LAYER_SETTINGS_SPEC_VERSION 1
|
|
#define VK_EXT_LAYER_SETTINGS_EXTENSION_NAME "VK_EXT_layer_settings"
|
|
//
|
|
// NOTE: VK_STRUCTURE_TYPE_MAX_ENUM - 1 is used by the intel driver.
|
|
// NOTE: VK_STRUCTURE_TYPE_MAX_ENUM - 42 is used by the validation layers
|
|
#define VK_STRUCTURE_TYPE_LAYER_SETTINGS_EXT ((VkStructureType)(VK_STRUCTURE_TYPE_MAX_ENUM - 43))
|
|
#define VK_STRUCTURE_TYPE_LAYER_SETTING_PROPERTIES_EXT ((VkStructureType)(VK_STRUCTURE_TYPE_MAX_ENUM - 44))
|
|
|
|
typedef enum VkLayerSettingTypeEXT {
|
|
VK_LAYER_SETTING_TYPE_BOOL32_EXT = 0,
|
|
VK_LAYER_SETTING_TYPE_INT32_EXT,
|
|
VK_LAYER_SETTING_TYPE_INT64_EXT,
|
|
VK_LAYER_SETTING_TYPE_UINT32_EXT,
|
|
VK_LAYER_SETTING_TYPE_UINT64_EXT,
|
|
VK_LAYER_SETTING_TYPE_FLOAT32_EXT,
|
|
VK_LAYER_SETTING_TYPE_FLOAT64_EXT,
|
|
VK_LAYER_SETTING_TYPE_STRING_EXT,
|
|
VK_LAYER_SETTING_TYPE_FRAMESET_EXT
|
|
} VkLayerSettingTypeEXT;
|
|
|
|
typedef struct VkFramesetEXT {
|
|
uint32_t first;
|
|
uint32_t count;
|
|
uint32_t step;
|
|
} VkFramesetEXT;
|
|
|
|
typedef struct VkLayerSettingEXT {
|
|
const char *pLayerName;
|
|
const char *pSettingName;
|
|
VkLayerSettingTypeEXT type;
|
|
uint32_t count;
|
|
const void *pValues;
|
|
} VkLayerSettingEXT;
|
|
|
|
typedef struct VkLayerSettingsCreateInfoEXT {
|
|
VkStructureType sType;
|
|
const void *pNext;
|
|
uint32_t settingCount;
|
|
const VkLayerSettingEXT *pSettings;
|
|
} VkLayerSettingsCreateInfoEXT;
|
|
|
|
typedef struct VkLayerSettingPropertiesEXT {
|
|
VkStructureType sType;
|
|
const void *pNext;
|
|
char key[VK_MAX_DESCRIPTION_SIZE];
|
|
VkLayerSettingTypeEXT type;
|
|
} VkLayerSettingPropertiesEXT;
|
|
|
|
VkResult vkEnumerateInstanceLayerSettingsEXT(const char *pLayerName,
|
|
uint32_t *pPropertyCount, VkLayerSettingPropertiesEXT *pProperties);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|