Commit graph

6107 commits

Author SHA1 Message Date
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
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 2834c88de7 cleanup: remove intermediate const char* variables 2018-09-06 13:15:59 +03:00
scribam f83d381e1e clang-tidy: use nullptr 2018-09-06 13:15:59 +03:00
scribam c4cff9b543 clang-tidy: remove redundant "apply_swizzle_remap" declaration 2018-09-06 13:15:59 +03:00
scribam d7bb59cd99 c++17: use std::size 2018-09-06 13:15:59 +03:00
scribam 7724161c14 c++17: use std::clamp 2018-09-06 13:15:59 +03:00
scribam 02ba529eea sys_usbd: add sys_usbd_event_port_send function 2018-09-05 19:53:09 +03:00
Nekotekina ca5158a03e Cleanup semaphore<> (sema.h) and mutex.h (shared_mutex)
Remove semaphore_lock and writer_lock classes, replace with std::lock_guard
Change semaphore<> interface to Lockable (+ exotic try_unlock method)
2018-09-03 23:00:36 +03:00
Nekotekina 5e556a87ff Adjust cellMic log levels 2018-09-03 21:40:36 +03:00
Nekotekina ce4c4696dd Try to get rid of SIZE_32 macro 2018-09-03 21:40:36 +03:00
Nekotekina 7bccdbf157 Make vm::var unmoveable
Fix bugs with discarding vm::make_var result
2018-09-03 21:40:36 +03:00
Nekotekina 8abe6489ed Mega-cleanup for atomic_t<> and named bit-sets bs_t<>
Remove "atomic operator" classes
Remove test, test_and_set, test_and_reset, test_and_complement global functions
Simplify atomic_t<> with constexpr if, remove some garbage
Redesign bs_t<> to use class, mark its methods constexpr
Implement atomic_bs_t<> for optimizations
Remove unused __bitwise_ops concept (should be in other header anyway)
Bitsets can now be tested via safe bool conversion
2018-09-03 21:40:36 +03:00
Nekotekina 69f0ad0d68 Remove ALIGN_32 macro
It's never used in expressions like SIZE_32(T) * n, so it doesn't help to fix any warning issued due to truncation.
2018-09-03 21:40:36 +03:00
kd-11 dea5193fd7 rsx: Fix FP temp register count 2018-09-03 21:39:18 +03:00
Rui Pinheiro 1175658bd5 Fix cellMic regression from #4467
cellMicEnd would get stuck waiting for the cellMic thread to finish, but
it never does because micInited is still true.

