[SPIR-V] Add missing EnsureBuildPointAvailable in ALU
This commit is contained in:
parent
de8b0a85ac
commit
6030a4cf72
|
@ -71,17 +71,19 @@ void SpirvShaderTranslator::ProcessAluInstruction(
|
||||||
bool predicate_written_scalar = false;
|
bool predicate_written_scalar = false;
|
||||||
spv::Id scalar_result =
|
spv::Id scalar_result =
|
||||||
ProcessScalarAluOperation(instr, predicate_written_scalar);
|
ProcessScalarAluOperation(instr, predicate_written_scalar);
|
||||||
|
|
||||||
if (scalar_result != spv::NoResult) {
|
if (scalar_result != spv::NoResult) {
|
||||||
|
EnsureBuildPointAvailable();
|
||||||
builder_->createStore(scalar_result, var_main_previous_scalar_);
|
builder_->createStore(scalar_result, var_main_previous_scalar_);
|
||||||
} else {
|
} else {
|
||||||
// Special retain_prev case - load ps only if needed and don't store the
|
// Special retain_prev case - load ps only if needed and don't store the
|
||||||
// same value back to ps.
|
// same value back to ps.
|
||||||
if (instr.scalar_result.GetUsedWriteMask()) {
|
if (instr.scalar_result.GetUsedWriteMask()) {
|
||||||
|
EnsureBuildPointAvailable();
|
||||||
scalar_result =
|
scalar_result =
|
||||||
builder_->createLoad(var_main_previous_scalar_, spv::NoPrecision);
|
builder_->createLoad(var_main_previous_scalar_, spv::NoPrecision);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
StoreResult(instr.vector_and_constant_result, vector_result);
|
StoreResult(instr.vector_and_constant_result, vector_result);
|
||||||
StoreResult(instr.scalar_result, scalar_result);
|
StoreResult(instr.scalar_result, scalar_result);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue