* Use winit's hinstance() function
* Require HasRawWindowHandle for the window and remove handle parameter
Co-authored-by: Antonino Siena <a.siena@gmx.de>
* Feature: Create a Surface from a RawWindowHandle
* Comment on the new features
* Updated changelog
* Corrected feature name
* Compiler error corrections
* Empty commit for CI
Co-authored-by: Antonino Siena <a.siena@gmx.de>
* add additional ImageUsage constructors
* update examples to use ImageUsage::color_attachment instead of caps.supported_usage_flags
* fix additional usage in multi-window example
* update ignore to not include mandelbrot.png and triangle.png
* update ignore to not include mandelbrot.png and triangle.png
This feature was recently promoted from an extension to the core spec in Vulkan 1.2. It is already supported on many recent drivers: NVidia, Mesa RADV, and AMDVLK.
Other than supporting enabling the feature and the basic buffer address query, I made no attempt to create safe interfaces for its use. Such will come later, after I've experimented with its use in Geobacter.
* Change documentation.
Changed the documentation to explain how the data layout of an image is changed as it is copied from image to buffer.
* Fixed the trailing whitespace
Not sure how widespread this issue is, I'm on Mesa 20.0 currently. I've re-enabled a heap size check only when the reported size is != 0, because MoltenVK apparently has an issue with the reported heap sizes.
Without this, an application has to create their own loader for the
Vulkan function pointers if they need to drop down to raw Vulkan
calls. It's not a lot of effort to load them, but it's nicer to just
have them available on the Instance or Device rather than having to
pass an extra parameter around for function pointer access.
Co-authored-by: Austin Johnson <me@austinj.work>
* Use traingle example as template
* Remove triangle example comments
* Switch to CpuBufferPool chunks instead of CpuAccessibleBuffer for vertex data
* rustfmt
* Keep unwrap()s on same line
Almost none of the options are valid anymore. The few that are, seem to be default. I move to delete the .rustfmt.toml completely, to allow rustfmt to be run without config errors.
* 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
* Add Eq and Hash implementations to various buffer and image types
* Changelog entry
* Add Eq and Hash to graphics pipelines too
* Changelog entry
* Remove Eq and Hash from dyn GraphicsPipelineAbstract, as the device cannot be checked
* Add Eq and Hash to GraphicsPipelineAbstract, include size in buffer equality
* Add Eq and Hash to descriptor sets
* Changelog entry
* Add Eq and Hash to Instance, check for it in Device
* Decoupled descriptor sets from pipeline
* Fixed error in unit test
* Fixed more
* Forgot a file
* I think it works now. Don't mind me, I'm new
* Fix new example that got added
* add changelog entry
* remove unnecessary parentheses from previous merge
* Allow `DebugCallback` struct to be sent between threads
* Add unit test to ensure `DebugCallback` can be sent between threads
* Add changelog entry for `DebugCallback` change