Fixes Resistance: Fall of Mankind getting stuck after the menu
2018-09-03 19:49:41 +02:00
kd-11 2e0ecb556c rsx: Possible fix for UB data type consistency 2018-09-03 18:24:20 +03:00
kd-11 5a08b690d5 gl: always clean up the heap when using legacy buffers 2018-09-03 18:24:20 +03:00
kd-11 815f4aa63b vk: Improve logging of device names and driver versions 2018-09-03 18:24:20 +03:00
kd-11 e23435a190 vk: whitespace fix only 2018-09-03 18:24:20 +03:00
kd-11 85d38b5751 d3d12: restore working graphics 2018-09-03 18:24:20 +03:00
kd-11 6399833182 rsx: Fix endianness order when immediate mode register is updated, but used as register lookup
- Simplify the code by unifying all the register-backed memory
2018-09-03 18:24:20 +03:00
eladash 9acaee563b Fix sys_memory_free 2018-09-01 22:44:20 +04:00
scribam bf89b709cb Remove useless #include 2018-08-31 20:13:54 +04:00
scribam c2973d2b82 Update ConfigureCompiler.cmake to check for the same compiler versions as those set in README.md 2018-08-31 20:13:54 +04:00
scribam 7d0e94ab0a Compilation fixes for optional on osx 2018-08-31 20:13:54 +04:00
scribam 6c62d042c5 3rdparty: remove optional submodule 2018-08-31 20:13:54 +04:00
Lassi Hämäläinen 79cf2832ae Remove Utilities/variant.hpp and use C++17 variant
- Remove also Utilities/variant_visitor.hpp
- Fix variant and variant_visitor usages and #includes
2018-08-31 17:49:59 +04:00
Nekotekina 85fa0942e7 vm: allow 4k-aligned allocations for vm::stack
Fix utils::shm::map logic for MapViewOfFileEx
2018-08-30 14:56:45 +03:00
Nekotekina c49c7de427 sys_fs_stat: support split files
Was forgotten after sys_fs_open
2018-08-30 14:56:45 +03:00
Megamouse f933947a27 keyboard_pad_handler: fix mouse for multimonitor fullscreen 2018-08-30 07:38:11 +02:00
Megamouse e53ca429a1 Adjust to US keyboard... sigh 2018-08-30 07:38:11 +02:00
Megamouse 1fbd918d59 Qt: implement first Mouse Movement for keyboard pad handler 2018-08-30 07:38:11 +02:00
elad 685eaedbf9 rsx: Fix typos (#5054) 2018-08-30 00:47:48 +03:00
Ani 4357892081 Bump CMake Requirement to 3.8.2+
With older builds CMake will error out with `CXX_STANDARD is set to invalid value '17'`

CXX_STANDARD 17 was added on CMake 3.8.X as found in the 3.8.2 documentation: https://cmake.org/cmake/help/v3.8/prop_tgt/CXX_STANDARD.html

Also removes leftover from old VS2015/2017 mixed instructions, removes "Not GCC 6.1" since we require 7.3+ now and bumps Xcode to 10. Proper MacOS instructions will be added afterwards by someone else.
2018-08-29 22:01:57 +01:00
Ofek 4c1459534d Trophy fixes 2018-08-29 16:56:17 +03:00
Megamouse 686d3eb1df cellMsgDialog: improvements 2018-08-29 16:09:00 +03:00
Megamouse 00b31c27a3 cellGame: implement error messages and some stubs 2018-08-29 16:09:00 +03:00
Megamouse 7208aa37cc cellMsgDialog: introduce open_msg_dialog 2018-08-29 16:09:00 +03:00
Megamouse d4285fb196 cellGameExec: add param checks 2018-08-29 16:09:00 +03:00
Zion Nimchuk f9cab3270f Initial work on cellMic 2018-08-29 15:15:18 +03:00
jmatich b5dbd44087 Compilation fixes for Mingw64 (MSYS2) (#4899)
fix compilation on mingw
2018-08-29 14:27:10 +03:00
eladash 37ee0a2f55 Rsx/cellgcm: complete rsx_state::reset() 2018-08-29 13:37:50 +03:00
eladash fc50e6abcb Rsx: remove method registers reset
cellGcm manually resets registers each flip, tested with cellGcmSetFlip
2018-08-29 13:37:50 +03:00
Dzmitry Malyshau c452b43ebc Basic support for Vulkan Portability on OSX 2018-08-28 21:20:11 +03:00
eladash acf1286b49 Rsx: fix unknown cull faces 2018-08-28 10:47:24 +03:00
eladash 38a72cc6ee Rsx: fix flip method registers reset
driver flip does not reset registers
2018-08-28 10:47:24 +03:00
eladash e279bdb304 Rsx: add missing default vertex shader attributes registers states 2018-08-28 10:47:24 +03:00
zarroboogs 23f5cee653 Git Revision Fix (#5043)
* fix shotrened git revision in version string
2018-08-27 22:53:45 +04:00
Nekotekina 7b4f70390d Don't use decltype(spu_opcode_t::...)
Add static constant for this purpose
Try to fix MSVC bug warning C4573
2018-08-25 21:06:24 +03:00
Nekotekina 363811981d Reintroduce LOG_CHANNEL
Groundwork for further improvements
2018-08-25 15:39:00 +03:00
Nekotekina a93a40e8d9 Disable texture_cache::emit_once (MSVC crash) 2018-08-25 01:58:28 +03:00
Nekotekina 1c6c24f8ac Update GSL and yaml-cpp submodules 2018-08-25 01:15:47 +03:00
Nekotekina 923314aef5 Rewrite texture_cache::emit_once
Also trying to workaround MSVC bug
2018-08-25 01:15:47 +03:00
Nekotekina bb19feca96 Workaround MSVC bug
It fails to parse Args... in fmt::get_type_info<>()
2018-08-25 01:15:47 +03:00
Nekotekina 6bbec61856 VS: enable C++17 2018-08-25 01:15:47 +03:00
Zangetsu38 c30a7c0041 Update Project to Visual Studio 2017. 2018-08-25 01:15:47 +03:00
Nekotekina 5afd12e8a4 [CMake] Use C++17 2018-08-24 16:44:19 +03:00
Nekotekina 6cc7d1fb26 Use std::void_t 2018-08-24 16:44:19 +03:00
kd-11 21e1911112 vk: Improve fence wait logic 2018-08-24 14:52:22 +03:00
kd-11 76f102e865 vk: Check for allowed texbuffer range instead of assuming 64M 2018-08-24 14:52:22 +03:00
Mårten Nordheim b095a0be90 Fix compilation with VS2017 2018-08-24 14:46:33 +04:00
kd-11 f0a91484a0 vk: Implement double-buffered heaps for platforms without universal support for host visibility (APPLE) 2018-08-23 22:54:56 +03:00
kd-11 c6e35706a3 vk: Support sw component swizzle decode because metal sucks 2018-08-23 22:54:56 +03:00
kd-11 f3d3a1a4a5 rsx: Rework section reuse logic 2018-08-22 17:22:54 +03:00
eladash 874d18f761 rsx-debugger: bugfixes and improvements
*always translate given address
*add a few missing methods names
*fix branches
2018-08-22 13:19:07 +03:00
eladash 56d553f10d Rsx: fix cmd jump over put register 2018-08-22 12:20:31 +03:00
eladash 18ec05c070 Fix cellGcmInit
add a missing reset
2018-08-22 12:20:31 +03:00
eladash 158019b50f Rsx: fix translation when address is negative
move address shift to where it should be, extend io table to catch all possible values.
2018-08-22 12:20:31 +03:00
Megamouse d1d1b2effd Qt: only center basic mouse input on active fullscreens 2018-08-20 20:19:41 +02:00
Ani 6fc869e21b Revert d1fd4d5000 2018-08-20 00:12:30 +04:00
kd-11 25ec3789fe rsx: Fix present modes ordering
- Newer nvidia drivers are not exposing IMMEDIATE present mode unless you change options in nvidia control panel
  This can cause severe performance degradation unless the vsync option is set to "off" in control panel
2018-08-19 15:56:07 +03:00
Nekotekina 386e301ea0 Name missing vm::spu location 2018-08-18 21:38:43 +03:00
Nekotekina e8d144f399 Improve vm::reader_lock
Add upgrade() method
2018-08-18 21:14:52 +03:00
Nekotekina 6ec4a88eb5 Hardcode vm::user64k location 2018-08-18 21:02:16 +03:00
Nekotekina 182c04b59d Improve vm::unmap
Prevent unmapping predefined locations
2018-08-18 21:01:32 +03:00
Megamouse 7cf82d2511 Qt: fix stylesheet warning 2018-08-18 22:00:37 +04:00
kd-11 7915dcb23c rsx: Do not overflow the program buffer!
- Some games overflow the program buffer e.g Resistance games
  The observed overflow is one instruction longer, likely an engine bug
with counting instructions
2018-08-18 16:14:30 +03:00
kd-11 dd21e43ed5 rsx: Force disable draw reordering when capturing a frame 2018-08-18 16:14:30 +03:00
kd-11 937f1e8cd0 fix gcc build 2018-08-18 16:14:30 +03:00
kd-11 4b2b662c3a rsx: Followup to the memory inheritance hierachy patch
- Tags framebuffer resources on first use (when on_write is called to verify memory)
- Texture cache now selects the best match and even sorts atlas writes with memory write order to avoid older data showing over newer one
2018-08-18 16:14:30 +03:00
kd-11 ec31157bc7 gl: Avoid unnecessary scissor state change every draw call. 2018-08-18 16:14:30 +03:00
kd-11 8c93db342f gl: Reuse framebuffer resources
- WIP optimizations for GL backend
2018-08-18 16:14:30 +03:00
kd-11 cca488d0cf rsx: Enable swizzled decode for all formats unless proven otherwise
- Some formats are proven to ignore swizzle flag
  - DXT compressed textures
  - COMPRESSED_BG_GB class textures
- Some applications are using swizzled wide integer formats so those are confirmed to swizzle
2018-08-18 16:14:30 +03:00
kd-11 f8a9b1fa30 [WIP] rsx: Improve memory inheritance hierachy
- Cascade memory writes by invalidating 'downstream' subsurfaces
- Fixup; always resolve for overlapping surfaces before sampling (force
  atlas gather test)
2018-08-18 16:14:30 +03:00
kd-11 ba5b59dc59 gl: Do not create secondary context if async is disabled
- Some third party programs fall apart when multiple contexts are created
2018-08-18 16:14:30 +03:00
kd-11 0f36e87010 zcull: Improve the delay algorithm to be more consistent
- Use proper time checking; depending on what is being done one 'tick' can
  be almost a millisecond long or several nanoseconds
- Avoid spamming the system timer unless necessary
2018-08-18 16:14:30 +03:00