vulkano/examples
Amjad Alsharafi 657012142b
Allow copy_image, blit_image and copy_buffer source and destination to be the same image (#1782)
* 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.
2022-01-03 03:54:02 +07:00
..
src Allow copy_image, blit_image and copy_buffer source and destination to be the same image (#1782) 2022-01-03 03:54:02 +07:00
Cargo.toml Upgrade to Rust 2021, update dependencies (#1772) 2021-12-16 15:46:44 +07:00
readme.md Copy examples from example repo (#1023) 2018-08-30 11:37:51 +10:00
run_all.sh Add script to run all examples (#1519) 2021-03-29 22:22:33 +07:00

Examples

These examples use unreleased functionality of vulkano. For a snapshot of the examples at the latest vulkano release take a look at the examples repository

Running the examples:

cargo run --bin <example>

Example:

cargo run --bin triangle

If you want to compare performances with other libraries, you should pass the --release flag as well. Rust is pretty slow in debug mode.