summaryrefslogtreecommitdiff
path: root/source/slang/slang-ir-collect-global-uniforms.cpp
diff options
context:
space:
mode:
authorYong He <yonghe@outlook.com>2023-02-16 13:55:32 -0800
committerGitHub <noreply@github.com>2023-02-16 13:55:32 -0800
commit4c4826d47eeef4675daae4ae53ff76f4d5ebd84a (patch)
treeed4af0ded878e4f06e9641ce61d26ffd7c89ccbc /source/slang/slang-ir-collect-global-uniforms.cpp
parenteda88e513e8b1e2abc05e9dc8555f237d96472df (diff)
Overhaul global inst deduplication and cpp/cuda backend. (#2654)
* Overhaul global inst deduplication and cpp/cuda backend. * Update IR documentation. --------- Co-authored-by: Yong He <yhe@nvidia.com>
Diffstat (limited to 'source/slang/slang-ir-collect-global-uniforms.cpp')
-rw-r--r--source/slang/slang-ir-collect-global-uniforms.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/source/slang/slang-ir-collect-global-uniforms.cpp b/source/slang/slang-ir-collect-global-uniforms.cpp
index ca5e56b53..ad0dfda91 100644
--- a/source/slang/slang-ir-collect-global-uniforms.cpp
+++ b/source/slang/slang-ir-collect-global-uniforms.cpp
@@ -192,7 +192,8 @@ struct CollectGlobalUniformParametersContext
// per-field layout information to reference the key we created
// instead of the existing parameter (which we will be removing).
//
- fieldLayoutAttr->setOperand(0, fieldKey);
+ fieldLayoutAttr = as<IRStructFieldLayoutAttr>(
+ builder->replaceOperand(fieldLayoutAttr->getOperands(), fieldKey));
// If the given parameter doesn't contribute to uniform/ordinary usage, then
// we can safely leave it at the global scope and potentially avoid a lot
@@ -266,7 +267,7 @@ struct CollectGlobalUniformParametersContext
//
if(auto layoutAttr = as<IRStructFieldLayoutAttr>(user))
{
- layoutAttr->setOperand(0, fieldKey);
+ builder->replaceOperand(layoutAttr->getOperands(), fieldKey);
continue;
}