- A layer initializes its device dispatch table within its `vkCreateDevice`
function.
- The loader passes a linked list of initialization structures to layers via
-the "pNext" field in the VkInstanceCreateInfo and `VkDeviceCreateInfo`
+the "pNext" field in the `VkInstanceCreateInfo` and `VkDeviceCreateInfo`
structures for `vkCreateInstance` and `VkCreateDevice` respectively.
- The head node in this linked list is of type `VkLayerInstanceCreateInfo` for
instance and VkLayerDeviceCreateInfo for device. See file
`include/vulkan/vk_layer.h` for details.
- A VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO is used by the loader for the
-"sType" field in VkLayerInstanceCreateInfo.
+"sType" field in `VkLayerInstanceCreateInfo`.
- A VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO is used by the loader for the
-"sType" field in VkLayerDeviceCreateInfo.
+"sType" field in `VkLayerDeviceCreateInfo`.
- The "function" field indicates how the union field "u" should be interpreted
within `VkLayer*CreateInfo`. The loader will set the "function" field to
VK_LAYER_LINK_INFO. This indicates "u" field should be `VkLayerInstanceLink` or
- Given the above structures set up by the loader, layer must initialize their
dispatch table as follows:
- Find the `VkLayerInstanceCreateInfo`/`VkLayerDeviceCreateInfo` structure in
-the VkInstanceCreateInfo/VkDeviceCreateInfo structure.
+the `VkInstanceCreateInfo`/`VkDeviceCreateInfo` structure.
- Get the next entity's vkGet*ProcAddr from the "pLayerInfo" field.
- For CreateInstance get the next entity's `vkCreateInstance` by calling the
"pfnNextGetInstanceProcAddr":
format. The JSON file itself does not have any requirements for naming. The
only requirement is that the extension suffix of the file ends with ".json".
-Here is an example layer JSON Manifest file:
+Here is an example ICD JSON Manifest file:
```
{