Commit Graph

207 Commits

Author SHA1 Message Date
Rua
4a98caacbf
Update various dependencies (#1483) 2021-02-06 02:35:24 +07:00
Arc'blroth
32095992f9
[Breaking] Add support for dynamic buffers (#1480)
* Add glue to allow using dynamic uniform buffers

Signed-off-by: Arc-blroth <45273859+Arc-blroth@users.noreply.github.com>

* **EXTREMELY BREAKING** Add `dynamic_offsets` argument to all draw-related calls in AutoCommandBufferBuilder

Signed-off-by: Arc-blroth <45273859+Arc-blroth@users.noreply.github.com>

* **BREAKING** Pass data to update_buffer by reference (this allows using unsized data)

Signed-off-by: Arc-blroth <45273859+Arc-blroth@users.noreply.github.com>

* run cargo fmt

Signed-off-by: Arc-blroth <45273859+Arc-blroth@users.noreply.github.com>

* Dynamic offset safety checks™

Signed-off-by: Arc-blroth <45273859+Arc-blroth@users.noreply.github.com>

* Fix tests

Signed-off-by: Arc-blroth <45273859+Arc-blroth@users.noreply.github.com>

* Make `PipelineLayoutDescTweaks` public

Signed-off-by: Arc-blroth <45273859+Arc-blroth@users.noreply.github.com>

* Add a dynamic (uniform) buffer example

Signed-off-by: Arc-blroth <45273859+Arc-blroth@users.noreply.github.com>

* all the breaking changes

Signed-off-by: Arc-blroth <45273859+Arc-blroth@users.noreply.github.com>
2021-02-05 22:38:36 +07:00
Arc'blroth
ccb5a1091b
Store shader bytecode as a static rather than on the stack. This fixes stack overflow errors for large shaders. (#1476)
Signed-off-by: Arc-blroth <45273859+Arc-blroth@users.noreply.github.com>
2021-01-18 08:38:29 +07:00
Ilya Lakhin
de01dff7c8 Vulkano version bump to 0.20.0 and vk-sys to 0.5.3 2020-12-26 19:25:09 +07:00
Ilya Lakhin
af3ea98d5e
Shader types derive (#1460)
* Shader struct types derives and impls

* Vulkano Shaders fixes and cleanup. Example for Types-meta option

* Changelog update

* cargo fmt
2020-12-20 12:08:55 +07:00
Arc'blroth
6e0e87f222
Fix vulkano-shaders bytes documentation (#1458)
Signed-off-by: Arc-blroth <45273859+Arc-blroth@users.noreply.github.com>
2020-12-20 05:55:42 +07:00
Arc'blroth
c2495404b2
Add support for including precompiled shaders in vulkano-shaders (#1455)
Signed-off-by: Arc-blroth <45273859+Arc-blroth@users.noreply.github.com>
2020-12-19 10:22:04 +07:00
Robin Heinemann
d8f1e77502
Add 8bit storage support (#1452) 2020-12-09 05:36:14 +07:00
Cassiano Honorio da Silva
620b829bdb
Rename feature shader_f3264 to shader_float64 (#1440)
Fixes shader_f3264 device feature name
2020-11-23 17:34:02 +07:00
Travis Finkenauer
ccd22a4aa4
Convert HTTP links to HTTPS (#1397)
* Convert readme HTTP links to HTTPS

* Convert source files' URLs to HTTPS
2020-11-10 11:03:50 -06:00
Austin Johnson
eee101bc4d
publish 0.18.1 && vk-sys 0.5.2 (#1374) 2020-06-01 13:52:18 -05:00
one-bit
c96309e55e
Fixed warnings (#1363)
* Fixed all warnings as of Rust 1.43.1

* Update CHANGELOG_VULKANO.md

- Fixed all warnings as of Rust 1.43.1
2020-05-12 19:57:40 -05:00
jeffw387
315f63abe5
new function to check image/device compatibility (#1339)
* new function to check image/device compatibility

* merged master to get rustfmt changes, format all
2020-05-09 19:36:20 -05:00
Ilya Lakhin
f211a3af2a
Anonymous specialization constants support (#1338) 2020-05-09 05:59:10 -05:00
Austin Johnson
b245e6c4dc
Update winit, half, and smallvec; Release 0.18 (#1332)
update winit, half, and smallvec; release 0.18
2020-03-11 20:48:15 -05:00
Austin Johnson
de2ef70a77
Release 0.17 (#1323) 2020-02-09 03:51:32 -06:00
James
044366a24c Propagate newlines correctly on error messages (#1172)
Co-authored-by: Austin Johnson <me@austinj.me>
2020-01-26 06:35:49 -06:00
nickwilcox
b0fb255c02 Fix descriptor set codegen for SSBO after spirv update (#1275) 2019-11-17 11:20:07 -06:00
nickwilcox
0320e75f97 fix invalid markdown in shader docs (#1271) 2019-11-09 01:24:07 -06:00
Austin Johnson
2e6868a0c0
Downgrade Winit back to 0.19; Release Vulkano 0.16 (#1267)
* fix after revert; release 0.16

* bump shaders version
2019-11-01 10:12:17 -05:00
Austin Johnson
212c5f6622
upgrade to vulkan 1.1 (#1258) 2019-10-27 17:27:08 -05:00
nickwilcox
1b9233d0e7 add support for shader macro predefines (#1257) 2019-10-27 01:05:45 -05:00
Austin Johnson
b5d127bbf4
Update dependencies: lazy_static, half, syn, quote & proc-macro2 (#1252)
* Update dependencies: lazy_static, half, syn, quote & proc-macro2

* bump examples winit version
2019-10-24 04:09:08 -07:00
pablode
6c789e392c Add support for VK_KHR_16bit_storage and VK_KHR_storage_buffer_storage_class (#1160)
* Implement support for VK_KHR_16bit_storage and VK_KHR_storage_buffer_storage_class.

This change also allows SPIR-V instructions to require device extensions.

* Remove SPIR-V capabilities with duplicate values (StorageBuffer16BitAccess and UniformAndStorageBuffer16BitAccess).

* move changelog entry to current version
2019-10-24 01:20:36 -07:00
nickwilcox
901993b390 update shader include resolution to fix issues with windows (#1248) 2019-10-23 01:04:49 -07:00
mitchmindtree
814dacdab9
Publish version 0.14.0. (#1230)
This is kind of a delayed emergency release to address an issue where
some Linux distributions (Arch, Void and perhaps others) are unable to
build any projects depending on vulkano-shaders due to
google/shaderc-rs#58. This is resolved in shaderc 0.6 and in turn will
be resolved in vulkano 0.14 thanks to #1226.

See the CHANGELOG-VULKANO.md for more details on the release.
2019-08-18 01:29:40 +02:00
Abendstolz
0a8944362a Update shaderc to 0.6 in order to significantly reduce compile-times … (#1226)
* Update shaderc to 0.6 in order to significantly reduce compile-times on (Arch/Void)Linux again by linking towards shared libraries

* Add "shaderc-build-from-source" feature in order to allow shaderc to build from source if linking to system libraries fails

* Remove trailing whitespace to please Travis (CI)
2019-08-12 19:54:15 +10:00
Lucas Kent
e93dff0bd3
Release vulkano 0.13 (#1212) 2019-07-03 07:13:03 +10:00
Lucas Kent
f61193293f
rustc is now making use of the fact that derefencing a null pointer is UB. Remove all null dereferences (#1209) 2019-07-02 07:02:48 +10:00
mitchmindtree
bb6beb8995 Publish 0.12.0 of vulkano, vulkano-win and vulkano-shaders. (#1203) 2019-05-25 19:29:08 +10:00
45e71894af Shaderc version bump + update docs (#1197) 2019-05-08 07:18:26 +10:00
mitchmindtree
d3888242ff Fix compiler error in code generated for GLSL struct (#1166) 2019-02-07 13:55:24 +11:00
Lucas Kent
9a08414054
Upgrade vulkano-win and vulkano-shaders to rust 2018 (#1134)
* Upgrade vulkano-shaders to rust 2018
* Upgrade vulkano-win to rust 2018
2018-12-11 18:26:04 +11:00
Lucas Kent
f997e9322f
Replace try macro with '?' (#1130) 2018-12-07 11:52:52 +11:00
Lucas Kent
84d6f1b33a
handle spirv group decorations (#1126) 2018-12-04 19:10:47 +11:00
Jakub Hlusička
a9704caea9 Feature shader include (#1116)
Implement support for the include directive in shader source files
2018-11-30 13:09:13 +11:00
Lucas Kent
0c85863eb7
Release 0.11.1 of vulkano-shaders and vulkano-win (#1120) 2018-11-25 12:36:56 +11:00
Lucas Kent
52a91d8910
Release vulkano 0.11 (#1086) 2018-11-08 13:19:42 +11:00
Lucas Kent
64d67b5d0d
Fix and enforce line endings + stray whitespace (#1099) 2018-11-01 14:45:30 +11:00
Lucas Kent
9d46e08cc7
Cleanup examples (#1096)
*   replaced `.expect()` that provided no useful information with `.unwrap()`
*   used `use` consistently (all types are `use`d all functions have the parent module `use`d)
*   other formatting consistencies
2018-10-28 14:02:29 +11:00
Lucas Kent
c57289f536
refine shaders proc macro api (#1091)
macro renamed from `vulkano_shader!` to `shader!`
leave it up to the user to put it in a module
2018-10-28 10:10:29 +11:00
Lucas Kent
494a0c30c8
vulkano-shaders - proc macros 2.0 (#1062)
* vulkano_shaders_derive exposes a proc_macro instead of a proc_macro_derive
* move vulkano_shader out of vulkano_shaders_derive and deprecate vulkano_shaders_derive
* Update documentation
* Move vulkano_shader! to root of mod, so it works with rust 1.30
2018-10-26 11:15:33 +11:00
Michael Morgan
7a11120350 Add logo to HTML documentation in other crates (#1081) 2018-10-20 10:34:32 +11:00
Lucas Kent
d779829cbd
vulkano-shaders cleanup (#1058)
Use syn to construct ast instead of raw strings
Move spirv searching methods from lib.rs into its own module
Improve formatting
2018-10-05 17:00:02 +10:00
Lucas Kent
a42800e0ed
remove build_glsl_shaders (#1047) 2018-09-29 15:08:17 +10:00
Eric Culp
7fea44b4da Reject spirv arrays that have incorrect stride in rust (#1050)
SPIR-V allows the array stride and size of a type to differ, but rust defines them to be the same. Thus
certain types when represented in rust will have the wrong layout. E.g. an array of vec3 can have an array
stride of 16 in SPIR-V, but an array of [f32;3] in rust would have a stride of 12. Thus using one for the
other would cause corruption.

This suggests a workaround by using a wrapping struct or upgrading the size of the type to one where the size
is the array stride.

I considered generating the wrapping struct for the user, but that seems very confusing for the user. We could
generate wrapping structs for all vec and mat types in arrays, but that would be a large API change.

See #298.
2018-09-29 14:43:09 +10:00
Nicholas Lordello
b507034df7 Use shaderc instead of glsl-to-spirv for shader compilation (#947)
* Use shaderc instead of glsl-to-spirv for shader compilation
* added some setup notes
2018-09-21 00:24:24 +10:00
Lucas Kent
f4f91f7ee1
Run LANG=en_us aspell --mode ccpp check $filename on every rust file (#1034) 2018-09-02 14:18:22 +10:00
Lucas Kent
e21bd19bad
Publish 0.10.0 (#1013) 2018-08-12 18:42:17 +10:00
Jim Blandy
01aaa2e524 Doc fixes (#1007)
* Use 'greater than' instead of 'superior to'.

Using 'X is superior to Y' to mean 'X > Y' is not standard mathematical usage. I
think I've seen 'superior to' used in lattice theory, but that's not relevant to
these cases.

* trait RenderPassDesc: Correctly describe when `None` is returned.

This seems to be an off-by-one error in the documentation. Looking at the
implementations generated in `src/framebuffer/macros.rs`, for example,
the various elements of each sequence are numbered from 0 to n-1.

* Typo: 'anistropic' -> 'anisotropic'.

* sampler::MipmapMode::Linear: Clarify description.

The docs seem to suggest that if the dimensions match a given level D, then
`Linear` would use levels D-1 and D+1, which is senseless. The new wording is
meant to be closer to the calculation described in Vulkan 1.1.82 §15.6.7.

* Typo: 'transitionned' -> 'transitioned', and similar.

* Doc fix: 'more optimal' -> 'more efficient'

Rationale for the curious:

'Optimal' is an absolute; once something is optimal, it cannot be made more so.
Absolutes can be weakened, as in 'almost optimal', but not strengthened, as in
'more optimal' or 'very optimal'. 'Efficient' is not an absolute: one thing
might be 'more efficient' than another.

* Minor doc fixes.

* Doc fix: 'performances' -> 'performance' throughout.
2018-08-10 14:51:26 +02:00