From 6030a4cf72a3aba13e2ff482da3e40dd893ef83e Mon Sep 17 00:00:00 2001 From: Triang3l Date: Mon, 2 Nov 2020 12:17:47 +0300 Subject: [PATCH] [SPIR-V] Add missing EnsureBuildPointAvailable in ALU --- src/xenia/gpu/spirv_shader_translator_alu.cc | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/xenia/gpu/spirv_shader_translator_alu.cc b/src/xenia/gpu/spirv_shader_translator_alu.cc index 1cf5ddd1d..7b6f54e5a 100644 --- a/src/xenia/gpu/spirv_shader_translator_alu.cc +++ b/src/xenia/gpu/spirv_shader_translator_alu.cc @@ -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);