From 0470ea05a42d6c3f35d81a433fefdd440500cdbd Mon Sep 17 00:00:00 2001 From: Yong He Date: Thu, 24 Aug 2023 16:32:33 -0700 Subject: Misc. SPIRV Fixes, Part 2. (#3147) * Misc. SPIRV Fixes, Part 2. * Fix up. * Fix. * Add system smenatic values. * 16 bit int and floats, matrix/vector reshape, bool ops. * Fix. * Fix. * Allow push constant entry point params. * entrypoint params. * swizzleSet and swizzledStore. * packoffset. * string hash. * Fix. * Matrix arithmetics. --------- Co-authored-by: Yong He --- source/slang/slang-ir-validate.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'source/slang/slang-ir-validate.cpp') diff --git a/source/slang/slang-ir-validate.cpp b/source/slang/slang-ir-validate.cpp index bf1ce1956..d0948fbb1 100644 --- a/source/slang/slang-ir-validate.cpp +++ b/source/slang/slang-ir-validate.cpp @@ -336,16 +336,18 @@ namespace Slang validateIRInstOperands(context, inst); context->seenInsts.add(inst); + if (auto code = as(inst)) + { + context->domTree = computeDominatorTree(code); + validateCodeBody(context, code); + } + // If `inst` is itself a parent instruction, then we need to recursively // validate its children. validateIRInstChildren(context, inst); if (auto code = as(inst)) - { - context->domTree = computeDominatorTree(code); - validateCodeBody(context, code); context->domTree = nullptr; - } } void validateIRInst(IRInst* inst) -- cgit v1.2.3