diff --git a/src/video_core/shader/decode/conversion.cpp b/src/video_core/shader/decode/conversion.cpp index 7da857af5d..6ead420701 100644 --- a/src/video_core/shader/decode/conversion.cpp +++ b/src/video_core/shader/decode/conversion.cpp @@ -86,6 +86,9 @@ u32 ShaderIR::DecodeConversion(NodeBlock& bb, u32 pc) { if (const u32 offset = static_cast(instr.conversion.int_src.selector); offset > 0) { ASSERT(instr.conversion.src_size == Register::Size::Byte || instr.conversion.src_size == Register::Size::Short); + if (instr.conversion.src_size == Register::Size::Short) { + ASSERT(offset == 0 || offset == 2); + } value = SignedOperation(OperationCode::ILogicalShiftRight, input_signed, std::move(value), Immediate(offset * 8)); }