Eduard-Mihai Burtescu
fedac0f4a5
asm: streamline generating a type from a pattern for inference.
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
Eduard-Mihai Burtescu
2bf4f76741
builder_spirv: track whether SpirvConst
s were deemed "legal" or not.
2021-04-12 11:09:50 +03:00
Eduard-Mihai Burtescu
00fe5a975e
builder_spirv: replace the constants BiHashMap
with two FxHashMap
s.
2021-04-12 11:09:50 +03:00
Eduard-Mihai Burtescu
3a9e7781d5
builder_spirv: don't keep a whole SpirvValue
in the constants
cache.
2021-04-12 11:09:50 +03:00
Eduard-Mihai Burtescu
84350e31d3
builder_spirv: split out the type field from SpirvConst
.
2021-04-12 11:09:50 +03:00
XAMPPRocky
4163ce68cf
Remove memcmp from spirv-std ( #583 )
2021-04-09 13:52:37 +02:00
Eduard-Mihai Burtescu
8c89b49b66
rustc_codegen_spirv: use FxHash{Map,Set}
instead of the std ones.
2021-04-08 18:02:55 +03: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
3f641638c8
entry: move call arg ajustments to declare_shader_interface_for_param
.
2021-04-08 10:18:49 +03:00
Eduard-Mihai Burtescu
630e5a61d8
entry: shorten variable
to var
.
2021-04-08 10:18:49 +03:00
Eduard-Mihai Burtescu
f834f989e5
entry: rename declare_interface_global_for_param
to declare_shader_interface_for_param
.
2021-04-08 10:18:49 +03:00
Eduard-Mihai Burtescu
b893c47727
entry: move things around in declare_interface_global_for_param
.
2021-04-08 10:18:49 +03:00
Eduard-Mihai Burtescu
1d1c2951c7
entry: collect OpEntryPoint
operands in declare_interface_global_for_param
.
2021-04-08 10:18:49 +03:00
Eduard-Mihai Burtescu
2b4037832f
spirv_type: fix copy-paste mistake regarding InterfaceBlock
.
2021-04-08 10:18:49 +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
561f0dd984
Clean up the output of assert_ty_eq!
(when it fails).
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
ad859e681e
entry: check the type of the argument we compute from the global OpVariable
.
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
9bada9362d
entry: return SpirvValue
from declare_interface_global_for_param
.
2021-04-05 20:45:59 +03:00
Eduard-Mihai Burtescu
7cc69e7126
entry: rename declare_parameter
to declare_interface_global_for_param
.
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
khyperia
40359bdb56
Add DCE-φ pass
2021-04-01 13:33:07 +02: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
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
Eduard-Mihai Burtescu
fc8efd4562
structurizer: treat single-exit regions as unconditionally branching. ( #566 )
2021-03-31 12:04:20 +00: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
Eduard-Mihai Burtescu
820573a21f
Duplicate SpirvValueKind::ConstantPointer
into a separate FnAddr
variant. ( #557 )
2021-03-30 08:55:37 +00:00
Ashley Hauck
d6ff9cd439
Run DCE twice ( #556 )
2021-03-30 09:44:01 +02: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
Henno
9f25e92d60
Remove sized check from Block translation
2021-03-30 05:35:02 +03: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
Eduard-Mihai Burtescu
db208e7190
Avoid ever building rustc_codegen_spirv more than once in release mode.
2021-03-29 09:05:48 +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
khyperia
d3605f79c7
Add #[spirv(invariant)]
2021-03-26 13:15:29 +01:00
XAMPPRocky
3da44847ec
Make derivative arch functions public
2021-03-26 13:13:58 +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
Ashley Hauck
15d96cde8c
Use the cute Function::all_inst_iter helper, because it's cute. ( #535 )
2021-03-25 10:20:34 +00:00
Erin Power
dea67c686c
Move min-const-generics features out of const-generics flag
2021-03-25 10:34:01 +02:00
Eduard-Mihai Burtescu
79200bb777
Produce TypeKind::Token
for {Image,Sampler,SampledImage} in type_kind
.
2021-03-24 14:51:50 +02: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
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
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
XAMPPRocky
681e4f21ae
Update nightly ( #516 )
2021-03-22 10:20:05 +00:00
Eduard-Mihai Burtescu
94f46142a7
Use AggregatedSpirvAttributes
instead of iterating over SpirvAttribute
s.
2021-03-22 11:23:55 +02: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
8688e8c25a
attr: group attributes by their targets.
2021-03-22 11:23:55 +02:00
Eduard-Mihai Burtescu
a2026376b7
attr: group {ImageType,Sampler,SampledImage} into an IntrinsicType
enum.
2021-03-22 11:23:55 +02:00
Eduard-Mihai Burtescu
fdbfdec6f5
symbols: move SpirvAttribute
to the attr module.
2021-03-22 11:23:55 +02:00
Eduard-Mihai Burtescu
7f94fea3b6
attr: target_from_impl_item
can just be private.
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
XAMPPRocky
52ae430ec1
Update dependencies ( #506 )
2021-03-22 09:27:34 +01:00
Eduard-Mihai Burtescu
3274778d98
link: don't use {:?}
with paths because it turns \ into \\.
2021-03-22 08:01:22 +02:00
Ashley Hauck
3bc8a8076b
Fix recover_access_chain_from_offset on unsized fields ( #510 )
2021-03-19 15:23:55 +00: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
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
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
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
Johan Andersson
a173208d80
Update to Embark lints v0.3 ( #482 )
...
Co-Authored-By: Johan Andersson <repi@repi.se>
Co-authored-by: Erin Power <erin.power@embark-studios.com>
2021-03-12 12:35:37 +00:00
XAMPPRocky
cb8477df15
Document gpu-only ( #489 )
2021-03-11 13:23:52 +00: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
556e12f4fc
refactor: Slight refactor of textures.rs asm functions for consistency ( #488 )
2021-03-11 07:37:22 +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
Jesse
c53c351987
feat: add image fetch ( #480 )
2021-03-10 08:17:07 +00: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
Erin Power
93af32f107
Rm old submodules
2021-03-08 13:42:02 +01:00
Johan Andersson
a990ed5696
Use Embark standard lints v0.2 ( #475 )
2021-03-08 10:37:43 +01:00
Henrik Rydgård
d37b41c13e
Add description to spirv-std-macros
2021-03-05 09:27:07 +01:00
Erin Power
c38402a1e2
Use version for macros
2021-03-04 18:13:07 +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
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
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