diff options
| author | Yong He <yonghe@outlook.com> | 2024-02-20 12:24:00 -0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-02-20 12:24:00 -0800 |
| commit | 4d20fd329956ac89408b1628a8291fea01bc9a6d (patch) | |
| tree | 8e62d9c1ec05142fd25d0b31073fdb56d44691b0 /source/slang/slang-ir-specialize-resources.cpp | |
| parent | 8e9b61e3bac69dbb37a1451b62302e688a017ced (diff) | |
Refactor compiler option representations. (#3598)
* Refactor compiler option representation.
* Fix binary compatibility.
* Add a test for specifying compiler options at link time.
* Fix binary compatibility.
* Fix binary compatibility.
* Fix backward compatibility on matrix layout.
* Fix.
* Fix.
* Fix.
* Fix gfx.
* Fix gfx.
* Fix dynamic dispatch.
* Polish.
Diffstat (limited to 'source/slang/slang-ir-specialize-resources.cpp')
| -rw-r--r-- | source/slang/slang-ir-specialize-resources.cpp | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/source/slang/slang-ir-specialize-resources.cpp b/source/slang/slang-ir-specialize-resources.cpp index 4fd87e173..af7f41207 100644 --- a/source/slang/slang-ir-specialize-resources.cpp +++ b/source/slang/slang-ir-specialize-resources.cpp @@ -20,6 +20,7 @@ struct ResourceParameterSpecializationCondition : FunctionCallSpecializeConditio // legal for a given target. TargetRequest* targetRequest = nullptr; + TargetProgram* targetProgram = nullptr; bool doesParamWantSpecialization(IRParam* param, IRInst* arg) { @@ -63,7 +64,7 @@ struct ResourceParameterSpecializationCondition : FunctionCallSpecializeConditio // if( isKhronosTarget(targetRequest) ) { - if (targetRequest->shouldEmitSPIRVDirectly()) + if (targetProgram->getOptionSet().shouldEmitSPIRVDirectly()) return isIllegalSPIRVParameterType(type, isArray); else return isIllegalGLSLParameterType(type); @@ -90,6 +91,7 @@ bool specializeResourceParameters( { bool result = false; ResourceParameterSpecializationCondition condition; + condition.targetProgram = codeGenContext->getTargetProgram(); condition.targetRequest = codeGenContext->getTargetReq(); bool changed = true; while (changed) @@ -1186,7 +1188,7 @@ bool specializeResourceUsage( // and turned into SSA temporaries. Such optimization may enable // the following passes to "see" and specialize more cases. // - simplifyIR(codeGenContext->getTargetReq(), irModule, IRSimplificationOptions::getFast()); + simplifyIR(codeGenContext->getTargetProgram(), irModule, IRSimplificationOptions::getFast()); result |= changed; } if (unspecializableFuncs.getCount() == 0) @@ -1206,7 +1208,7 @@ bool specializeResourceUsage( inlineCall(call); }); } - simplifyIR(codeGenContext->getTargetReq(), irModule, IRSimplificationOptions::getFast()); + simplifyIR(codeGenContext->getTargetProgram(), irModule, IRSimplificationOptions::getFast()); } return result; } |
