Daniel McNab
4b2011476b
Clean up the interface of the watching support ( #663 )
...
* Clean up the interface of the watching support
This allows us to avoid the seperate thread just for looping through
the graphics rx to the eventloop, for example
In almost all cases, intial results are blocked on the first result, and
then needs notifications for later changes
* Fix test failures
* fmt
* Remove the comment again
2021-06-14 09:19:41 +02:00
Ashley Hauck
c3eff4d4a5
Add name_variables option to spirv-builder ( #660 )
2021-06-09 15:27:08 +02:00
Daniel McNab
3bbe963998
👀 hot shader reloading ( #655 )
...
* Update builder to use a shared validation method
* Add the error for using print_metadata and watching
We cannot use print_metadata with watching
because print_metadata only makes sense
in build scripts, but watching does not
and would instead stall the script
* Add the initial implementation of watching
* Make hot reloading work in the wgpu example
* Attempt to address CI failures
* Add exception for notify CC0-1.0 license
* Address review comments
Co-authored-by: khyperia <github@khyperia.com>
2021-06-09 10:30:44 +02:00
Markus Siglreithmaier
486a3cee2e
Always emit cargo dependency information ( #618 )
...
* spirv-builder: Add more control over cargo metadata printout
* lint fix
2021-06-03 22:03:03 +02:00
Ashley Hauck
31bfc338e0
Release v0.4.0-alpha.9 ( #646 )
2021-06-03 12:35:53 +00:00
Daniel McNab
cb952562dd
Collatz Computation ( #623 )
...
Build the compute shader for vulkan1.1 as required
2021-06-03 14:20:42 +02:00
Ashley Hauck
92b680fdb9
Release v0.4.0-alpha.8 ( #645 )
2021-06-02 14:06:56 +02:00
Alex S
7fc445eb10
Added link to tracking issue for v0 mangling.
2021-06-02 10:46:19 +03:00
Alex S
b64eeb6f1e
Use legacy
mangling instead of v0
.
...
`v0` mangling mangles generics, but can only handle const generic
arguments of simple types. As `Image!` types use const generic enums,
things break horribly and compiler panics.
`legacy` doesn't even attempt to mangle generics, which is probably
fine.
2021-06-02 10:46:19 +03:00
Ashley Hauck
3fa15c99ae
Add spirv-val flags to spirv-builder ( #635 )
2021-05-31 09:44:09 +00:00
Ashley Hauck
6019f391ec
Add API to enable ext/capabilities, and remove default capabilities ( #630 )
...
* Do not set some capabilities by default
* Fix nondeterminism
* Add required caps to mouse shader
2021-05-26 11:57:16 +02:00
Ashley Hauck
47d1e75327
Always emit json metadata, and emit entry point names ( #622 )
...
* Always emit json metadata
* Codegen shader entry point names
* Fix tests
2021-05-24 09:45:58 +02:00
Jasper Bekkers
78ac32be27
Initial work for bindless buffers & textures in rust-gpu ( #450 )
...
This adds the initial support for basic bindless types into rust-gpu. Using this requires a compilation with the `-Ctarget-features=+bindless` flag, or through `.bindless` in the `SpirvBuilder`.
2021-05-05 18:34:39 +02:00
Ashley Hauck
1431c18b9d
Move disassemble tests to compiletest ( #609 )
...
* Move disassemble tests to compiletest
* Fix problematic tests
* Add newlines
2021-04-30 09:07:45 +02:00
XAMPPRocky
538cdd2ea7
Update version and remove usage of or_patterns ( #607 )
2021-04-29 10:55:51 +02:00
XAMPPRocky
a14e3ec110
Release 0.4.0-alpha.6 ( #606 )
...
compiletests@0.4.0-alpha.6
compiletests-deps-helper@0.4.0-alpha.6
compute-shader@0.4.0-alpha.6
example-runner-ash@0.4.0-alpha.6
example-runner-cpu@0.4.0-alpha.6
example-runner-wgpu@0.4.0-alpha.6
mouse-shader@0.4.0-alpha.6
multibuilder@0.4.0-alpha.6
rustc_codegen_spirv@0.4.0-alpha.6
shared@0.4.0-alpha.6
simplest-shader@0.4.0-alpha.6
sky-shader@0.4.0-alpha.6
spirv-builder@0.4.0-alpha.6
spirv-std@0.4.0-alpha.6
spirv-std-macros@0.4.0-alpha.6
spirv-types@0.4.0-alpha.6
Generated by cargo-workspaces
2021-04-29 09:24:21 +02:00
Ashley Hauck
49dd238083
Bump rust-toolchain to nightly-2021-04-25 ( #605 )
...
* Bump rust-toolchain to nightly-2021-04-25
2021-04-28 13:53:33 +00:00
XAMPPRocky
f88ae5b28a
Add Const Generic Image Type ( #359 )
...
* Add parameterized Image type
* nits
* Update crates/spirv-std/src/lib.rs
* Update crates/rustc_codegen_spirv/src/symbols.rs
* Update crates/rustc_codegen_spirv/src/symbols.rs
* Update symbols.rs
2021-04-28 09:47:40 +02:00
Ashley Hauck
9679e615bd
Disable variable pointers by default ( #591 )
2021-04-13 11:30:16 +02:00
XAMPPRocky
b6311789bb
Add new handling for SPIR-V targets ( #559 )
...
* Add new handling for SPIR-V targets
* Ensure target is always three components
2021-04-12 11:19:28 +00:00
XAMPPRocky
4824d205ba
Release 0.4.0-alpha.5 ( #590 )
...
compiletests@0.4.0-alpha.5
compiletests-deps-helper@0.4.0-alpha.5
compute-shader@0.4.0-alpha.5
example-runner-ash@0.4.0-alpha.5
example-runner-cpu@0.4.0-alpha.5
example-runner-wgpu@0.4.0-alpha.5
mouse-shader@0.4.0-alpha.5
multibuilder@0.4.0-alpha.5
rustc_codegen_spirv@0.4.0-alpha.5
shared@0.4.0-alpha.5
simplest-shader@0.4.0-alpha.5
sky-shader@0.4.0-alpha.5
spirv-builder@0.4.0-alpha.5
spirv-std@0.4.0-alpha.5
spirv-std-macros@0.4.0-alpha.5
Generated by cargo-workspaces
2021-04-12 10:27:55 +02:00
XAMPPRocky
4163ce68cf
Remove memcmp from spirv-std ( #583 )
2021-04-09 13:52:37 +02:00
XAMPPRocky
98d7dec503
Release 0.4.0-alpha.4 ( #582 )
...
compiletests@0.4.0-alpha.4
compiletests-deps-helper@0.4.0-alpha.4
compute-shader@0.4.0-alpha.4
example-runner-ash@0.4.0-alpha.4
example-runner-cpu@0.4.0-alpha.4
example-runner-wgpu@0.4.0-alpha.4
mouse-shader@0.4.0-alpha.4
multibuilder@0.4.0-alpha.4
rustc_codegen_spirv@0.4.0-alpha.4
shared@0.4.0-alpha.4
simplest-shader@0.4.0-alpha.4
sky-shader@0.4.0-alpha.4
spirv-builder@0.4.0-alpha.4
spirv-std@0.4.0-alpha.4
spirv-std-macros@0.4.0-alpha.4
Generated by cargo-workspaces
2021-04-08 13:58:43 +03:00
Eduard-Mihai Burtescu
4395b84114
Deprecate #[spirv(block)]
and auto-wrap in "interface blocks" instead.
2021-04-05 20:45:59 +03:00
Ashley Hauck
f0f0f318ec
Don't treat OpSelectionMerge as an edge in mem2reg ( #571 )
...
* Don't treat OpSelectionMerge as an edge in mem2reg
* Make outgoing_edges not allocate
* Update test
2021-04-01 10:03:00 +02:00
Eduard-Mihai Burtescu
9723e12723
structurizer: find and/or cache OpConstant{False,True}
.
2021-03-31 00:41:17 +03:00
XAMPPRocky
f09a5f6e65
Release 0.4.0-alpha.3 ( #560 )
...
compiletests@0.4.0-alpha.3
compiletests-deps-helper@0.4.0-alpha.3
compute-shader@0.4.0-alpha.3
example-runner-ash@0.4.0-alpha.3
example-runner-cpu@0.4.0-alpha.3
example-runner-wgpu@0.4.0-alpha.3
mouse-shader@0.4.0-alpha.3
multibuilder@0.4.0-alpha.3
rustc_codegen_spirv@0.4.0-alpha.3
shared@0.4.0-alpha.3
simplest-shader@0.4.0-alpha.3
sky-shader@0.4.0-alpha.3
spirv-builder@0.4.0-alpha.3
spirv-std@0.4.0-alpha.3
spirv-std-macros@0.4.0-alpha.3
Generated by cargo-workspaces
2021-03-30 11:23:16 +00:00
Eduard-Mihai Burtescu
0e7fdb30f2
#[spirv(uniform)]
is actually immutable in the absence of BufferBlock
. (#558 )
2021-03-30 09:32:59 +00:00
Ashley Hauck
d6ff9cd439
Run DCE twice ( #556 )
2021-03-30 09:44:01 +02:00
XAMPPRocky
3a53968817
Add support for multiple target environments ( #533 )
...
* Add support for multiple target environments
* updates from code review
* Update lib.rs
2021-03-29 18:43:07 +02:00
Henno
05ce407278
Add basic support for struct DSTs ( #504 )
...
* Add basic support for struct DSTs
* Add tests
* cleanup tests
* Update with entry changes, address review
* Address review
* Update allocate_const_scalar.stderr
* Add ArrayStride decoration to OpTypeRuntimeArray
2021-03-29 18:02:09 +02:00
Ashley Hauck
c3a3b20e3c
Add support for outputting multiple modules, one per entry point ( #551 )
...
* Add multimodule feature
* Use -Cllvm-args instead of -Ctarget-feature for multimodule
* Fix cargo.toml
2021-03-29 17:59:03 +02:00
XAMPPRocky
182bbca7e5
Update mod.rs
2021-03-27 17:12:11 +02:00
Erin Power
3fc6cd5a2f
Release 0.4.0-alpha.2
...
compute-shader@0.4.0-alpha.2
rustc_codegen_spirv@0.4.0-alpha.2
spirv-builder@0.4.0-alpha.2
spirv-std@0.4.0-alpha.2
spirv-std-macros@0.4.0-alpha.2
Generated by cargo-workspaces
2021-03-26 13:23:23 +01:00
Erin Power
1e7eb64f17
Release 0.4.0-alpha.1
...
compute-shader@0.4.0-alpha.1
rustc_codegen_spirv@0.4.0-alpha.1
spirv-builder@0.4.0-alpha.1
spirv-std@0.4.0-alpha.1
spirv-std-macros@0.4.0-alpha.1
Generated by cargo-workspaces
2021-03-25 16:16:25 +01:00
Johan Andersson
916f4798d3
Use Embark standard lints v0.3
2021-03-24 14:51:50 +02:00
Eduard-Mihai Burtescu
908487ae1d
entry: use T
instead of &T
for Input
s.
2021-03-23 09:30:24 +01:00
Eduard-Mihai Burtescu
e04e1f53fc
Replace spirv_std::storage_class::X<T> with &T/&mut T and optionally #[spirv(x)].
2021-03-23 09:30:24 +01:00
XAMPPRocky
52ae430ec1
Update dependencies ( #506 )
2021-03-22 09:27:34 +01:00
XAMPPRocky
27eb1d1413
Refactor validation tests to use compiletest ( #464 )
...
* Refactor validation tests to use compiletest
* Update tests/ui/lang/core/ptr/allocate_const_scalar.rs
2021-03-18 17:16:21 +00:00
Eduard-Mihai Burtescu
a0b4de4cf6
Bump rust-toolchain to nightly-2021-03-17, unlocking for i in 0..n
loops!
2021-03-17 03:31:11 +02:00
XAMPPRocky
6b33db07e6
Update to 0.4.0-alpha.0 ( #497 )
...
* Release 0.4.0-alpha.0
compute-shader@0.4.0-alpha.0
rustc_codegen_spirv@0.4.0-alpha.0
spirv-builder@0.4.0-alpha.0
spirv-std@0.4.0-alpha.0
spirv-std-macros@0.4.0-alpha.0
Generated by cargo-workspaces
* Update Cargo.lock, remove unused one
* Update lockfile
* update lockfile
2021-03-16 15:14:53 +01:00
XAMPPRocky
1d365490a5
Add arithmetic instructions to arch ( #446 )
2021-03-16 09:42:18 +00:00
XAMPPRocky
6e8453f386
Decouple glam from spirv-std ( #476 )
2021-03-16 09:59:08 +01:00
Eduard-Mihai Burtescu
7348f3389d
builder: constant-fold bx.mul(a, b)
in order to support ptr::{read,write}
. ( #485 )
2021-03-11 09:53:49 +01:00
Jesse
c53c351987
feat: add image fetch ( #480 )
2021-03-10 08:17:07 +00:00
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
Eduard-Mihai Burtescu
7723f5db6b
Access the original type's fields through a pointercast
, under the Logical addressing model. ( #469 )
...
* Defer pointer casts under the Logical addressing model.
* Access the original type's fields through a `pointercast`, under the Logical addressing model.
* Add a test using a `for` loop and a custom `Range`-like iterator.
2021-03-04 15:15:01 +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
XAMPPRocky
5446ca3f9f
Revert const generics ( #465 )
2021-03-03 17:09:31 +02:00
XAMPPRocky
6678f9a49d
Add entry point attribute configuration. ( #458 )
...
* Add entrypoint attribute configuration.
* Update with feedback
* Add docs
* fmt
* rm usused_attributes
* other changes
* fmt
2021-03-02 15:30:08 +02:00
Eduard-Mihai Burtescu
6571f45a29
attr: mark #[spirv(...)]
attributes as used and remove #[allow(unused_attributes)]
.
2021-03-02 08:54:28 +02:00
Jasper Bekkers
2f4c67e8e0
Safeness bug in StorageImage2d::write ( #453 )
...
* Safeness bug in StorageImage2d::write
It's pretty easy to see why this is unsafe, if multiple threads write to the same coordinate race-conditions happen.
Ultimately this should be addressed through something like #216 and some higher level abstractions on top of our buffer types, but since we don't have those for now, marking this as unsafe seems to be the only thing we can do for now.
* Remove unsafe {} block for clippy
2021-03-01 15:20:07 +00:00
XAMPPRocky
57a9ebb797
Add any and all arch instructions ( #441 )
2021-02-25 17:09:44 +02:00
Eduard-Mihai Burtescu
47cf841209
spirv_std: deprecate load/store/then methods on storage_class::* types.
2021-02-22 12:58:40 +02:00
Eduard-Mihai Burtescu
67746012f5
Infer storage classes using the specializer, replacing special pointer types.
2021-02-22 12:58:40 +02:00
Eduard-Mihai Burtescu
7da5be3766
Work around linker error by isolating spirv_tools usage to rustc_codegen_spirv. ( #436 )
2021-02-19 14:46:50 +02:00
Jasper Bekkers
6d2d4a13e6
Inline asm types ( #418 )
...
* Add more types for inline asm
* Add basic OpDecorate support to inline asm
* Add khronos ticket link
* Add additional operands support to inline assembly
* Fix unused import warning
* Switch to rspirv git dependency
* Update Cargo.lock
* fmt
* Switch to while-let loop
* Address feedback around `additional_extensions`
* Remove debug code
* Remove un-needed special cases for OpCapability and OpExtension
* Switch back to iterating over all instructions only once, with this one cool trick
* Add test for OpDecorate / varargs
* Fix residual merge error
* Add test for a complex OpImageSample instruction that needs some BitEnums
2021-02-18 14:08:58 +01:00
XAMPPRocky
34261a8905
Add StorageImage with read/write ( #434 )
2021-02-17 10:15:42 +00: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
Ashley Hauck
56067de909
Support const args in asm! ( #421 )
2021-02-12 14:05:31 +01:00
XAMPPRocky
c10a6c0747
Add vector_insert_dynamic ( #411 )
...
* Add vector_insert_dynamic and copy_object
* Update arch.rs
* Update basic.rs
* Update arch.rs
* Update spirv_type_constraints.rs
2021-02-11 15:18:52 +00:00
Eduard-Mihai Burtescu
3a4d140328
Don't require 1:1 mapping between OpTypeStruct
s and their names. ( #406 )
2021-02-01 14:24:02 +00:00
Ashley Hauck
3f0900c89d
Enable optimizer ( #401 )
...
* Enable optimizer
* Fix tests
2021-01-29 11:30:56 +00:00
XAMPPRocky
69b94bb6f9
Add initial arch module ( #394 )
2021-01-27 15:54:17 +00:00
Jesse
04ad2ad64f
fix: handle an ICE resulting from a dangling pointer ( #342 )
2021-01-20 12:52:06 +00:00
XAMPPRocky
9e7b9de28f
Add autolinks to silence rustdoc warnings ( #363 )
2021-01-05 12:14:34 +00:00
Jake Shadle
95a4cfab41
Update spirv-tools to 0.2.0 ( #343 )
...
* Update spirv-tools to 0.2.0
* Rustfmt
2020-12-14 09:43:23 +00:00
Eduard-Mihai Burtescu
9e99c05a76
Update to nightly-2020-12-11. ( #338 )
...
* Update to nightly-2020-12-11.
* Update for rustfmt changes (`cargo fmt --all`).
* Update `rustc_codegen_spirv::linker::test` for `rustc_interface` changes.
* Use `spirv_tools::util::{to,from}_binary` to pacify clippy.
* `#[allow(clippy::unnecessary_wraps)]` on `Result`-returning `fn run_thin`.
2020-12-11 10:40:35 +00:00
Eduard-Mihai Burtescu
ebf3dbee8d
Support "Unroll" Loop Control via function-scoped #[spirv(unroll_loops)]
. ( #337 )
...
* Generalize the zombie serialization system to arbitrary custom decorations.
* Support "Unroll" Loop Control via function-scoped `#[spirv(unroll_loops)]`.
* Pacify the merciless clippy.
2020-12-10 19:57:15 +00:00
XAMPPRocky
c1dc273e70
Update version number ( #322 )
...
* Update version number
* Add lockfile
2020-12-04 16:50:19 +00:00
Ashley Hauck
a653c61b64
Get closer to testing NO_DCE in CI ( #321 )
...
* Get closer to testing NO_DCE in CI
The only remaining validation issues are due to the SROA pass not being
implemented yet
* Revert mistakenly included change
2020-12-04 15:05:13 +00:00
Eduard-Mihai Burtescu
6c7ca97e9b
Intercept panic calls and replace them with aborts. ( #305 )
...
* new_structurizer: fix infinite loops.
* intrinsics: use an infinite loop for `abort`.
* Don't deduplicate zombie values even with other zombies.
* Bring back `zombie_even_in_user_code` and use it for constants.
* Use global `OpVariable`s instead of undefs for `ConstantPointer`s.
* Intercept panic calls and replace them with aborts.
2020-12-03 18:40:24 +00:00
Ashley Hauck
d8d80d77f6
Add test for issue 283 ( #302 )
2020-12-02 17:50:48 +00:00
Eduard-Mihai Burtescu
e02beade35
New structurizer: now with ∞% more φ! ( #287 )
2020-12-02 11:05:04 +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 struct
s. (#295 )
2020-12-01 14:28:49 +00:00
Eduard-Mihai Burtescu
340dfc4a76
spirv-builder: pass --target-dir
to Cargo to avoid lock conflicts. ( #293 )
2020-12-01 14:09:36 +00:00
Ashley Hauck
114d029163
Do not merge zombie and non-zombies ( #288 )
2020-11-30 15:27:02 +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
Eduard-Mihai Burtescu
6e0e23c620
spirv-builder: pass through non-JSON stdout lines even after an error. ( #267 )
2020-11-20 18:25:21 +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
6353505e9e
Introducing rspiv::Builder into the structurizer. ( #253 )
...
* Replaced most manual spirv manipulation with rspirv builder
* Replaced most manual spirv manipulation with rspirv builder
* removed braces
* prefer slices over vec
2020-11-18 13:43:38 +00:00
Ashley Hauck
bedbc4dc0f
asm! ( #254 )
2020-11-18 12:54:22 +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
Viktor Zoutman
8d2b8ce5f3
Continue and minor break fixes ( #202 )
...
* Continue and break fixes
* Ashley Clippy
* Incorporated Feedback
* Clippy lint
* clippy
* minor fix
2020-11-02 15:14:06 +00:00
khyperia
72e1373e1c
Fix path missed in #200
2020-11-02 12:55:49 +01:00
khyperia
0b5ddb697b
Add reminder test to implement strings.
2020-11-02 11:46:24 +01: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