* Allow choosing the Vulkan max API version when creating Instance
* Rewrite feature handling, include all Vulkan 1.1 and 1.2 features
* Fixes
* Move features.rs to device module
* More small fixes
* Changelog
* vulkano: image: improve formatting
Ran cargo fmt --all. Should we use clippy too ?
* vk_sys: add additional formats
This updates the vk formats enum to the header that's on my
system (vk 1.2-ish).
* vulkano: image: Add NV12 and YV12 support
These formats are commonly used as targets for hardware and
software video decode. The common case is the swapchain allocator
(gralloc in the Android use case) allocates some memory, the video
stack decodes to it, and then memory can be composited by Vulkan
or sent directly to the display.
* vk_sys: update structure types
This updates the structure types to a VK 1.2-ish state. Long term,
it makes a ton of sense to autogenerate vk-sys to make adding
additional features and enumerations easier [1]. For now, we can
hand edit.
[1] (https://github.com/vulkano-rs/vulkano/issues/89)
* vk_sys: add VK_KHR_external_memory_fd bindings
This adds some basic external memory features. Most of these
features are core in VK1.1.
* vulkano: memory: add and use DeviceMemoryBuilder
We'll need to:
(a) Create exportable memory
(b) import from a OS descriptor to create DeviceMemory
(c) Also support dedicated allocations
The device memory API is becoming rather complicated. Let's use
the common builder pattern to simplify this.
* vulkano: memory: implement some external features
This change is sufficient to create exportable memory and
export it. It's only been tested on Linux platforms and depends
on Unix file descriptors, so enable it only there for now.
Import support will be added later. Support for external buffers
and images can also be added later if someone needs it.
* implement exclusive fullscreen
* fullscreen ext should be device ext
* add acquire/release
* require VK_KHR_get_surface_capabilities2
* fullscreen_exclusive is now an enum; explicit acquire/release methods added; FullscreenExclusiveError added to handle errors; FullscreenExclusiveLost varients added to acquire and present related errors
* add checks for double acquire/release; require AppControlled for acquire/release functions
* update examples and tests; resolve issue with try_gpu_lock() on SwapchainImage; update changelogs
* Implement support for VK_KHR_16bit_storage and VK_KHR_storage_buffer_storage_class.
This change also allows SPIR-V instructions to require device extensions.
* Remove SPIR-V capabilities with duplicate values (StorageBuffer16BitAccess and UniformAndStorageBuffer16BitAccess).
* move changelog entry to current version