Johan Andersson
f6381cfea2
Clarify SPRIV-Tools install to PATH in README
...
Part of #28
2020-10-13 23:18:30 +02:00
Johan Andersson
c0a9e53979
Tiny README formatting tweak
2020-10-13 23:17:13 +02:00
khyperia
d9b64497fc
Make mem2reg support OpAccessChain
2020-10-13 18:00:04 +02:00
Jasper Bekkers
b7aa6f310d
Renamed structs from NV to KHR ( #50 )
...
* Renamed structs from NV to KHR
2020-10-12 17:16:59 +02:00
khyperia
c04ac95860
Make spirv_std be a system crate (i.e. zombieable)
...
This fixes windows CI, because when testing the spirv-std crate, the
memcmp defined here would override the normal memcmp, causing the inf
loop to be hit.
2020-10-12 16:56:14 +02:00
khyperia
ac2f1c3f6b
Disallow pointer to struct containing pointer parameter
...
This fixes NO_DCE=1 cargo test
2020-10-12 10:18:36 +02:00
khyperia
aba452e430
Catch pointercasts that are actually struct_geps
2020-10-10 14:33:14 +02:00
khyperia
bc1358e787
Fix issue with is_system_crate
...
This didn't get tested locally due to weird caching stuff, so, fixing CI
here.
2020-10-10 14:21:33 +02:00
khyperia
01ccf5cf39
Zombies are errors in user code
2020-10-10 13:53:33 +02:00
khyperia
e56c35aaf3
Docs, and fix clippy issues
2020-10-10 13:04:18 +02:00
khyperia
69ecc92ba4
Enable spirv-val by default
2020-10-10 12:37:59 +02:00
khyperia
8d3101e81e
Change the default shader mode to shader
2020-10-10 12:34:48 +02:00
khyperia
80398d8149
Rebuild shader crates if changed
2020-10-10 12:25:05 +02:00
khyperia
8c9583f2c6
Maybe fix lint CI by excluding example-runner
...
This will then not build example-shader and so then not require
spirv-val and friends.
2020-10-09 20:12:39 +02:00
khyperia
60a4164ca1
Reference rustc_codegen_spirv in spirv-builder
...
This makes the UX much better. It's also kind of bonkers, but, in a good
way. I think.
2020-10-09 20:01:35 +02:00
Jasper Bekkers
6b1a292daa
Make cargo-run of example work on windows
2020-10-09 19:11:08 +02:00
khyperia
5fc3c34521
Do an initial sketch of getting-started guide
2020-10-09 18:15:49 +02:00
khyperia
1516d864f3
First try at spirv-builder
2020-10-09 17:22:07 +02:00
khyperia
6323fc609f
Fix mem2reg bugs
2020-10-08 15:30:35 +02:00
khyperia
ab100e1904
Move SPIRV_VAL to post-link
2020-10-08 13:44:26 +02:00
khyperia
c627407966
fuse_trivial_branches and remove_nops
2020-10-08 11:11:43 +02:00
khyperia
3c1b45a45b
rustup update
2020-10-08 10:51:04 +02:00
khyperia
45736613a3
Fix tests
2020-10-08 10:40:18 +02:00
khyperia
b94de84cb8
Add mem2reg
2020-10-08 10:26:19 +02:00
khyperia
20cd6507c1
Write our own inliner
2020-10-07 12:39:58 +02:00
khyperia
87329d5add
Properly implement memset dynamic size
2020-10-05 17:04:12 +02:00
khyperia
5057dfc144
rustup update
2020-10-05 11:51:30 +02:00
khyperia
3a44679729
Properly implement all the hacks I did to get hello-world-triangle working
2020-10-04 16:23:09 +02:00
khyperia
16338fb079
remove duplicate extensions
2020-10-01 12:46:02 +02:00
khyperia
b0c9965cfb
Implement dead code elimination in the linker
2020-10-01 12:43:52 +02:00
khyperia
4f10b5ffe8
Import rspirv types in linker
...
This makes the linker match the import style of rustc_codegen_spirv
2020-10-01 12:18:19 +02:00
khyperia
8854fa575b
Zombie primitives if their capabilities aren't there
2020-10-01 11:59:47 +02:00
khyperia
28c0885b40
Take annotations into account when merging types
2020-10-01 11:08:12 +02:00
khyperia
2c1b73ab9a
Zombie branches before structurizer is done
2020-09-30 16:02:40 +02:00
khyperia
127cc1bb99
really_unsafe_ignore_bitcasts
2020-09-30 15:50:38 +02:00
khyperia
98dfc0cf5e
The max_bound pass isn't needed.
2020-09-30 15:50:38 +02:00
Jake Shadle
13c7530a1a
Add basic CI ( #40 )
2020-09-29 18:00:57 +02:00
khyperia
c464caf088
Add -C target-feature=+shader support
...
Eventually shaders will be the default and -C target-feature=+kernel
will be a thing, but, not right now due to shaders being borked
2020-09-29 15:35:08 +02:00
khyperia
eaf350d2a8
Optimize a little bit of kill_linkage_instructions that I forgot, which reduces time by another 2-3x
...
Also add various other timers, and use the helpful timer() function
2020-09-29 13:04:55 +02:00
khyperia
9bd7db20df
Significantly refactor import_export_link to improve its speed by 12x
2020-09-28 16:29:26 +02:00
khyperia
8f1d69848f
Add timers to compiler and linker
2020-09-28 14:51:04 +02:00
khyperia
df3da15f0b
-C codegen-units isn't needed anymore
2020-09-28 13:48:33 +02:00
khyperia
c77224cecb
Add CI
2020-09-28 13:34:39 +02:00
khyperia
3f3672eaa9
Add build_libcore_test to cargo test
...
Also delete extremely outdated test/lib.rs file.
2020-09-28 13:09:38 +02:00
khyperia
8e35a22248
Add some docs, and remove sort_globals which isn't needed anymore.
2020-09-28 11:12:26 +02:00
khyperia
7e7055ab1a
Move finalizing_passes.rs to linker
2020-09-28 10:40:56 +02:00
khyperia
a91fd92778
Replace complex kill_with with a simple Vec::retain
...
kill_with was also reordering instructions, which in general, should
preferably never be done - declaration order in spir-v is important
enough to try to adhere to that rule.
2020-09-28 10:31:16 +02:00
khyperia
8f800c5755
Split linker into lots of files
2020-09-28 10:02:21 +02:00
khyperia
c8712a9047
Add in some capability stuff
...
Also make env var checks runtime, not compiletime.
2020-09-26 15:32:18 +02:00
khyperia
46c2b2bda2
Clean up run_libcore_test and try to get it to work
2020-09-25 13:42:44 +02:00