Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 6696b4f

Browse files
add spirv-unknown-wgsl target, forcefully panic during linking
1 parent b0e8c81 commit 6696b4f

File tree

4 files changed

+36
-0
lines changed

4 files changed

+36
-0
lines changed

‎crates/rustc_codegen_spirv-target-specs/src/lib.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,8 @@ pub enum SpirvTargetEnv {
5252
Vulkan_1_3,
5353
#[strum(to_string = "vulkan1.4")]
5454
Vulkan_1_4,
55+
#[strum(to_string = "wgsl")]
56+
Wgsl,
5557
}
5658

5759
impl SpirvTargetEnv {
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
{
2+
"allows-weak-linkage": false,
3+
"arch": "spirv",
4+
"crt-objects-fallback": "false",
5+
"crt-static-allows-dylibs": true,
6+
"data-layout": "e-m:e-p:32:32:32-i64:64-n8:16:32:64",
7+
"dll-prefix": "",
8+
"dll-suffix": ".spv.json",
9+
"dynamic-linking": true,
10+
"emit-debug-gdb-scripts": false,
11+
"env": "wgsl",
12+
"linker-flavor": "unix",
13+
"linker-is-gnu": false,
14+
"llvm-target": "spirv-unknown-wgsl",
15+
"main-needs-argc-argv": false,
16+
"metadata": {
17+
"description": null,
18+
"host_tools": null,
19+
"std": null,
20+
"tier": null
21+
},
22+
"os": "unknown",
23+
"panic-strategy": "abort",
24+
"simd-types-indirect": false,
25+
"target-pointer-width": "32"
26+
}

‎crates/rustc_codegen_spirv/src/link.rs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -297,6 +297,10 @@ fn post_link_single_module(
297297
do_spirv_val(sess, &spv_binary, out_filename, val_options);
298298
}
299299

300+
if sess.target.options.env == "wgsl" {
301+
panic!("detected wgsl during linking!");
302+
}
303+
300304
{
301305
let save_modules_timer = sess.timer("link_save_modules");
302306
if let Err(e) = std::fs::write(out_filename, spirv_tools::binary::from_binary(&spv_binary))

‎crates/rustc_codegen_spirv/src/target.rs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,8 @@ impl TargetsExt for SpirvTargetEnv {
3232
| SpirvTargetEnv::Vulkan_1_2
3333
| SpirvTargetEnv::Vulkan_1_3
3434
| SpirvTargetEnv::Vulkan_1_4 => MemoryModel::Vulkan,
35+
36+
SpirvTargetEnv::Wgsl => MemoryModel::Vulkan,
3537
}
3638
}
3739

@@ -55,6 +57,8 @@ impl TargetsExt for SpirvTargetEnv {
5557
SpirvTargetEnv::Vulkan_1_2 => spirv_tools::TargetEnv::Vulkan_1_2,
5658
SpirvTargetEnv::Vulkan_1_3 => spirv_tools::TargetEnv::Vulkan_1_3,
5759
SpirvTargetEnv::Vulkan_1_4 => spirv_tools::TargetEnv::Vulkan_1_4,
60+
61+
SpirvTargetEnv::Wgsl => spirv_tools::TargetEnv::Vulkan_1_2,
5862
}
5963
}
6064

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /