Commit Graph

247 Commits

Author SHA1 Message Date
Johan Andersson
132b960e83
Upgrade from our standard lints v4 -> v6 (#861) 2022-04-17 12:16:59 +02:00
Eduard-Mihai Burtescu
e08d0d6a48 rustup: update to nightly-2022-04-11. 2022-04-12 09:01:18 +03:00
Eduard-Mihai Burtescu
3e04f62ede rustup: update to nightly-2022-04-01. 2022-04-12 09:01:18 +03:00
Eduard-Mihai Burtescu
f0baf78ade rustup: update to nightly-2022-03-01. 2022-04-12 09:01:18 +03:00
Eduard-Mihai Burtescu
57eed8394e rustup: update to nightly-2022-02-01. 2022-04-12 09:01:18 +03:00
David Craven
3151a8c2b1 Add tests. 2022-02-09 18:10:22 +02:00
Eduard-Mihai Burtescu
31e3fdb09b abi: explicitly unpack ScalarPair newtypes. 2022-01-23 20:18:56 +02:00
Ashley
11e21c6412
Add a OpAtomicIIncrement function to arch (#839) 2022-01-13 17:32:33 +02:00
Ashley Hauck
f780364317
rustup update (#840)
* rustup update

* asm->core::arch::asm
2022-01-13 17:27:33 +02:00
Ashley Hauck
fe5c7716ed
Fix ByteAddressableBuffer PassMode::Pair (#837) 2022-01-10 09:35:03 +00:00
Ashley Hauck
480cd048e0
Fuse OpPtrAccessChain with previous OpAccessChain (#835)
* Fuse OpPtrAccessChain with previous OpAccessChain

* constant-fold add, and change mul to wrap
2021-12-28 11:39:37 +01:00
Ashley Hauck
d26716b881
Add error for insts not allowed outside fragment (#821)
* Add error for insts not allowed outside fragment

* make get_name return entry point names too
2021-12-14 08:04:50 +00:00
Ashley Hauck
9673f39967
A whole host of minor tweaks and clippy fixes (#824) 2021-12-14 07:45:45 +00:00
Ashley
da7c3ed71f
Add a RayQuery::confirm_intersection function (#822) 2021-12-09 13:00:35 +00:00
Ashley Hauck
2ca5826e55
rustup update (#816)
* rustup update

* Test fixes
2021-12-06 11:31:43 +01:00
Ashley Hauck
340f4bb70a
Error when int doesn't have spirv(flat) (#815) 2021-12-06 11:31:26 +01:00
Ashley Hauck
2e4de94a66
Generate bools as bools instead of u8 (#809)
* Generate bools as bools instead of u8

* convert bool->int select to cast
2021-11-30 13:12:13 +00:00
Ashley
9fd3c9e172
Add an IndexUnchecked trait that uses asm! (#805)
* Add an IndexUnchecked trait to spirv-std/arch

* Slap some #[spirv_std_macros::gpu_only] on there

* Spelling

* Add safety sections to the docs

* Improve documentation, implement for non-spirv targets
2021-11-29 07:56:13 +01:00
Eduard-Mihai Burtescu
553f79ebce
asm: support OpCompositeExtract inference for OpTypeStruct fields. (#803) 2021-11-22 13:27:55 +01:00
Eduard-Mihai Burtescu
b28716d5eb tests: get --target-env vulkan1.2 passing. 2021-11-04 11:54:26 +02:00
Eduard-Mihai Burtescu
86d669bccf compiletests: unlock // {only,ignore}-* usage. 2021-11-04 10:26:11 +02:00
Ashley Hauck
f7fc1245f3
Add tests for every builtin (#789) 2021-11-03 11:38:06 +01:00
Ashley Hauck
1517a8bdd6
Document spirv-std, and add warn(missing_docs) (#784) 2021-10-28 10:10:44 +00:00
Ashley Hauck
62548134d2
Add test for issue #329 (#781) 2021-10-28 13:07:47 +03:00
Ashley Hauck
8fb4f10995
Don't ICE on ZST union (#780) 2021-10-28 08:13:00 +00:00
Ashley Hauck
d45f9da016
Add test for issue #330 (#779) 2021-10-28 07:53:27 +00:00
Ashley Hauck
902c51c242
Inline calls that look like f(&s.x) (#777) 2021-10-27 13:28:35 +00:00
Ashley Hauck
c10a1ca756
Implement bool fusion pass (#776)
Fixes #677
2021-10-27 12:52:31 +00:00
Ashley Hauck
f58c6f20af
rustup update, and edition = 2021 (#775) 2021-10-26 10:24:44 +00:00
Hannes Vernooij
4831789bbb
added memory barrier intrinsics to spirv-std (#769)
* added memory barrier intrinsics to spirv-std

* added function-level docs

* added unit-tests

constants could not be validated in tests because of the limited output

* clippy fixes

* improved documentation

* Added missing features to device_memory and all_memory barrier intrinsics.
2021-10-26 09:15:50 +02:00
Ashley Hauck
1fbb2410b6
Fix tests (#773) 2021-10-25 09:10:29 +00:00
Ashley Hauck
3f22a897f3
Handle OpCopyMemory in mem2reg (#772)
* Handle OpCopyMemory in mem2reg

* Update tests
2021-10-25 11:01:53 +03:00
Ashley Hauck
8d019e4e37
Detect recursion in inline.rs and bail (#770)
* Detect recursion in inline.rs and bail

* Bail on inline error
2021-10-25 10:42:45 +03:00
Ashley
e5c2953ea6
Add debug_printf! and debug_printfln! macros that uses the DebugPrintf extension (#768) 2021-10-23 10:05:03 +02:00
Eduard-Mihai Burtescu
28313a2029 tests: adjust for lack of PassMode::{Indirect, Cast}. 2021-10-20 22:13:03 +03:00
Eduard-Mihai Burtescu
111bebdd68 abi: readjust FnAbis to remove unsupported PassModes, via query hooks. 2021-10-20 22:13:03 +03:00
Ashley
f8a1130377
Add arch functions for the GLSL.std.450 S/U Min/Max functions (#763)
* Add (un)signed_(min|max) glsl functinos

* Add gpu_only to call glsl op
2021-10-12 08:49:02 +02:00
Ashley
14e2152198
Add an read_clock_khr function that calls OpReadClockKHR (#757)
* Add support for OpReadClockKHR

* Use a const scope

* Use full scope import path

* Apply some suggestions

* Add cfg flags and scopes as raw u32s

* Run cargo fmt

* Fix comment accuracy

* Update crates/rustc_codegen_spirv/src/spirv_type_constraints.rs

Co-authored-by: Ashley Hauck <953151+khyperia@users.noreply.github.com>

* Run rustfmt

* Add the shader clock feature and capability to the compile test rust flags and bless the changed test errors

Co-authored-by: Ashley Hauck <953151+khyperia@users.noreply.github.com>
2021-10-08 15:56:00 +02:00
Ashley
4e5f347239
Add SampledImage::sample_by_lod (#755)
* Add 'SampledImage::sample_by_lod'

* Add a compiletest

* Format the compiletest, but manually because running cargo fmt doesn't seem to do anything 🤷

* Run rustfmt
2021-10-08 10:33:00 +02:00
Ashley Hauck
b692ab5afc
Convert Image<> parameters from enums to integers to make spirv-std build on stable (#761)
* Convert Image<> parameters from enums to integers to make spirv-std build on stable

* Remove access_qualifier from Image type

It's kernel-mode-only, and we won't ever support kernel mode.
2021-10-07 13:28:33 +02:00
Eduard-Mihai Burtescu
6780432b37 rustup: update to nightly-2021-09-29. 2021-09-30 09:26:11 +03:00
Ashley Hauck
eeb67ae748
Replace <const INTERSECTION: u32> with two functions (#750)
* Replace <const INTERSECTION: u32> with two functions

* Fix doc URLs
2021-09-07 11:30:56 +02:00
Eduard-Mihai Burtescu
6807c5973d Re-add -Zsymbol-mangling-version=v0. 2021-09-07 12:24:38 +03:00
Eduard-Mihai Burtescu
8d9e14a0a3 tests: add test for the OpName of a generic function. 2021-09-07 12:24:38 +03:00
Eduard-Mihai Burtescu
75f81814ec rustup: update to nightly-2021-08-27. 2021-09-07 12:24:38 +03:00
Ashley Hauck
92dc64bd06
Make byte addressable buffer take &self, add support for matrix (#749) 2021-09-06 08:47:34 +00:00
Ashley Hauck
66d6c554d8
Implement ByteAddressableBuffer prototype detached from bindless (#735) 2021-08-31 10:26:30 +02:00
hatoo
b0676cba61
Implement OpTypeMatrix (#738)
* Implement OpTypeMatrix

* clippy

* Use cached Symbol

* Implement #[spirv(matrix(ty, m, n))] instead of Matrix trait

* Update #[spirv(matrix(..))]

- #[spirv(matrix(ty, m, n))]
  Specify all of type, rows, columns.
- #[spirv(matrix(ty, m))]
  Specify all of type, rows. Infer columns.
- #[spirv(matrix(ty))]
  Specify all of type. Infer others.
- #[spirv(matrix)]
  Infer all.

* Drop #[spirv(matrix(..))] (with arguments)

* Fix IntrinsicType::Matrix type construction

* Update matrix-type.rs

* Update tests/ui/spirv-attr/multiple.rs to test Matrix

* Fix tests/ui/spirv-attr/matrix-type.rs

* Add failing tests for #[spirv(matrix)

* Update error messages for #[spirv(matrix)]
2021-08-30 15:45:29 +02:00
Ashley Hauck
1e3881bfcb
Various fixes and cleanup (#726)
* Various fixes and cleanup

While working on other patches that ended up not being applicable, I've
gathered these changes unrelated to the irrelevant patch. So, submitting
them as a seperate change, since the bigger change isn't going in.

* Revert change superseded by #732
2021-08-21 21:41:46 +02:00
khyperia
0bd0bf0f11 Fix issues with some raytracing functions and add tests 2021-08-20 12:20:14 +03:00
Eduard-Mihai Burtescu
9a69d6dccc specializer: allow unused fully-constrained interface variables. 2021-08-19 18:20:27 +03:00
Markus Siglreithmaier
acda7716db
asm: add support for noreturn option (#717)
* asm: add support for noreturn option

OpUnreachable will be appended as terminator at the end of the asm block.

* asm: implicit label after return or abort terminator

* rework handling

* fix tests and add few comments

* fix tests
2021-08-13 08:50:44 +02:00
Ashley Hauck
44c9fdd8c5
Release v0.4.0-alpha.12 (#719) 2021-08-12 10:46:32 +00:00
Eduard-Mihai Burtescu
7501f1895c rustup: update to nightly-2021-08-10. 2021-08-10 16:53:28 +03:00
Ashley Hauck
1a3a12f505
Implement some float packing/unpacking instructions (#709)
* Implement some float packing/unpacking instructions

* Rename f32xN to vecN in packing functions
2021-08-10 13:54:44 +02:00
Eduard-Mihai Burtescu
cf56b95dc1 Add #[track_caller] test. 2021-08-10 12:43:15 +03:00
Eduard-Mihai Burtescu
f951203534 Add test accounting for https://github.com/rust-lang/rust/pull/87723. 2021-08-10 10:55:39 +03:00
Markus Siglreithmaier
2ddae102eb
book: add section for workgroup memory (#713) 2021-08-10 08:32:51 +02:00
Ashley Hauck
12c09cbc5a
Remove implicit bindless and kernel modes (#710)
* Remove +bindless mode

* Remove +kernel mode
2021-08-10 08:23:24 +02:00
Ashley Hauck
a93d6e0f2a
Add sample_bias and gather functions (#704)
* Add sample_bias function

* Update line numbers

* Add gather function

* Update spirv-tools

CI was failing on "Capability SampledRect is not allowed by Vulkan 1.1
specification (or requires extension)", except locally it was fine, and
I have more up to date spirv-tools than CI, so try bumping the CI
version to see if it's just an out-of-date spirv-val

* Fix gather() in vulkan

* Convert compiler valication into marker traits
2021-08-06 15:26:30 +02:00
Alex Es
bca7656c8c
Added a transformation that gets rid of temporary composites. (#690)
* Added an optimization that gets rid of temporary composites.

Those temporary composites result from inlining of multi-argument
closures. Not only are they rather useless, they're also sometimes
invalid, when an argument to said closure is e.g. a pointer.

* Correctness fixes to transitive unused removal:

- delay only if the instruction is in reference set
- properly mark composites being inserted into composites as used

* cargo fmt

* clippy

* Make transformation per-function & rely on DCE for eliminating dead constructs.

* Forgot to mark CompositeInsert as pure & additional line cleaning

* Rustfmt

* Remove duplicate lines only once
2021-08-06 10:52:56 +02:00
Alex Es
d548268140
Aggressively prune no-side-effect instructions during DCE. (#691)
* Aggressively prune no-side-effect instructions during DCE.

Since we're walking all the instructions anyway, it's practically
zero-cost.

* Reverse iteration order within a function.

This allows to root more instructions per `spread_roots`
invocation, becoming zero-cost in absence of loops.

* Manually iterate over function instructions in reverse order.
2021-08-04 08:03:38 +00:00
Ashley Hauck
819365cbae
Release v0.4.0-alpha.11 (#702) 2021-08-02 14:02:02 +00:00
Eduard-Mihai Burtescu
f224b5aa1a tests: update the documented error counts in ui/spirv-attr/invalid-target. 2021-06-24 18:10:32 +03:00
Ashley Hauck
06f0aa2c3a
Release v0.4.0-alpha.10 (#679) 2021-06-23 09:32:09 +02:00
Ashley Hauck
22e4bf4022
Clarify and fix up some image documentation (#678) 2021-06-21 14:31:33 +02:00
Ashley Hauck
db5e5fd336
rustup update and embark standard lints v0.4 (#672)
* rustup update

* update to embark standard lints v0.4
2021-06-17 13:10:19 +02:00
Ashley Hauck
04dfa80266
Nuke arithmetic.rs (#666) 2021-06-15 09:43:13 +02:00
Ashley Hauck
fff2b9bce1
Add common image type aliases (#662) 2021-06-15 09:19:40 +02:00
Ashley Hauck
e1a000d408
Nuke const generics feature (#661)
* Nuke const generics feature

* Remove spirv(image_type) attribute
2021-06-15 09:19:23 +02:00
Eduard-Mihai Burtescu
95bc1914e2
compiletests: add missing use spirv_std as _; imports. (#665) 2021-06-11 08:36:03 +00:00
Ashley Hauck
31bfc338e0
Release v0.4.0-alpha.9 (#646) 2021-06-03 12:35:53 +00:00
Ashley Hauck
92b680fdb9
Release v0.4.0-alpha.8 (#645) 2021-06-02 14:06:56 +02:00
Alex Es
985cbed9e4
Added read_subpass for SubpassData images, and necessary attrs for it. (#643)
* Added read_subpass for SubpassData images, and necessary attrs for it.

* Fix CI; test bless + rustfmt

* Rename attachment_index => input_attachment_index.

* Rustfmt

* Fix clippy warning.

* Review: check for cap rather than adding cap, fix error messages.
2021-06-02 11:02:04 +02:00
Ashley Hauck
f3888d1bb3
Invert glam dependency (#641) 2021-06-02 09:28:01 +02:00
Ashley Hauck
5d22f600e7
Add runtime array type (#596) 2021-05-31 09:39:06 +00:00
Ashley Hauck
1046f7cdf6
Implement auto-vectorization (#629)
* Implement auto-vectorization

* Run mem2reg a lot
2021-05-31 11:22:02 +02: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
khyperia
255a6f09e6 Update compiletest to 0.7 2021-05-26 10:22:07 +03:00
Eduard-Mihai Burtescu
e5a07a9e2b
rustup: update to nightly-2021-05-24. (#631)
* rustup: update to nightly-2021-05-24.

* tests: update expected OpLine numbers in disassembly tests.
2021-05-25 08:28:47 +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
Ashley Hauck
ca988f95de
rustup update to 2021-05-17 (#621) 2021-05-20 14:46:09 +02:00
Ashley Hauck
943f09fef7
Emit OpLine instructions (#616)
* Emit OpLine instructions
2021-05-07 08:57:47 +00:00
XAMPPRocky
9c19414858
Add is_helper_invocation, and cleanup arch & asm functions (#612) 2021-05-04 10:51:20 +00:00
XAMPPRocky
2f451ee993
Add support for using target-features for extensions and capabilities (#610) 2021-05-03 11:19:10 +00: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
Ashley Hauck
7a6806c17b
Add shader image query instructions (#608)
* Add shader image query instructions

* Normalize spirv-std src paths in test output

* Fix tests on vulkan
2021-04-30 09:07:38 +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
Erin Power
18ba6f322d Add support for SPV_KHR_ray_query 2021-04-27 16:07:46 +03:00
Markus Siglreithmaier
3d710e7c4b
Fix semantics type for control barriers to support multiple flags (#598)
* Fix semantics type for control barriers to support multiple flags

* spirv-std: convert memory semantics to bitflag

* Update crates/spirv-std/src/arch/barrier.rs

Co-authored-by: XAMPPRocky <4464295+XAMPPRocky@users.noreply.github.com>

Co-authored-by: XAMPPRocky <4464295+XAMPPRocky@users.noreply.github.com>
2021-04-22 11:17:02 +02:00
XAMPPRocky
a42a9f20e1
Add support for SPV_KHR_ray_tracing (#563)
* Add support for SPV_KHR_ray_tracing

* Update spirv_type_constraints.rs

* Update spirv_type_constraints.rs

* Update spirv_type_constraints.rs
2021-04-16 16:59:11 +03:00
Eduard-Mihai Burtescu
bb7adc912f asm: infer the result type of OpAccessChain (when indexing into arrays). 2021-04-16 09:00:45 +03:00
Ashley Hauck
6c8dece25a
Fix issue 585 (#594) 2021-04-13 11:34:02 +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
Eduard-Mihai Burtescu
7c568ab219 Allow constant references (to constant data), when they're valid SPIR-V. 2021-04-12 11:09:50 +03:00
XAMPPRocky
aa444f007e
Update to glam 0.14 (#587) 2021-04-12 08:00:58 +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
Eduard-Mihai Burtescu
674649c4cb entry: tweak spans (mostly to use hir_param.ty_span in more places). 2021-04-05 20:45:59 +03:00
Eduard-Mihai Burtescu
6c3ce3fac2 entry: use a Builder instead of manually emitting into the entry stub. 2021-04-05 20:45:59 +03:00
Eduard-Mihai Burtescu
2b15e20f2f Unbreak CI (fix control_barrier and memory_barrier tests). 2021-04-05 20:45:59 +03:00
XAMPPRocky
dd60da0be6
Add memory_barrier and control_barrier (#519) 2021-04-01 16:00:30 +02:00
Ashley Hauck
4fa73bddb4
Infer the storage class for images/samplers/imagesamplers (#567)
* Infer the storage class for images/samplers/imagesamplers

* format

* Move comment
2021-04-01 07:49:08 +00: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
Jesse
5e429866da
feat: Added instructions for depth reference and project coordinate image instructions (#545)
* feat: Added instructions for depth reference and project coordinate image instructions

* docs: add alias annotation for methods in spirv-std/src/textures.rs
2021-03-30 08:14:18 +02:00
Eduard-Mihai Burtescu
59085024e3
Add validation test for DST StorageBuffer + #[spirv(block)]. (#553) 2021-03-30 07:36:03 +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
Eduard-Mihai Burtescu
db208e7190 Avoid ever building rustc_codegen_spirv more than once in release mode. 2021-03-29 09:05:48 +02:00
khyperia
eccd3b2559 run format on tests 2021-03-26 13:15:29 +01:00
khyperia
d3605f79c7 Add #[spirv(invariant)] 2021-03-26 13:15:29 +01:00
XAMPPRocky
062eb58431
Update glam (#540) 2021-03-26 09:05:33 +01:00
Eduard-Mihai Burtescu
908487ae1d entry: use T instead of &T for Inputs. 2021-03-23 09:30:24 +01:00
Eduard-Mihai Burtescu
8c1406ee39 entry: reorganize storage class handling, and move some checking to attr. 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
Eduard-Mihai Burtescu
54cb4ada2e compiletest: allow specifying filters via cargo compiletest .... 2021-03-22 19:01:56 +02:00
Eduard-Mihai Burtescu
ff028b90ec compiletest: switch to structopt for the cargo compiletest CLI. 2021-03-22 19:01:56 +02:00
XAMPPRocky
e7d68f7435
Add primitive set of arch instructions (#520) 2021-03-22 10:55:18 +00:00
Ashley Hauck
89dc8c65aa
Add cubemaps (#521) 2021-03-22 11:35:42 +01:00
Eduard-Mihai Burtescu
ffcddd4f4c attr: disallow multiple attributes that are identical or in the same category. 2021-03-22 11:23:55 +02:00
Eduard-Mihai Burtescu
b3b3fbec98 tests: add a test for where #[spirv(...)] attributes can (not) be used. 2021-03-22 11:23:55 +02:00
Eduard-Mihai Burtescu
3274778d98 link: don't use {:?} with paths because it turns \ into \\. 2021-03-22 08:01:22 +02:00
Eduard-Mihai Burtescu
e6a9dcec1c Allow running cargo compiletest from any sub-directory in the workspace. 2021-03-22 08:01:22 +02:00
Eduard-Mihai Burtescu
27a1705d2e compiletest: use a simpler path for deps_target_dir. 2021-03-22 08:01:22 +02:00
Eduard-Mihai Burtescu
1e7ac7531c compiletest: don't use string constants for paths. 2021-03-22 08:01:22 +02:00
Eduard-Mihai Burtescu
f105b7d0d9 compiletest: don't set CARGO_MANIFEST_DIR (it doesn't do anything). 2021-03-22 08:01:22 +02:00
Eduard-Mihai Burtescu
3315e13528
compiletest: move the deps helper package into the workspace. (#511) 2021-03-19 19:34:08 +02:00
Erin Power
92737c11bb Fix warning about no_std 2021-03-19 08:35:09 +01:00
Jesse
9fb930b8f1
feat: add OpImageSampleExplicitLod to spirv-std (#498) 2021-03-19 07:24:20 +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
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
khyperia
687f142031 Shuffle tests some more, and split Context into FnCtx 2020-08-12 11:28:45 +02:00
khyperia
0df7e61ffe Use new caching system from rspirv 2020-08-12 09:54:19 +02:00
khyperia
3d43764fe1 Split up some functions and structs 2020-08-11 15:06:25 +02:00
khyperia
e0de7815ce Add basic test framework 2020-08-11 13:15:55 +02:00
khyperia
acc2c7ab6c Begin to implement some basic translation 2020-08-10 18:43:44 +02:00
khyperia
9ab212f93c Start emitting spirv modules 2020-08-10 16:41:57 +02:00
Jasper Bekkers
cf71e44bb6
Not a doc comment, add a struct 2020-07-24 14:20:32 +01:00
Jasper Bekkers
1e9d25e984
Iterate over BB's and dump out some information along the way 2020-07-24 14:17:35 +01:00
Jasper Bekkers
0ba2d6deb1
Add Copy & int literal to test 2020-07-24 12:30:32 +01:00
Jasper Bekkers
b24dfb5103
Output MIR for function 2020-07-24 12:02:27 +01:00
Jasper Bekkers
e8d788c607
TheBackend in a cargo project to play around with 2020-07-24 11:37:14 +01:00