diff --git a/src/xenia/gpu/spirv_shader_translator.cc b/src/xenia/gpu/spirv_shader_translator.cc index 4370d020e..1f3140ed8 100644 --- a/src/xenia/gpu/spirv_shader_translator.cc +++ b/src/xenia/gpu/spirv_shader_translator.cc @@ -906,6 +906,18 @@ void SpirvShaderTranslator::ProcessScalarAluInstruction( {sources[0]}); } break; + case AluScalarOpcode::kFloors: { + dest = CreateGlslStd450InstructionCall( + spv::Decoration::DecorationInvariant, float_type_, GLSLstd450::kFloor, + {sources[0]}); + } break; + + case AluScalarOpcode::kFrcs: { + dest = CreateGlslStd450InstructionCall( + spv::Decoration::DecorationInvariant, float_type_, GLSLstd450::kFract, + {sources[0]}); + } break; + case AluScalarOpcode::kKillsEq: { auto continue_block = &b.makeNewBlock(); auto kill_block = &b.makeNewBlock(); @@ -1213,6 +1225,12 @@ void SpirvShaderTranslator::ProcessScalarAluInstruction( dest = b.createBinOp(spv::Op::OpFSub, float_type_, sources[0], ps_); } break; + case AluScalarOpcode::kTruncs: { + dest = CreateGlslStd450InstructionCall( + spv::Decoration::DecorationInvariant, float_type_, GLSLstd450::kTrunc, + {sources[0]}); + } break; + default: break; }