Commit Graph

281 Commits

Author SHA1 Message Date
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
Eduard-Mihai Burtescu
810ba5d1e4
Use rspirv::dr::Function's def_id convenience method. (#397) 2021-01-28 09:52:41 +00:00
XAMPPRocky
69b94bb6f9
Add initial arch module (#394) 2021-01-27 15:54:17 +00:00
Ashley Hauck
d88379908a
deduplicate OpVariable (#396) 2021-01-26 16:03:14 +00:00
XAMPPRocky
353bb96bd3
Add gpu_only proc macro (#392) 2021-01-25 10:39:47 +00:00
Jesse
04ad2ad64f
fix: handle an ICE resulting from a dangling pointer (#342) 2021-01-20 12:52:06 +00:00
Eduard-Mihai Burtescu
5f0b380a39
inline asm!: support writing _ in lieu of return types, for basic inference. (#376)
* Basic type constraints for all non-reserved SPIR-V instructions.

* inline asm!: support writing _ in lieu of return types, for basic inference.

* Demonstrate using result type inference in inline asm!.

* inline asm!: allow inferring the result type of OpSampledImage.
2021-01-20 10:40:26 +00:00
Ashley Hauck
225d89d7de
discard(), update rspirv, better capability computation (#380) 2021-01-18 11:59:27 +00:00
Ashley Hauck
8eadd904f7
Add derivatives for vector functions (#377) 2021-01-18 10:28:46 +01:00
Adrian Herath
f7cdf1d6bd
Rename unclear local variables in parse_image() (#379)
The variable name `dim` is used to represent dim, image_format, and
access_qualifier in parse_image(). This might cause confusion for
someone trying to read and understand symbols.rs. This commit changes
names of variables to better reflect their purpose.

Co-authored-by: Adrian Herath <adrianisuru@manjaro.hsd1.il.comcast.net>
2021-01-18 06:52:43 +00:00
XAMPPRocky
d55bf60b02
Document Derivative (#366)
* Document Derivative

* Mention absolute
2021-01-15 12:13:43 +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
XAMPPRocky
b9592e50c5
Update to latest nightly (#358) 2021-01-04 10:25:56 +00:00
Jake Shadle
a6294e1df4
Update spirv-tools (#351)
* Split android into separate job

* Bump spirv-tools to 0.3.1
2020-12-18 10:44:50 +01:00
XAMPPRocky
51038a6ee9
Add description (#323) 2020-12-17 10:03:09 +00:00
Viktor Zoutman
a2a2e3917e
Renamed spirv-attrib to spirv-std-macros (#347) 2020-12-15 15:16:57 +00:00
Viktor Zoutman
46c16d1d0b
Better spirv-attrib (#346)
* Feedback

* cleanup

* Cleanup

* cleanup

* Feedback

* fmt cmon man, I need to format my code manually? pffff

* More feedback! fmt is no longer useless as well

* removed newline

* more if guards

* removed import

* MORE feedback

* fromiterator is gone!

* Removed debug line
2020-12-15 14:13:30 +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
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
Viktor Zoutman
06de5ba6ef
stable spirv-std (#335)
* should compile on stable now

* moved allow into cfg_attr

* more allow

* merged cfg_attr's
2020-12-11 10:31:17 +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
msiglreith
37b338ce67
fix coordinate type for SampleImage<Image2D> (#327) 2020-12-07 09:25:51 +00:00
XAMPPRocky
c1dc273e70
Update version number (#322)
* Update version number

* Add lockfile
2020-12-04 16:50:19 +00:00
msiglreith
fecc71d53f
Add support for sampled images (#320)
* Add support for sampled images

Combined image samplers are allowed as resources and require a generic parameter indicating the underlying image type.

* fix formatting issues

* address review comments

* fix formatting issues
2020-12-04 15:51:27 +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
Ashley Hauck
c70cee8f97
Add flat attribute (#317)
* Add flat attribute

* Document attributes
2020-12-04 11:20:58 +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
bf9ef104d1
Make capability computation less strict, strings in asm! (#310)
* Make capability computation less strict, strings in asm!

* remove accidental println
2020-12-03 17:51:33 +00:00
Eduard-Mihai Burtescu
d4f791fda2
Track spans for zombies, even cross-crate. (#311)
* Track spans for zombies, even cross-crate.

* Pacify the merciless clippy.
2020-12-03 16:14:32 +00:00
Jasper Bekkers
e733f44637
Glam 0.11.1 (#309)
* Switch to glam 0.11.1

* Add lock file
2020-12-03 10:55:29 +00:00
Gray Olson
b41fe70b55
update glam to track bitshifter:master (#307) 2020-12-03 06:28:03 +00:00
Ashley Hauck
d8d80d77f6
Add test for issue 283 (#302) 2020-12-02 17:50:48 +00:00
Jasper Bekkers
bdfb537d4e
Add Image2dArray, needs new glam-rs (#301)
* Add Image2dArray, needs new glam-rs

* Newline
2020-12-02 16:01:42 +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 structs. (#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
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
Viktor Zoutman
f989dfe428
No longer reserved descriptor set 0 (#292) 2020-12-01 12:17:40 +00:00
Ashley Hauck
114d029163
Do not merge zombie and non-zombies (#288) 2020-11-30 15:27:02 +00:00
Ashley Hauck
c097297c51
Pass in span to type translator, remove zombie_even_in_user_code (#278) 2020-11-30 11:55:33 +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
Ashley Hauck
a73f54aa86
Implement textures (#276) 2020-11-26 13:16:22 +00:00
XAMPPRocky
59869ec58b
Move lang_items into spirv-std (#275) 2020-11-26 09:12:18 +00:00
Ashley Hauck
5f3fd5c9d1
rustup update (#273) 2020-11-26 09:00:22 +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
Henno
3888fbe51f
Add compile error when both use-compiled-tools and use-installed-tools are enabled (#269)
* Add compile error when both use-compiled-tools and use-installed-tools are enabled

The compile error is located in the build.rs for rustc-codegen-spirv so that the error happens early, rather than after compiling spirv-tools.

* lint

* lint
2020-11-23 06:37:47 +00:00
Eduard-Mihai Burtescu
28f604eb77
Use rustc_codegen_llvm's get_dylib_metadata to unblock proc macros. (#268) 2020-11-20 18:37:01 +00:00
Ashley Hauck
a92d76a81c
Intercept calls to libm (#264)
* Intercept calls to libm

* Switch to using function names instead of symbols

* remove forgotten comment
2020-11-20 18:35:58 +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
Eduard-Mihai Burtescu
3eebcd789f
Don't rely on symbol names in is_blocklisted_fn. (#265)
* Don't rely on symbol names in is_blocklisted_fn.

* is_blocklisted_fn: move "fmt_decimal" to symbols.
2020-11-20 11:43:31 +00:00
VZout
a49acc1709 Forgot to remove 2 cases of Instruction::new 2020-11-20 11:32:42 +01:00
Ashley Hauck
fcef9ba8de
Implement ddx, ddy, fwidth (#256) 2020-11-19 12:42:22 +00:00
Viktor Zoutman
da0453d356
Update math_ext.rs 2020-11-18 16:14:19 +01: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
charles-r-earp
f564a67100
Decorated entry variable name. (#250) 2020-11-18 08:13:30 +00:00
Viktor Zoutman
a841cc845f
Update math_ext.rs 2020-11-16 21:24:35 +01:00
Viktor Zoutman
daa382368c
Structurizer fixes (#244)
* Structurizer fixes

* reverted some unnessessary changes
2020-11-16 12:58:27 +00:00
VZout
28e71d9932 Reserve the descriptor set instead of the binding 2020-11-14 15:47:34 +01:00
Ashley Hauck
2f63addede
rustup update (#238) 2020-11-13 09:35:34 +00:00
Gray Olson
a79da96307
add trunc and fract to MathExt (#222) 2020-11-13 09:20:12 +00:00
Jake Shadle
0f3948dc27
Move out spirv-tools to separate repo (#237)
* Nuke spirv-tools

* Swap to use published spirv-tools crate
2020-11-13 09:57:12 +01:00
Ashley Hauck
86da42f2d7
Synthesize Session for tests, instead of Option<Session> (#228)
Also remove LinkerError and use rustc error reporting directly instead
2020-11-11 13:22:06 +00:00
Ashley Hauck
47d23ba800
Don't ICE on spir-v module version mismatch (#226) 2020-11-11 13:02:05 +00:00
Ashley Hauck
9c8cec3639
Make SpirvValue contain an enum for its value (#219) 2020-11-11 09:23:07 +01:00
XAMPPRocky
c2ccdbe6ef
Update glam and re-export glam from spirv_std (#220) 2020-11-11 08:13:37 +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
bjorn3
1f615dc491
It is no longer necessary to provide supported_target_features (#214) 2020-11-05 11:24:20 +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