diff options
| author | Yong He <yonghe@outlook.com> | 2023-08-23 05:49:33 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-08-23 20:49:33 +0800 |
| commit | 6437c38e0a3c2c1daf36cb5e543dc0b467fa4b15 (patch) | |
| tree | c117b964ada397d9cac01ff4759bcd16d35c7e20 /source/slang/slang-ir-lower-buffer-element-type.cpp | |
| parent | cdd5e6666f98903d61118ada5cba51424fd1577c (diff) | |
Lower all ByteAddressBuffer uses for SPIRV. (#3143)
Co-authored-by: Yong He <yhe@nvidia.com>
Diffstat (limited to 'source/slang/slang-ir-lower-buffer-element-type.cpp')
| -rw-r--r-- | source/slang/slang-ir-lower-buffer-element-type.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/source/slang/slang-ir-lower-buffer-element-type.cpp b/source/slang/slang-ir-lower-buffer-element-type.cpp index 0472e44df..909ffea83 100644 --- a/source/slang/slang-ir-lower-buffer-element-type.cpp +++ b/source/slang/slang-ir-lower-buffer-element-type.cpp @@ -500,6 +500,7 @@ namespace Slang case kIROp_StructuredBufferLoadStatus: case kIROp_RWStructuredBufferLoad: case kIROp_RWStructuredBufferLoadStatus: + case kIROp_StructuredBufferConsume: { IRCloneEnv cloneEnv = {}; builder.setInsertBefore(user); @@ -512,6 +513,7 @@ namespace Slang } case kIROp_Store: case kIROp_RWStructuredBufferStore: + case kIROp_StructuredBufferAppend: { // Use must be the dest operand of the store inst. if (use != user->getOperands() + 0) @@ -524,6 +526,8 @@ namespace Slang store->val.set(packedVal); else if (auto sbStore = as<IRRWStructuredBufferStore>(user)) sbStore->setOperand(2, packedVal); + else if (auto sbAppend = as<IRStructuredBufferAppend>(user)) + sbAppend->setOperand(1, packedVal); else SLANG_UNREACHABLE("unhandled store type"); break; @@ -565,6 +569,8 @@ namespace Slang case kIROp_RWStructuredBufferGetElementPtr: ptrValsWorkList.add(user); break; + case kIROp_StructuredBufferGetDimensions: + break; default: SLANG_UNREACHABLE("unhandled inst of a buffer/pointer value that needs storage lowering."); break; |
