Commit Graph

318 Commits

Author SHA1 Message Date
Lucas Kent
fc6ac6fec1
Fix warnings on nightly (#1213) 2019-07-02 18:25:58 +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
3518268b7f Add an instancing.rs example. (#1163)
* Add an `instancing.rs` example.

This is a simple-as-possible example of how to do instancing with
vulkano. The example is a direct copy of the `triangle.rs` example but
removes the comments in favour of only explaining the differences
necessary for doing instancing. Rather than drawing one triangle in the
centre of the screen, the example draws 100 instances of the triangle in
a 10x10 grid and get slightly larger across each axis.

* Add missing word to InstanceData struct description
2019-03-15 14:05:07 +11:00
Lucas Kent
defa8f8f16
Update winit and crossbeam versions (#1177) 2019-03-12 19:34:03 +11:00
Lucas Kent
a3d503a5e5
Update example deps (#1155) 2019-01-19 18:23:45 +11:00
Lucas Kent
5d7e7ace62
Run CI on windows (#1148) 2019-01-05 15:12:38 +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
34eeea6b52
Upgrade examples to rust 2018 (#1131) 2018-12-07 23:35:19 +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
d507cf4555
* Upgrade to winit 0.18 (#1105)
*   Setup macOS travis CI.
2018-11-08 12:12:20 +11:00
Lucas Kent
64d67b5d0d
Fix and enforce line endings + stray whitespace (#1099) 2018-11-01 14:45:30 +11:00
Lucas Kent
3fe7fc4495
Move shaders back that were supposed to be defined in the middle of main() { } (#1097)
They were initially moved because rust currently doesnt support
function-like proc macros in a function, but now they are wrapped in a
mod anyway.
2018-10-28 18:29:41 +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
2153177210
Fix wayland resize issue (#1089)
Some drivers dont enforce a swapchain extent, so you need to check for
resize events from the os and then recreate the swapchain.
I took this opportunity to refactor the examples a bunch.
I want to do some more refactoring to make things consistent but I'll
leave that for a follow up PR.
2018-10-28 08:16:30 +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
Lucas Kent
24f93feffd
Fix window resize on deferred example (#1074) 2018-10-12 19:41:19 +11:00
Lucas Kent
4633c72bab
Add push constants example (#1072) 2018-10-11 11:42:56 +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
448bc1d1ad
Update dependencies (#1048) 2018-09-23 22:10:37 +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
e5d501fb5e
Copy examples from example repo (#1023)
*   Update PR template
*   Rename queue to queue_family
*   Add examples readme
*   Use the same image output filename
*   Move existing examples with multiple files into their own folder
*   Improve error message when running runtime-shader in the wrong directory
2018-08-30 11:37:51 +10:00
Lucas Kent
c720da66cd
Implement tessellation example (#1025) 2018-08-25 02:32:39 +10:00
Lucas Kent
7dc5de217b
Add trivial tessellation example and fix building a pipeline that uses tessellation shaders (#1024) 2018-08-24 20:01:00 +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
Lucas Kent
257994c7e8 Remove remaining std::mem::replace usages in examples (#1006) 2018-08-04 14:38:57 +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
Jim Blandy
175763a953 Avoid gratuitous use of std::mem::replace. (#1005)
Either these calls to `replace` are unnecessary, or I'm going to learn something
I really need to know.

The only way difference I can see between `replace` and a simple assignment is
that `replace` returns ownership of the value to the caller, so the old value is
dropped after the new value has been put in place. But if Rust lets us assign to
or move from a variable, that means that no other alias can observe that
happening --- which I think means that the drop can't possibly care whether it
occurs before or after the move.
2018-07-30 12:07:35 +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
Cldfire
e515ffd846 Add overview of generated macro code to vulkano-shader-derive (#958) 2018-06-05 12:22:22 +02:00
Lucas Kent
bb3e6d616c Fix clear values in runtime-shader example (#968) 2018-06-05 12:21:36 +02: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
Casey Rodarmor
c11208521b Remove unused use std::iter; in triangle example (#935) 2018-03-13 11:36:09 +01:00
John Doneth
3231e92715 Fixed resizing bug in examples (#303) (#919)
Fixed the OutOfDate error in the examples by conditionally unwrapping futures
2018-02-14 08:51:52 +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
thelearnerofcode
80e1ed6dc3 Updated Dependencies. (#876)
* Updated Dependencies

* Complied with changes mentioned in pull request.
2017-12-11 10:23:40 +01:00
tomaka
c16e4d81b2
Fix triangle example panicking on wayland (#873) 2017-11-11 11:23:53 +01: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
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
9bf5e7f252 Remove the guide examples (#784) 2017-08-28 20:31:10 +02:00
tomaka
4208814e74 Fix #760 (#761) 2017-08-23 15:45:37 +02:00
tomaka
f02e021158 Remove the list of queue families in most places when creating a buffer or image (#746)
* Add Device::active_queue_families()

* Remove queue families parameter for ImmutableImage

* Remove queue families param from ImmutableBuffer

* Remove queue_families parameter from CpuBufferPool

* Remove queue families parameter from CpuAccessibleBuffer

* Fix examples
2017-08-17 11:59:59 +02:00
tomaka
3bfd84544e Add the triangle guide example (#720) 2017-08-05 10:32:14 +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
Philip Woods
572554dbc1 Added window resizing to examples (#671)
* Added Swapchain recreation to triangle example

* Triangle example no longer panics when manually resizing window

* Triangle example now correctly resizes viewport

* Added window resizing support to image example

* Removed unused code from image example

* Moved dimension definition earlier in triangle and image example

* Replaced width and height variables in examples with dimensions

* Added window resizing support to teapot example

* Removed unused code from teapot example

* Removed duplicate code creating framebuffers
2017-07-26 17:58:40 +02:00
Benjamin Saunders
c085e193d9 Omit rarely-needed parameters from ImmutableImage convenience ctors 2017-07-24 01:09:45 -07:00
Benjamin Saunders
8a3bf4d191 Refactor ImmutableImage for convenient, safe initialization 2017-07-23 14:40:53 -07:00
tomaka
ef9a5f98e3 Merge pull request #667 from fst3a/spv-examples
Example showing how to manually load SPIR-V shaders from disk
2017-07-23 10:12:37 +02:00
Constantine
af0bb0ce9e Accomodate requested changes 2017-07-22 22:47:53 +03:00
tomaka
5f9b6dcaf2 Fix the examples not working on Android 2017-07-22 16:44:52 +02:00
Constantine
72b17b8e9d Add spv-1 example 2017-07-20 16:58:26 +03:00
Pierre Krieger
3fe108336c Fixes to the CpuBufferPool 2017-07-19 19:19:40 +02:00
Jason Davies
b06f45736d Use supports_compute() in compute example. 2017-07-19 01:10:38 +01:00
tomaka
139a13de62 Merge pull request #632 from tomaka/cb-builder-builders
Add other constructors for AutoCommandBufferBuilder
2017-07-11 12:33:39 +02:00
Pierre Krieger
437b046539 Fix examples 2017-07-11 11:33:35 +02:00
Pierre Krieger
c34491ed57 Add the example for the mandelbrot fractal 2017-07-11 11:09:01 +02:00
Pierre Krieger
d06e2abf3c Add other constructors for AutoCommandBufferBuilder 2017-07-10 21:27:42 +02:00
Pierre Krieger
205b56327e Fix teapot rotation slowly 2017-07-08 12:54:23 +02:00
Pierre Krieger
7c48e7c891 Finish updating examples for PersistentDescriptorSet 2017-07-08 12:13:05 +02:00
Pierre Krieger
bceafa2b03 Add the example for the next section of the guide 2017-07-08 11:13:32 +02:00
Pierre Krieger
fcae155883 Add errors to PersistentDescriptorSet building 2017-07-07 17:07:11 +02:00
Pierre Krieger
3d718c57a0 Update the examples for PersistentDescriptorSet 2017-07-07 17:07:11 +02:00
Pierre Krieger
5cb9cbd367 Fix #599 2017-07-05 18:16:14 +02:00
tomaka
9c05d74481 Merge pull request #591 from tomaka/fix-590
Fix #590
2017-07-05 09:38:45 +02:00
Pierre Krieger
6c1cd22fba Add the examples of the guide 2017-07-05 09:09:44 +02:00
Pierre Krieger
d64c7bd21f Fix #590 2017-07-04 17:30:17 +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
Rukai
eb9ccd44e8 pass PhysicalDevice by value 2017-07-02 14:12:48 +10:00
tomaka
d7c9d08f76 Merge pull request #551 from tomaka/acquire-sc-timeout
The timeout of acquire_next_image is now optional
2017-06-27 07:48:11 +02:00
Pierre Krieger
e9fdcba73f Remove old gitignore files 2017-06-26 10:35:05 +02:00
Pierre Krieger
4df639a834 The timeout of acquire_next_image is now optional 2017-06-25 10:28:22 +02:00
Pierre Krieger
d1b83a5192 Fix some warnings and examples 2017-06-23 10:32:49 +02:00
Pierre Krieger
d372724054 Rework command buffers 2017-06-23 07:34:04 +02:00
Pierre Krieger
78ddfba364 Add a compute shader example, and bugfix 2017-06-20 15:07:21 +02:00
Gabriel Majeri
6c3a7193e7 Fix some more unused code 2017-06-20 06:56:51 +03:00
Gabriel Majeri
3bd0d38f97 Update examples' libraries 2017-06-20 06:54:35 +03:00
Gabriel Majeri
9d2c028699 Fix unused code / imports in the examples 2017-06-20 06:53:53 +03:00
tomaka
4d96d9a912 Merge pull request #513 from tomaka/g-pipeline-builder
Add a GraphicsPipelineBuilder
2017-06-14 10:22:54 +02:00
Pierre Krieger
7723ba55e4 Add dummy for specialization constants in builder 2017-06-13 15:21:19 +02:00
Pierre Krieger
53fb62c6b1 Use FIFO present mode in exemples 2017-06-11 19:01:00 +02:00
tomaka
29096fc53f Minor warning fixes and comment restore 2017-06-10 18:58:25 +02:00
tomaka
80e8848e32 Convert other examples 2017-06-10 18:55:05 +02:00
tomaka
64b8db24ea Make triangle example work 2017-06-10 18:36:01 +02:00
Pierre Krieger
ad3307d252 Use vulkano-shader-derive in the examples 2017-06-03 12:49:50 +02:00
Pierre Krieger
db3e128143 Rework framebuffer creation 2017-06-02 20:36:43 +02:00
Pierre Krieger
953b89f52e Architectural rework in swapchain 2017-05-26 13:12:21 +02:00
Pierre Krieger
a3c30dc183 Creating a Surface now takes the Arc<Instance> by value 2017-05-26 10:51:28 +02:00
Pierre Krieger
0d918e3779 Rework Surface::is_supported() and update examples 2017-05-26 10:42:03 +02:00
Pierre Krieger
6d106565d3 Turn all the constructor that take a &Arc<Device> to Arc<Device> 2017-05-25 21:44:54 +02:00
Pierre Krieger
3c51a3eb0b Update the examples to use the new system 2017-05-21 19:04:14 +02:00
Pierre Krieger
6f32b7d1c0 Fix examples 2017-05-20 14:06:19 +02:00
Pierre Krieger
1e62e4fc78 Take BufferUsage by value and never by ref 2017-05-19 15:26:57 +02:00
Pierre Krieger
c8fc08738e Fix examples 2017-05-15 11:02:00 +02:00
Benjamin Saunders
f3d7ca4b0d Update vulkano-win and examples to winit 0.6 2017-05-07 19:08:18 -07:00
Pierre Krieger
3213c9fef3 Add documentation and usability methods to GpuFuture 2017-05-06 20:10:16 +02:00
Pierre Krieger
5de743221b Adding a command to a builder can now return an error 2017-04-20 09:43:57 +02:00
Pierre Krieger
db3dfb4b96 Fix example 2017-04-17 09:15:43 +02:00
Pierre Krieger
adaf6258a9 Fix compilation 2017-04-15 12:57:16 +02:00
Luxko
4c7a1a786c fix teapot example 2017-04-08 20:29:15 +08:00
Pierre Krieger
99388714c3 Building a command buffer can now return an OomError 2017-04-04 17:41:51 +02:00
Pierre Krieger
dcab87b9be Fix image example 2017-04-04 09:00:11 +02:00
Luxko
f82ceaf35c Restore CmdDrawIndexed
- restore CmdDrawIndexed
- add a method `draw_indexed` to `CommandBufferBuilder`
- pass through relative `AddCommand`-impls to relative layers and
finally to `AutoCommandBufferBuilder`.
- make the teapot example work again
2017-03-16 21:55:01 +08:00
Pierre Krieger
8ed20f933c Change GpuFuture::is_finished to cleanup_finished 2017-03-04 20:05:36 +01:00
Pierre Krieger
dd13c015cb Implement #385 2017-02-17 14:19:11 +01:00
Pierre Krieger
372a6f7d14 Rework command buffers again 2017-01-24 14:24:13 +01:00
Pierre Krieger
1216461211 Merge branch 'custom-derives' into incoming 2017-01-21 16:35:58 +01:00
Pierre Krieger
61dc795e03 Revert the triangle example to what it was 2017-01-21 16:33:09 +01:00
Pierre Krieger
f932187778 Add a small crate to allow inlining shader source codes 2017-01-21 16:17:06 +01:00
Pierre Krieger
fec458b881 Fix warnings and improve docs 2017-01-04 21:01:40 +01:00
Pierre Krieger
8e58d913e6 Rework fb clear values 2017-01-04 17:49:23 +01:00
Pierre Krieger
19beb1eb06 Rework attachments list 2017-01-04 16:55:19 +01:00
Jeroen Bollen
a5acc07494 Examples now use min_image_count-buffering
This fixes a bug on some devices where the hard coded values were too small, and not supported.
2017-01-03 22:47:33 +01:00
Callym
66e98cf5b5 Fixed warning about CpuAccessibleBuffer::array being depreciated 2016-12-22 00:01:37 +00:00
Pierre Krieger
738b16cb07 Some work on framebuffer macros rework 2016-12-18 15:28:40 +01:00
Pierre Krieger
2b5a75c39b Modify descriptor pools system and fix teapot example 2016-12-10 11:45:07 +01:00
Paul Houghton
b53cf071f3 4 more shaders->shaderpack450 2016-12-07 23:52:36 +02:00
Paul Houghton
2d7ffaf1f4 GL_ARB_shading_language_420pack->450pack in example 2016-12-07 23:45:46 +02:00
Paul Houghton
0eb105e601 cgmath->0.12.0; associated changes in teapot example 2016-11-29 19:03:12 +02:00
Pierre Krieger
f56ded6f5a Make build_primary default to AutobarriersCb 2016-11-24 16:48:29 +01:00
Pierre Krieger
35f687b215 Make triangle example compile again (but not work) 2016-11-15 16:24:42 +01:00
Pierre Krieger
358b1f2212 Some tweaks to triangle.rs 2016-11-10 11:20:46 +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
32ebcaca1e Update vulkano-shaders and fix triangle example 2016-10-16 15:59:16 +02:00
Pierre Krieger
4f9b2dda96 Submitting can now return an error 2016-10-09 09:39:39 +02:00
Pierre Krieger
a2fe17b262 Some more fixes with descriptor sets 2016-10-06 12:03:22 +02:00
Pierre Krieger
9d3423c856 Fix triangle example 2016-10-06 10:43:46 +02:00
Pierre Krieger
148aae147c Some work on teapot example changes 2016-09-28 19:06:58 +02:00
Pierre Krieger
174a17db90 Fix triangle example 2016-09-28 19:06:58 +02:00
Pierre Krieger
ad42ab8af8 Don't always use Arcs for render passes 2016-09-28 19:06:58 +02:00
Pierre Krieger
79f13b6378 Fix triangle example 2016-09-28 19:06:58 +02:00
Pierre Krieger
43b6157f08 Switch triangle example to new system 2016-09-28 19:06:58 +02:00
tomaka
27d23725ae Merge pull request #260 from tomaka/cubemap
Add support for cubemap images
2016-09-12 13:40:20 +02:00
Pierre Krieger
f564120b64 Add support for cubemap images 2016-09-11 21:43:06 +02:00
batanick
ee8b170995 worldview double calculation removed 2016-09-11 18:06:37 +02:00
batanick
e0c3dfee5d Teapot example: rotation added 2016-09-11 14:11:45 +02:00
tomaka
4ed76e3cbe Merge pull request #145 from attackgoat/examples-debug
Added debug example code and required changes to vulkano debug module
2016-08-02 15:24:07 +02:00
john wells
e98876f3ec Tidy 2016-08-02 07:07:57 -06:00
john wells
8c0630f9ce Moved format code out of the lib/into this example 2016-08-01 20:56:27 -06:00
Nicolas Koch
b2897a419f Support for intel linux driver
fixes #204
2016-07-31 12:33:08 +02:00
Pierre Krieger
65dd3b8414 Use stronger typing for CpuAccessibleBuffer creation 2016-07-26 12:26:05 +02:00
Pierre Krieger
a023aaa078 Fix warnings 2016-06-16 14:04:18 +02:00
Pierre Krieger
5c4504e5be Rework command pools 2016-06-04 11:31:12 +02:00
Nicolas Koch
c53c1378e2 Update winit version to 0.5.1 2016-05-24 13:42:33 +02:00
Nicolas Koch
e7c0282825 Window creation: Add support for wayland on unixes 2016-05-23 16:19:35 +02:00
Johannes Muenzel
1cd47976c4 Remove support for device layers
Device layers are deprecated starting in Vulkan 1.0.13. The
specification recommends that we pass the instance layer names to the
device creation functions as well. This assures backwards compatibility
because there are no known device-only layers pre-1.0.13, and
post-1.0.13 those arguments are ignored (except by validation layers).
2016-05-22 00:59:15 -07:00
Pierre Krieger
f02b352022 Rework ApplicationInfos 2016-05-21 09:47:52 +02:00
Pierre Krieger
07ae850f4e Add support for tessellation shaders 2016-05-20 20:05:33 +02:00
Pierre Krieger
b5231385e7 Creating a device now returns an iterator to the queues 2016-05-12 17:40:31 +02:00
Pierre Krieger
2af98d9793 Slightly improve the comments in the triangle example 2016-05-08 13:16:21 +02:00
Pierre Krieger
3c6beeb214 Framebuffer dimensions are now an array instead of a tuple 2016-05-05 18:58:00 +02:00
Pierre Krieger
e2fc113711 Generate attributes description struct for all shader stages 2016-05-04 09:06:53 +02:00
tomaka
d182fcba49 Merge pull request #82 from tomaka/fix-examples
Fix examples
2016-05-04 07:45:23 +02:00
Pierre Krieger
2301b5da04 Fix examples 2016-05-04 07:10:00 +02:00
Tobi
33cb73b86e Fix spelling errors in triangle example 2016-05-03 15:56:52 +02:00
Pierre Krieger
3683848a5f Add SupportedCompositeAlpha 2016-05-03 11:10:19 +02:00
Pierre Krieger
cd7cda9d2d Add SupportedPresentModes and SupportedPresentModesIter 2016-05-03 10:54:50 +02:00
ritschwumm
26316b4c08 Update triangle.rs
fix typos
2016-05-01 18:21:02 +02:00
Pierre Krieger
148e7e3e3f Fix the examples 2016-04-30 12:52:47 +02:00
Pierre Krieger
5e23416b32 Document the triangle example 2016-04-29 10:28:20 +02:00
Pierre Krieger
ebcfea2308 Slight fix in examples 2016-04-23 13:33:58 +02:00
Pierre Krieger
27f7fb5f75 Make examples cross-platform 2016-04-23 13:32:31 +02:00
Pierre Krieger
e82741aaf9 Add vulkano-win crate and move out examples 2016-04-23 13:24:56 +02:00