diff --git a/src/redirect.rs b/src/redirect.rs index ec487f8..07c9461 100644 --- a/src/redirect.rs +++ b/src/redirect.rs @@ -1,5 +1,6 @@ -use std::collections::{HashMap, HashSet}; +use std::collections::HashSet; +use indexmap::IndexMap; use naga::{Block, Expression, Function, Handle, Module, Statement}; use thiserror::Error; @@ -183,8 +184,9 @@ impl Redirector { } pub fn into_module(self) -> Result { - // reorder functions so that dependents come first - let mut requirements: HashMap<_, _> = self + // reorder functions so that dependents come first. IndexMap (not HashMap) + // so the emission order is deterministic across runs. + let mut requirements: IndexMap<_, _> = self .module .functions .iter()