Commit Graph

232 Commits

Author SHA1 Message Date
Rua
cf8e8c3732
Some shader fixes and improvements (#2280) 2023-08-05 16:47:17 +02:00
Rua
d0144c2d98
ValidationError-ify commands, add some validation to UnsafeCommandBufferBuilder (#2266)
* ValidationError-ify commands, add some validation to `UnsafeCommandBufferBuilder`

* Use `SubpassBeginInfo` for the triangle example
2023-08-04 20:55:16 +02:00
Rua
17dbd1ac2c
ValidationError-ify ShaderModule (#2268)
* ValidationError-ify `ShaderModule`

* Typo

* Remove leftover comments

* slice, not Iterator

* Update vulkano/src/shader/mod.rs

Co-authored-by: marc0246 <40955683+marc0246@users.noreply.github.com>

* Update vulkano/src/shader/mod.rs

Co-authored-by: marc0246 <40955683+marc0246@users.noreply.github.com>

---------

Co-authored-by: marc0246 <40955683+marc0246@users.noreply.github.com>
2023-07-24 22:21:05 +02:00
Rua
b7679f8bbb
Rewrite shader and specialization handling in pipelines (#2181)
* 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>
2023-04-18 20:53:08 +02:00
Firestar99
9ba796d453
Add root_path_env property to shaders macro (#2180)
* 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>
2023-04-11 11:28:45 +02:00
Rua
1f31e85c5e
Release Vulkano 0.33.0 (#2169)
* Release Vulkano 0.33.0

* Update changelog for recent changes

* Derp
2023-04-02 18:38:06 -05:00
Rua
41ded32156
Update dependencies, clippy warnings (#2142)
* Update dependencies, clippy warnings

* Remove allowed clippy lint that no longer triggers as of Rust 1.67.1
2023-03-05 20:12:17 -06:00
marc0246
baf863ce33
Resolve restrictions of BufferContents, add support for allocating all types of buffers, and rework vulkano-shaders (#2132)
* Add `BufferContentsLayout`

* Rework `BufferContents`

* Add `BufferContents` derive macro

* Relax restrictions of shader code generation

* Fix examples

* Add additional invariant to `Subbuffer`

* Shorten paths a bit

* Remove a bit of bloat

* Add `Sized` constraint to element traits

* Fix an oopsie

* Add `Aligned`

* Add support for deriving `BufferContents` for sized types

* Fix alignment and padding issues

* Fix docs and add examples for `BufferContents`

* Adjust shader macro

* Add tests

* Adjust `Vertex` example

* Remove bytemuck re-export

* Update examples

* Workaround bytemuck's array elements that are `AnyBitPattern` limitation

* Add more alignments

* Fix an earlier oopsie

* Rework vulkano-shaders

* Fix examples

* Fix some rogue tabs in examples

* Add `AsRef` and `AsMut` implementation for `Padded`

* Remove useless code duplication

* Make the `BufferContents` derive macro the same for all types

* Add example docs for `Padded`

* Work around trivial bounds

* More example docs

* Minor consistency adjustment

* Add `serde` to the list of cargo features

* Make clippy happy again
2023-03-05 19:56:35 +01:00
Andrew
58fe067033
remove extraneous comma in shader entry point generation (#2136) 2023-02-15 14:43:02 +01:00
Rua
41a37735d1
Automatically derive Pod and Zeroable for structs generated by vulkano-shaders (#2117) 2022-12-30 03:18:25 -06:00
Rua
f08e8767a9
Document features of each crate (#2115) 2022-12-30 03:14:43 -06:00
Rua
0b0c4662e9
Add more support for cgmath and nalgebra types (#2107) 2022-12-21 07:50:56 -06:00
Rua
6eb526322b
Fix clippy warnings from Rust 1.66 (#2105) 2022-12-18 10:23:40 -06:00
Rua
79c39ecb06
Add synchronization tracking for render pass operations (#2101) 2022-12-13 07:46:48 -06:00
Rua
4d95604e1a
Update Ash to 0.37.1 (#2096)
* Update Ash to 0.37.1

* typo

* Add support for new shader/pipeline stages and access flags

* Small change

* Fixes

* Use ^ for version
2022-12-02 10:17:45 -06:00
Rua
4ccfc925fa
Refactor DescriptorRequirements (#2081) 2022-11-09 03:35:50 -06:00
Rua
a984a925c4
Use actual integer bitflags for Vulkan bitflag types (#2073)
* Use actual integer bitflags for Vulkan bitflag types

* Fix doc tests

* Fix Fence and Semaphore on Win32 and Fuchsia

* Add macro for bitflags that have a corresponding enum

* Fix bug
2022-11-05 00:02:28 -05:00
marc0246
b8d7cc3241
The deed (#2016) 2022-10-04 10:50:58 +02:00
marc0246
7e3515e6eb
Replace generics with impl Trait (#2017) 2022-10-04 10:06:36 +02:00
marc0246
1c2d195dab
Improvements to caches and switch to ahash (#2019)
* Add `OnceCache`

* Switch to `ahash`
2022-10-04 10:04:52 +02:00
Rua
f78e06fc6e
#2007 fixes (#2008) 2022-10-01 21:19:25 -05:00
Rua
9a50d6ca56
Fix handling of runtime sized arrays in shaders (#1992)
* Fix handling of runtime sized arrays in shaders

* Small fix
2022-09-22 02:11:30 -05:00
Rua
b06b29afd2
Better validation and errors (#1966)
* Better validation and errors

* Small fix
2022-09-09 22:41:52 -05:00
Rua
2705984c77
Macrofy all Vulkan bitflag and enum types, check for device support (#1964) 2022-09-05 15:16:40 -05:00
Rua
f0e6e4c6b7
Fix or allow all Clippy errors, re-enable dead code and unused variable warnings (#1953) 2022-08-12 05:18:35 -05:00
Rua
69b72362ea
Vulkano-shaders struct generation refactor (#1945) 2022-08-07 05:54:38 -05:00
Austin Johnson
c0c9c21ce4
remove unnecessary question mark operator and unsafe block (#1940) 2022-08-01 10:43:45 +02:00
Rua
d3217d2531
Update dependencies (#1904)
* Update dependencies

* MacOS fix
2022-05-29 19:27:47 +02:00
atilo
31a203303e
Raytracing shaders with vulkano-shaders (#1888)
* Support for compiling ray shaders (still broken)

* Remove debug print and fix unimplemented panic
2022-05-02 13:21:00 +02:00
Austin Johnson
2e562b5773
convert fnv types into std (#1847) 2022-02-27 08:47:22 +01:00
Rua
db51e15e5e
Vulkan 1.3 support, updated dependencies (#1836) 2022-02-25 16:58:09 -06:00
Rua
786683c2a9
Add DescriptorSetLayoutCreateInfo and PipelineLayoutCreateInfo (#1834)
* Add `DescriptorSetLayoutCreateInfo` and `PipelineLayoutCreateInfo`

* DescriptorType non_exhaustive
2022-02-25 16:52:44 -06:00
Eemeli Lehtonen
3054690ed7
fix shader macro for geometry stages (#1823) 2022-02-10 22:41:43 +01:00
Rua
e3146aac0e
Sampler ycbcr conversion (#1807)
* Better validation of image view creation, descriptor set updates, draw-time resources and others

* Add sampler YCbCr conversion

* Add shader validation

* Minor fixes

* Add YCbCr example

* Typo
2022-01-30 08:52:57 +07:00
Rua
0c06394e6c
Better validation of image view creation, descriptor set updates, draw-time resources and others (#1806) 2022-01-30 03:53:33 +07:00
Rua
07c1ec1dc1
Update dependencies (#1793) 2022-01-18 19:49:24 +07:00
Rua
16171c51ac
Improve shader analysis, add and refine DescriptorRequirements fields (#1786)
* Improve shader analysis, add and refine DescriptorRequirements fields

* Simplify a bit
2022-01-11 09:06:22 +07:00
Rua
906877421f
Always generate shader requirements for the exact entrypoint interface (#1778) 2021-12-19 17:44:58 +07:00
Rua
f069fdc35f
Upgrade to Rust 2021, update dependencies (#1772)
* Upgrade to Rust 2021, update dependencies

* Missed one

* Fix raw_window_handle breaking changes
2021-12-16 15:46:44 +07:00
Rua
0ebf05f35d
Bring vertex input in line with other pipeline state, reorganise modules (#1758)
* Bring vertex input in line with other pipeline state, reorganise modules

* Documentation improvement

* Use ShaderInterfaceEntryType in shader interface instead of format

* Example fix
2021-12-06 03:30:56 +07:00
Ilya Lakhin
29dcd28dc4
Fixes a bug when using vulkan-shaders macro with multiple shaders in release mode (#1765) 2021-11-24 22:53:43 +07:00
Rua
66d545c4cf
Add shaderc-debug feature to Vulkano-shaders (#1754) 2021-11-24 20:51:55 +07:00
Will Song
9041858430
Shader improvements (#1753)
* add Eq, PartialEq to ShaderExecution and thus GeometryShaderExecution

* use (String, ExecutionModel) to describe each entry point instead

* update tests

* Revert "update tests"

This reverts commit 2bd07d1ef4.

* keep old entry_point interface but introduce new entry_point_with_execution for fine grained selection

* update tests

* move traits to autogen

* oops
2021-11-24 20:03:10 +07:00
Rua
c6959aa961
Move shader analysis to Vulkano crate, make available for runtime shaders (#1747)
* 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
2021-11-13 22:06:16 +07:00
Rua
5a326db546
Add DescriptorRequirements (#1729)
* Add DescriptorRequirements

* Doc fix
2021-10-26 00:16:54 +07:00
Rua
17820738d8
Replace Iterator parameters with IntoIterator where possible, replace various iterator types with impl Iterator (#1719) 2021-09-29 01:15:39 -05:00
Rua
8d321430cb
Add auto-generated SPIR-V parsing (#1701)
* Add auto-generated SPIR-V parsing

* Add further reflection utilities for decorations, names and members, clean up Vulkano-shaders
2021-09-13 19:39:17 +07:00
Ilya Lakhin
ddbde190ff
Sharing generated Rust types between shaders (#1694)
* Vulkano-shader mutual compilation mode

* Tests fixes

* Shared constants option for multi-shader

* Cargo fmt

* Fix doc typos
2021-09-06 02:18:04 +07:00
Rua
cd8302328f
Update dependencies (#1689) 2021-09-03 23:21:15 -05:00
Rua
ebf3ace481
Add support for immutable samplers, some small changes (#1688) 2021-09-03 23:20:05 -05:00