diff options
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; |
