* Rewrite shader and specialization handling in pipelines
* Make the shader loading in examples a bit cleaner
* Forgot some
* Fix incorrect color blend states in examples
* Nicer fix
* Use mem::discriminant
Co-authored-by: marc0246 <40955683+marc0246@users.noreply.github.com>
---------
Co-authored-by: marc0246 <40955683+marc0246@users.noreply.github.com>
* shaders: minor fix that some Vecs were always allocated with capacity of 0
* shaders: add root_path_env property to allow loading shaders generated by a build script
* shaders: Apply root_path_env suggestions from code review
Co-authored-by: marc0246 <40955683+marc0246@users.noreply.github.com>
* shaders: added root_path_env docs about env vars specified by a build script
---------
Co-authored-by: Firestar99 <4696087-firestar99@users.noreply.gitlab.com>
Co-authored-by: marc0246 <40955683+marc0246@users.noreply.github.com>
* Import image from dma_buf
Implements importing an image into Vulkan from a Linux dma_buf,
according to the following Vulkan extensions:
- https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_external_memory_dma_buf.html
- https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_image_drm_format_modifier.html
* Only compile dmabuf image importing on Linux
Adds conditional compilation checks to functionality for importing
vulkan images from a Linux dmabuf, as doing this only makes sense on Linux.
* Add VUID checking for VkImageCreateInfo
* Avoid Linux-only dependencies on other OSs
* Add missing initializer to StorageImage
* Add more VUID validation
Check for
VUID-vkGetPhysicalDeviceImageFormatProperties-tiling-02248, and VUID-VkPhysicalDeviceImageFormatInfo2-tiling-02249
* Add some more VUIDs
Or explanations of why they cannot yet be added
* Small fix
* Add suggested fixes
Use lowercase for error, replace panic! with todo!, and make some
comments show up in documentation.
Forcing usage of 1.7 is not a requierement as far as I can tell (sadly, `regex` release are not documented, at least I did not find the changelog).
By downgarding, we reduce potential conflicts when importing other libraries (`prost` and `slog` where conflicting in my case).