зеркало из https://github.com/stride3d/xkslang.git
remapper: do not eliminate interface variables in dce by default
this is done by counting op_entrypoint as a use/def
This commit is contained in:
Родитель
85b52f304d
Коммит
39d5e711a7
|
@ -926,8 +926,17 @@ namespace spv {
|
|||
// Count function variable use
|
||||
process(
|
||||
[&](spv::Op opCode, unsigned start) {
|
||||
if (opCode == spv::OpVariable) { ++varUseCount[asId(start+2)]; return true; }
|
||||
return false;
|
||||
if (opCode == spv::OpVariable) {
|
||||
++varUseCount[asId(start+2)];
|
||||
return true;
|
||||
} else if (opCode == spv::OpEntryPoint) {
|
||||
const int wordCount = asWordCount(start);
|
||||
for (int i = 4; i < wordCount; i++) {
|
||||
++varUseCount[asId(start+i)];
|
||||
}
|
||||
return true;
|
||||
} else
|
||||
return false;
|
||||
},
|
||||
|
||||
[&](spv::Id& id) { if (varUseCount[id]) ++varUseCount[id]; }
|
||||
|
|
Загрузка…
Ссылка в новой задаче