diff options
| author | Yong He <yonghe@outlook.com> | 2021-08-17 09:39:02 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-08-17 09:39:02 -0700 |
| commit | 858c7c57b125afed9b5b2329d6b02477284e4803 (patch) | |
| tree | 49f67b342448dcfb19913d8ccc089d956de14462 /source/slang/slang-emit-base.cpp | |
| parent | 6406523511037987d8b8ab881aea41389afd57eb (diff) | |
Add GLSL450 intrinsics to SPIRV direct emit. (#1921)
* Add GLSL450 intrinsics to SPIRV direct emit.
* Fix.
* Fix compiler error.
* Fix.
* Fix compiler error.
* Make direct-spirv tests actually run.
Diffstat (limited to 'source/slang/slang-emit-base.cpp')
| -rw-r--r-- | source/slang/slang-emit-base.cpp | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/source/slang/slang-emit-base.cpp b/source/slang/slang-emit-base.cpp index d00b723ab..0f1c54e70 100644 --- a/source/slang/slang-emit-base.cpp +++ b/source/slang/slang-emit-base.cpp @@ -52,4 +52,25 @@ IRVarLayout* SourceEmitterBase::getVarLayout(IRInst* var) return as<IRVarLayout>(decoration->getLayout()); } +BaseType SourceEmitterBase::extractBaseType(IRType* inType) +{ + auto type = inType; + for (;;) + { + if (auto irBaseType = as<IRBasicType>(type)) + { + return irBaseType->getBaseType(); + } + else if (auto vecType = as<IRVectorType>(type)) + { + type = vecType->getElementType(); + continue; + } + else + { + return BaseType::Void; + } + } +} + } |
