From 5af36cf4ca7a81d91fb03cdf39e40b6b4175fa2d Mon Sep 17 00:00:00 2001 From: Yong He Date: Tue, 21 Nov 2023 17:22:41 -0800 Subject: Add SPIRV intrinsics for texture footprint query. (#3345) * Add SPIRV intrinsics for texture footprint query. * Cleanup. --------- Co-authored-by: Yong He --- source/slang/slang-intrinsic-expand.cpp | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) (limited to 'source/slang/slang-intrinsic-expand.cpp') diff --git a/source/slang/slang-intrinsic-expand.cpp b/source/slang/slang-intrinsic-expand.cpp index d65fdf8bb..b96c2657d 100644 --- a/source/slang/slang-intrinsic-expand.cpp +++ b/source/slang/slang-intrinsic-expand.cpp @@ -818,8 +818,28 @@ const char* IntrinsicExpandContext::_emitSpecial(const char* cursor) if (vectorSize <= 4) m_writer->emitChar(swizzleNames[vectorSize - 1]); } + break; + } + case '!': + { + // Emit a literal directly without any prefix/postfix/casts. + Index argIndex = parseNat() + m_argIndexOffset; + SLANG_RELEASE_ASSERT((0 <= argIndex) && (argIndex < m_argCount)); + auto arg = m_args[argIndex]; + if (auto intLit = as(arg.get())) + { + m_writer->emitInt64(intLit->getValue()); + } + else if (auto stringLit = as(arg.get())) + { + m_writer->emit(stringLit->getStringSlice()); + } + else + { + SLANG_UNEXPECTED("unexpected literal argument in intrinsic call."); + } + break; } - break; default: SLANG_UNEXPECTED("bad format in intrinsic definition"); -- cgit v1.2.3