Trait spirv_tools::opt::Optimizer
source · pub trait Optimizer {
// Required methods
fn with_env(target_env: TargetEnv) -> Self;
fn optimize<MC: MessageCallback>(
&self,
input: impl AsRef<[u32]>,
msg_callback: &mut MC,
options: Option<Options>
) -> Result<Binary, Error>;
fn register_pass(&mut self, pass: Passes) -> &mut Self;
fn register_performance_passes(&mut self) -> &mut Self;
fn register_size_passes(&mut self) -> &mut Self;
fn register_hlsl_legalization_passes(&mut self) -> &mut Self;
}
Required Methods§
fn with_env(target_env: TargetEnv) -> Self
fn optimize<MC: MessageCallback>( &self, input: impl AsRef<[u32]>, msg_callback: &mut MC, options: Option<Options> ) -> Result<Binary, Error>
sourcefn register_pass(&mut self, pass: Passes) -> &mut Self
fn register_pass(&mut self, pass: Passes) -> &mut Self
Register a single pass with the the optimizer.
sourcefn register_performance_passes(&mut self) -> &mut Self
fn register_performance_passes(&mut self) -> &mut Self
Registers passes that attempt to improve performance of generated code. This sequence of passes is subject to constant review and will change from time to time.
sourcefn register_size_passes(&mut self) -> &mut Self
fn register_size_passes(&mut self) -> &mut Self
Registers passes that attempt to improve the size of generated code. This sequence of passes is subject to constant review and will change from time to time.
sourcefn register_hlsl_legalization_passes(&mut self) -> &mut Self
fn register_hlsl_legalization_passes(&mut self) -> &mut Self
Registers passes that attempt to legalize the generated code.
Note: this recipe is specially designed for legalizing SPIR-V. It should be used by compilers after translating HLSL source code literally. It should not be used by general workloads for performance or size improvement.
This sequence of passes is subject to constant review and will change from time to time.