PS3 emulator/debugger
Go to file
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
.github
.travis Implement FAudio backend (#6374) 2019-10-24 22:26:29 +03:00
3rdparty [msbuild] 7zlib msbuild changes 2019-10-28 18:59:16 +03:00
asmjit@fc251c914e
asmjitsrc
bin
llvm@9836c29973 Update LLVM (fixup) 2019-10-23 18:10:47 +03:00
llvm_build
rpcs3 Optimise primitive_restart::upload_untouched() (#6881) 2019-10-30 16:42:44 +03:00
Utilities Rewrite the way LLVM JIT does memory allocation to allow use of more than one contiguous segment (#6771) 2019-10-29 01:01:07 +03:00
Vulkan
.clang-format
.editorconfig
.gitignore Auto-updater 2019-10-22 01:51:50 +02:00
.gitmodules 3rdparty: update FAudio to 19.10 2019-10-25 00:56:53 +03:00
.mention-bot
.travis.yml Implement FAudio backend (#6374) 2019-10-24 22:26:29 +03:00
appveyor.yml Implement FAudio backend (#6374) 2019-10-24 22:26:29 +03:00
BUILDING.md Qt version bump 2019-10-26 21:23:38 +03:00
CMakeLists.txt Implement FAudio backend (#6374) 2019-10-24 22:26:29 +03:00
common_default_macros.props
common_default.props
git-clang-format
LICENSE
pre-commit.readme
README.md
rpcs3_debug.props
rpcs3_default.props MSVC: disable new exception handling (FH4) 2019-10-21 23:52:20 +03:00
rpcs3_llvm.props Update LLVM (10) 2019-10-23 16:01:14 +03:00
rpcs3_memleak.props
rpcs3_release.props
rpcs3.sln msbuild: Add 7zlib to rpcs3 project dependencies 2019-10-28 21:00:25 +03:00
usertype.dat

RPCS3

Build Status Build status

The world's first free and open-source PlayStation 3 emulator/debugger, written in C++ for Windows and Linux.

You can find some basic information on our website. Game info is being populated on the Wiki. For discussion about this emulator, PS3 emulation, and game compatibility reports, please visit our forums and our Discord server.

Support Lead Developers Nekotekina and kd-11 on Patreon

Contributing

If you want to help the project but do not code, the best way to help out is to test games and make bug reports. See:

If you want to contribute as a developer, please take a look at the following pages:

You should also contact any of the developers in the forums or in the Discord server to learn more about the current state of the emulator.

Building

See BUILDING.md for more information about how to setup an environment to build RPCS3.

Running

Check our friendly quickstart guide to make sure your computer meets the minimum system requirements to run RPCS3.

Don't forget to have your graphics driver up to date and to install the Visual C++ Redistributable Packages for Visual Studio 2017 if you are a Windows user.

License

Most files are licensed under the terms of GNU GPLv2 License; see LICENSE file for details. Some files may be licensed differently; check appropriate file headers for details.