Commit Graph

7353 Commits

Author SHA1 Message Date
Lassi Hämäläinen
7aef811ff7 CMake: Refactor CMake build (#5032)
* CMake: Refactor build to multiple libraries

- Refactor CMake build system by creating separate libraries for
  different components
- Create interface libraries for most dependencies and add 3rdparty::*
  ALIAS targets for ease of use and use them to try specifying correct
  dependencies for each target
- Prefer 3rdparty:: ALIAS when linking dependencies
- Exclude xxHash subdirectory from ALL build target
- Add USE_SYSTEM_ZLIB option to select between using included ZLib and
  the ZLib in CMake search path

* Add cstring include to Log.cpp

* CMake: Add 3rdparty::glew interface target

* Add Visual Studio CMakeSettings.json to gitignore

* CMake: Move building and finding LLVM to 3rdparty/llvm.cmake script

- LLVM is now built under 3rdparty/ directory in the binary directory

* CMake: Move finding Qt5 to 3rdparty/qt5.cmake script

- Script has to be included in rpcs3/CMakeLists.txt because it defines
  Qt5::moc target which isn't available in that folder if it is
  included in 3rdparty directory
- Set AUTOMOC and AUTOUIC properties for targets requiring them (rpcs3
  and rpcs3_ui) instead of setting CMAKE_AUTOMOC and CMAKE_AUTOUIC so
  those properties are not defined for all targets under rpcs3 dir

* CMake: Remove redundant code from rpcs3/CMakeLists.txt

* CMake: Add BUILD_LLVM_SUBMODULE option instead of hardcoded check

- Add BUILD_LLVM_SUBMODULE option (defaults to ON) to allow controlling
  usage of the LLVM submodule.
- Move option definitions to root CMakeLists

* CMake: Remove separate Emu subtargets

- Based on discussion in pull request #5032, I decided to combine
  subtargets under Emu folder back to a single rpcs3_emu target

* CMake: Remove utilities, loader and crypto targets: merge them to Emu

- Removed separate targets and merged them into rpcs3_emu target as
  recommended in pull request (#5032) conversations. Separating targets
  probably later in a separate pull request

* Fix relative includes in pad_thread.cpp

* Fix Travis-CI cloning all submodules needlessly
2018-09-18 13:07:33 +03:00
Zion Nimchuk
e37da61a1c Minor cleanup and add back in xcb lib removal 2018-09-17 18:47:29 +03:00
Zion Nimchuk
1a361e1f29 Fix travis mac build regression 2018-09-17 18:47:29 +03:00
eladash
05cd3712a3 spu: Fix MMIO index checking 2018-09-17 17:24:54 +03:00
Nekotekina
4cebf431fd Add forgotten SAFE_BUFFERS 2018-09-17 12:18:40 +03:00
Nekotekina
a64beb583b Fix .editorconfig encoding 2018-09-17 12:18:40 +03:00
Nekotekina
9de31fc5ce Fix trailing zeros in CPU brand 2018-09-17 12:18:40 +03:00
elad
0d4f0f95cc rsx: Clamp texture offsets (#5137)
* rsx: Clamp texture offsets

* rsx: Remove texture location check/hack
2018-09-17 10:55:17 +03:00
Nekotekina
ed8aa774bb Optimize logging via logs::channel
Use constant-initialized severity subobjects instead of temporaries
2018-09-16 00:36:20 +03:00
Nekotekina
b94e98aed5 Rewrite sys_fs_opendir
Rewrite lv2_dir object
Support split files and mount points
2018-09-15 17:18:40 +03:00
Nekotekina
c5676e5649 Remove thread_ctrl::atexit
It was only a workaround for poor C++11 thread_local support
2018-09-15 17:09:56 +03:00
Nekotekina
f2229a5f53 PPU reservations: ensure aligned atomic ops
Store aligned 64 bits to ppu.rdata
Don't save reservation size
2018-09-15 17:09:56 +03:00
Nekotekina
d347145855 Fix bitset formatting 2018-09-15 17:09:56 +03:00
Nekotekina
445e5def42 Remove safe_reader_lock, safe_writer_lock
It worked as a simple recursive locker for shared_mutex
But its design is flawed and thus can't be fully implemented
2018-09-15 17:09:56 +03:00
Nekotekina
e8b5555630 Rewrite vfs::get and vfs::mount
Preprocess . and .. correctly
Don't use recursive locking
Also use std::string_view
Fix format system for std::string and std::string_view
Fix fmt::merge for std::string_view
2018-09-15 17:09:56 +03:00
kd-11
16dcbe8c74 rsx/vp: Fix ARL opcode properly
- NOTE: The address swizzle index is only for use as src. The address registers are only used one channel at a time.
- When the destination of ARL, the encoding is the same as the other temp registers
2018-09-15 11:57:06 +03:00
Megamouse
ed7012c9db cellKb/Qt: Improve basic keyboard
Sadly the shift in Qt is a bit counter productive.
You'll have to hack another key as shift until i figured it out
2018-09-13 22:01:30 +02:00
elad
d24f9194f7 typo fix
shader's location is decremented by one to match cellGcm's constants.
2018-09-13 16:49:58 +03:00
eladash
b9ad578b00 rsx: Add a default shader address state 2018-09-13 16:49:58 +03:00
Dzmitry Malyshau
d28c0d16f8 [vk] don't ask for VK_FORMAT_UNDEFINED support 2018-09-13 16:04:50 +03:00
scribam
4cb98014a2 rsx: tiny zcull optimizations 2018-09-13 12:43:40 +03:00
eladash
cd11ae5d8b ppu: Fix extreme reservation corner case 2018-09-12 23:17:53 +03:00
eladash
efbd77deb4 rsx: dont silently ignore null shader address 2018-09-12 00:40:20 +03:00
Dzmitry Malyshau
7c4693e271 [vk] Throw an exception on using a repder pass that the driver doesn't support 2018-09-11 23:44:56 +03:00
Dzmitry Malyshau
89ddeda24a [vk] check for attachment format properties before pre-creating render passes 2018-09-11 23:44:56 +03:00
scribam
f294729b28 ppu: improve lvebx/lvehx/lvewx instructions 2018-09-11 21:20:52 +03:00
Zion Nimchuk
635ecbeb90 Travis refactor 2018-09-11 12:02:31 +03:00
scribam
3072571a4f cpu: use correct type when defining llvm value is_int constexpr 2018-09-10 19:59:37 +03:00
scribam
c8c8ce5e9e rsx: add virtual destructor for default_vertex_cache 2018-09-10 19:59:37 +03:00
kd-11
f413996362 rsx: Minor texture cache fixes
- Retag resources reprotected under flush_always rules
- Properly check for blit resource fitting taking into account format
mismatch, pitch mismatch and typeless transfers
2018-09-10 15:43:28 +03:00
Nekotekina
2226125728 atomic_t<>: remove inline assignment
Add atomic_op/fetch_op overloads with template argument (may be removed in future)
Remove args... in atomic_op (capturing lambda is preferred)
2018-09-09 12:59:24 +03:00
Nekotekina
3ac1b46df2 Add option "HLE lwmutex"
Replaces lwmutex/lwcond implementation with alternative one
2018-09-09 01:02:19 +03:00
Alex James
5237779136 cellCamera: Fix check_dev_num call in cellCameraOpenEx 2018-09-08 20:07:10 +03:00
Nekotekina
fb5cdf9769 atomic_t<>: extend fetch_op to support cancellation
Use std::invoke inside atomic_op/fetch_op
Remove op_fetch because it's easily replaced
Add fetch_dec_sat algorithm (conditional decrement)
2018-09-08 00:32:04 +03:00
Nekotekina
ed9fb8405b Move rotate/cntlz/cnttz helpers to Utilities/asm.h 2018-09-08 00:32:04 +03:00
Nekotekina
ee96807305 Remove explicit_bool_t, ignore, multicast<>
Remove vm::ptr operator %
This was a bad idea but explicit_bool_t was created almost for it
Other removed types are unused and have little to no meaning
2018-09-08 00:32:04 +03:00
Nekotekina
99ffc3fca9 Use std::invoke_result_t
Also simplify idm code
2018-09-08 00:32:04 +03:00
Nekotekina
d750e955c3 Use std::uncaught_exceptions()
Also remove wrong attributes
2018-09-08 00:32:04 +03:00
Nekotekina
ea4a3b2476 bs_t<>: add missing operators 2018-09-08 00:32:04 +03:00
Dzmitry Malyshau
4e09573937 [vk] Check for BGRA8 linear image to support blitting 2018-09-07 22:02:02 +03:00
Dzmitry Malyshau
b454dde871 [vk] fix cubic view construction 2018-09-07 19:11:34 +01:00
Ofek
d7b0344091 Fix trophy regression
Hopefully
Correct status order
2018-09-07 20:04:37 +03:00
Dzmitry Malyshau
27474316fd Add missing virtual desctructors (#5094) 2018-09-07 14:35:40 +03:00
Zion Nimchuk
46812d46ba better stub sceNpUtilBandwidthTestGetStatus 2018-09-07 12:38:51 +03:00
kd-11
66610a28af rsx/common: Clean up shared glsl header to minimize string concat operations 2018-09-06 21:11:11 +03:00
kd-11
346b97f871 rsx: Preserve fog coordinate across shader stages
- The x value contains the VP output value interpolated across primitive surface
- The y coordinate contains the fog fraction according to the selected fog formula
2018-09-06 21:11:11 +03:00
scribam
343656f66d cleanup: remove unnecessary return and namespace declaration 2018-09-06 13:15:59 +03:00
scribam
549a5370d8 cleanup: remove recursive_wrapper.hpp 2018-09-06 13:15:59 +03:00
scribam
2834c88de7 cleanup: remove intermediate const char* variables 2018-09-06 13:15:59 +03:00
scribam
a745f02a07 cleanup: remove compatibility code for old versions of clang 2018-09-06 13:15:59 +03:00