summaryrefslogtreecommitdiffstats
path: root/source
diff options
context:
space:
mode:
authorJay Kwak <82421531+jkwak-work@users.noreply.github.com>2024-04-25 09:02:13 -0700
committerGitHub <noreply@github.com>2024-04-25 09:02:13 -0700
commited0681164d78591148781d08934676bfec63f9da (patch)
tree432951144b1fea050b0c1f51670520c9ee64371e /source
parent366a947cdf2e3c6958b7a9e17d561ce76ab0f594 (diff)
Keep const-ness in generic functions (#4028)
* Keep const-ness in generic functions Closes #3834 The issue was that "const" variables inside of generic functions became non-const variables. This issue prevented some of GLSL texture functions from being called inside of generic functions. When `propagateConstExpr()` iterates the global functions, the generic functions had to be handled little differently. This commit allows the iteration to happen for the generic functions. * Adding an explantion of the test as a comment
Diffstat (limited to 'source')
-rw-r--r--source/slang/slang-ir-constexpr.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/source/slang/slang-ir-constexpr.cpp b/source/slang/slang-ir-constexpr.cpp
index 7a93a312c..199f8f8b0 100644
--- a/source/slang/slang-ir-constexpr.cpp
+++ b/source/slang/slang-ir-constexpr.cpp
@@ -650,6 +650,14 @@ void propagateConstExpr(
default:
break;
+ case kIROp_Generic:
+ {
+ auto gen = as<IRGeneric>(gv);
+ gv = as<IRFunc>(findGenericReturnVal(gen));
+ if (nullptr == gv)
+ break;
+ }
+ [[fallthrough]];
case kIROp_Func:
case kIROp_GlobalVar:
{