# Vulkan SDK for Linux Release Notes

## Vulkan SDK 1.1.70.0 Release Notes

##### Version 1.1.70.0 for Linux

###### March 7, 2018

This SDK supports Vulkan API revision 1.1.70. The prior SDK supported Vulkan API revision 1.0.68.

NOTE -- this SDK supports Vulkan 1.1.70, and is backwards-compatible with Vulkan 1.0.70.

Dependencies for Ubuntu now include:

    libx11-dev libxcb1-dev libxkbcommon-dev libmirclient-dev libwayland-dev

The dependencies on other platforms may be different.

Please refer to the Getting Started Guide for a list of supported Linux distributions.

Drivers: LunarG recommends that you update your Vulkan-capable hardware drivers to the latest recommended version from your hardware vendor. A list of Known Driver Issues appears at the end of this document with more information.

Linux Loader now searches `/usr/local/etc/vulkan` and `/usr/local/share/vulkan` for drivers and layers. These new paths are in addition to the previous locations of `/etc/vulkan`, `/usr/share/vulkan`, and the user's `HOME` local path, e.g., `$HOME/.local/share/vulkan`. The two new "`/usr/local`" locations are configurable at build time, allowing configuration of the loader for specific filesystem structures. See the `BUILD.html` guide in the Loader And Validation Layers repository and the "Loader and Layers Interface" guide for more information.

CMake: CMake 3.2 or later is now required to build the source code contents of the SDK. Any user with an older version will need to upgrade.

### Overview of new features in SDK 1.1.70

- Support for Vulkan Version 1.1.x, the first major Vulkan update

- The VulkanInfo utility now features a json backend, for use with the device simulation layer

- Many bug fixes, validation coverage and accuracy improvements, and many feature additions

- The following extensions are new for Vulkan 1.1.70:

        VK_KHR_maintenance3
        VK_EXT_vertex_attribute_divisor

- The following extensions have been promoted from experimental or vendor extensions to Khronos extensions for Vulkan 1.1.70:

        VK_KHR_multiview                       (formerly VK_KHX_multiview)
        VK_KHR_device_group                    (formerly VK_KHX_device_group)
        VK_KHR_device_group_creation           (formerly VK_KHX_device_group_creation)
        VK_KHR_external_memory_capabilities    (formerly VK_NV_external_memory_capabilities)
        VK_KHR_external_memory                 (formerly VK_NV_external_memory)

- The following Vulkan 1.0 extensions have been promoted to core for Vulkan 1.1.70:

       VK_KHR_multiview
       VK_KHR_device_group
       VK_KHR_device_group_creation
       VK_KHR_bind_memory_2
       VK_KHR_descriptor_update_template
       VK_KHR_sampler_ycbcr_conversion
       VK_KHR_get_memory_requirements_2
       VK_KHR_maintenance3
       VK_KHR_external_memory_capabilities
       VK_KHR_external_fence_capabilities
       VK_KHR_external_semaphore_capabilities
       VK_KHR_get_physical_device_properties_2
       VK_KHR_maintenance1
       VK_KHR_external_memory
       VK_KHR_external_semaphore
       VK_KHR_16bit_storage
       VK_KHR_external_fence
       VK_KHR_maintenance2
       VK_KHR_variable_pointers
       VK_KHR_dedicated_allocation

- All KHX extensions have been promoted to KHR extensions. The KHX versions of these extensions are no longer supported.

### Outside Contributors

Lunarg would like to thank the following Vulkan Ecosystem Developers for their contributions:

- Jeff Bolz
- Slawomir Cygan
- Norbert Garnys
- Petr Kraus

#### SDK Components

This version of the SDK components are based on the following specifications and source code repositories:

- Vulkan Specification including extensions

- Vulkan Loader and Validation

- SPIR-V Specification version 1.3

- Glslang library and tools

- Vulkan Tools

- Vulkan Samples

### Last Commits are designated by the following Git Tags in the respective repositories:

- LoaderAndValidationLayers: sdk-1.1.70.0
- VulkanTools: sdk-1.1.70.0
- VulkanSamples: sdk-1.1.70.0

### Fixed Issues

Fixed Vulkan-LoaderAndValidationLayers Github Issues:

- #2410 vkGetSwapchainImagesKHR called more than once, returns another handle (ID)s bug
- #2403 Presence of ICD json causes loader errors when loading layers loader question
- #2379 vulkaninfo doesn't give anything useful when DISPLAY is not set
- #2360 Validate descriptor set flags for vkCmdPushDescriptorSetKHR incomplete
- #2289 Missing validation: Transitioning an image before binding memory to it is illegal incomplete
- #2213 VL reports too early when recording secondary command buffer bug
- #1600 SC layer: GS output to FS input not taken into account (refs VS instead)

Fixed LunarXchange Issues:

- #740 - Fullscreen/Windowed Borderless screen tearing w/ mailbox and triple buffering
- #739 - Vulkan-1.dll deleted after GPU driver install
- #737 - calling vkCreateInstance results in unhandled exception
- #735 - SPIR-V module not valid when creating shader module (Result Id is 0)

### Known Issues

- Loader and validation layer open issues are available in the Vulkan-LoaderAndValidationLayers Github Repository
- VkTrace and other tool-related open issues are available in the VulkanTools Github Repository
- Vulkan Sample-related open issues are available in the VulkanSamples Github Repository

## Developer Notes

- The pre-compiled glslang static libraries are not compatible with the Linux 4 runtime (e.g., Ubuntu 15.10). These libraries must be rebuilt before use with the SDK samples. See the Vulkan Samples page for more information.
- The script `source/shaderc/update_shaderc_sources.py` fails on Arch Linux because python3 is the default python interpreter. To work around this issue, change the line at the top of the file to be python2.

### Known Driver Issues

None

#### Important Notes About Experimental Extensions

The `KHX` and `NVX` identifiers in the name indicate that the extension is experimental, and is being considered for future standardization. In the case of a `KHX` extension, this extension is being considered as either a `KHR` extension or core Vulkan API functionality. `NVX` extensions are being considered for either a final `NV` or a more general (`EXT`, `KHR`) extension.

As experimental extensions:

- Developers are encouraged to experiment with them and provide feedback, but should not use them as the basis for production applications.
- These experimental extensions are expected to be supported for a limited time only.
- They may change their interfaces and behavior in significant ways as a result of feedback
- They may be withdrawn or replaced with a different stable (`KHR`, `EXT`, ...) extension or core functionality at any time.
- Implementations of these extensions receive limited or no testing when submitted to the Khronos conformance process.
- Using experimental extensions with the validation layers may produce inaccurate validation results.