Commit Graph

286 Commits

Author SHA1 Message Date
nastys acc2fea7e3
Update MoltenVK to 250e1f9 and single queue (#12620) 2022-09-20 11:12:27 +03:00
Ani 8124efa505 cubeb: Update from 2022.04.13 to 2022.07.21 2022-08-31 17:59:35 +01:00
Ani a5cff4d797 glext: Update from 2021.04.20 to 2022.05.30 2022-08-31 17:59:35 +01:00
Ani d1e5828644 XAudio2: Update from 1.2.8 to 1.2.9 2022-08-31 17:59:35 +01:00
Ani 18d73d6d76 FAudio: Update from 22.07 to 22.08 2022-08-31 17:59:35 +01:00
Ani 4a3a24dcc1 7z: Update from 21.07 to 22.01 2022-08-31 17:59:35 +01:00
RipleyTom f98251a05a Fixes -w leaking 2022-08-30 07:46:42 +02:00
Ani a74d3005f8
vk: Update FSR from 1.0 to 1.0.2 (#12538) 2022-08-20 17:37:42 +01:00
nastys 2880370047
Update MoltenVK (#12456) 2022-08-07 20:54:31 +01:00
RipleyTom 4c32c95b33
Enable wolfssl fast-math option (#12427) 2022-07-30 18:19:19 +01:00
Megamouse c00d47cc99 Update wolfssl to v5.4.0-stable 2022-07-30 14:33:14 +02:00
Megamouse ea53c7dc85 Update curl to curl-7_84_0 2022-07-30 14:33:14 +02:00
Megamouse 2b923c681e Update FAudio to 22.07 2022-07-30 14:33:14 +02:00
Erik S. V. Jansson db0774a81b Fix spirv/glslang.vcxproj build to support spaces.
e.g. cloning into D:\Source Code\C++\rpcs3 will cause spirv and glslang
to error during MSBuild. All other parts of rpcs3 compile fine so these
are probably the only places which fail when the project is placed in a
path with spaces in it. I've at least been able to compile + run rpcs3.
2022-07-18 01:27:56 +03:00
sguo35 b37217b181 windows: fix build for asmjit update 2022-07-15 12:37:33 +03:00
sguo35 b13fd68848 [3rdparty] update asmjit dependency 2022-07-15 12:37:33 +03:00
sguo35 e8b6e95f8e [3rdparty] Disable warnings for soundtouch dependency
Disabling warnings for soundtouch allows Clang to compile in debug mode.
2022-06-20 15:08:27 +03:00
isJuhn 4262794668 Implement PINE IPC Server 2022-06-19 17:56:50 +02:00
Megamouse 985b222123 Update SPIR-V to v2022.2 2022-06-14 18:25:32 +02:00
Megamouse b4b8929ab1 Update curl to v7.83.1 2022-06-14 18:25:32 +02:00
Megamouse 48a217648c Update glslang to v11.10.0 2022-06-14 18:25:32 +02:00
Megamouse 12ae714c70 Update wolfssl to v5.3.0-stable 2022-06-14 18:25:32 +02:00
Megamouse 2c51887668 Update hidapi to v0.12.0 2022-06-14 18:25:32 +02:00
Megamouse 69e11136e8 Update FAudio to v22.06 2022-06-14 18:25:32 +02:00
Jeff Guo cefc37a553
PPU LLVM arm64+macOS port (#12115)
* BufferUtils: use naive function pointer on Apple arm64

Use naive function pointer on Apple arm64 because ASLR breaks asmjit.
See BufferUtils.cpp comment for explanation on why this happens and how
to fix if you want to use asmjit.

* build-macos: fix source maps for Mac

Tell Qt not to strip debug symbols when we're in debug or relwithdebinfo
modes.

* LLVM PPU: fix aarch64 on macOS

Force MachO on macOS to fix LLVM being unable to patch relocations
during codegen. Adds Aarch64 NEON intrinsics for x86 intrinsics used by
PPUTranslator/Recompiler.

* virtual memory: use 16k pages on aarch64 macOS

Temporary hack to get things working by using 16k pages instead of 4k
pages in VM emulation.

* PPU/SPU: fix NEON intrinsics and compilation for arm64 macOS

Fixes some intrinsics usage and patches usages of asmjit to properly
emit absolute jmps so ASLR doesn't cause out of bounds rel jumps. Also
patches the SPU recompiler to properly work on arm64 by telling LLVM to
target arm64.

* virtual memory: fix W^X toggles on macOS aarch64

Fixes W^X on macOS aarch64 by setting all JIT mmap'd regions to default
to RW mode. For both SPU and PPU execution threads, when initialization
finishes we toggle to RX mode. This exploits Apple's per-thread setting
for RW/RX to let us be technically compliant with the OS's W^X
    enforcement while not needing to actually separate the memory
    allocated for code/data.

* PPU: implement aarch64 specific functions

Implements ppu_gateway for arm64 and patches LLVM initialization to use
the correct triple. Adds some fixes for macOS W^X JIT restrictions when
entering/exiting JITed code.

* PPU: Mark rpcs3 calls as non-tail

Strictly speaking, rpcs3 JIT -> C++ calls are not tail calls. If you
call a function inside e.g. an L2 syscall, it will clobber LR on arm64
and subtly break returns in emulated code. Only JIT -> JIT "calls"
should be tail.

* macOS/arm64: compatibility fixes

* vm: patch virtual memory for arm64 macOS

Tag mmap calls with MAP_JIT to allow W^X on macOS. Fix mmap calls to
existing mmap'd addresses that were tagged with MAP_JIT on macOS. Fix
memory unmapping on 16K page machines with a hack to mark "unmapped"
pages as RW.

* PPU: remove wrong comment

* PPU: fix a merge regression

* vm: remove 16k page hacks

* PPU: formatting fixes

* PPU: fix arm64 null function assembly

* ppu: clean up arch-specific instructions
2022-06-14 15:28:38 +03:00
Jan Beich cc150cc2c6 build/cmake: unbreak USE_SYSTEM_FLATBUFFERS after bec0b6e8c3
-- Checking for module 'flatbuffers>=2.0.0'
--   Found flatbuffers, version 2.0.6
CMake Error at 3rdparty/CMakeLists.txt:24 (message):
  Flatbuffers flatc execute failed with: ''
2022-05-26 09:32:52 +02:00
RipleyTom bec0b6e8c3 Add regeneration for system flatbuffers users 2022-05-22 23:43:04 +02:00
Nekotekina a2bfd5fcfc Minor AArch64 support changes 2022-05-04 16:12:32 +03:00
RipleyTom 8316469cfc Update libusb to v1.0.26 2022-04-29 02:04:52 +02:00
RipleyTom d02a8ba2b9 Update flatbuffers to v2.0.6 2022-04-24 19:43:40 +02:00
Megamouse 572a335c38 curl: fix cmake 2022-04-24 10:23:17 +02:00
nastys f21b298e5e Make MSL Fast Math and software vkSemaphore optional 2022-04-24 09:25:13 +02:00
Megamouse b7c1750485 curl: update from 7.79.1 to 7.82.0 2022-04-24 08:26:26 +02:00
Ani bfd10d7b06 glslang: Update from 11.7.1 to 11.9.0 2022-04-24 08:26:26 +02:00
Ani ed801de016 zlib: Update from v1.2.11 to v1.2.12 2022-04-24 08:26:26 +02:00
Ani 9df6e97c88 pugixml: Update from v1.11.4 to v1.12.1 2022-04-24 08:26:26 +02:00
Ani e7c5f48d15 FAudio: Update from 21.11 to 22.04 2022-04-24 08:26:26 +02:00
Ani 7ef112cf30 7z: Update from 19.00 to 21.07 2022-04-24 08:26:26 +02:00
Vestral f6de42a2ae Update cubeb to latest version 2022-04-24 08:00:17 +02:00
sguo35 e761b3235c macos: fix build for arm64
Adds arm64 branches to some x86 specific code and modifies some casting
logic to make Clang happy
2022-04-18 17:53:54 +03:00
sguo35 219ddf3e11 build-macos: fix cmake config for arm64 2022-04-18 17:53:54 +03:00
nastys b5db0d0397 MoltenVK as a submodule 2022-04-17 17:04:26 +02:00
Megamouse c803bf1849 soundtouch: fix debug build 2022-04-01 02:24:27 +02:00
Silent c5748983f6 WolfSSL: Use a custom UTF-8 aware _stat on Windows 2022-03-21 15:47:27 +01:00
Silent 791ee013ac Update WolfSSL submodule 2022-03-21 15:47:27 +01:00
Megamouse aafd74f9ea cellMusicDecode: initial implementation
Implements the basic functionality of cellMusicDecode.
Works with Space Invaders (if you add the list selection from the other PR).
Probably fixes SSX custom music.
2022-03-05 18:34:27 +01:00
Vestral 107107107c SoundTouch resampler integration 2022-01-31 21:20:57 +01:00
Megamouse b0f0641564 Windows Hotfix: Update hidapi 2022-01-26 22:02:27 +01:00
nastys d2897bc6a0 macOS: Fix DS3 init on Monterey 2022-01-24 20:16:57 +01:00
Nekotekina 580bd2b25e Initial Linux Aarch64 support
* Update asmjit dependency (aarch64 branch)
* Disable USE_DISCORD_RPC by default
* Dump some JIT objects in rpcs3 cache dir
* Add SIGILL handler for all platforms
* Fix resetting zeroing denormals in thread pool
* Refactor most v128:: utils into global gv_** functions
* Refactor PPU interpreter (incomplete), remove "precise"
* - Instruction specializations with multiple accuracy flags
* - Adjust calling convention for speed
* - Removed precise/fast setting, replaced with static
* - Started refactoring interpreters for building at runtime JIT
*   (I got tired of poor compiler optimizations)
* - Expose some accuracy settings (SAT, NJ, VNAN, FPCC)
* - Add exec_bytes PPU thread variable (akin to cycle count)
* PPU LLVM: fix VCTUXS+VCTSXS instruction NaN results
* SPU interpreter: remove "precise" for now (extremely non-portable)
* - As with PPU, settings changed to static/dynamic for interpreters.
* - Precise options will be implemented later
* Fix termination after fatal error dialog
2022-01-15 06:48:04 +03:00
Silent 8c9090fd03 WolfSSL: Use a custom UTF-8 aware fopen on Windows
Fixes loading cacert.pem from Unicode directories
2022-01-12 03:35:15 +03:00
nastys b950651487 Update wolfssl 2022-01-10 20:34:12 +01:00
nastys 81c2fb508b Fix macOS hidapi CMakeLists 2022-01-04 21:23:53 +01:00
RipleyTom 39a832d07f hidapi CMakeLists.txt fix 2022-01-02 23:33:19 +01:00
Megamouse 13136ec083 Rebase hidapi to 0.11.0 2022-01-02 23:33:19 +01:00
Nekotekina cb2748ae08 Update ASMJIT (new upstream API) 2021-12-29 02:45:00 +03:00
Nekotekina 9cfdd8afea Fix builds on additional platforms
LLVMIntelJITEvents is awailable only Windows/Linux
2021-12-27 16:17:53 +03:00
Nekotekina d836033212 LLVM: enable some JIT events (Intel, Perf)
Made some related adjustments.
Currently incomplete.
2021-12-26 16:41:37 +03:00
Megamouse 270c2e58a0 Update xxHash to version 0.8.1 2021-11-29 22:12:39 +01:00
Megamouse a586d1c529 Update glslang to version 11.7.1 2021-11-29 22:12:39 +01:00
Megamouse 09b047611b Update FAudio to version 21.11 2021-11-29 22:12:39 +01:00
Vestrel 37a722cc1d
Audio backend improvements
Callback based audio update.
Upgraded common backend interface.
Added Cubeb backend.
Support multiple audio providers.
Dropped pulse, alsa, openal backends.
2021-11-24 19:41:05 +01:00
陈俊嘉 05881ffa62
Disable vulkan in Windows build when HAVE_VULKAN is off and other cmake build fixes. (#11118)
* Make WolfSSL build support multi-config generator.
Fix a build error in Windows when using QT's moc.
Disable vulkan in Windows build when HAVE_VULKAN is off.

* add WIN32_LEAN_AND_MEAN definition to VS project.
add HAVE_VULKAN definition to VS project.
Define NTSTATUS in main.cpp.
2021-11-13 16:11:49 +01:00
RipleyTom 2248007c9a Add HAVE_SNI definition to curl build for wolfssl 2021-11-11 07:35:59 +01:00
Nekotekina 69f321a471 LLVM 13 2021-11-02 20:11:08 +03:00
Megamouse 7f4b6b1ae7 Qt: Use svg instead of png 2021-10-28 21:01:27 +02:00
Megamouse e51656e070 Qt: Add camera settings dialog 2021-10-24 11:32:35 +02:00
Megamouse 08011e9b78 cellCamera: Add qt camera handler 2021-10-24 11:32:35 +02:00
Ani 8b4f3fa775 glslang: Update from 11.5.0 to 11.6.0 2021-10-21 22:35:23 +02:00
Ani 5fb0b2c190 stb_truetype: Update from 1.25 to 1.26 2021-10-21 22:35:23 +02:00
Ani 266ab28145 cURL: Update from 7.77.0 to 7.79.1 2021-10-21 22:35:23 +02:00
Ani 2acac67570 FAudio: Update from 21.07 to 21.10 2021-10-21 22:35:23 +02:00
Ani 361ef33856 XAudio2: Update from 1.2.6 to 1.2.8 2021-10-21 22:35:23 +02:00
RipleyTom ea9dc9317d rpcn v0.4.0 2021-10-11 22:20:20 +02:00
Megamouse 70308d05f3 Update yaml-cpp 2021-10-05 20:16:11 +02:00
Silent 02e1c49818
Set up VS environment before calling cmake in glslang and spirv (#10952)
This makes VS use its own cmake instead of the one in PATH,
if available.
2021-10-02 00:07:58 +01:00
polar c6c4aa4634
cmake corrections (#10782) 2021-09-16 13:59:08 +01:00
陈俊嘉 42e3add6a1
BUILD: a couple of cmake msvc compile fixes (#10799)
* cmake: a couple of msvc compile fixes

Throw error when using multi-config generators.
Add USE_MSVC_STATIC_CRT option for statically linking with CRT.
Set curl's CURL_STATIC_CRT aligned with USE_MSVC_STATIC_CRT.
Fix cmake configs of 7z and OpenAL in msvc build.
Remove unecessary hard coded compiling and linking flags.
Use debug option in windeployqt when configuring for a debug build.
Search for windeployqt tool in configure time.
Add vcpkg's Qt support.

* Fix some typos
2021-09-11 23:55:53 +02:00
polar ee6e4c493d
BUILD: Refactor wolfssl submodule (#10780) 2021-09-01 09:58:05 +02:00
Justin Lewis ae491f04a1
Fixes build issue with LLVM on Windows with cmake (#10776)
LLVM fails to build on Windows with C++ 20 standard.  When building LLVM
on Windows, we use C++ 14 already.  This commit changes the c++ standard
to be picked by each subdirectory rather than the standard being picked
by the root level cmake file.
2021-08-31 11:07:49 +01:00
陈俊嘉 4b2f56e035
Checkout wolfssl to v4.8.1-stable. (#10732)
* Checkout wolfssl to v4.8.1-stable.
Some CMake config fixes for wolfssl.

* Remove unnecessary wolfssl config.
2021-08-24 08:10:28 +01:00
polar d84d82c166
BUILD: Refactor yaml-cpp submodule (#10745)
* moved yaml-cpp files into seperate directory
2021-08-24 06:39:26 +01:00
Lctrs 24d7374a22
support building with system faudio 21.08+ (#10708) 2021-08-15 20:37:05 +01:00
kd-11 d0a824996b vk: Add basic support for FSR 1.0
- Only implemented for image upscaling.
- Disabled by default. Emulators cannot ensure upscalers are injected at the right rendering step.
- GUI integration not implemented.
2021-08-06 17:18:48 +03:00
polar fdc9619e7c
Fixed issue with SDL2 version sometimes casuing build failure (#10599) 2021-07-22 03:11:03 +01:00
p01arst0rm 1d85c9d201 fix shared FAudio build 2021-07-21 00:24:28 +02:00
p01arst0rm 3a026a7dc3 system faudio fix 2021-07-21 00:24:28 +02:00
ZeeWanderer 6250e478f4 [MSVC] glslang fix + vs2022 fixes
- glslang - fixed wrong path to common props
 - emucore - fixed for VS2022, its a 64 bit app now
 - common_default.props - use C++20 standard for VS2022 and further
2021-07-17 02:52:03 +02:00
Ani 15ae06a7c4 SPIRV-Tools: Revert to 2020.4
Currently not being used, could eventually be removed
2021-07-14 19:51:36 +01:00
Ani 2f361e94dd SPIRV-Tools: Update from 2020.4 to 2020.5 2021-07-14 10:43:16 +01:00
Ani b164345561 glext: Update from 2020.04.23 to 2021.04.20 2021-07-14 10:43:16 +01:00
Ani 3cc212940c stb_truetype: Update from 1.24 to 1.25 2021-07-14 10:43:16 +01:00
Ani 2aec81330b stb_image: Update from 2.26 to 2.27 2021-07-14 10:43:16 +01:00
Ani f16b387ad9 curl: Update from 7.76.1 to 7.77.0 2021-07-14 10:43:16 +01:00
Ani 0a6968cfe5 glslang: Update from 11.4.0 to 11.5.0 2021-07-14 10:43:16 +01:00
Ani 8f19d11f29 FAudio: Update from 21.04 to 21.07 2021-07-14 10:43:16 +01:00
polar 285b9dad83
Refactor faudio submodule (#10397)
* updated bad header import
* added faudio shared library option
2021-07-08 21:31:45 +02:00
Megamouse d0c4b2de9f Rebase hidapi 2021-06-09 23:35:06 +02:00
Eladash 2169e8d935 Implement serialization.hpp, remove cereal submodule
Bump RSX capture version, use new serializer.
2021-06-07 16:28:42 +03:00
polar 6c44664c19
BUILD: Refactor zlib submodule (#10393) 2021-06-02 07:33:50 +02:00