Skip to content

Commit 4be9bba

Browse files
committed
target enum: change SpirvBuilder::new to accept target as SpirvTargetEnv instead of silently failing to parse
1 parent d80832e commit 4be9bba

File tree

7 files changed

+13
-30
lines changed

7 files changed

+13
-30
lines changed

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

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -109,22 +109,6 @@ impl SpirvTargetEnv {
109109
}
110110
}
111111

112-
pub trait IntoSpirvTarget: Sized {
113-
fn to_spirv_target_env(&self) -> Result<SpirvTargetEnv, SpirvTargetParseError>;
114-
}
115-
116-
impl IntoSpirvTarget for SpirvTargetEnv {
117-
fn to_spirv_target_env(&self) -> Result<SpirvTargetEnv, SpirvTargetParseError> {
118-
Ok(*self)
119-
}
120-
}
121-
122-
impl IntoSpirvTarget for &str {
123-
fn to_spirv_target_env(&self) -> Result<SpirvTargetEnv, SpirvTargetParseError> {
124-
SpirvTargetEnv::parse_triple(self)
125-
}
126-
}
127-
128112
#[cfg(test)]
129113
mod tests {
130114
use super::*;

crates/spirv-builder/src/lib.rs

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -90,9 +90,7 @@ use std::path::{Path, PathBuf};
9090
use std::process::{Command, Stdio};
9191
use thiserror::Error;
9292

93-
pub use rustc_codegen_spirv_target_specs::{
94-
IntoSpirvTarget, SpirvTargetEnv, SpirvTargetParseError,
95-
};
93+
pub use rustc_codegen_spirv_target_specs::{SpirvTargetEnv, SpirvTargetParseError};
9694
pub use rustc_codegen_spirv_types::*;
9795

9896
#[cfg(feature = "include-target-specs")]
@@ -492,10 +490,10 @@ impl Default for SpirvBuilder {
492490
}
493491

494492
impl SpirvBuilder {
495-
pub fn new(path_to_crate: impl AsRef<Path>, target: impl IntoSpirvTarget) -> Self {
493+
pub fn new(path_to_crate: impl AsRef<Path>, target: SpirvTargetEnv) -> Self {
496494
Self {
497495
path_to_crate: Some(path_to_crate.as_ref().to_owned()),
498-
target: target.to_spirv_target_env().ok(),
496+
target: Some(target),
499497
..SpirvBuilder::default()
500498
}
501499
}

examples/multibuilder/src/main.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1-
use spirv_builder::{MetadataPrintout, SpirvBuilder};
1+
use spirv_builder::{MetadataPrintout, SpirvBuilder, SpirvTargetEnv};
22

33
fn main() {
44
let result = SpirvBuilder::new(
55
concat!(env!("CARGO_MANIFEST_DIR"), "/../shaders/sky-shader"),
6-
"spirv-unknown-spv1.3",
6+
SpirvTargetEnv::Vulkan_1_3,
77
)
88
.print_metadata(MetadataPrintout::DependencyOnly)
99
.multimodule(true)

examples/runners/ash/src/main.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ use std::{
9191

9292
use clap::Parser;
9393

94-
use spirv_builder::{MetadataPrintout, SpirvBuilder};
94+
use spirv_builder::{MetadataPrintout, SpirvBuilder, SpirvTargetEnv};
9595

9696
use shared::ShaderConstants;
9797

@@ -247,7 +247,7 @@ pub fn compile_shaders() -> Vec<SpvFile> {
247247

248248
SpirvBuilder::new(
249249
concat!(env!("CARGO_MANIFEST_DIR"), "/../../shaders/sky-shader"),
250-
"spirv-unknown-vulkan1.1",
250+
SpirvTargetEnv::Vulkan_1_1,
251251
)
252252
.print_metadata(MetadataPrintout::None)
253253
.shader_panic_strategy(spirv_builder::ShaderPanicStrategy::DebugPrintfThenExit {

examples/runners/wgpu/builder/src/main.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
use spirv_builder::{MetadataPrintout, SpirvBuilder};
1+
use spirv_builder::{MetadataPrintout, SpirvBuilder, SpirvTargetEnv};
22
use std::env;
33
use std::error::Error;
44
use std::fs;
@@ -7,7 +7,7 @@ use std::path::Path;
77
fn build_shader(path_to_crate: &str, codegen_names: bool) -> Result<(), Box<dyn Error>> {
88
let builder_dir = &Path::new(env!("CARGO_MANIFEST_DIR"));
99
let path_to_crate = builder_dir.join(path_to_crate);
10-
let result = SpirvBuilder::new(path_to_crate, "spirv-unknown-vulkan1.1")
10+
let result = SpirvBuilder::new(path_to_crate, SpirvTargetEnv::Vulkan_1_1)
1111
.print_metadata(MetadataPrintout::Full)
1212
.build()?;
1313
if codegen_names {

examples/runners/wgpu/src/lib.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,7 @@
7373

7474
use clap::Parser;
7575
use clap::ValueEnum;
76+
use spirv_builder::SpirvTargetEnv;
7677
use std::borrow::Cow;
7778
use strum::{Display, EnumString};
7879

@@ -152,7 +153,7 @@ fn maybe_watch(
152153

153154
let has_debug_printf = options.force_spirv_passthru;
154155

155-
let builder = SpirvBuilder::new(crate_path, "spirv-unknown-vulkan1.1")
156+
let builder = SpirvBuilder::new(crate_path, SpirvTargetEnv::Vulkan_1_1)
156157
.print_metadata(MetadataPrintout::None)
157158
.shader_panic_strategy(if has_debug_printf {
158159
spirv_builder::ShaderPanicStrategy::DebugPrintfThenExit {

tests/difftests/lib/src/scaffold/compute/wgpu.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ use crate::config::Config;
22
use anyhow::Context;
33
use bytemuck::Pod;
44
use futures::executor::block_on;
5-
use spirv_builder::{ModuleResult, SpirvBuilder};
5+
use spirv_builder::{ModuleResult, SpirvBuilder, SpirvTargetEnv};
66
use std::{
77
borrow::Cow,
88
env,
@@ -36,7 +36,7 @@ impl ComputeShader for RustComputeShader {
3636
&self,
3737
device: &wgpu::Device,
3838
) -> anyhow::Result<(wgpu::ShaderModule, Option<String>)> {
39-
let builder = SpirvBuilder::new(&self.path, "spirv-unknown-vulkan1.1")
39+
let builder = SpirvBuilder::new(&self.path, SpirvTargetEnv::Vulkan_1_2)
4040
.print_metadata(spirv_builder::MetadataPrintout::None)
4141
.release(true)
4242
.multimodule(false)

0 commit comments

Comments
 (0)