Commit Graph

268 Commits

Author SHA1 Message Date
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
aloucks
7a3434efd1 Update glslangValidator.exe to latest version (#979)
VulkanSDK: 1.1.77.0
Date: 20-Jun-2018
SHA256: 41631380388244fa88209beac748553705087ed7df375c08456a82e0769bd0c4
https://vulkan.lunarg.com/sdk/home#sdk/downloadConfirm/1.1.77.0/windows/VulkanSDK-1.1.77.0-Installer.exe

sha256sum VulkanSDK/1.1.77.0/Bin/glslangValidator.exe
90b377479fb137f4ac69460d5f5cdc54cd23bace5eb6e6812516fdfa693b25cf *VulkanSDK/1.1.77.0/Bin/glslangValidator.exe

glslangValidator.exe --version

Glslang Version: 7.7.2767
ESSL Version: OpenGL ES GLSL 3.20 glslang Khronos. 7.2767
GLSL Version: 4.60 glslang Khronos. 7.2767
SPIR-V Version 0x00010300, Revision 1
GLSL.std.450 Version 100, Revision 1
Khronos Tool ID 8
SPIR-V Generator Version 7
GL_KHR_vulkan_glsl version 100
ARB_GL_gl_spirv version 100
2018-06-30 19:18:37 +02:00
aloucks
f7905d6cfc Validate sha256 checksum for glslangValidator.exe (#972) 2018-06-09 09:41:58 +02:00
Casey Rodarmor
54fd1500e1 Remove pritnln from parse::test::test (#941) 2018-04-06 08:26:33 +02:00
Pierre Krieger
5e73ce96a1
Publish 0.9.0 (#936) 2018-03-14 17:57:22 +01:00
Pierre Krieger
de19ef2e14
Publish 0.8.0 (#934) 2018-03-11 20:18:08 +01:00
Pierre Krieger
2519bc915a
Publish 0.7.3 (#916)
* Publish 0.7.3

* Also publish glsl-to-spirv 0.1.4
2018-02-10 19:17:41 +01:00
tomaka
c9b35bc9e2 Publish 0.7.2 (#861) 2017-10-09 14:46:41 +02:00
tomaka
8c05eb6453 Publish 0.7.1 (#837) 2017-09-28 14:05:20 +02:00
tomaka
089d0879f7 Publish 0.7.0 (#829)
* Publish 0.7.0

* Fix dependencies versions
2017-09-21 13:27:10 +02:00
tomaka
9662f8b092 Run rustfmt on the code (#807)
* Run rustfmt on the code

* Fix compilation
2017-09-06 21:35:06 +02:00
tomaka
5ac98f53f1 Publish 0.6.2 (#806) 2017-09-06 15:47:46 +02:00
tomaka
883d0cb94e Allow non-snake-case for specialization constants (#799) 2017-09-04 13:16:17 +02:00
tomaka
9f3f2dc000 Allow non_snake_case for auto-generated structs (#796) 2017-09-02 20:04:07 +02:00
tomaka
6c81d8081a Make the Layout generated by vulkano-shaders entirely public (#787) 2017-08-28 11:39:40 +02:00
tomaka
a630a5efb1 Publish 0.6.1 (#783) 2017-08-27 10:56:28 +02:00
tomaka
2cbdb288d4 Make specialization constants work (#780)
* Add new template parameters for GraphicsPipelineBuilder

* Add support for the specialization constants in build()

* Fix SpecializationConstants fields being private

* Fix lifetime problem in SpecializationConstants::descriptors()

* Run rustfmt on builder.rs
2017-08-27 10:04:18 +02:00
tomaka
5207f8a703 Reflect specialization constants in vulkano-shaders (#774) 2017-08-26 11:34:00 +02:00
tomaka
1640220ebf More fixes in limits_check (#773) 2017-08-25 11:48:13 +02:00
tomaka
0f05fc8d57 Fix number of sets in vulkano-shaders (#764) 2017-08-23 18:07:54 +02:00
tomaka
411b4e7546 Publish vulkano 0.6.0 (#747) 2017-08-17 14:05:43 +02:00
tomaka
8273fb5530 Fix #772 (#724) 2017-08-05 14:06:08 +02:00
tomaka
d55cbf04f6 Update Cargo.toml metadata (#721) 2017-08-05 11:06:13 +02:00
tomaka
6abeba4f3d Remove PipelineLayoutDescNames (#712) 2017-08-03 12:01:25 +02:00
tomaka
bf82214ec1 Rework shader entry points (#708) 2017-08-02 10:42:30 +02:00
tomaka
be298f470c Remove DescriptorBufferContentDesc (#630)
* Remove DescriptorBufferContentDesc

* Update vulkano-shaders

* Fix tests
2017-07-28 07:19:22 +02:00
tomaka
a7e989ad53 Publish 0.5.6 (#697) 2017-07-27 14:30:36 +02:00
tomaka
0fa06f7597 Publish 0.5.5 (#694) 2017-07-27 11:38:28 +02:00
Pierre Krieger
67bc3427c8 Publish 0.5.4 2017-07-19 20:02:32 +02:00
Pierre Krieger
f61bde481a Publish 0.5.3 2017-07-16 12:59:48 +02:00
Pierre Krieger
b63b49d204 Publish 0.5.2 2017-07-08 12:03:49 +02:00
Pierre Krieger
609056d0b0 Publish 0.5.1 2017-07-07 15:38:44 +02:00
Bartłomiej Grzesik
52f57c2e97 Remove fallback value in execution mode 2017-07-07 14:48:10 +02:00
Bartłomiej Grzesik
b909682401 Fix compilation of geometry shaders 2017-07-07 13:21:51 +02:00
Pierre Krieger
9e83984278 Publish 0.5.0 2017-07-04 14:26:41 +02:00
tomaka
d293c6cbcf Pass the device by value when loading a shader 2017-07-03 16:53:44 +02:00
David AOL
b0faf2db95 dst/dest inconsistency #51 2017-07-02 08:09:50 -05:00
Pierre Krieger
ef466eac85 Run rustfmt on the code 2017-06-27 08:47:16 +02:00
Pierre Krieger
e9fdcba73f Remove old gitignore files 2017-06-26 10:35:05 +02:00
Pierre Krieger
d504535040 Publish 0.4.4 2017-06-23 17:31:56 +02:00
Pierre Krieger
6e4badeb70 Publish 0.4.3 2017-06-20 20:22:55 +02:00
Pierre Krieger
0695ffd862 Publish 0.4.2 2017-06-20 10:20:08 +02:00
Pierre Krieger
c1324c2029 Publish 0.4.1 2017-06-13 13:27:59 +02:00
tomaka
ff0ca53204 Merge pull request #517 from Ralith/shader-error-fixes
Shader error handling fixes
2017-06-11 20:44:27 +02:00
Benjamin Saunders
0058cc4864 Fix unreliable shader recompilation 2017-06-11 11:21:58 -07:00
Pierre Krieger
e0553ea2ab Fix size of push constants in vulkano-shaders 2017-06-09 21:34:16 +02:00
Pierre Krieger
9b4c6e922b Publish 0.4.0 2017-06-03 13:40:42 +02:00
Pierre Krieger
4818f365e9 Add prototype support for descriptor arrays of images 2017-04-01 12:11:53 +02:00
Pierre Krieger
4e9a0a6d38 Derive copy on generated structs when possible 2017-03-02 12:53:16 +01:00
Pierre Krieger
dd4ac2219a Basic push constants reporting in vulkano_shaders 2017-02-23 07:40:37 +01:00
Pierre Krieger
c8abb70104 Use a dummy DescriptorBufferContentDesc 2017-02-22 17:31:54 +01:00
Pierre Krieger
1808356a81 Merge branch 'master' into incoming 2017-02-08 19:46:56 +01:00
Pierre Krieger
9f9965c710 Publish 0.3.2 2017-02-02 21:11:47 +01:00
tomaka
35d02e621f Merge pull request #370 from tomaka/categories
Add categories to all the crates
2017-02-02 10:13:28 +01:00
Pierre Krieger
e67f615ad2 Add categories to all the crates 2017-01-31 09:59:07 +01:00
Pierre Krieger
f039fb9123 Remove the debugging println in vulkano-shader 2017-01-31 09:50:19 +01:00
Pierre Krieger
1216461211 Merge branch 'custom-derives' into incoming 2017-01-21 16:35:58 +01:00
Wouter
9cda522d13 Disabled broken Clone impl for unsized buffers 2016-12-08 16:17:51 +01:00
Paul Houghton
5aa5d671d1 Update dependency versions 2016-12-07 23:29:15 +02:00
Wouter
2528c11e3f Moved write_structs function back to top of file 2016-12-07 21:03:22 +01:00
Wouter
cedb13a39c Implemented Copy without using derive for structs in vulkano-shaders, fixes #253 2016-12-07 20:08:38 +01:00
Pierre Krieger
c5c14e5a4d Fix vulkano_shaders with push constants descs 2016-11-10 11:21:51 +01:00
Pierre Krieger
1ca3ef8231 Merge branch 'master' into incoming 2016-11-09 13:21:15 +01:00
Pierre Krieger
479a60fe8b Various fixes 2016-10-16 20:37:32 +02:00
Pierre Krieger
b9f4f8f2cf Remove pipeline layout parameter from pipeline creation 2016-10-16 20:31:49 +02:00
Pierre Krieger
b7eaf06874 Some fixed to generated code 2016-10-16 17:00:00 +02:00
Pierre Krieger
199295afd3 Remove binding from DescriptorDesc 2016-10-16 16:56:51 +02:00
Pierre Krieger
5aec152fb5 Implement PipelineLayoutDescNames for the generated layouts 2016-10-16 16:28:59 +02:00
Pierre Krieger
32ebcaca1e Update vulkano-shaders and fix triangle example 2016-10-16 15:59:16 +02:00
Alexander Dmitriev
0cb7e3e300 Print formatted GLSL compile error messages 2016-10-04 19:52:16 +02:00
Pierre Krieger
e3eabb6740 Publish 0.3.1 2016-10-04 19:24:57 +02:00
Pierre Krieger
82ec7c9ade Publish 0.3.0 2016-09-18 15:21:48 +02:00
Pierre Krieger
6d274d4f78 Publish 0.2.2 2016-09-18 14:31:58 +02:00
Pierre Krieger
556f25e256 Publish 0.2.1
close #237
2016-09-01 07:22:22 +02:00
tomaka
122ca9d41d Publish vulkano-shaders 0.2.0 2016-07-28 13:02:10 +02:00
Pierre Krieger
3affecc702 Make ShaderModule modulable over the device pointer 2016-07-26 18:36:43 +02:00
Pierre Krieger
f1ee8c02c7 Add more allow(unsafe) on unsafe code from macros 2016-07-25 16:04:22 +02:00
Pierre Krieger
cf9b4f76b8 Make sampled parameter of texel buffers less confusing 2016-07-15 13:26:33 +02:00
Pierre Krieger
a023aaa078 Fix warnings 2016-06-16 14:04:18 +02:00
tomaka
d241551d47 Merge pull request #142 from tomaka/ints-floats-width
Fix width of integers and floating-points reflected from SPIR-V
2016-06-16 13:38:36 +02:00
Pierre Krieger
fdab501746 Fix unused imports in vulkano-shaders 2016-06-16 09:36:27 +02:00
Pierre Krieger
231ea5c531 Fix width of integers and floating-points reflected from SPIR-V 2016-06-16 09:20:33 +02:00
tomaka
150fe7474f Merge pull request #129 from tomaka/tess-geom-fix
Fix shader interfaces for tessellation and geometry shaders
2016-06-06 16:21:09 +02:00
Pierre Krieger
3a4c1022f5 Improve builtin variable detection 2016-06-06 15:20:02 +02:00
Pierre Krieger
f220519e05 Fix shader interfaces for tessellation and geometry shaders 2016-06-06 15:08:49 +02:00
Pierre Krieger
3d4bd4767a Add a better diagnostic when attrib locations overlap 2016-06-06 09:25:17 +02:00
Pierre Krieger
c246a92a7e Pass correct shader stages for the descriptors 2016-05-12 14:37:43 +02:00
Pierre Krieger
c95d456926 Properly generate infos about descriptors in vulkano-shaders 2016-05-12 13:39:31 +02:00
Pierre Krieger
3b04d46dbb Replace DescriptorType with DescriptorDescTy 2016-05-12 13:11:03 +02:00
Pierre Krieger
fe8706aae8 Put all inputs and outputs in entry point structs 2016-05-04 09:30:16 +02:00
Pierre Krieger
e2fc113711 Generate attributes description struct for all shader stages 2016-05-04 09:06:53 +02:00
Pierre Krieger
ad27205f7b Extract entry point generation to own module 2016-05-04 08:18:07 +02:00
Pierre Krieger
3cd617fd85 Add glsl-to-spirv version for vulkano-shaders 2016-04-30 12:48:50 +02:00
Pierre Krieger
8f9e3220eb Publish the crate on crates.io 2016-04-30 12:08:48 +02:00
Pierre Krieger
3f4b9e126b Rework vertex attributes system 2016-04-30 10:09:00 +02:00
Pierre Krieger
18348cd301 Correctly set the readonly attribute of descriptor layouts descriptions 2016-04-22 15:15:07 +02:00
Pierre Krieger
9cc58b7771 Handle multiple dummy values 2016-04-16 14:33:52 +02:00
Pierre Krieger
9755ad5412 Fix final struct padding 2016-04-16 14:26:17 +02:00
Pierre Krieger
8e3c191cd1 Print the array stride for debugging purposes as well 2016-04-16 13:22:54 +02:00
Pierre Krieger
9f7e9107fd Print struct members offset for debugging purposes 2016-04-16 11:50:12 +02:00
Pierre Krieger
c4e3711156 Fix error about capability not supported 2016-04-10 15:23:19 +02:00
Pierre Krieger
0aedde53f1 Add readonly member to DescriptorDesc 2016-04-08 18:24:03 +02:00
Pierre Krieger
c038deec7e Ignore local structs that don't have Offset decorations 2016-04-07 11:10:20 +02:00
Pierre Krieger
2cb409fbcd Restore specialization constants 2016-04-05 11:18:15 +02:00
Pierre Krieger
74fc2ffb94 Rename descriptor_set to descriptor 2016-04-04 09:50:02 +02:00
Pierre Krieger
f01d1fde37 Make teapot example compile (but not work) 2016-04-03 20:31:24 +02:00
Pierre Krieger
5bace4e64c Move "shader" module within "pipeline" 2016-04-01 20:45:13 +02:00
Pierre Krieger
0143111858 Add support for SSBOs in shader analyzer 2016-03-29 14:11:11 +02:00
Pierre Krieger
17339231ce Don't derive traits for structs that have an unsized member 2016-03-29 10:17:33 +02:00
Pierre Krieger
106664c156 Make compute shaders work 2016-03-29 10:11:51 +02:00
Pierre Krieger
cc3b1d672b Fixed using unchecked_uniform_buffer 2016-03-28 11:43:32 +02:00
Pierre Krieger
5f81147eff Stronger typing for descriptor sets and draft for proper barriers handling 2016-03-28 11:11:59 +02:00
Pierre Krieger
50b19b4fec Automatically determine the image layouts in descriptor sets 2016-03-28 09:49:03 +02:00
Pierre Krieger
3d6a29241c Add license everywhere 2016-03-26 10:17:37 +01:00
Pierre Krieger
8ee4d6c301 Switch to new design for images 2016-03-24 09:14:26 +01:00
Pierre Krieger
6cf7b5ace4 Fix remaining bits to make teapot example compile 2016-03-24 09:14:22 +01:00
Pierre Krieger
090a04f6cd Define descriptor set layouts for all pipeline stages 2016-03-12 09:01:40 +01:00
Pierre Krieger
f8022f6ab8 Fix wrong descriptor write being generated by ther shader parser 2016-03-11 15:57:20 +01:00
Pierre Krieger
c376f3bd10 Rework the set binding code in the shader parser 2016-03-11 15:33:57 +01:00
Pierre Krieger
b300f70dda Minor fix in shaders analyser 2016-03-11 10:35:41 +01:00
Pierre Krieger
4ae0c4541a Fix using gl_VertexIndex and gl_InstanceIndex producing errors 2016-03-09 13:06:13 +01:00
Pierre Krieger
d0738e20e8 Print the uniform variable that's missing a binding point 2016-03-09 11:48:31 +01:00
Pierre Krieger
4c8ed56783 No longer produce errors with input attachments 2016-03-06 21:11:08 +01:00
Pierre Krieger
38f083fa4c Slightly better error message in descriptor set gen 2016-03-06 21:00:28 +01:00
Pierre Krieger
1d40c8edc3 Parsed structs are now part of a ty submodule 2016-03-05 13:31:44 +01:00
Pierre Krieger
cfca5c962c Some work on better descriptor set API 2016-03-01 21:10:59 +01:00
Pierre Krieger
f341552825 Check pipeline layout of shaders 2016-03-01 14:50:30 +01:00
Pierre Krieger
a5b21125ed Rename PipelineLayoutDesc to Layout 2016-03-01 13:52:50 +01:00
Pierre Krieger
ca4c99ec92 Use the generated struct in the teapot example 2016-02-29 16:52:07 +01:00
Pierre Krieger
d82726eedd Extract descriptor sets code in own module 2016-02-29 16:10:38 +01:00
Pierre Krieger
e53a7e7bcc Handle struct members alignments in generated code 2016-02-29 16:03:48 +01:00
Pierre Krieger
85ded76ead Write structure definitions in the shader analyser 2016-02-29 15:17:25 +01:00
Pierre Krieger
f6bdc2478f Fix the vulkano-shaders example 2016-02-29 14:42:52 +01:00
Pierre Krieger
c0152c1a04 Extract Init and Write from SetLayout 2016-02-29 14:15:57 +01:00
Pierre Krieger
e392bfaed3 Rename DescriptorSetDesc to SetLayout 2016-02-29 13:53:10 +01:00
Pierre Krieger
dd34895d46 Fix path creation in build script 2016-02-25 10:19:53 +01:00
Pierre Krieger
ddcb8cf402 Add easier shaders compilation path 2016-02-25 08:52:22 +01:00
Pierre Krieger
be083d2af8 Allow specifying buffer offsets in descriptor set binding 2016-02-24 08:58:03 +01:00
Pierre Krieger
a6b166c7b6 Rename ImageResource and BufferResource to AbstractImage and AbstractBuffer 2016-02-23 21:25:03 +01:00
Pierre Krieger
e12c3015e7 Some work on SPIR-V analyser 2016-02-20 18:26:51 +01:00