From b7f83169e28105693203ec97cbe26d3b29b60cec Mon Sep 17 00:00:00 2001 From: Molive Date: Fri, 2 Oct 2026 20:58:52 +0100 Subject: [PATCH] Use correct OpExtInstImport check --- tape-load/src/ssa.rs | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/tape-load/src/ssa.rs b/tape-load/src/ssa.rs index dc4e454..36de742 100644 --- a/tape-load/src/ssa.rs +++ b/tape-load/src/ssa.rs @@ -7,7 +7,11 @@ use std::{ #[cfg(feature = "bevy")] use bevy_reflect::prelude::*; use glam::Vec3; -use rspirv::{binary::Disassemble, dr::Module, spirv}; +use rspirv::{ + binary::Disassemble, + dr::{Module, Operand}, + spirv, +}; use crate::{ DUMP_SPV_DIS_TO_FILE, @@ -559,12 +563,13 @@ impl SSATape { b.memory_model(spirv::AddressingModel::Logical, spirv::MemoryModel::GLSL450); b }; - let glsl = if with_module { - 4 - } else { - b.ext_inst_import("GLSL.std.450") - }; - + let glsl = b + .module_ref() + .ext_inst_imports + .iter() + .find(|inst| inst.operands[0].unwrap_literal_string() == "GLSL.std.450") + .map(|inst| inst.result_id.unwrap()) + .unwrap_or_else(|| b.ext_inst_import("GLSL.std.450")); let void = b.type_void(); let float = b.type_float(32, None); let bool = b.type_bool();