Vulkano 0.11
Hi everyone,

I've decided to write up reports of notable achievements in my projects.
I'm going to do a report for PF Sandbox whenever I feel I have something worthwhile to talk about and a report for vulkano for each major release.

The only progress recently on PF Sandbox has been upgrading to vulkano 0.11 and switching to gilrs-core from gilrs, a first pass at onion skinning and some small bug fixes.
However I do still have exciting news this month with the first Vulkano release I've managed from start to finish.

About Vulkano 0.11

Vulkano is the safe vulkan bindings for rust that I use for PF Sandbox.
It was originally written by tomaka, but he has moved on so I am now maintaining it.

Changes in vulkano 0.11 include:
*   Improved guide and examples.
*   The shader proc macro now uses the newly stabilized function-like macros instead of a #[Derive()] hack
*   shaders are now compiled via the shaderc library instead of a .exe that gets copied to disk and ran. This makes it much easier for us to upgrade the shader compiler we use and makes the implementation a lot cleaner.
*  Various bug fixes, robustness improvements and minor api additions and improvements.

To upgrade from vulkano 0.10:
*   In your Cargo.toml:
   +   remove `vulkano-shaders-derive`
   +   Change the version for vulkano, vulkano-shaders and vulkano-win to 0.11
   +   Change the version for winit to 0.18
*   Ensure you have the latest stable rust compiler >= 1.30
*   Install the new c++ build dependencies listed in the readme
*   This commit upgrades the examples from 0.10 to 0.11 so you will find it a useful reference for the API changes
*   For anything else you can refer to the below changelog.

Full Changelog 

- Update to winit 0.18
- Export features and device extensions from the device module instead of the instance module
   +   `instance::Features` -> `device::Features`
   +   `instance::DeviceExtensions` -> `device::DeviceExtensions`
   +   `instance::RawDeviceExtensions` -> `device::RawDeviceExtensions`
- Added `vulkano_shaders::vulkano_shader` proc macro, use this instead of `vulkano_shader_deriver::VulkanoShaders`.
- The entire `vulkano_shader_derive` crate is deprecated.
- `vulkano_shaders::{reflect, compile, Error}` are no longer public.
- Removed mir support, as it is being removed from the vulkan spec.
- Remove vulkano_shaders::build_glsl_shaders
- Split `PersistentDescriptorSetError::MissingUsage` into `MissingImageUsage` and `MissingBufferUsage`  each with a matching enum indicating the usage that was missing.
- Fix instance_count when using draw_index with instance buffers
- Added a `reinterpret` function to `BufferSlice`
- Made `AttributeInfo` derive `Copy`, `Clone` and `Debug`
- Use [google/shaderc]( for shader compilation
- Reject generation of rust types for SPIR-V arrays that would have incorrect array stride.
- Removed the `Layout` prefix of the descriptions used for a render pass.


Thanks to the following devs for contributing to this release!
*   sznaider
*   halfvoxel
*   msmorgan
*   jonathansty
*   swiftcoder
*   singron
*   limeth
*   nlordell
*   frankv
*   penguin42

And thanks to everyone who is supporting me on patreon!

Vulkano Future Work

There are still ~10 PRs that I haven't addressed yet, since starting maintaining vulkano.
I will get to those "someday", sorry if I'm neglecting a PR of yours.

I have a plan of work I would like to do to refactor and improve the error handling of the `shaders!` macro. -

Vulkano also suffers from serious stability issues on such as: , and

This is obviously very important work that needs to be done.
But its going to take a lot of digging to figure out whats going wrong and what the correct solution is.

I'm still working and completing my degree, which takes up most of my time.
However I'm hoping to reach the point on patreon where I can work on Vulkano and PF Sandbox full-time.