From 1175023e9581d52473d493f5f950e523224de44f Mon Sep 17 00:00:00 2001 From: Ted Green Date: Tue, 10 Oct 2017 07:12:27 -0600 Subject: rgbsse: Clamp intermediate values to u8. (nw) --- src/emu/video/rgbsse.h | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/emu/video/rgbsse.h b/src/emu/video/rgbsse.h index a9d9852a228..037515b4754 100644 --- a/src/emu/video/rgbsse.h +++ b/src/emu/video/rgbsse.h @@ -330,7 +330,10 @@ public: m_value = _mm_slli_epi16(m_value, 4); // Do the 16 bit multiply, bottom 64 bits will contain 16 bit truncated results m_value = _mm_mulhi_epi16(m_value, tmp1); - // Unpack into 32 bit values + // Clamp to u8 + m_value = _mm_packus_epi16(m_value, _mm_setzero_si128()); + // Unpack up to s32 + m_value = _mm_unpacklo_epi8(m_value, _mm_setzero_si128()); m_value = _mm_unpacklo_epi16(m_value, _mm_setzero_si128()); add(other); clamp_to_uint8(); -- cgit v1.2.3