diff options
Diffstat (limited to 'source')
| -rw-r--r-- | source/slang/slang-ir-specialize-resources.cpp | 4 | ||||
| -rw-r--r-- | source/slang/slang-ir.cpp | 5 |
2 files changed, 9 insertions, 0 deletions
diff --git a/source/slang/slang-ir-specialize-resources.cpp b/source/slang/slang-ir-specialize-resources.cpp index 2aafaaf31..871ba2c24 100644 --- a/source/slang/slang-ir-specialize-resources.cpp +++ b/source/slang/slang-ir-specialize-resources.cpp @@ -1359,6 +1359,10 @@ bool isIllegalGLSLParameterType(IRType* type) return true; if (as<IRDynamicResourceType>(type)) return true; + if (as<IRHLSLInputPatchType>(type)) + return true; + if (as<IRHLSLOutputPatchType>(type)) + return true; return false; } diff --git a/source/slang/slang-ir.cpp b/source/slang/slang-ir.cpp index 07e8b2742..cdabb1ac2 100644 --- a/source/slang/slang-ir.cpp +++ b/source/slang/slang-ir.cpp @@ -5259,6 +5259,11 @@ IRInst* IRBuilder::emitElementAddress(IRInst* basePtr, IRInst* index) SLANG_ASSERT(as<IRIntLit>(index)); type = (IRType*)tupleType->getOperand(getIntVal(index)); } + else if (auto hlslInputPatchType = as<IRHLSLInputPatchType>(valueType)) + { + type = hlslInputPatchType->getElementType(); + } + SLANG_RELEASE_ASSERT(type); auto inst = createInst<IRGetElementPtr>( this, |
