[SPIR-V] Add missing EnsureBuildPointAvailable in ALU

This commit is contained in:
Triang3l 2020-11-02 12:17:47 +03:00
parent de8b0a85ac
commit 6030a4cf72
1 changed files with 3 additions and 1 deletions

View File

@ -71,17 +71,19 @@ void SpirvShaderTranslator::ProcessAluInstruction(
bool predicate_written_scalar = false;
spv::Id scalar_result =
ProcessScalarAluOperation(instr, predicate_written_scalar);
if (scalar_result != spv::NoResult) {
EnsureBuildPointAvailable();
builder_->createStore(scalar_result, var_main_previous_scalar_);
} else {
// Special retain_prev case - load ps only if needed and don't store the
// same value back to ps.
if (instr.scalar_result.GetUsedWriteMask()) {
EnsureBuildPointAvailable();
scalar_result =
builder_->createLoad(var_main_previous_scalar_, spv::NoPrecision);
}
}
StoreResult(instr.vector_and_constant_result, vector_result);
StoreResult(instr.scalar_result, scalar_result);