Commit Graph

161 Commits

Author SHA1 Message Date
Jonathan Steyfkens
7189c7fa84 Impl DescriptorSetCollection for vec (#1094) 2018-10-28 18:47:20 +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
Jonathan Steyfkens
37de51eeef Remove the layout prefix of descriptions related to render pass creation (#1069) 2018-10-07 22:06:13 +11:00
Lucas Kent
50920f868b
Export features and device extensions from the device module instead of the instance module (#1015) 2018-10-06 17:11:57 +10: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
b6c4d84e61
Removed mir support (#1060) 2018-10-03 07:44:48 +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
Jakub Hlusička
d931bfdad0 Made AttributeInfo derive Copy, Clone and Debug (#1043) 2018-09-21 00:25:12 +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
Jakub Hlusička
e3bfe4270c Add a reinterpret function to BufferSlice (#1038)
Add a `reinterpret` function to `BufferSlice`
2018-09-17 07:44:36 +10:00
franckv
686c02440c Fix instance_count when using draw_index with instance buffers (#1033) 2018-09-02 00:57:03 +10:00
Dave Gilbert
40e0bbf77e PersistentDescriptorSetError: Expand missing usage errors (#1021)
Expand MissingUsage into MissingBufferUsage and MissingImageUsage
each with an enum so that the usage that is missing is obvious
in the error, e.g.:

thread 'main' panicked at 'add curimage: MissingImageUsage(Storage)'

Signed-off-by: Dr. David Alan Gilbert <dave@treblig.org>
2018-08-27 07:10:36 +10:00
Lucas Kent
e21bd19bad
Publish 0.10.0 (#1013) 2018-08-12 18:42:17 +10:00
Gabriel Majeri
d80d5a6791 Fix Instance example (#872) 2018-08-11 16:48:03 +10:00
Lucas Kent
44e8207a27 Upgrade dependencies (#1012) 2018-08-10 14:50:38 +02:00
Andrew Hickman
b0832072fc Avoid allocating a DynamicState every frame (#1008)
* Avoid allocating a DynamicState every frame

* Don't mutate the DynamicState

* Undo DynamicState::dynamic_state doc change
2018-08-04 14:38:33 +02:00
Andrew Hickman
1d521d35d2 Don't force the surface to take ownership of the window (#991)
* Don't force the surface to take ownership of the window

* Update changelog
2018-07-28 15:14:37 +02:00
Lucas Kent
71d90e562a Upgrade deps + fix warnings in examples (#982)
* Upgrade dependencies

* Fix warnings in examples
2018-06-30 19:15:33 +02:00
Branan Riley
44530af81c Update winit to 0.13.1 (#953) 2018-06-05 12:58:59 +02:00
Branan Riley
d4004e1770 Allow subpass dependencies on VK_SUBPASS_EXTERNAL (#951)
This updates the asserts in `RenderPass` creation to allow
`VK_SUBPASS_EXTERNAL` as a special value in addition to any value less
than the total number of subpasses. This enables custom unsafe
implementations of `RenderPassDesc` to define their external dependencies.
2018-06-05 12:21:13 +02:00
Nicholas Lordello
37fcd507d0 Use libvulkan.dylib instead of MoltenVK by default on macOS (#948) 2018-04-19 09:48:33 +02:00
Pierre Krieger
5e73ce96a1
Publish 0.9.0 (#936) 2018-03-14 17:57:22 +01:00
Gabriel Majeri
77c76b77ed Update dependencies (#903)
* Update dependencies

* Update winit to 0.11

* Update CHANGELOG.md
2018-03-13 12:34:30 +01:00
Pierre Krieger
de19ef2e14
Publish 0.8.0 (#934) 2018-03-11 20:18:08 +01:00
Branan Riley
e9104208c4 Allow Surface to reference an external window object (#848)
* Allow Surface to reference an external window object

This makes the Surface struct generic across a Window
type, so that a surface can own (or reference, if W is
an Arc) an external window object.

This also updates vulkano-win to take advantage of this.
There is no longer a dedicated Window struct in vulkano-win.
Instead, the Surface is simply passed ownership of the
winit::Window.

This fixes #844

* Update examples for new surface API

* Update Changelog

* Remove unnecessary send/sync bounds

* Update swapchain docs for new Surface behavior
2018-02-13 14:29:36 +01:00
Pierre Krieger
aa6ce2f977
Yank version 0.7.3 (#918) 2018-02-13 12:12: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
Bram Buurlage
057507f7c2 Fixed issue #857 / swapchain resize causes panic (#908)
* Fixed issue #857

* Update CHANGELOG.md
2018-01-09 08:47:19 +01:00
Benjamin Saunders
52fedcf77f Simplify constructing pipelines that use dynamic buffers (#894)
* Simplify constructing pipelines that use dynamic buffers

* Simplify PipelineLayoutDescTweaks API
2017-12-14 10:26:02 +01:00
Benjamin Saunders
70013d2678 Add object name setters (#895) 2017-12-13 09:50:08 +01:00
cbbowen
bc01c79992 Expose vkCmdCopyImage (#888)
* Expose vkCmdCopyImage.

* Add copy_image to changelog
2017-11-29 22:10:43 +01:00
jansol
0ae08dceec Fix linking against MoltenVK (#880)
Starting from version 0.19.0 MoltenVK depends on IOSurface.framework
2017-11-17 12:41:02 +01:00
Branan Riley
a3a4e89778 Do not try to hardlink glslangValidator (#870)
Previously, it was possible for the hardlinked glslangValidator
to become truncated when the glsl-to-spirv crate was rebuilt. The
file would be successfully hardlinked the first time, but on
subsequent builds the hardlink attempt would fail becasue the target
already exists. This would cause the build script to fall back to
a copy, which truncates when source and dest are the same file.

This removes the hardlinking entirely, meaning that we always just
copy our built glslangValidator to where we want it. While it would
be possible to try to make the hardlinking/copying logic idempotent,
the complexity (and potential fragility to similar bugs in the
future) doesn't seem worth it to avoid one copy.

This fixes #95
2017-10-24 07:51:50 +02:00
AustinJ235
36d74eab9f Clear value validation for AutoCommandBufferBuilder::begin_render_pass() (#869)
* Clear value validation for AutoCommandBufferBuilder::begin_render_pass()

* Add changelog entry and TODO comment

* Add changelog entry
2017-10-18 19:22:23 +02:00
AustinJ235
c7d77e5d8c Allow depth/stencil images to be used with AutoCommandBufferBuilder::copy_image_to_buffer() (#868)
* Allow depth/stencil images to be used with AutoCommandBufferBuilder::copy_image_to_buffer()

* Corrected the copy_image_to_buffer() change
2017-10-16 08:20:02 +02:00
tomaka
c60265c67b Changed ShaderInterfaceMismatchError to be more verbose (#862)
* Changed `ShaderInterfaceMismatchError` to be more verbose

* Add entry to changelog
2017-10-11 19:43:25 +02:00
tomaka
c9b35bc9e2 Publish 0.7.2 (#861) 2017-10-09 14:46:41 +02:00
tomaka
82225bb3ad Added GraphicsPipelineBuilder::with_pipeline_layout (#859) 2017-10-08 17:38:58 +02:00
Benjamin Saunders
3e56a917ab Minimal command buffer debug marker support (#847)
* Minimal command buffer debug marker support

* Suppress debug marker use when the extension isn't loaded

* Update CHANGELOG

* Revert "Suppress debug marker use when the extension isn't loaded"

This reverts commit 116ea5573bfbb34956f7f180659d570fc42d33e5.

* Document required extension for debug markers

* Document debug marker safety issues
2017-10-08 17:38:51 +02:00
tomaka
b438ee919c Directly build a vkPipelineInputAssemblyStateCreateInfo in the gfx pipeline builder (#855) 2017-10-08 10:17:32 +02:00
tomaka
3b10fe87bb Changed GraphicsPipelineBuilder to default to a buffer-less vertex … (#856)
* Changed `GraphicsPipelineBuilder` to default to a buffer-less vertex input

* Fix compilation
2017-10-08 09:54:16 +02:00
tomaka
ae5cf711a0 Check the min_texel_buffer_offset_alignment limit in buffer views (#846) 2017-10-07 16:11:05 +02:00
Fabio Krapohl
14ff3db022 impl_vertex accept generic structs (#849)
* fixed macro for vertex

* Update CHANGELOG.md
2017-10-07 11:18:11 +02:00
tomaka
8c05eb6453 Publish 0.7.1 (#837) 2017-09-28 14:05:20 +02:00
tomaka
93cbe33265 Some work on correct support for multisampling (#835)
* Some work on correct support for multisampling

* Note that Multisample is deprecated
2017-09-28 13:23:53 +02:00
tomaka
e8e48daadb Fix the render pass macros when it comes to resolving attachments (#833)
* Fix trhe render pass macros when it comes to resolving attachments

* Fix single_pass_renderpass
2017-09-26 10:29:34 +02:00
Pyry Kontio
ddb66a5513 Fixed the layer scaling issue on macOS. (#830)
* Fixed the layer scaling issue on macOS. Changed the triangle example to use the surface extents instead of window dimensions, as that seems to be a more robust source of correct information.

* Updated changelog. Fixed other examples' window extent problem.
2017-09-26 10:29:26 +02:00
Icy Defiance
430cabfe90 Fixed le() and ge() for DescriptorsCount (#832)
This also fixes a potential memory leak when allocating descriptor sets
2017-09-23 20:21:14 +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
bf583c7ef3 is_superset_of now returns a Result (#828) 2017-09-21 10:35:59 +02:00
tomaka
be9e6dc103 Add RuntimePipelineDesc (#827)
* Add RuntimePipelineDesc

* Minor changelog fix
2017-09-20 09:47:43 +02:00
tomaka
88743a6361 Check image layout in try_gpu_lock (#816)
* [WIP] Check image layout in try_gpu_lock

* Finish implementation

* Add entry in CHANGELOG

* Fix wrong unlock with error recovery

* Improve CommandBufferExecError::AccessError to provide a hint

* Fix AttachmentImage wrong layout report
2017-09-14 16:29:11 +02:00
Benjamin Saunders
24496cc725 Bufferless vertex definition (#819)
* Bufferless vertex definition

* Define `BufferlessVertices` to enable bufferless instanced drawing

* Cleanup
2017-09-13 19:29:53 +02:00
John-John Tedro
de25bb2906 Provide 32-bit word constructor for ShaderModule (#818)
This provides the alternative constructor `ShaderModule::from_words(..)`, which uses `&[u32]` for the SPIR-V code.

`ShaderModule` currently uses an argument of type `&[u8]`, which causes interoperability issues with libraries like [shaderc][shaderc] and [rspirv][rspirv].

This is spec-compliant since the byte-code of the shader module is defined as `[..] a series of 32-bit words in host endianness.`

[shaderc]: https://docs.rs/shaderc/0.2.0/shaderc/struct.CompilationArtifact.html
[rspirv]: https://docs.rs/rspirv/0.4.0/rspirv/binary/trait.Assemble.html#tymethod.assemble
2017-09-11 12:37:48 +02:00
Christian Sdunek
fa6d56de76 Fix layer count check in swapchain constructor (#817) 2017-09-10 13:02:53 +02:00
tomaka
9abc9e431d Simplify BufferAccess and ImageAccess (#811) 2017-09-09 09:11:58 +02:00
tomaka
bdf026a78b Propagate allocation errors to CpuBufferPool::next() and chunk() (#809)
* Propagate allocation errors to CpuBufferPool::next() and chunk()

* Add entry in CHANGELOG
2017-09-09 08:55:20 +02:00
tomaka
5ac98f53f1 Publish 0.6.2 (#806) 2017-09-06 15:47:46 +02:00
tomaka
e1854da9f9 Added a changelog (#805) 2017-09-06 14:36:06 +02:00