Commit Graph

97 Commits

Author SHA1 Message Date
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
Eduard-Mihai Burtescu
17f4f37a64 Bump rust-toolchain to nightly-2021-03-11. 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
Jake Shadle
44393affe5 Update spirv-tools to 0.5.0 (#496)
* Update spirv-tools to 0.5.0

* Use ubuntu-20.04 image rather than the ambiguous "latest"

* Update spirv-tools binaries to latest
2021-03-16 13:04:23 +01:00
Henno
eebb2d3b32 Require local size x dimension and remove gl_ (#495)
* Require local size and remove gl_

Removes the gl_ prefix from the compute shader attribute, shortens the thread dimension declaration to threads(x, y, z), requires the x size dimensions be specified, trailing ones may be elided for the y or z dimensions.

* Implement review suggestions
2021-03-16 09:12:21 +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
Eduard-Mihai Burtescu
c3cf9fe5f3 Clean up some of the cases of duplication found by clippy::match_same_arms. (#487) 2021-03-11 07:31:48 +01:00
Daniel McNab
2d6a677563 Opt-in to rustc_private for rust-analyzer (#481)
https://github.com/rust-analyzer/rust-analyzer/pull/7891
2021-03-09 07:33:43 +01: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
f9946c0f52 attr: use only rustc's own Target, now that it has all the necessary variants. (#471) 2021-03-04 16:03:54 +00:00
Eduard-Mihai Burtescu
d574fa3737 Reenable clippy's use_self lint (disabled during last rustup) and remove now-unneeded #[allow]s for it. (#470)
* Reenable clippy's `use_self` lint (was disabled during last rustup).

* Remove now-unneeded `#[allow(clippy::use_self)]`.
2021-03-04 16:03:21 +00: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
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
Jasper Bekkers
d8e8c75472 Use newly added iter method in rspirv to speed up InstructionTable::new (#460)
* Use newly added `iter` method in rspirv to speed up debug builds of rustc_codegen_spirv by 6s in debug

* cargo update run
2021-03-02 08:51:37 +00:00
Eduard-Mihai Burtescu
6571f45a29 attr: mark #[spirv(...)] attributes as used and remove #[allow(unused_attributes)]. 2021-03-02 08:54:28 +02:00
Eduard-Mihai Burtescu
71254b48fa attr: add a pre-codegen #[spirv(...)] attribute checking pass. 2021-03-02 08:54:28 +02:00
Eduard-Mihai Burtescu
49509e3ccb symbols: cache a Rc<Symbols> per thread. 2021-03-02 08:54:28 +02:00
Eduard-Mihai Burtescu
ccdb9d5a21 symbols: rename #[spirv(image(...))] to #[spirv(image_type(...))]. 2021-03-02 08:54:28 +02:00
Eduard-Mihai Burtescu
9f97704d2e symbols: use Results to keep track of attribute parsing errors. 2021-03-02 08:54:28 +02:00
Eduard-Mihai Burtescu
0253fbec15 parse_attrs: avoid unnecessary allocation. 2021-03-02 08:54:28 +02:00
XAMPPRocky
2c02c59c1f Fixes issues related to upgrading to the latest nightly (#447) 2021-02-26 08:19:35 +00:00
Ashley Hauck
dafbbd745e Don't ICE on duplicate definition (#445)
Also give a nice error on using an undefined name
2021-02-23 11:04:55 +01:00
Eduard-Mihai Burtescu
420ca6ae1d Remove accidentally-commited test = false from rustc_codegen_spirv/Cargo.toml. (#439) 2021-02-22 11:45:07 +00:00
Eduard-Mihai Burtescu
2d948f757e specializer: do not run a DCE pass just before. 2021-02-22 12:58:40 +02:00
Eduard-Mihai Burtescu
dcf23e2e60 specializer: renumber IDs in expanded functions. 2021-02-22 12:58:40 +02:00
Eduard-Mihai Burtescu
d435c26915 link: add DUMP_POST_LINK to allow dumping the module before spirv-opt runs. 2021-02-22 12:58:40 +02:00
Eduard-Mihai Burtescu
d4da7f912d spirv_type_constraints: account for OpUCount{Leading,Trailing}ZerosINTEL usage. 2021-02-22 12:58:40 +02:00
Eduard-Mihai Burtescu
71ef9a25cf specializer: support IndexComposite patterns (for e.g. OpAccessChain). 2021-02-22 12:58:40 +02:00
Eduard-Mihai Burtescu
72206042bb specializer: show function names in SPECIALIZER_DEBUG output. 2021-02-22 12:58:40 +02:00
Eduard-Mihai Burtescu
6f89c8ec54 specializer: deduplicate between InferOperandList's two variants. 2021-02-22 12:58:40 +02:00
Eduard-Mihai Burtescu
f214587f41 specialize: remove double % after gfx-rs/rspirv#184. 2021-02-22 12:58:40 +02:00
Eduard-Mihai Burtescu
72fb398232 Remove #[spirv(really_unsafe_ignore_bitcasts)]. 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
cb0bd4b04a Introduce a "specializer" pass with "generic"s, inference and monomorphization-like expansion. 2021-02-22 12:58:40 +02:00
Eduard-Mihai Burtescu
d425409f65 spirv_type_constraints: support storage class equality constraints. 2021-02-22 12:58:40 +02:00
Eduard-Mihai Burtescu
0c8fe20476 spirv_type_constraints: make the pat! macro more flexible. 2021-02-22 12:58:40 +02:00
Eduard-Mihai Burtescu
de03fb3859 spirv_type_constraints: don't limit InstSig inputs to value operands. 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
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
0285edb860 simd_types_indirect: false (#431)
also fix bug in abi.rs - vectors are always memory, never immediate
2021-02-15 14:59:55 +00: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
2f9d4d8e0d Add a missing err.emit(); for the "spirv-opt failed" error. (#412) 2021-02-10 13:42:43 +00:00
Ashley Hauck
8a68551a06 Fix #403 (#407) 2021-02-02 12:20:10 +00:00
Eduard-Mihai Burtescu
3a4d140328 Don't require 1:1 mapping between OpTypeStructs 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
Ashley Hauck
9f6c91c278 Remove different OpNames that target the same ID (#398) 2021-01-28 13:16:06 +00:00