* Added ImageUsage::transient_input_attachment()
* Address TODOs in examples
* Added actual example to command_buffer module documentation.
* Fixed error in command_buffer example
* Check max_framebuffer_height/width/layers in AttachmentImage constructors.
* Add detailed explanation for shader! macro to triangle examples
* Use only the selected range of buffer and image views in synchronization
* Improve render pass commands, more validation
Co-authored-by: Austin Johnson <me@austinj.work>
* Allow `SyncCommandBufferBuilder` commands to specify the access range
* Allow `SyncCommandBufferBuilder` commands to specify the access range
* Better handling of image initialization
* Small fix
* Rewrite copy commands
* Better handling of maintenance1
* Small leftovers
* Remove conflict_key
The readme still redirected users to the vulkano-examples repository. This has since been achieved. Included a step-by-step guide to switching version tag.
* Convert creation of `Instance` and `Device` to use a builder
* Big oops
* Add `InstanceCreateInfo` and `DeviceCreateInfo`
* Doc fix
* impl FromStr for Version, remove elidable qf2
* Allow `copy_image` source and destination to be the same image
The doc: `srcImage and dstImage can be the same image or alias the same
memory`.
This was achieved by locking only one image exclusively if both are the same.
* Allow `blit_image` and `copy_buffer` to have the same src/dest buffers
Regarding this and the previous commits, I noticed an important note in
the docs.
`regions must not overlap`
Before this, it was not important check for us to do, since we can't
have overlapping regions if both buffers are different. But now we must
add some checks to make sure its safe to use these functions while also
allowing for shared buffers between src and dest.
* Added bounds and overlapping checks for `copy_buffer`
* Added overlap checks for `blit_image` and `copy_image`
Created utility file `src/command_buffer/validity/ranges.rs` which hold
functions that help compute if there is overlap in regions.
* Fixed bug in regions overlap check
It should be ANDed together and not ORed
* Added `image_blit` to the `image-self-copy` example
* Added example for `copy_buffer_dimensions` using `basic-compute-shaders`
Also updated copyright year for this and the `image-self-copy-blit`
example.
* Added command `clear_attachment`
This command implements `vkClearAttachments`, most checks are done
except for:
- Handling attachments with `VK_ATTACHMENT_UNUSED`, `vulkano` doesn't
support unused attachments for now.
- command buffer protection and protectedNoFault, which `vulkano` is not
supporting now.
* Added `clear_attachments` example
This explains the usage of `clear_attachments` command
* Modified `ClearRect.rect_offset` to use `u32`
Since, in vulkan docs, it says that the rect must be inside the render
area, its better to use `u32` so that we don't get negative values since
its not applicable here.
I was using `i32` because in vulkan docs its using `VkRect2D` inside
`VkClearRect` which is a general rectangle object. Since ours is only
specific to `ClearRect` its better to make it specific.
* Bring vertex input in line with other pipeline state, reorganise modules
* Documentation improvement
* Use ShaderInterfaceEntryType in shader interface instead of format
* Example fix
* Fix device memory missing p_next structures
* Fix exportable attachment image missing p_next; Fix mutable bit off
* Fix fd export for StorageImage
* Add gl-interop example; Remove debug assert comment
* Fix gl-interop example being run on Windows and MacOS
* Add builder field to DeviceMemoryBuilder
* Move shader parsing and information extraction to Vulkano, make available for runtime shaders
* Small change
* Add new pipeline stages to match shader stages
* Fix review issues
* Add basic support for khr_push_descriptor
* Add basic support for khr_push_descriptor
* Support arrays in `DescriptorWrite`
* Use assert when creating the builder
* Add extra dynamic state commands to the command buffer builders
* Add TessellationState
* Re-enable InputAssemblyState, add dynamic state, update Ash
* Rework depth_stencil module, add dynamic state
* Rename module raster > rasterization, add dynamic state
* Replace DynamicStateMode with bool, replace Option with StateMode enum for potentially dynamic states, rename Blend > ColorBlendState, add dynamic state
* Re-enable MultisampleState
* Re-enable ViewportState, add state to GraphicsPipeline with retrieval methods, add dynamic state
* Add builder methods for state types
* Color blend improvements
* Further checks on input assembly dynamic state
* Add color_write_enable
* Add topology class, check that it matches
* Add line_stipple
* Move some builder code to the individual state types
* Add discard rectangles
* Trim down GraphicsPipelineCreationError variants, order alphabetically
* Remove Send + Sync and BufferAccess traits where they are redundant
* Require Send + Sync for ImageViewAbstract
* Require Send + Sync for ImageAccess, AttachmentsList and MemoryPoolAlloc
* Require Send + Sync for DescriptorSet and DescriptorPoolAlloc
* Require Send + Sync for FramebufferAbstract
* Minor rearranging
* Require Send + Sync for PrimaryCommandBuffer, SecondaryCommandBuffer and CommandPoolAlloc
* Require Send + Sync for Command (private trait)
* Cargo fmt