]> git.nega.tv - josh/narcissus/commitdiff
shark-shaders: Add message when shader compilation fails
authorJosh Simmons <josh@nega.tv>
Mon, 4 Nov 2024 07:27:28 +0000 (08:27 +0100)
committerJosh Simmons <josh@nega.tv>
Mon, 4 Nov 2024 21:13:25 +0000 (22:13 +0100)
title/shark-shaders/build.rs

index 623cd4da120cee4d6aa1183675108b96723f2774..85d563950d5ceafe8b92f280ca4aa5f3eeb8839a 100644 (file)
@@ -43,16 +43,16 @@ fn main() {
         _ => "0",
     };
 
-    let commands = SHADERS
+    let mut commands = SHADERS
         .iter()
         .map(|Shader { stage, name }| {
             Command::new("glslangValidator")
                 .args(["--target-env", "vulkan1.3"])
                 .arg("--quiet")
-                .arg(&format!("-g{debug}"))
+                .arg(format!("-g{debug}"))
                 .args(["--depfile", &format!("{out_dir}/{name}.{stage}.d")])
                 .args(["-o", &format!("{out_dir}/{name}.{stage}.spv")])
-                .arg(&format!("{SHADER_ROOT}/{name}.{stage}.glsl"))
+                .arg(format!("{SHADER_ROOT}/{name}.{stage}"))
                 .spawn()
                 .unwrap()
         })
@@ -77,9 +77,13 @@ fn main() {
         .unwrap();
     }
 
-    for mut command in commands {
+    for (mut command, shader) in commands.drain(..).zip(SHADERS.iter()) {
         let status = command.wait().unwrap();
-        assert!(status.success());
+        assert!(
+            status.success(),
+            "shader '{}' failed to compile",
+            shader.name
+        );
     }
 
     for &Shader { stage, name } in SHADERS {