diff options
author | 2020-07-02 13:44:32 -0600 | |
---|---|---|
committer | 2020-07-02 13:55:02 -0600 | |
commit | 677f4a9b3937754cfa64ed7120fdcaef71c2feed (patch) | |
tree | d586283b5c6b8a8069d056baba2ab80206f9969a /src/devices/video/vooddefs.ipp | |
parent | fb90cac2f2079972d75b3c4637de314a8498ed24 (diff) |
voodoo: SSE use shift left by 8 instead of floating point multiply by 256 for perspective correction calculation.
Diffstat (limited to 'src/devices/video/vooddefs.ipp')
-rw-r--r-- | src/devices/video/vooddefs.ipp | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/src/devices/video/vooddefs.ipp b/src/devices/video/vooddefs.ipp index 07487f2bbf8..6a169640947 100644 --- a/src/devices/video/vooddefs.ipp +++ b/src/devices/video/vooddefs.ipp @@ -2843,7 +2843,12 @@ inline rgbaint_t ATTR_FORCE_INLINE voodoo_device::tmu_state::genTexture(int32_t } else { +#if ((!defined(MAME_DEBUG) || defined(__OPTIMIZE__)) && (defined(__SSE2__) || defined(_MSC_VER)) && defined(PTR64)) + // Extra shift by 8 due to how sse class is stored + iterstw.get_st_shiftr(s, t, (14 + 10 + 8)); +#else iterstw.get_st_shiftr(s, t, (14 + 10)); +#endif } /* clamp W */ |