Class EXTLayerSettings
This extension provides the VkLayerSettingsCreateInfoEXT struct that can be included in the pNext chain of the VkInstanceCreateInfo structure passed as the pCreateInfo parameter of CreateInstance.
The structure contains an array of VkLayerSettingEXT structure values that configure specific features of layers.
Note
The VK_EXT_layer_settings extension subsumes all the functionality provided in the VK_EXT_validation_flags extension and the VK_EXT_validation_features extension.
Example
One example usage of VK_EXT_layer_settings is as implemented by the Vulkan Profiles layer.
It allows the profiles layer tests used by the profiles layer C.I. to programmatically configure the layer for each test without affecting the C.I. environment, allowing to run multiple tests concurrently.
const char* profile_file_data = JSON_TEST_FILES_PATH "VP_KHR_roadmap_2022.json";
const char* profile_name_data = "VP_KHR_roadmap_2022";
VkBool32 emulate_portability_data = VK_TRUE;
const char* simulate_capabilities[] = {
"SIMULATE_API_VERSION_BIT",
"SIMULATE_FEATURES_BIT",
"SIMULATE_PROPERTIES_BIT",
"SIMULATE_EXTENSIONS_BIT",
"SIMULATE_FORMATS_BIT",
"SIMULATE_QUEUE_FAMILY_PROPERTIES_BIT"
};
const char* debug_reports[] = {
"DEBUG_REPORT_ERROR_BIT",
"DEBUG_REPORT_WARNING_BIT",
"DEBUG_REPORT_NOTIFICATION_BIT",
"DEBUG_REPORT_DEBUG_BIT"
};
const VkLayerSettingEXT settings[] = {
{kLayerName, kLayerSettingsProfileFile, VK_LAYER_SETTING_TYPE_STRING_EXT, 1, &profile_file_data},
{kLayerName, kLayerSettingsProfileName, VK_LAYER_SETTING_TYPE_STRING_EXT, 1, &profile_name_data},
{kLayerName, kLayerSettingsEmulatePortability, VK_LAYER_SETTING_TYPE_BOOL32_EXT, 1, &emulate_portability_data},
{kLayerName, kLayerSettingsSimulateCapabilities, VK_LAYER_SETTING_TYPE_STRING_EXT,
static_cast<uint32_t>(std::size(simulate_capabilities)), simulate_capabilities},
{kLayerName, kLayerSettingsDebugReports, VK_LAYER_SETTING_TYPE_STRING_EXT,
static_cast<uint32_t>(std::size(debug_reports)), debug_reports}
};
const VkLayerSettingsCreateInfoEXT layer_settings_create_info{
VK_STRUCTURE_TYPE_LAYER_SETTINGS_CREATE_INFO_EXT, nullptr,
static_cast<uint32_t>(std::size(settings)), settings};
VkInstanceCreateInfo inst_create_info = {};
...
inst_create_info.pNext = &layer_settings_create_info;
vkCreateInstance(&inst_create_info, nullptr, &_instances);
- Name String
VK_EXT_layer_settings- Extension Type
- Instance extension
- Registered Extension Number
- 497
- Revision
- 2
- Contact
- Christophe Riccio christophe
- Extension Proposal
- VK_EXT_layer_settings
Other Extension Metadata
- Last Modified Date
- 2023-09-23
- IP Status
- No known IP claims.
- Contributors
- Christophe Riccio, LunarG
- Mark Lobodzinski, LunarG
- Charles Giessen, LunarG
- Spencer Fricke, LunarG
- Juan Ramos, LunarG
- Daniel Rakos, RasterGrid
- Shahbaz Youssefi, Google
- Lina Versace, Google
- Bill Hollings, The Brenwill Workshop
- Jon Leech, Khronos
- Tom Olson, Arm
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final StringThe extension name.static final intThe extension specification version.static final intVkLayerSettingTypeEXT - Type of the values that can be passed to a layerstatic final intVkLayerSettingTypeEXT - Type of the values that can be passed to a layerstatic final intVkLayerSettingTypeEXT - Type of the values that can be passed to a layerstatic final intVkLayerSettingTypeEXT - Type of the values that can be passed to a layerstatic final intVkLayerSettingTypeEXT - Type of the values that can be passed to a layerstatic final intVkLayerSettingTypeEXT - Type of the values that can be passed to a layerstatic final intVkLayerSettingTypeEXT - Type of the values that can be passed to a layerstatic final intVkLayerSettingTypeEXT - Type of the values that can be passed to a layerstatic final intExtendsVkStructureType. -
Method Summary
-
Field Details
-
VK_EXT_LAYER_SETTINGS_SPEC_VERSION
public static final int VK_EXT_LAYER_SETTINGS_SPEC_VERSIONThe extension specification version.- See Also:
-
VK_EXT_LAYER_SETTINGS_EXTENSION_NAME
The extension name.- See Also:
-
VK_STRUCTURE_TYPE_LAYER_SETTINGS_CREATE_INFO_EXT
public static final int VK_STRUCTURE_TYPE_LAYER_SETTINGS_CREATE_INFO_EXTExtendsVkStructureType.- See Also:
-
VK_LAYER_SETTING_TYPE_BOOL32_EXT
public static final int VK_LAYER_SETTING_TYPE_BOOL32_EXTVkLayerSettingTypeEXT - Type of the values that can be passed to a layerDescription
LAYER_SETTING_TYPE_BOOL32_EXTspecifies that the layer setting’s type isVkBool32.LAYER_SETTING_TYPE_INT32_EXTspecifies that the layer setting’s type is signed 32-bit integer.LAYER_SETTING_TYPE_INT64_EXTspecifies that the layer setting’s type is signed 64-bit integer.LAYER_SETTING_TYPE_UINT32_EXTspecifies that the layer setting’s type is unsigned 32-bit integer.LAYER_SETTING_TYPE_UINT64_EXTspecifies that the layer setting’s type is unsigned 64-bit integer.LAYER_SETTING_TYPE_FLOAT32_EXTspecifies that the layer setting’s type is 32-bit floating-point.LAYER_SETTING_TYPE_FLOAT64_EXTspecifies that the layer setting’s type is 64-bit floating-point.LAYER_SETTING_TYPE_STRING_EXTspecifies that the layer setting’s type is a pointer to a null-terminated UTF-8 string.
See Also
- See Also:
-
VK_LAYER_SETTING_TYPE_INT32_EXT
public static final int VK_LAYER_SETTING_TYPE_INT32_EXTVkLayerSettingTypeEXT - Type of the values that can be passed to a layerDescription
LAYER_SETTING_TYPE_BOOL32_EXTspecifies that the layer setting’s type isVkBool32.LAYER_SETTING_TYPE_INT32_EXTspecifies that the layer setting’s type is signed 32-bit integer.LAYER_SETTING_TYPE_INT64_EXTspecifies that the layer setting’s type is signed 64-bit integer.LAYER_SETTING_TYPE_UINT32_EXTspecifies that the layer setting’s type is unsigned 32-bit integer.LAYER_SETTING_TYPE_UINT64_EXTspecifies that the layer setting’s type is unsigned 64-bit integer.LAYER_SETTING_TYPE_FLOAT32_EXTspecifies that the layer setting’s type is 32-bit floating-point.LAYER_SETTING_TYPE_FLOAT64_EXTspecifies that the layer setting’s type is 64-bit floating-point.LAYER_SETTING_TYPE_STRING_EXTspecifies that the layer setting’s type is a pointer to a null-terminated UTF-8 string.
See Also
- See Also:
-
VK_LAYER_SETTING_TYPE_INT64_EXT
public static final int VK_LAYER_SETTING_TYPE_INT64_EXTVkLayerSettingTypeEXT - Type of the values that can be passed to a layerDescription
LAYER_SETTING_TYPE_BOOL32_EXTspecifies that the layer setting’s type isVkBool32.LAYER_SETTING_TYPE_INT32_EXTspecifies that the layer setting’s type is signed 32-bit integer.LAYER_SETTING_TYPE_INT64_EXTspecifies that the layer setting’s type is signed 64-bit integer.LAYER_SETTING_TYPE_UINT32_EXTspecifies that the layer setting’s type is unsigned 32-bit integer.LAYER_SETTING_TYPE_UINT64_EXTspecifies that the layer setting’s type is unsigned 64-bit integer.LAYER_SETTING_TYPE_FLOAT32_EXTspecifies that the layer setting’s type is 32-bit floating-point.LAYER_SETTING_TYPE_FLOAT64_EXTspecifies that the layer setting’s type is 64-bit floating-point.LAYER_SETTING_TYPE_STRING_EXTspecifies that the layer setting’s type is a pointer to a null-terminated UTF-8 string.
See Also
- See Also:
-
VK_LAYER_SETTING_TYPE_UINT32_EXT
public static final int VK_LAYER_SETTING_TYPE_UINT32_EXTVkLayerSettingTypeEXT - Type of the values that can be passed to a layerDescription
LAYER_SETTING_TYPE_BOOL32_EXTspecifies that the layer setting’s type isVkBool32.LAYER_SETTING_TYPE_INT32_EXTspecifies that the layer setting’s type is signed 32-bit integer.LAYER_SETTING_TYPE_INT64_EXTspecifies that the layer setting’s type is signed 64-bit integer.LAYER_SETTING_TYPE_UINT32_EXTspecifies that the layer setting’s type is unsigned 32-bit integer.LAYER_SETTING_TYPE_UINT64_EXTspecifies that the layer setting’s type is unsigned 64-bit integer.LAYER_SETTING_TYPE_FLOAT32_EXTspecifies that the layer setting’s type is 32-bit floating-point.LAYER_SETTING_TYPE_FLOAT64_EXTspecifies that the layer setting’s type is 64-bit floating-point.LAYER_SETTING_TYPE_STRING_EXTspecifies that the layer setting’s type is a pointer to a null-terminated UTF-8 string.
See Also
- See Also:
-
VK_LAYER_SETTING_TYPE_UINT64_EXT
public static final int VK_LAYER_SETTING_TYPE_UINT64_EXTVkLayerSettingTypeEXT - Type of the values that can be passed to a layerDescription
LAYER_SETTING_TYPE_BOOL32_EXTspecifies that the layer setting’s type isVkBool32.LAYER_SETTING_TYPE_INT32_EXTspecifies that the layer setting’s type is signed 32-bit integer.LAYER_SETTING_TYPE_INT64_EXTspecifies that the layer setting’s type is signed 64-bit integer.LAYER_SETTING_TYPE_UINT32_EXTspecifies that the layer setting’s type is unsigned 32-bit integer.LAYER_SETTING_TYPE_UINT64_EXTspecifies that the layer setting’s type is unsigned 64-bit integer.LAYER_SETTING_TYPE_FLOAT32_EXTspecifies that the layer setting’s type is 32-bit floating-point.LAYER_SETTING_TYPE_FLOAT64_EXTspecifies that the layer setting’s type is 64-bit floating-point.LAYER_SETTING_TYPE_STRING_EXTspecifies that the layer setting’s type is a pointer to a null-terminated UTF-8 string.
See Also
- See Also:
-
VK_LAYER_SETTING_TYPE_FLOAT32_EXT
public static final int VK_LAYER_SETTING_TYPE_FLOAT32_EXTVkLayerSettingTypeEXT - Type of the values that can be passed to a layerDescription
LAYER_SETTING_TYPE_BOOL32_EXTspecifies that the layer setting’s type isVkBool32.LAYER_SETTING_TYPE_INT32_EXTspecifies that the layer setting’s type is signed 32-bit integer.LAYER_SETTING_TYPE_INT64_EXTspecifies that the layer setting’s type is signed 64-bit integer.LAYER_SETTING_TYPE_UINT32_EXTspecifies that the layer setting’s type is unsigned 32-bit integer.LAYER_SETTING_TYPE_UINT64_EXTspecifies that the layer setting’s type is unsigned 64-bit integer.LAYER_SETTING_TYPE_FLOAT32_EXTspecifies that the layer setting’s type is 32-bit floating-point.LAYER_SETTING_TYPE_FLOAT64_EXTspecifies that the layer setting’s type is 64-bit floating-point.LAYER_SETTING_TYPE_STRING_EXTspecifies that the layer setting’s type is a pointer to a null-terminated UTF-8 string.
See Also
- See Also:
-
VK_LAYER_SETTING_TYPE_FLOAT64_EXT
public static final int VK_LAYER_SETTING_TYPE_FLOAT64_EXTVkLayerSettingTypeEXT - Type of the values that can be passed to a layerDescription
LAYER_SETTING_TYPE_BOOL32_EXTspecifies that the layer setting’s type isVkBool32.LAYER_SETTING_TYPE_INT32_EXTspecifies that the layer setting’s type is signed 32-bit integer.LAYER_SETTING_TYPE_INT64_EXTspecifies that the layer setting’s type is signed 64-bit integer.LAYER_SETTING_TYPE_UINT32_EXTspecifies that the layer setting’s type is unsigned 32-bit integer.LAYER_SETTING_TYPE_UINT64_EXTspecifies that the layer setting’s type is unsigned 64-bit integer.LAYER_SETTING_TYPE_FLOAT32_EXTspecifies that the layer setting’s type is 32-bit floating-point.LAYER_SETTING_TYPE_FLOAT64_EXTspecifies that the layer setting’s type is 64-bit floating-point.LAYER_SETTING_TYPE_STRING_EXTspecifies that the layer setting’s type is a pointer to a null-terminated UTF-8 string.
See Also
- See Also:
-
VK_LAYER_SETTING_TYPE_STRING_EXT
public static final int VK_LAYER_SETTING_TYPE_STRING_EXTVkLayerSettingTypeEXT - Type of the values that can be passed to a layerDescription
LAYER_SETTING_TYPE_BOOL32_EXTspecifies that the layer setting’s type isVkBool32.LAYER_SETTING_TYPE_INT32_EXTspecifies that the layer setting’s type is signed 32-bit integer.LAYER_SETTING_TYPE_INT64_EXTspecifies that the layer setting’s type is signed 64-bit integer.LAYER_SETTING_TYPE_UINT32_EXTspecifies that the layer setting’s type is unsigned 32-bit integer.LAYER_SETTING_TYPE_UINT64_EXTspecifies that the layer setting’s type is unsigned 64-bit integer.LAYER_SETTING_TYPE_FLOAT32_EXTspecifies that the layer setting’s type is 32-bit floating-point.LAYER_SETTING_TYPE_FLOAT64_EXTspecifies that the layer setting’s type is 64-bit floating-point.LAYER_SETTING_TYPE_STRING_EXTspecifies that the layer setting’s type is a pointer to a null-terminated UTF-8 string.
See Also
- See Also:
-