diff options
Diffstat (limited to 'source/slang/slang-legalize-types.cpp')
| -rw-r--r-- | source/slang/slang-legalize-types.cpp | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/source/slang/slang-legalize-types.cpp b/source/slang/slang-legalize-types.cpp index 792429a01..fc0947c62 100644 --- a/source/slang/slang-legalize-types.cpp +++ b/source/slang/slang-legalize-types.cpp @@ -203,6 +203,21 @@ bool isResourceType(IRType* type) return false; } +// Helper wrapper function around isResourceType that checks if the given +// type is a pointer to a resource type or a physical storage buffer. +bool isPointerToResourceType(IRType* type) +{ + while (auto ptrType = as<IRPtrTypeBase>(type)) + { + if (ptrType->getAddressSpace() == SpvStorageClassStorageBuffer || + ptrType->getAddressSpace() == SpvStorageClassPhysicalStorageBufferEXT) + return true; + type = ptrType->getValueType(); + } + + return isResourceType(type); +} + ModuleDecl* findModuleForDecl( Decl* decl) { |
