summaryrefslogtreecommitdiff
path: root/source/slang/slang-emit-cpp.h
diff options
context:
space:
mode:
Diffstat (limited to 'source/slang/slang-emit-cpp.h')
-rw-r--r--source/slang/slang-emit-cpp.h18
1 files changed, 17 insertions, 1 deletions
diff --git a/source/slang/slang-emit-cpp.h b/source/slang/slang-emit-cpp.h
index 906086d71..f15a302e5 100644
--- a/source/slang/slang-emit-cpp.h
+++ b/source/slang/slang-emit-cpp.h
@@ -132,6 +132,17 @@ public:
SLANG_CPP_INTRINSIC_OP(SLANG_CPP_INTRINSIC_OP_ENUM)
};
+ typedef uint32_t SemanticUsedFlags;
+ struct SemanticUsedFlag
+ {
+ enum Enum : SemanticUsedFlags
+ {
+ DispatchThreadID = 0x01,
+ GroupThreadID = 0x02,
+ GroupID = 0x04,
+ };
+ };
+
struct OperationInfo
{
UnownedStringSlice name;
@@ -257,9 +268,12 @@ protected:
SlangResult _calcTextureTypeName(IRTextureTypeBase* texType, StringBuilder& outName);
- void _emitEntryPointDefinitionStart(IRFunc* func, IRGlobalParam* entryPointGlobalParams, const String& funcName);
+ void _emitEntryPointDefinitionStart(IRFunc* func, IRGlobalParam* entryPointGlobalParams, const String& funcName, const UnownedStringSlice& varyingTypeName);
void _emitEntryPointDefinitionEnd(IRFunc* func);
void _emitEntryPointGroup(const UInt sizeAlongAxis[3], const String& funcName);
+ void _emitEntryPointGroupRange(const UInt sizeAlongAxis[3], const String& funcName);
+
+ void _emitInitAxisValues(const UInt sizeAlongAxis[3], const UnownedStringSlice& mulName, const UnownedStringSlice& addName);
Dictionary<SpecializedIntrinsic, StringSlicePool::Handle> m_intrinsicNameMap;
Dictionary<IRType*, StringSlicePool::Handle> m_typeNameMap;
@@ -295,6 +309,8 @@ protected:
List<IntrinsicOp> m_intrinsicOpMap;
StringSlicePool m_slicePool;
+
+ SemanticUsedFlags m_semanticUsedFlags;
};
}