diff options
| author | ArielG-NV <159081215+ArielG-NV@users.noreply.github.com> | 2024-04-26 01:27:30 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-04-26 01:27:30 -0400 |
| commit | e91bd3b0bdc50f66bfd302ff079c65fba5126474 (patch) | |
| tree | 73c1ce23a93b895216031e0071e954fa4ff641ea /source/slang/slang-emit.cpp | |
| parent | bc7231bbcf32819bed37012db3f01b34b5dd856a (diff) | |
WIP: Force Inline If RefType (#4005)
* Force Inline if reftype
Fixes #3997.
If we are using a refType, we now ForceInline.
remarks:
1. Modifications were made in slang-ir-glsl-legalize to change how we translate GlobalParam proxy's into GlobalParam.
a. We now handle the senario where a globalParam is used in multiple disjoint blocks (like 2 different functions).
* try to figure out why CI fails but local works
try to inline DispatchMesh, works locally, may fail on CI(?)
* try another fix
* add task tests + don't allow semi-early task-shader inline
Task shader uses DispatchMesh which is a very big 'hack' where we check for the function name and modify the callees in very large ways. This function does inline, but it cannot inline early due to future mangling that this operation requires todo. This is reflected with the `[noRefInline]` modifier. It is a modifier so users may stop mandatory inlines with `__ref` parameter.
Diffstat (limited to 'source/slang/slang-emit.cpp')
| -rw-r--r-- | source/slang/slang-emit.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/source/slang/slang-emit.cpp b/source/slang/slang-emit.cpp index 5cfcde0c9..9369afbc5 100644 --- a/source/slang/slang-emit.cpp +++ b/source/slang/slang-emit.cpp @@ -492,7 +492,7 @@ Result linkAndOptimizeIR( { // We could fail because // 1) It's not inlinable for some reason (for example if it's recursive) - SLANG_RETURN_ON_FAIL(performStringInlining(irModule, sink)); + SLANG_RETURN_ON_FAIL(performTypeInlining(irModule, sink)); } lowerReinterpret(targetProgram, irModule, sink); |
