Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Vulkan.Extensions.VK_EXT_layer_settings
Description
Name
VK_EXT_layer_settings - instance extension
VK_EXT_layer_settings
- Name String
VK_EXT_layer_settings
- Extension Type
- Instance extension
- Registered Extension Number
- 497
- Revision
- 2
- Ratification Status
- Ratified
- Extension and Version Dependencies
- None
- Contact
- 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
Description
This extension provides a mechanism for configuring programmatically through the Vulkan API the behavior of layers.
This extension provides the LayerSettingsCreateInfoEXT
struct that can
be included in the pNext
chain of the
InstanceCreateInfo
structure passed
as the pCreateInfo
parameter of
createInstance
.
The structure contains an array of LayerSettingEXT
structure values
that configure specific features of layers.
Example
VK_EXT_layer_settings
is 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);
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.
New Structures
Extending
InstanceCreateInfo
:
New Enums
New Enum Constants
EXT_LAYER_SETTINGS_SPEC_VERSION
Extending
StructureType
:
Issues
- How should application developers figure out the list of available settings?
This extension does not provide a reflection API for layer settings. Layer settings are described in each layer JSON manifest and the documentation of each layer which implements this extension.
Version History
Revision 1, 2020-06-17 (Mark Lobodzinski)
- Initial revision for Validation layer internal usages
Revision 2, 2023-09-26 (Christophe Riccio)
- Refactor APIs for any layer usages and public release
See Also
LayerSettingEXT
, LayerSettingTypeEXT
, LayerSettingsCreateInfoEXT
Document Notes
For more information, see the Vulkan Specification
This page is a generated document. Fixes and changes should be made to the generator scripts, not directly.
Synopsis
- data LayerSettingsCreateInfoEXT = LayerSettingsCreateInfoEXT {}
- data LayerSettingEXT = LayerSettingEXT {
- layerName :: ByteString
- settingName :: ByteString
- type' :: LayerSettingTypeEXT
- valueCount :: Word32
- values :: Ptr ()
- newtype LayerSettingTypeEXT where
- LayerSettingTypeEXT Int32
- pattern LAYER_SETTING_TYPE_BOOL32_EXT :: LayerSettingTypeEXT
- pattern LAYER_SETTING_TYPE_INT32_EXT :: LayerSettingTypeEXT
- pattern LAYER_SETTING_TYPE_INT64_EXT :: LayerSettingTypeEXT
- pattern LAYER_SETTING_TYPE_UINT32_EXT :: LayerSettingTypeEXT
- pattern LAYER_SETTING_TYPE_UINT64_EXT :: LayerSettingTypeEXT
- pattern LAYER_SETTING_TYPE_FLOAT32_EXT :: LayerSettingTypeEXT
- pattern LAYER_SETTING_TYPE_FLOAT64_EXT :: LayerSettingTypeEXT
- pattern LAYER_SETTING_TYPE_STRING_EXT :: LayerSettingTypeEXT
- type EXT_LAYER_SETTINGS_SPEC_VERSION = 2
- pattern EXT_LAYER_SETTINGS_SPEC_VERSION :: forall a. Integral a => a
- type EXT_LAYER_SETTINGS_EXTENSION_NAME = "VK_EXT_layer_settings"
- pattern EXT_LAYER_SETTINGS_EXTENSION_NAME :: forall a. (Eq a, IsString a) => a
Documentation
data LayerSettingsCreateInfoEXT Source #
VkLayerSettingsCreateInfoEXT - Specify layer capabilities for a Vulkan instance
Valid Usage (Implicit)
-
sType
must beSTRUCTURE_TYPE_LAYER_SETTINGS_CREATE_INFO_EXT
- If
settingCount
is not0
,pSettings
must be a valid pointer to an array ofsettingCount
validLayerSettingEXT
structures
See Also
Constructors
LayerSettingsCreateInfoEXT | |
Fields
|
Instances
data LayerSettingEXT Source #
VkLayerSettingEXT - Specify a layer capability to configure
Description
When multiple LayerSettingsCreateInfoEXT
structures are chained and
the same pSettingName
is referenced for the same pLayerName
, the
value of the first reference of the layer setting is used.
Valid Usage (Implicit)
-
pSettingName
must be a null-terminated UTF-8 string -
type
must be a validLayerSettingTypeEXT
value - If
valueCount
is not0
,pValues
must be a valid pointer to an array ofvalueCount
bytes
See Also
VK_EXT_layer_settings,
LayerSettingTypeEXT
, LayerSettingsCreateInfoEXT
Constructors
LayerSettingEXT | |
Fields
|
Instances
Show LayerSettingEXT Source # | |
Defined in Vulkan.Extensions.VK_EXT_layer_settings Methods showsPrec :: Int -> LayerSettingEXT -> ShowS # show :: LayerSettingEXT -> String # showList :: [LayerSettingEXT] -> ShowS # | |
FromCStruct LayerSettingEXT Source # | |
Defined in Vulkan.Extensions.VK_EXT_layer_settings Methods peekCStruct :: Ptr LayerSettingEXT -> IO LayerSettingEXT Source # | |
ToCStruct LayerSettingEXT Source # | |
Defined in Vulkan.Extensions.VK_EXT_layer_settings Methods withCStruct :: LayerSettingEXT -> (Ptr LayerSettingEXT -> IO b) -> IO b Source # pokeCStruct :: Ptr LayerSettingEXT -> LayerSettingEXT -> IO b -> IO b Source # withZeroCStruct :: (Ptr LayerSettingEXT -> IO b) -> IO b Source # pokeZeroCStruct :: Ptr LayerSettingEXT -> IO b -> IO b Source # cStructSize :: Int Source # | |
Zero LayerSettingEXT Source # | |
Defined in Vulkan.Extensions.VK_EXT_layer_settings Methods |
newtype LayerSettingTypeEXT Source #
VkLayerSettingTypeEXT - Type of the values that can be passed to a layer
See Also
Constructors
LayerSettingTypeEXT Int32 |
Bundled Patterns
pattern LAYER_SETTING_TYPE_BOOL32_EXT :: LayerSettingTypeEXT |
|
pattern LAYER_SETTING_TYPE_INT32_EXT :: LayerSettingTypeEXT |
|
pattern LAYER_SETTING_TYPE_INT64_EXT :: LayerSettingTypeEXT |
|
pattern LAYER_SETTING_TYPE_UINT32_EXT :: LayerSettingTypeEXT |
|
pattern LAYER_SETTING_TYPE_UINT64_EXT :: LayerSettingTypeEXT |
|
pattern LAYER_SETTING_TYPE_FLOAT32_EXT :: LayerSettingTypeEXT |
|
pattern LAYER_SETTING_TYPE_FLOAT64_EXT :: LayerSettingTypeEXT |
|
pattern LAYER_SETTING_TYPE_STRING_EXT :: LayerSettingTypeEXT |
|
Instances
type EXT_LAYER_SETTINGS_SPEC_VERSION = 2 Source #
pattern EXT_LAYER_SETTINGS_SPEC_VERSION :: forall a. Integral a => a Source #
type EXT_LAYER_SETTINGS_EXTENSION_NAME = "VK_EXT_layer_settings" Source #
pattern EXT_LAYER_SETTINGS_EXTENSION_NAME :: forall a. (Eq a, IsString a) => a Source #