1use naga::back::glsl::{Options, PipelineOptions, Writer};
2use naga::proc::BoundsCheckPolicies;
3use naga::{Module, ShaderStage};
4
5use crate::util::validate;
6
7pub(crate) fn to_glsl(module: Module, stage: ShaderStage, entry_point: &str) -> String {
8 let mut out = String::new();
9
10 Writer::new(
11 &mut out,
12 &module,
13 &validate(&module),
14 &Options::default(), &PipelineOptions {
16 shader_stage: stage,
17 entry_point: entry_point.to_string(),
18 multiview: None, },
20 BoundsCheckPolicies::default(), )
22 .expect("Failed to generate GLSL output")
23 .write()
24 .expect("Failed to write GLSL output");
25
26 out
27}