rpcsx/rpcs3
linkmauve cfd5cf6bdb Optimise primitive_restart::upload_untouched() (#6881)
* rsx: Optimise primitive_restart::upload_untouched() with SSE4.1

This optimisation is only applied when skip_restart is false.

I’ve only tested the u16 codepath, as it is the one used in NieR.

In some very unscientific profiling, this function used to take 2.76% of
the total frame time at the save point of the port town, it now takes
about 0.40%.

* rsx: Mark all SSE4.1 functions with attributes on gcc and clang

This assures the compiler we will take care of only calling these
functions after having checked that the CPU does support these
instructions.

* rsx: Add an AVX2 implementation of primitive restart ibo upload

* rsx: Remove redefinition of SSE4.1 instructions

Now that clang is aware that our functions are compiled with SSE4.1, it
lets us generate this code using its intrinsics.

* rsx: Optimise vector to scalar conversion

This is done using minpos and srli intrinsics and generate less code
than before.

Thanks Nekotekina for the suggestion!
2019-10-30 16:42:44 +03:00
..
cmake_modules Small warnings cleanup (#6671) 2019-10-25 13:32:21 +03:00
Crypto Small warnings cleanup (#6671) 2019-10-25 13:32:21 +03:00
Emu Optimise primitive_restart::upload_untouched() (#6881) 2019-10-30 16:42:44 +03:00
Icons Qt: Add custom pad configs 2019-05-16 20:37:41 +02:00
Json Super-important PR (#6900) 2019-10-28 17:44:44 +03:00
Loader sceNpTrophyRegisterContext verbose logging in TROPHY_ERROR_ILLEGAL_UPDATE error 2019-10-16 00:50:58 +03:00
qt/etc Qt: Create qt/plugins dir to tidy up our Visual Studio builds 2018-05-13 18:39:24 +04:00
rpcs3qt vk: Minor spec touchups 2019-10-29 20:03:54 +03:00
util atomic.hpp: fix typo 2019-10-23 16:01:14 +03:00
basic_keyboard_handler.cpp Input: avoid exception while no keyboard is registered 2019-10-18 09:20:51 +02:00
basic_keyboard_handler.h Qt: fix diacritics in keyboard handler 2019-08-18 08:18:15 +02:00
basic_mouse_handler.cpp Explicitly cast size_t to integer types 2019-07-01 04:33:23 +03:00
basic_mouse_handler.h
CMakeLists.txt Add option for preventing display sleep (#5783) 2019-10-12 15:40:47 +03:00
define_new_memleakdetect.h
display_sleep_control.cpp Add option for preventing display sleep (#5783) 2019-10-12 15:40:47 +03:00
display_sleep_control.h Add option for preventing display sleep (#5783) 2019-10-12 15:40:47 +03:00
ds3_pad_handler.cpp input: fix DS3 button presses (forgot the non pressure sensitive ones) 2019-09-25 21:13:55 +02:00
ds3_pad_handler.h Input: move some pad handler logic to the parent class 2019-09-24 21:09:24 +02:00
ds4_pad_handler.cpp Input: move some pad handler logic to the parent class 2019-09-24 21:09:24 +02:00
ds4_pad_handler.h Input: move some pad handler logic to the parent class 2019-09-24 21:09:24 +02:00
emucore.vcxproj Auto-updater 2019-10-22 01:51:50 +02:00
emucore.vcxproj.filters Auto-updater 2019-10-22 01:51:50 +02:00
evdev_joystick_handler.cpp Fix misleading indent. 2019-10-22 16:11:43 +03:00
evdev_joystick_handler.h evdev: add missing override 2019-10-04 20:22:32 +02:00
frame_icon.xpm
git-version.cmake Partially revert git-version.cmake 2019-10-22 11:42:49 +01:00
GLGSRender.vcxproj gl: Windows bringup 2019-10-13 19:00:05 +03:00
GLGSRender.vcxproj.filters gl: Windows bringup 2019-10-13 19:00:05 +03:00
headless_application.cpp Forces numeric locale to default 2019-09-20 11:00:05 +02:00
headless_application.h Qt: Enable stylesheet cli args and add stylesheet option "None" 2019-09-13 10:30:56 +02:00
keyboard_pad_handler.cpp Input: move some pad handler logic to the parent class 2019-09-24 21:09:24 +02:00
keyboard_pad_handler.h fix some new warnings 2019-09-25 07:33:32 +02:00
main.cpp Qt: fix high dpi setting 2019-10-04 23:05:07 +02:00
main_application.cpp Implement FAudio backend (#6374) 2019-10-24 22:26:29 +03:00
main_application.h Qt: Enable stylesheet cli args and add stylesheet option "None" 2019-09-13 10:30:56 +02:00
mm_joystick_handler.cpp mmjoy: fix connection update spam 2019-10-04 20:22:32 +02:00
mm_joystick_handler.h mmjoy: fix connection update spam 2019-10-04 20:22:32 +02:00
OpenAL.vcxproj [MSbuild] Extend support to v142 toolset 2019-08-17 23:30:23 +03:00
OpenAL.vcxproj.filters Rewrite OpenAL backend to support new features 2019-01-12 21:29:56 +03:00
pad_thread.cpp Input: move some pad handler logic to the parent class 2019-09-24 21:09:24 +02:00
pad_thread.h Input: don't intercept pads after system dialogs, but still ignore input 2019-09-20 22:12:40 +02:00
resource.h
resources.qrc Pad settings dialog improvements 2019-09-15 22:48:39 +02:00
restore_new.h
rpcs3.appdata.xml Update rpcs3.appdata.xml 2019-02-14 03:10:36 +03:00
rpcs3.desktop Make it pass desktop-file-validate in Ubuntu 14.04 2017-08-18 20:57:21 +03:00
rpcs3.icns Support macOS bundling for binary distribution 2018-12-16 18:17:21 +03:00
rpcs3.ico
rpcs3.plist.in CMake: Use Info.plist template for macOS bundle 2019-02-26 21:09:18 +00:00
rpcs3.png
rpcs3.rc
rpcs3.svg
rpcs3.vcxproj [msbuild] 7zlib msbuild changes 2019-10-28 18:59:16 +03:00
rpcs3.vcxproj.filters fix weird filters for display sleep files 2019-10-23 20:35:32 +02:00
rpcs3_version.cpp Fix for auto updater 2019-10-22 07:43:12 +02:00
rpcs3_version.h Auto-updater 2019-10-22 01:51:50 +02:00
stb_image.cpp Disable warnings for stb_image.cpp. Should this file be moved to 2019-06-25 20:36:32 -07:00
stdafx.cpp
stdafx.h Implement waitable atomics 2019-07-29 03:04:55 +03:00
VKGSRender.vcxproj vk: Reimplement DMA synchronization 2019-09-12 23:32:21 +03:00
VKGSRender.vcxproj.filters vk: Reimplement DMA synchronization 2019-09-12 23:32:21 +03:00
windows.qrc Qt: Use additional windows resource file for qt.conf 2018-05-13 21:02:21 +04:00
XAudio.vcxproj [MSbuild] Extend support to v142 toolset 2019-08-17 23:30:23 +03:00
XAudio.vcxproj.filters Implement Audio Backend Capabilities querying 2019-01-12 21:29:56 +03:00
xinput_pad_handler.cpp Input: move some pad handler logic to the parent class 2019-09-24 21:09:24 +02:00
xinput_pad_handler.h Input: move some pad handler logic to the parent class 2019-09-24 21:09:24 +02:00