summaryrefslogtreecommitdiff
path: root/source
diff options
context:
space:
mode:
Diffstat (limited to 'source')
-rw-r--r--source/slang/slang-ir-specialize-resources.cpp4
-rw-r--r--source/slang/slang-ir.cpp5
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,