mirror of
https://github.com/doitsujin/dxvk.git
synced 2025-03-13 19:29:14 +01:00
[dbxc] Actually fix callc implementation
Yeah maybe we should close our blocks properly. There seems to be no way to generate a callc instruction with fxc so this is untested.
This commit is contained in:
parent
94ce76da6b
commit
f38cfd592e
@ -4213,21 +4213,22 @@ namespace dxvk {
|
||||
condition, ins.controls.zeroTest());
|
||||
|
||||
// We basically have to wrap this into an 'if' block
|
||||
const uint32_t callLabel = m_module.allocateId();
|
||||
const uint32_t continueLabel = m_module.allocateId();
|
||||
const uint32_t callLabel = m_module.allocateId();
|
||||
const uint32_t skipLabel = m_module.allocateId();
|
||||
|
||||
m_module.opSelectionMerge(continueLabel,
|
||||
m_module.opSelectionMerge(skipLabel,
|
||||
spv::SelectionControlMaskNone);
|
||||
|
||||
m_module.opBranchConditional(
|
||||
zeroTest.id, callLabel, continueLabel);
|
||||
zeroTest.id, callLabel, skipLabel);
|
||||
|
||||
m_module.opLabel(callLabel);
|
||||
m_module.opFunctionCall(
|
||||
m_module.defVoidType(),
|
||||
functionId, 0, nullptr);
|
||||
|
||||
m_module.opLabel(continueLabel);
|
||||
m_module.opBranch(skipLabel);
|
||||
m_module.opLabel(skipLabel);
|
||||
}
|
||||
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user