Commit Graph

82 Commits

Author SHA1 Message Date
Johan Andersson
a990ed5696
Use Embark standard lints v0.2 (#475) 2021-03-08 10:37:43 +01:00
Erin Power
499bf4cede Version bump to 0.3.0 2021-03-04 17:50:40 +01:00
XAMPPRocky
5cfaa0055b
Update to the latest nightly (#467)
* Update to the latest nightly

* Update to fix clippy lints

* ignore test for now
2021-03-04 14:12:00 +01:00
Eduard-Mihai Burtescu
6571f45a29 attr: mark #[spirv(...)] attributes as used and remove #[allow(unused_attributes)]. 2021-03-02 08:54:28 +02:00
AidanConnelly
df89d273f2
Remove unused dead code in example-runner-ash/main.rs (#449) 2021-02-26 12:58:52 +01:00
XAMPPRocky
2c02c59c1f
Fixes issues related to upgrading to the latest nightly (#447) 2021-02-26 08:19:35 +00:00
Eduard-Mihai Burtescu
47cf841209 spirv_std: deprecate load/store/then methods on storage_class::* types. 2021-02-22 12:58:40 +02:00
Erin Power
77fd6ee4a9 Release 0.3.0-alpha.0
compute-shader@0.3.0-alpha.0
rustc_codegen_spirv@0.3.0-alpha.0
spirv-builder@0.3.0-alpha.0
spirv-std@0.3.0-alpha.0
spirv-std-macros@0.3.0-alpha.0

Generated by cargo-workspaces
2021-02-16 16:19:46 +01:00
Henno
45f7a36d66
Fix wgpu-runner validation errors on minimize (#424)
Vulkan swap chains must have non-zero dimensions, this adds a check for that during swap chain resizing and does not create one if it would be invalid.
2021-02-15 15:48:29 +01:00
Ashley Hauck
f9c2bdc766
Update minifb to released version (#395) 2021-01-26 11:17:43 +00:00
Ashley Hauck
1454fe38a3
Update Cargo.lock (#381) 2021-01-18 14:35:12 +00:00
Viktor Zoutman
9b7d49dc29
Removed ark shaders (#375) 2021-01-14 14:52:44 +00:00
XAMPPRocky
38f2ec12c9
Update bimap->0.6, pipe->0.4, strum->0.20, websys->0.3.46 (#365) 2021-01-11 09:08:02 +00:00
XAMPPRocky
9e7b9de28f
Add autolinks to silence rustdoc warnings (#363) 2021-01-05 12:14:34 +00:00
Frank Murphy
8acde75c13
Add dummy binding for compute shader example (#328)
* Add dummy binding for compute shader example

* Linter fixes
2021-01-04 16:00:34 +00:00
Johan Andersson
d883b6cbb3
Upgrade winit v0.23 -> v0.24 (#353)
Fixes building for aarch64-apple-darwin
2020-12-20 00:22:17 +01:00
Henno
bc4c07e54f
Ash runner: fix crash on resize/minimize and add shader hot reloading (#299)
* window resizing and hot reloading

* remove windows paths and fix viewport creation

* readd spirv tools features

* re-remove features

* and add them again

* CI fix

* proper-resizing-and-validation-fixes

* linux validation fix

* fix zero height halting rendering

rendering wasn't getting unpaused after being set to zero height and then made larger again

* fix wgpu crash on laptops with both dedi and integrated GPUs

This fix still requires the user to set their default GPU to their dedicated one.

* METAL or VULKAN backend bit

* rebuild pipelines after updating shaders

* use spirv-builder, resolve merge conflict

* fmt
2020-12-16 17:41:48 +00:00
Viktor Zoutman
a2a2e3917e
Renamed spirv-attrib to spirv-std-macros (#347) 2020-12-15 15:16:57 +00:00
Eduard-Mihai Burtescu
aed5204f4a
Mouse support for the wgpu runner, and a shader to demonstrate it. (#341) 2020-12-15 11:33:24 +00:00
Viktor Zoutman
1bcb994d59
Compile examples and spirv-std on stable (#340)
* Compile examples and spirv-std on stable

* new line

* weid space
2020-12-14 09:50:45 +00:00
DGriffin91
57b49d932a
Update shared to use shorter glam vec functions for consistency (#333)
Co-authored-by: DGriffin91 <git@dgdigital.net>
2020-12-10 00:25:06 -07:00
DGriffin91
a942b6c425
Updated shaders to use glam functions for making vecs (#331)
Co-authored-by: DGriffin91 <git@dgdigital.net>
2020-12-09 09:19:12 +00:00
Eduard-Mihai Burtescu
adebc90070
Remove #[spirv(push_constant)] from function parameters. (#296) 2020-12-01 15:14:54 +00:00
Eduard-Mihai Burtescu
ae42a911a1
#[spirv(block)] for Block decorations on structs. (#295) 2020-12-01 14:28:49 +00:00
Ashley Hauck
0801e48ae0
Update glam to include latest changes (#291)
* Update glam to include latest changes

* Try workaround on CI...
2020-12-01 12:47:37 +00:00
Jasper Bekkers
244cb5a126
Ark shaders (#286) 2020-12-01 05:29:08 +00:00
XAMPPRocky
16c380a71b
Refactor and document storage classes (#280)
* Refactor storage classes macro and organisation

* Update storage_class.rs
2020-11-27 15:20:44 +00:00
XAMPPRocky
59869ec58b
Move lang_items into spirv-std (#275) 2020-11-26 09:12:18 +00:00
Gray Olson
353fa96af6
Rename pow to powf, remove saturate from MathExt, and update to latest glam (#248)
* remove saturate from spirv_std MathExt and rename pow to powf

* update to latest glam

* update glam again and add `std` feature to `spirv-std` to support cpu runner

* re-remove spirv-tools-sys submodule

* fixup! Merge branch 'main' into powf-saturate

* Use libm instead of MathExt

* Fix lint for unused import when compiling with std

Co-authored-by: khyperia <github@khyperia.com>
2020-11-24 09:28:58 +00:00
Eduard-Mihai Burtescu
0581f8580e
Use a demangled symbol name for OpName. (#266)
* Use a demangled symbol name for OpName.

* Rename my_smoothstep back to smoothstep.

* Update SPIR-V tests to look for the absolute fn
path.
2020-11-20 13:54:26 +00:00
Viktor Zoutman
2dd8dba3b0
Moved some functions to a shared crate (#255)
* Moved some functions to a shared crate

* fmt!

* fixed the cpu
2020-11-18 14:27:32 +00:00
XAMPPRocky
c1c72517c8
Update ash-molten to compile on macOS (#252) 2020-11-18 10:33:10 +00:00
Viktor Zoutman
ec89ddf446
Sky shader Improvements. (#245)
* Added some constants to the shader

* did something for a certain video i forgot to revert

* removed unused function

* cleanup

* cpu runner now works

* explicit naming

* removed paranthesis

* clippy

* CLIPPY
2020-11-16 15:17:09 +00:00
Viktor Zoutman
2d75e0473f
Merged wgpu runners (#241)
* Added clap to switch between shaders

* Merged wgpu runners

* tested something related to async which i forgot to udno

* clippy

* xamprocky suggestion
2020-11-16 11:21:33 +00:00
Viktor Zoutman
0f78bd3e6b
Added clap to switch between shaders (#240) 2020-11-13 18:37:30 +00:00
XAMPPRocky
45f2312947
Put shader modules at the top of the example runners (#229) 2020-11-13 11:19:23 +00:00
Marijn Suijten
e8aef14347
Add Android support to wgpu example (#215)
* examples/wgpu: Handle escape to exit (same as ash example)

* examples/wgpu: Set up for use on Android

* examples/wgpu: Convert #[cfg] blocks to cfg_if

* examples/wgpu: Wait for events instead of busy-looping

The image currently does not change and the OS will notify us when to
redraw (ie. after window resizes). This is going to save power
especially on mobile devices.

As soon as interactive or animating visuals are introduced to this
example redraws can be requested with `window.request_redraw()`.

* examples/wgpu: Create swapchain in ::Resume on Android

* docs: Add Android to supported operating systems

* ci: Build test cross-compilation for Android

* HACK: ci: Create Android symlink without spaces

* ci: Set legacy ANDROID_HOME because ndk-build prefers deprecated var
2020-11-11 16:32:02 +01:00
XAMPPRocky
c2ccdbe6ef
Update glam and re-export glam from spirv_std (#220) 2020-11-11 08:13:37 +00:00
Ashley Hauck
bfa0f50f9b
Update ash-molten to use version 0.7 (#218)
The moltenvk-1.1.0 branch no longer exists
2020-11-10 09:29:50 +00:00
XAMPPRocky
cf52d51199
Add changes to compile rust-gpu on the latest nightly (#212)
* Update DILocation and update trait impls for nightly

* rustc_codegen_spirv: Update mir Scalar handling to nightly 2020-11-04

3a7970848c
df4d717d0b

* More changes to compile on the latest nightly

* Remove unused import warnings

Co-authored-by: Marijn Suijten <marijns95@gmail.com>
2020-11-10 08:16:25 +00:00
charles-r-earp
32c2ea58bc
Compute Shaders + ExecutionMode's (#195)
* Created examples/ wgpu-example-compute-runner + wgpu-example-compute-shader.

* Working compute example, can compile and run, set local_size. Validated changes do not break rendering example.

* Added complete list of ExecutionMode's to be specified underneath ExecutionModel. Replaced SpirvAttribute::Entry ExecutionModel with an Entry struct, which includes a Vec of ExecutionMode, ExecutionModeExtra to be submitted in entry.rs. Compute example runs. Passes all tests.

* Changed Cargo license info for compute examples. Simplified compute runner to be more similar to other wgpu example. Split of entry logic in symbol.rs to separate function. Fixed issue in builder/mod.rs.

* Pulled in reorganization changes to crates + examples. In symbols.rs moved really_unsafe_ignore_bitcasts to its own Symbol match. In entry.rs, entry stubs now return the fn_id, so that entry_stub() can add the execution modes in one place. Passed all tests.

* cargo fmt

* Removed duplicate examples. Fixed cargo fmt bug in compute runner.
2020-11-10 08:10:21 +00:00
XAMPPRocky
ad610b57f5
Move top-level crates to crates/ directory (#200)
* Move top-level crates to crates/ directory

* Update docs

* Update test.sh

* Update docs.sh

* Update clippy.sh
2020-11-02 11:26:10 +01:00
Christofer Nolander
982dcfaa35
Make all example windows 720p by default (#184) 2020-11-01 17:31:04 -07:00
Johan Andersson
9af1e84e90 Fix glam no_std handling in new version 2020-10-31 00:52:17 +01:00
Johan Andersson
8bec12831a Upgrade to latest glam fork rev 2020-10-31 00:38:23 +01:00
Johan Andersson
e0595dc80c Consistent example window titles 2020-10-31 00:35:00 +01:00
Johan Andersson
26db9c140f Disable publishing of example crates 2020-10-31 00:00:41 +01:00
Gray Olson
b12a2f3f6a
Cleanup pass on example shader and vk example-runner (#109)
* get rid of vertex buffers in example

* get rid of unused attributes in example shader

* use negative viewport height to match wgpu

* remove depth buffer

* use SRGB surface

* improve tonemapping

remove 'gamma correction' in favor of hardware srgb support

* make clippy happy

* move tonemapping out of sky(), rename gl_pos to builtin_pos

* rename shaders and use sky shader in wgpu example runner

* apply srgb OETF and invert clip space for cpu example runner

* restructure example directory structure according to #170

* update winit in wgpu example runner

* fix deny.toml example crate refs

* fix ci example name on maOS

* example-shader -> sky-shader in docs

* update sky shader image

* re-enable clippy and make it happy
2020-10-30 11:38:47 -07:00
Johan Andersson
98eb8d369c
Convert to use glam for math types (#149)
* [spirv-std] Remove math types

* Temp implementation of copysign

https://github.com/EmbarkStudios/rust-gpu/issues/148

* Convert shader to use glam

* Rustfmt

* Fix wgpu-example-shader to use glam

* [spirv-std] Disable clippy::use_self

* Upgrade to latest glam branch

* Use latest glam fork

* Remove incorrect assert_uninit

After discussions with @khyperia

* Update lockfile

* Update to latest glam fork with fixes

* Use real copysign intrinsic

* Disable clippy on example-shader for now

Tracked in https://github.com/EmbarkStudios/rust-gpu/issues/186
2020-10-30 14:58:38 +01:00
Jake Shadle
307d0da66b
Add spirv-tools and spirv-tools-sys crates to wrap usage of spirv-tools (#179)
* Add spirv-headers and spirv-tools as submodules

* Add simple generator and the generated code needed for compilation

* Add first pass on spirv-tools-sys

* Add first pass on spirv-tools

* Replace invocation of spirv-opt with spirv-tools crate

* Use C++11

* Placate clippy

* Add validation, replacing spirv-val with the spirv-tools crate

* Fix MSVC warning

* Use patched spirv-tools

* Fixup metadata

* Add same compiler flags as "official" build scripts

* Update spirv-tools and generated files

* Fixup

* Add assembler and example

* Use assembler in tests

* Oops, fix macos TARGET_OS

* write -> write_all

* Start splitting spirv-tools into a compiled vs tool feature set

* Checkpointing

* Checkpoint

* Boop

* Get tests to work both with installed and compiled tools

* Cleanup CI config

* Splits steps to clearly show how long each part of a longer (eg test)
step actually takes
* Label all steps

* Explicitly disable submodule checkout

* Rustfmt

* Rename features for consistency and fix clippy warnings

* Split "core" crates from examples

* Add run_clippy bash script

* Add test script

* Remove x flag

* Newline

* Actually print out errors from running val/opt

* Revert drive-by import merging

* Change intro to take the changes this PR has into account

* Actually run tests on Windows

* Fetch only the host target to reduce fetch times

* Add more info when a spirv tool returns a non-zero exit code

* Rustfmt

* Switch tool assembler to use files to see if it fixes windows

* Use files for input and output for now until I can figure out Windows being dumb

* Fix API docs generation

* Compile and use C++ code to check Windows issue

* Return to use installed tools
2020-10-29 23:03:07 +01:00