Eladash
2688081656
SPU: Use unaligned AVX instructions for cmp_data_avx
2020-09-06 07:51:12 +03:00
Eladash
e4abd3dc5a
SPU: Do not ignore pending PUT tranfers just becase GET may not be cache-line atomic
...
This is not the proper way to emulate non-atomic GET tranfers, as it makes it seems as if PUT atomic tranfers arent atomic. (TODO)
Incomplete GET cache line accesses still do not verify data though.
2020-09-05 22:23:55 +03:00
Eladash
c7a185d4e7
SPU: Fix not acuiring reservation locks on DMA with more than one cache line (Accurate DMA)
2020-09-05 22:23:55 +03:00
Bevan Weiss
baf96b3eb6
RSX: Update manual string creation -> std::string()
...
Replace manual string creation with call to std::string() constructor passing in char*
This appears to drastically reduce the cache impact here
2020-09-05 10:38:32 +03:00
Eladash
0b023d4e28
SPU: Make Accurate GETLLAR, PUTLLUC settings dynamically adjustable
2020-09-04 10:20:44 +02:00
Eladash
4ffc58a8ce
SPU: Cleanup for Accurate PUTLLUC
...
Should no longer affect GET commands because Accurate DMA is available for this functionality.
2020-09-04 10:20:44 +02:00
Eladash
c5c9ea1b21
SPU: Make GET's full and aligned cache line accesses atomic with Accurate DMA
2020-09-04 10:20:44 +02:00
kd-11
3c43d8fe05
rsx: Fix execution barrier insertion
...
- In case of element re-arrangement, the barrier should obey the current insertion pointer
2020-09-04 09:34:13 +03:00
Eladash
73d23eb6e6
SPU: Implement Accurate DMA ( #8822 )
2020-09-02 23:58:29 +02:00
kd-11
a917f55ef8
vk/sdk: Sync with vulkan SDK v148 ( #8814 )
...
- Sync with vulkan SDK 148
- glslang library was split into several smaller libraries
- HLSL is no longer needed
2020-09-01 00:57:38 +03:00
kd-11
af9e217fa4
vk: Improve D16F handling
...
- Adds upload and download routines. Mostly untested, which is why the error message exists
2020-08-30 09:26:37 +03:00
kd-11
e9cdb248a0
glsl: Properly implement shadow filtering when running emulated shadow compare
...
- Previous code was completely borked
2020-08-29 02:03:09 +01:00
kd-11
e8274d5a59
vk: Fix depth format mismatch detection in copy_image
2020-08-29 02:03:09 +01:00
Eladash
6952be5ce4
Debugger: Replace SPU register perefix '$' with 'r'
2020-08-28 20:44:13 +02:00
RipleyTom
4317291827
tcp_timeout_monitor deadlock fix ( #8783 )
2020-08-28 01:06:01 +01:00
Nekotekina
bd40430d2b
Fix some warnng in lv2.cpp
2020-08-28 01:54:39 +03:00
Nekotekina
ebc4a0188a
Restore some code
2020-08-28 01:54:39 +03:00
Nekotekina
bfa4fcf584
Use g_fxo for progress_dialog_server
2020-08-28 01:54:39 +03:00
Eladash
48f70fbf10
Fix UB in Emulator::Load
2020-08-27 23:52:37 +01:00
Eladash
019d2d5dcf
Implement HLE cellSpursAddUrgentCommand
2020-08-27 23:52:37 +01:00
Eladash
17f7f329a8
Log PRX segment end for usage with kernel explorer
2020-08-27 23:52:37 +01:00
Eladash
933737e8f0
PPU: log LR in HLE functions
2020-08-27 23:52:37 +01:00
Eladash
47b545282e
SPU: Fix events ACK, minor optimizations ( #8771 )
2020-08-27 21:36:54 +01:00
RipleyTom
190822c2b2
RPCN Client ( #8663 )
2020-08-27 20:47:04 +01:00
kd-11
d000d648b0
vk: Fix some minor spec violation
...
- Stencil clear pass does not consume an image, do not bind one.
- Add push_barrier to allow push-pop semantics for texture barrier insert.
2020-08-27 12:52:28 +03:00
kd-11
d257ba5156
vk: Add some more diagnostic messages for unoptimized image transfer setups
2020-08-27 12:52:28 +03:00
kd-11
9828d6146b
rsx: Fix format matching when aggregating textures
...
- When copying depth-depth, prefer own format over depth int format
2020-08-27 12:52:28 +03:00
kd-11
9e4bec8cec
vk: Fix some missing render target declarations
2020-08-27 12:52:28 +03:00
kd-11
65ead08880
rsx: Refactor and improve image memory manipulation routines
2020-08-27 12:52:28 +03:00
kd-11
f6c6c04648
vk: Implement transport for D24S8_FLOAT data
2020-08-27 12:52:28 +03:00
kd-11
794378d5e9
rsx: Do not create depth textures as blit engine targets.
2020-08-27 12:52:28 +03:00
kd-11
a5ac5a9861
rsx: Separate uint depth formats from float depth formats
2020-08-27 12:52:28 +03:00
kd-11
faaf28b41d
rsx: Basic support for creating depth float formats
2020-08-27 12:52:28 +03:00
Eladash
c099bb817f
Debugger: Disable PPU address redirection
...
It causes more confusion than it helps.
2020-08-25 17:43:07 +02:00
Eladash
7fe98d8d66
Debugger: Add missing PPU stack register checks
2020-08-25 17:43:07 +02:00
Eladash
3ce7fd7894
Debugger: Fix instructions editor
2020-08-25 17:43:07 +02:00
Eladash
c5aebe4564
Debugger: Implement PPU SLWI, SRWI, SLDI mnemonics
2020-08-24 02:10:51 +03:00
Eladash
841b8fad38
SPU: Fix timer events
2020-08-24 01:57:32 +03:00
Bevan Weiss
ab0df0a0f5
Support for Namco GCon3 gun ( #8757 )
...
This gun now works (passes calibration) in Time Crisis 4.
2020-08-22 15:41:08 +02:00
Eladash
27e3317449
[HOTFIX] Fix UB in Emu/System.cpp
2020-08-22 11:55:08 +02:00
Eladash
edc09e22b4
PSF: Avoid redundent string copies in psf::array/string/get_string ( #8707 )
2020-08-21 23:55:17 +01:00
Eladash
4a40ef6a19
Debugger: Use Signed Hexadecimal formatting ( #8751 )
2020-08-20 22:07:31 +01:00
Eladash
bcddbc15f0
Debugger: Fix PPU stepping on non-TSX
2020-08-19 19:48:35 +01:00
Eladash
19500ac9ad
Fix truncation warning in sys_cond.cpp
2020-08-17 17:36:27 +01:00
Eladash
ee953f7953
Fix vm::reservation_update
2020-08-16 22:58:49 +03:00
Eladash
853e2b90a3
rsx: Minor rsx::ceil_log2 bugfix
2020-08-15 20:39:21 +03:00
Eladash
995cb8125e
SPU LLVM: Improve approx FCGT ( #8728 )
2020-08-14 19:33:35 +01:00
Whatcookie
9e4f43f4d1
SPU LLVM: Add icelake optimized paths for SHUFB ( #8712 )
2020-08-13 15:00:56 +01:00
Eladash
8cdfe5952a
SPU/PPU LLVM: Improve 0 addend FMA detection ( #8709 )
2020-08-13 04:13:08 +03:00
Eladash
0f8ca1f7c5
SPU: Implement RSX accurate reservations on TSX ( #8721 )
2020-08-13 00:00:37 +01:00
kd-11
fd2607ad52
rsx: Fix XBGR vs XRGB screenshots
2020-08-12 20:19:19 +03:00
kd-11
7e1b24224d
rsx: Support XBGR flip image load from Cell memory
2020-08-12 20:19:19 +03:00
kd-11
56c63170b9
vk: Warn if GPU does not support RGBA8 natively
2020-08-12 20:19:19 +03:00
kd-11
b41349546c
rsx: Proper support for typeless transform of ABGR framebuffers using the RGBA8 format
2020-08-12 20:19:19 +03:00
kd-11
6850533b50
rsx: Unify composite texture creation and management
...
- Some texture accesses require image compositing steps to assemble the requested image from existing subresources.
Handle all the common routines in a unified manner to avoid having one broken path (e.g mipmap gather not supporting bitcast operations)
2020-08-10 13:31:22 +03:00
Whatcookie
4ce2ad54a8
PPU LLVM: Use VPERM2B to emulate VPERM ( #8704 )
...
- The VPERM2B instructions are a match of VPERM's behavior, besides operating in reverse byte order
2020-08-09 01:50:26 +01:00
Eladash
0c85d4c0d0
cellSaveData: Fix loss of "BLIST" and files' information in PARAM.SFO ( #8706 )
2020-08-08 23:40:47 +01:00
Eladash
57471f8c94
SPU LLVM: Fix signed zeroes handling on Accurate xfloat
2020-08-08 22:21:22 +01:00
Eladash
7e11855330
SPU/PPU LLVM: Fix FMA signed zeroes handling
2020-08-08 22:21:22 +01:00
Megamouse
96428a7555
Log username
2020-08-07 21:57:08 +02:00
kd-11
22f5e7a9be
vk: Generate valid image+image_view combinations for placeholder texture descriptors
2020-08-06 20:34:49 +03:00
Bevan Weiss
ada6db2df4
Replace ppu_module_manager Function Static with Class Static variable (static module map) ( #8669 )
...
* Replace ppu_module_manager Function Static with Class Static
Makes for a slightly 'cleaner' interface in my opinion, may also assist with adding thread read/write concurrency support in future if ever required (have left that out of this commit to match existing function).
Very slight performance improvements were seen in representative testing.
https://quick-bench.com/q/GMbgeNc-mZc21aqOKCofnbzPZvg
I didn't investigate whether static initialisation of the static_modules might actually be possible here, perhaps there's a way to do a constexpr / consteval of this.
* Fix up for old style cast syntax..
* Fixups from PR comments
Plus remove spurious type_traits include (from me) not picked up in previous PR
* Remove old code
* Update rpcs3/Emu/Cell/PPUModule.h
Co-authored-by: Eladash <elad3356p@gmail.com>
* Fix naming of static variable
Co-authored-by: Eladash <elad3356p@gmail.com>
2020-08-06 12:34:08 +02:00
Bevan Weiss
eee5e812f7
Fix for incorrect assignment of ghlguitar
...
found_ghltar was potentially being overwritten if multiple USB devices were present
2020-08-06 12:01:21 +02:00
Bevan Weiss
eb5ae94c24
sys_usbd tidy ups
...
Tidy up fake transfer iterator handling. erase invalidates all iterators including the current iterator (i.e. 'it'), given precedence ordering this was UB prior to C++17. Splitting out to use return iterator from erase seems cleaner.
Also added some additional info to usb debug message to potentially help with #8666 , and used the atomic (dev_counter) less often
2020-08-06 12:01:21 +02:00
kd-11
7109fe9889
rsx: Improve swizzled layout detection
...
- Reset swizzle flag to false automatically on section reset.
- Detect render target payload and extract swizzle information from it.
2020-08-05 23:23:38 +03:00
Megamouse
d633a266c1
Add config override as cli arg: --config <path>
...
And add some more logging
2020-08-03 21:31:53 +02:00
Eladash
70fb5712e5
PPU interpreters: Fix VMAXFP NaN and signed zeroes handling
2020-08-03 15:43:00 +01:00
Eladash
6a51c27fde
PPU LLVM: Fix VMAXFP, VMINFP NaN handling
2020-08-03 15:43:00 +01:00
Eladash
17f965c171
lv2: Minor fix of "unspecific ppu" path of _sys_lwcond_signal
2020-08-03 02:57:20 +03:00
kd-11
bd21930d1a
rsx: Decode swizzled GPU data on CPU readback
...
- Currently this conversion is being done on the CPU to reuse as much code as possible.
The expectation is that this almost never happens, so there is not point in increasing maintenance burden by adding compute paths
2020-08-02 16:14:11 +03:00
kd-11
4df933275b
rsx: Propagate raster type of fbo sourced data throughout the pipeline.
...
- Tracks which kind of raster was done (Z-ordered vs linear) throughout the application.
- This allows to identify if data is in the expected format or not.
2020-08-02 16:14:11 +03:00
Megamouse
107129f95a
Fix missing GPU in game window title
2020-07-31 01:13:00 +02:00
Eladash
dd497625a5
PPU LLVM: Fix constant folding of BitCast
2020-07-30 17:06:24 +01:00
Eladash
f6764767f6
SPU/PPU LLVM: Fix cpu_translator::get_const_vector<v128>()
2020-07-30 17:06:24 +01:00
Eladash
e52dd9dc6f
SPU: Implement SYS_SPU_THREAD_OPTION_DEC_SYNC_TB_ENABLE ( #8657 )
2020-07-30 14:01:25 +01:00
Eladash
82068cf802
SPU: Fix spu_thread::cpu_stop() missed executions ( #8656 )
2020-07-30 10:07:18 +01:00
Megamouse
f073ff8fe8
overlays: fix minor warning
2020-07-29 13:18:33 +02:00
Megamouse
47040be3ad
cheat_manager: improve parser errors
2020-07-29 13:18:33 +02:00
Megamouse
ef3e8d26ce
Improve error handling during config loading
2020-07-29 11:28:16 +02:00
Eladash
21a1072117
SPU LLVM: Minor cleanup after #8559
2020-07-29 03:32:21 +03:00
Bevan Weiss
609182b131
Update cellAudio to use float constants instead of doubles
...
Another simple Clang recommendation
2020-07-26 17:23:02 +03:00
Bevan Weiss
7898ae6fe6
VK_REMAP enum is signed.. but later case comparison is unsigned
...
another clang directed fix up... might be involved with swizzle..
2020-07-26 15:27:51 +03:00
Malcolm Jestadt
a9d0ffcac1
SPU LLVM: Avoid additional endian swapping
...
- Avoid additional endian swapping with the ROTQBY and ROTQBYBI instructions
- ROTQBYI is left out intentionally, since it caused worse codegen
2020-07-26 11:36:50 +01:00
Malcolm Jestadt
824be77bba
SPU LLVM: Avoid redundant endian swapping
...
- PSHUFB operates in reverse byte order from SHUFB, so we can take advantage of that to swap endianness without additional transformations in some situations
2020-07-26 11:36:50 +01:00
Ani
74c8a44d84
rsx: Fix cache skipping shaders on load+compile ( #8633 )
...
When on single worker mode (OpenGL or an hypothetical scenario of a
single core PC with Vulkan), load and compile would skip 10% of the
shaders on queue each stage.
Co-authored-by: kd-11 <karokidii@gmail.com>
2020-07-26 08:47:50 +01:00
Whatcookie
9f829b375a
SPU/PPU LLVM: Optimize VSEL/SELB with constant mask ( #8559 )
2020-07-25 17:59:35 +01:00
Eladash
da44d5f10d
PPU: Fix DIVW, DIVWU, MULHW, MULLW, MULHWU when op.rc is set ( #8630 )
2020-07-25 17:13:58 +01:00
kd-11
be4b71b805
vk: Fixup for PR #8590
...
- This change was lost during rebase
2020-07-25 14:48:11 +03:00
kd-11
b0c7ca6d1f
vk: Improve video memory manager to attempt recovery in out of memory situations
2020-07-25 14:48:11 +03:00
kd-11
4d8de282f9
vk: Improve typeless texture succession
...
- Ensure incoming texture is large enough that the original one fits inside it to avoid back-and-forth succession.
- Make use of the resource manager to remove the obsolete textures to avoid holding on to the them which "leaks" VRAM.
The memory isn't leaking, it's just wasting space in temporary pool until renderer is closed.
2020-07-25 14:48:11 +03:00
Megamouse
de80a4b6c7
overlays: try to fix unexpected font crop
2020-07-25 10:21:52 +03:00
Eladash
917069e31a
PPU Precise/LLVM: Support NJ modes ( #8617 )
2020-07-25 07:41:41 +01:00
Eladash
3354c800d7
SPU/PPU LLVM: Improve expressions matching ( #8620 )
2020-07-24 16:53:48 +01:00
Megamouse
bb3ac62126
cellMic: use s32 consistently
2020-07-24 14:47:10 +02:00
Megamouse
6e25fea16a
use not_an_error in sys_spinlock_trylock
2020-07-24 14:47:10 +02:00
Megamouse
5e7c6853c2
fix truncation warnings
2020-07-24 14:47:10 +02:00
Megamouse
f76a011ba0
fix sceNpCommerce2CreateCtx log message
2020-07-24 14:47:10 +02:00
Megamouse
d854a39500
add a gazillion more error_code
2020-07-24 14:47:10 +02:00
Megamouse
a00ebacef3
cellFont: add error_code
2020-07-24 14:47:10 +02:00
Megamouse
c2f4244c4d
cellMic: error_code, random cleanup and stubbing
2020-07-24 14:47:10 +02:00
Megamouse
7437c324c6
cellMusic: add error_code
2020-07-24 14:47:10 +02:00
Eladash
54b87b6dbb
cellSaveData: Increase sleep time
2020-07-23 13:45:58 +03:00
Eladash
a029a94c73
SPU: Use waitable atomics for SPU channels interface
2020-07-23 13:45:58 +03:00
illusion
3157a10428
move executable hash log level to success
2020-07-22 10:51:19 +02:00
Eladash
f8d2d8ca11
SPU/Windows: Fix LS memory mirrors
...
This is a workaround but this is because of how utils::shm works on Windows path.
2020-07-19 17:58:49 +03:00
Eladash
c37bc3c55c
SPU: Make spu_thread::offset private
2020-07-19 17:58:49 +03:00
Malcolm Jestadt
6cc0fe4221
SPU LLVM: Avoid negative clamping when the input is known to be positive
2020-07-19 17:56:59 +03:00
Eladash
af1ceb1151
SPU LLVM: LS Memory Mirrors (Optimize loads/stores)
2020-07-18 02:01:33 +03:00
Eladash
268bcd1c7b
rsx: Fix false desync events
2020-07-16 19:26:10 +02:00
kd-11
42a9ac9e6c
rsx: Brute-force removal of superseded surfaces
2020-07-16 19:11:26 +03:00
kd-11
182b20c33d
rsx: Fix draw count append when draw ranges are out of order
...
- It is common for draw counts to truncate at 256 even when it makes no sense to do so.
- e.g 256 is not a multiple of 3 so triangles will glitch out
2020-07-14 16:04:44 +03:00
Megamouse
4d9533ea54
input: use left and right squircle values
2020-07-13 21:23:48 +02:00
kd-11
ab3d36f0f3
rsx: Fix depth bounds test
...
- Allow depth bounds test to access the Z buffer even when depth test is disabled.
2020-07-10 15:59:15 +03:00
kd-11
632af8d723
rsx: Support partial texture descriptors
...
- It is safe to declare w > pitch and it works as long as sampling inside the legal 2D area is obeyed.
2020-07-10 15:26:07 +03:00
Eladash
282b00674a
SPU LLVM: Optimize non-constant Tag Update requests
2020-07-10 02:52:02 +03:00
Eladash
235d12aa6b
SPU MFC: Never clear tag status in WrTagUpdate
2020-07-10 02:52:02 +03:00
Eladash
5d1fc546a8
SPU MFC: Fix MFC_WrTagUpdate channel count
...
Always report available, in realhw this is just a hint if the previous tag update hasnt been checked yet by the MFC, avoiding blocking writes and allowing the SPU to execute some code while it processes the previous update request.
Except for MFC_TAG_UPDATE_IMMEDIATE, where it also waits for MFC to process it.
2020-07-10 02:52:02 +03:00
Eladash
eb993781ef
RawSPU: Log MMIO access
2020-07-09 23:24:47 +03:00
Eladash
84470c34db
SPU: Disable PUTLLC NOP transfers detection on TSX path
2020-07-09 03:17:35 +01:00
Eladash
f8dbfa1d1e
SPU: Implement GETLLAR polling detection
2020-07-09 03:17:35 +01:00
Eladash
d9750e8f9f
SPU/PPU reservations: Optimizations for reservation locks and check_state() (non-TSX)
2020-07-09 03:17:35 +01:00
Megamouse
53b95fea19
audio: rename audio channels to audio downmix
...
The setting does not actually define the channels themselves, only the downmix option that the PS3 provides.
Channels might be changed seperately in the future.
2020-07-08 21:11:23 +02:00
Megamouse
e2fd4e46f7
Only reboot audio if a relevant setting changed
2020-07-08 21:11:23 +02:00
Megamouse
20d6664dc1
Try to make most audio configs dynamic
2020-07-08 21:11:23 +02:00
Megamouse
8ee953ef8e
XAudio2: Call CoInitializeEx to prevent errors
...
I could not properly reset the audio backend and call CreateMasteringVoice without getting errors
2020-07-08 21:11:23 +02:00
Megamouse
5b7ee43352
XAudio2: print readable errors
2020-07-08 21:11:23 +02:00
Megamouse
bb0aaea92d
cellAudio: implement downmix to 5.1
2020-07-08 21:11:23 +02:00
kd-11
987ede2e6c
vk: Inject memory barrier upon conclusion of a framebuffer feedback loop
...
- Do not write to the texture until previous draw call is completed using it.
- This is usually not much of a problem until blending operations come into play.
2020-07-08 19:23:29 +03:00
Megamouse
5fae1b3637
HLE: fix sceNpDrmGetTimelimit invalid param error
2020-07-07 09:43:32 +02:00
Derrik Touve
cb08c53f2f
sys_net: Use np_handler dns if possible for sys_net_infoctl ( #8557 )
...
Without this, cellHttpSendRequest will use the hardcoded dns 192.168.1.1, which won't work if you're not on that network.
2020-07-07 08:25:29 +02:00
Megamouse
171e4fafed
Emu: simplify Emu::Stop some more
2020-07-06 21:14:16 +02:00
Megamouse
8d2ce2815c
Emu: Make prevent_display_sleep dynamic
2020-07-06 21:14:16 +02:00
Megamouse
d91551c277
Emu: always use Emu.Quit() to quit RPCS3
...
This creates a single possible point of failure for calling quit()
2020-07-06 21:14:16 +02:00
Eladash
dc25a3fa2a
PPU debugger: Show stack address of each function
2020-07-06 18:58:16 +02:00
Eladash
c98ec4d014
PPU debugger: Fix functions stack bounds check
2020-07-06 18:58:16 +02:00
kd-11
05dc6ad610
gl: Silence warnings
2020-07-05 16:58:44 +03:00
kd-11
3fe8499956
rsx: Improve ZCULL queued requests finalization
...
- Unifies the code
- Allows conditionals to be evaluated with a forwarder present
2020-07-05 16:58:44 +03:00
Megamouse
f1b1c9053c
Input/Qt: Check if gui callbacks are nullptr
2020-07-04 14:28:19 +02:00
Megamouse
99be645fcc
Qt: Add stick multipliers to the pad dialog
2020-07-04 14:28:19 +02:00
kd-11
acf51f0ead
rsx: Fix transfer descriptors for partially overlapping slices in head
...
- Height must be corrected to skip the piece that exists before the current slice
2020-07-03 14:29:54 +03:00
Eladash
72337f2678
SPU LLVM: Fix barrier commands enqueuing
2020-07-02 22:46:02 +03:00
kd-11
c9c0d7361d
rsx: Implement fast ZCULL barrier when query object is already known
2020-07-02 20:11:57 +03:00
kd-11
d7ffc8b4ac
rsx: Fix leaking ZCULL queries after a barrier
...
- Multiple queries can be queued up, process them all before completing the barrier
2020-07-02 20:11:57 +03:00
Bird Egop
eea12bad07
Implement Caret upwards and downwards move in overlay_edit_text ( #8342 )
...
* Implement caret upwards and downwards move in overlay_edit_text
* Optimize caret up and down movement
Co-authored-by: Megamouse <studienricky89@googlemail.com>
2020-07-02 09:06:37 +02:00
kd-11
bd14429f20
vk: Disable primitive restart for old GCN cards
...
- Also adds more Navi 14 chips to detection table
2020-06-30 15:00:07 +03:00
Megamouse
12dded403f
patch_manager: implement serials and app_versions
2020-06-29 23:56:27 +02:00
Megamouse
5269b69bc5
cellAudio: use downmix formula based on documentation
2020-06-29 09:06:36 +02:00
Eladash
2483cc6f8d
Fix race in Crypto/unedat.cpp, Make NPDRM keys usage atomic
2020-06-28 23:26:10 +01:00
Eladash
97717defa5
Remove devKlic/rifKey reset
2020-06-28 23:26:10 +01:00
kd-11
5e29bdbe22
vk: Add more GPUs to nvidia chip table
...
- Registers more TU116 and TU117 variants
- Registers GA100
2020-06-28 22:54:58 +03:00
kd-11
b437794e92
vk: Improve nvidia speedhack for non-turing cards
...
- Inverts the chip family check to skip any unidentified GPUs altogether
2020-06-28 22:54:58 +03:00
Eladash
2c93fecd8b
SPU: Use named constants for MFC tag updates
2020-06-27 20:42:41 +01:00
Eladash
20fcc6530f
SPU LLVM: Fix WRCH instruction to WrTagUpd
2020-06-27 20:42:41 +01:00
Eladash
9cb4402c16
Make error_code::value member private
2020-06-27 09:02:55 +01:00
Eladash
f29589e5cf
SPU debugger: Add atomic status and tag update channels information
2020-06-27 07:04:37 +01:00
Eladash
d7842b7de2
SPU LLVM: Fix WRCH instruction to WrTagMask
2020-06-27 07:04:37 +01:00
Megamouse
5a8eb9d3d7
Input: skip keyboard input when pads are disabled
2020-06-26 09:28:58 +02:00
kd-11
5ea6535fd5
rsx: Force flushing of NaN/INF to zero
...
- This option was always enabled for NVIDIA cards, but it seems some games would benefit from the option on other GPUs as well.
- TODO: Hwtest to verify correct behavior and plan how to safely implement in hw
2020-06-26 09:24:15 +03:00
Megamouse
76faaf43f7
Input: Use global variables for pad modifications
2020-06-26 04:42:52 +02:00
Eladash
ab9cdc70ad
cellSaveData: Emulate PPU processing of auto/list post-fixed callback
2020-06-25 19:50:33 +03:00
Eladash
e45d37073a
debugger: Shortend SPU/PPU thread names
2020-06-24 17:44:06 +02:00
kd-11
628cb1c779
rsx: Validate blend factors according to hardware testing
2020-06-23 12:15:02 +03:00
kd-11
a14e0a0104
rsx: Validate stencil op to match realhw behavior
2020-06-23 12:15:02 +03:00
kd-11
f3637cdfdb
rsx: Fix surface options hint mechanism
...
- Silly typo
2020-06-23 12:15:02 +03:00
kd-11
c6a9a5d5d7
rsx/fixup: Fix color clear logic
...
- Enable fast clears on ABGR formats in vulkan
- Fix disabling color clears for unsupported formats in GL
2020-06-23 12:15:02 +03:00
kd-11
7f917c8ba5
rsx: Fix ABGR decoding for colormask and clear color
...
- The bytes in these values are based on the format according to hw tests
- G8B8 is unaffected as the first two bytes are already G8B8 for A8R8G8B8 standard layout (BGRA)
- A8B8G8R8 and its derivatives have words 0 and 2 exchanged.
2020-06-22 20:12:41 +03:00
kd-11
e992cbe01b
rsx: Support DRGB8 sampling of render targets
2020-06-22 20:12:41 +03:00
Oschowa
5c1ce6350b
FAudio: remove 4x volume factor
...
Same as commit 66d13da2ac for the XAudio2 backend
2020-06-20 12:42:56 +02:00
Eladash
d86c9a2549
sys_mmapper: rewrite page fault thread notifications
...
* Fix a corner case where SPU thread has the same ID as a PPU thread.
* Fix a potential deadlock on Emu.Stop() while sending event in EBUSY loop.
* Thread specific notifications.
2020-06-18 20:13:54 +03:00
Eladash
3ee1d8aed1
fixup
2020-06-18 06:47:07 +03:00
Eladash
5c6dae498b
SPU LLVM: Avoid bad optimization in FCGT
2020-06-18 06:47:07 +03:00
kd-11
2086e7f2e8
rsx: Account for subpixel precision when converting DST coordinates to
...
SRC coordinates
- When extracting a 1x1 texture from another texture of a different
format, width conversion can result in a dimension of 0 if the
extracted texel is not a full texel in SRC
2020-06-17 22:18:47 +03:00
kd-11
c764925b4d
rsx: Properly handle conversion of G8B8 and related formats
...
- These formats are 16-bit packed, not separate 8-bit channels. Conversion requires byteswap for them.
2020-06-16 22:36:38 +03:00
kd-11
83d818d96f
rsx: Improve mipmap gathering
...
- Account for source offsets when grabbing subregions
- Scale input accordingly when sourcing from fbo in all paths
2020-06-16 19:12:03 +03:00
sampletext32
0ad4e91001
Avoid string reallocation in swizzle CgBinaryProgram
2020-06-15 22:26:49 +03:00
Eladash
731d4330fe
v128: A few optimizations ( #8432 )
2020-06-15 17:24:04 +03:00
Eladash
5777a1d426
SPU: Implement EBUSY error on non-empty mailbox (sys_spu_thread_send_event/sys_event_flag_set_bit)
...
Write into inbound mailbox under mutex.
2020-06-15 17:08:57 +03:00
Eladash
5fda9a4efb
sus_lwcond_signal_all: use protocol specified in lwmutex
...
Trying to fix a nearly impossible corner case.
2020-06-15 17:08:57 +03:00
Eladash
c15b5f1eca
SPU: Move check_state() outside of mutex scope
...
Can result in a deadlock in some cases, cpu flags are checked after this function as well anyways.
2020-06-15 17:08:57 +03:00
Eladash
314dc4c5de
sys_cond: Fix spurious EBUSY in sys_cond_destroy
...
Increment waiters count inside IDM's mutex lock scope.
2020-06-15 17:08:57 +03:00
Eladash
a0f0f58fc5
sys_event_queue: Fix IPC support
2020-06-15 17:08:57 +03:00
Eladash
92b7c56f29
sys_cond/mutex: Fix race between sys_cond_create and sys_mutex, Fix IPC support in sys_cond/mutex
2020-06-15 17:08:57 +03:00
kd-11
8d8fb4a2e4
rsx: Remove ARGB->D24S8 conversion shader which has been deprecated for years since compute capabilities were added to the emulator
2020-06-15 14:18:12 +03:00
kd-11
2e737ad483
rsx: Fix surface option invalidation
...
- Depth buffers can be in special "read" state when writes are disabled. Account for this.
2020-06-14 23:30:03 +03:00
Eladash
88a0e0fe2d
cellAudio: Minor fixup
2020-06-14 18:45:46 +01:00
Eladash
e2248332ae
rsx: Make "Disable ZCull Occlusion" setting dynamic
2020-06-14 18:45:46 +01:00
kd-11
3663a8ab4d
rsx: Improve surface options invalidation
2020-06-14 20:13:12 +03:00
Eladash
5430892052
sys_vm: Limit total process vsize to 256MB ( #8431 )
2020-06-14 15:27:34 +01:00
Eladash
ff04cd6d69
cellAudio: Fix event queue attachment
2020-06-14 02:31:23 +03:00
Eladash
aa4fdff82c
Fix lv2_obj::name64 regression
2020-06-14 02:25:29 +03:00
Nekotekina
e485c9c79c
Atomically overwrite config.yml
...
Protection against data corruption.
2020-06-12 22:41:50 +03:00
Eladash
bd6fdf3f2d
rsx: Optimize rsx::rsx_iomap_table construction
2020-06-12 22:40:58 +03:00
Eladash
e1f8573c68
sys_net: Fix sys_net_bnet_setsockopt page faults
2020-06-12 22:39:13 +03:00
Eladash
4bc157881d
sys_net: Stub sys_net_infoctl command 9
2020-06-12 22:39:13 +03:00
Eladash
f0d526411c
IDM: Implement idm::clear<typename>
2020-06-12 22:12:36 +03:00
kd-11
e1183f6919
gl: Fix depth buffer byteswap hint
...
- uint24_8 is not actually swapped, it is decoded in a special way
2020-06-12 20:49:47 +03:00
kd-11
f4ec28d932
rsx: Merge instruction expand flag with the other sign expand flags
...
- Avoids double expansion when both the exp_tex flag is set AND the texture also is sampled as signed
- Should fix missing eyeballs in Mass Effect 1 with the previous sign expansion fix
2020-06-12 20:19:20 +03:00
kd-11
ce587f43a0
rsx: Implement signed normalized texture formats
...
- Already partially supported via EXP option in the shader opcode, but format decoding was disabled.
- Noticed in some UE3 games which use _SNORM variants on PC but _UNORM on rpcs3
2020-06-12 20:19:20 +03:00
Eladash
6892399699
kernel_explorer: More Improvements
2020-06-12 09:28:23 +02:00
Eladash
b9cb181691
sys_memory: Improve allocation/deallocation syscalls
2020-06-11 20:03:32 +03:00
Eladash
0bf8f2a527
PPU interpreters: Fix VRFIM, VRFIN, VRFIP, VRFIZ
2020-06-11 14:31:38 +03:00
Megamouse
2dca8d84e1
patch manager
2020-06-11 13:15:25 +02:00
Eladash
c36c425fb9
kernel explorer: Improvements
2020-06-08 05:46:36 +03:00
Nekotekina
bfee541540
Atomically overwrite games.yml
...
Reduce chances of losing information.
2020-06-07 22:44:07 +03:00
Nekotekina
3d7c38ff9d
Remove lambda in sys_net_bnet_poll
2020-06-07 22:44:07 +03:00
Nekotekina
5d27f1c732
PPU: implement VNMSUBFP (precise variant)
2020-06-07 22:44:07 +03:00
Nekotekina
3b8e7d0967
Implement v128::fma32f
2020-06-07 22:44:07 +03:00
kd-11
ebbf329b6a
gl: Improve async compiler synchronization with initialization
...
- On multithreaded mesa, the program initialization routine was not
being flushed correctly. Set up synchronization fence after initialization
is complete.
2020-06-07 12:54:34 +03:00
kd-11
87cc937d4e
rsx/fp: Separate SRC precision modifiers
...
- SRC0, SRC1 and SRC2 have different bits for precision modifiers all stored inside SRC1
- This explains the strange observed behavior of the MAD instruction which has 3 inputs
2020-06-07 12:07:27 +03:00
Malcolm Jestadt
dcf5c06d6d
SPU LLVM: Optimize FM when op.ra == op.rb
2020-06-06 22:27:48 +03:00
Malcolm Jestadt
8357523ec0
SPU LLVM: Additional FCGT optimizations
2020-06-06 22:27:48 +03:00
Malcolm Jestadt
39149fd84d
SPU LLVM: Partial revert for FM/FMA changes and other improvements
...
- Revert changes to FM and FMA instructions
- Allow non accurate/approx FMA family instructions to use native FMA
- Minor optimization for FMA ops with a constant 0 multiply
2020-06-06 22:27:48 +03:00
Malcolm Jestadt
289c594187
SPU LLVM: Fix theoretical issue with FCGT optimizations
2020-06-06 22:27:48 +03:00
kd-11
d47d597b34
vk: Make the depth-convert pass multisample aware
2020-06-05 17:19:24 +03:00
kd-11
69c2150fbd
vk: Fix query reset when renderpass is active
...
- Performs delayed query reset on-demand
2020-06-05 17:19:24 +03:00
Megamouse
1cb4fb9c50
stub cellPngEnc
2020-06-04 23:13:40 +03:00
Megamouse
413f87b737
Add error_code to cellPngDec
2020-06-04 23:13:40 +03:00
Megamouse
8a8edb1b62
stub sceNpCommerce2
2020-06-04 23:13:40 +03:00
Megamouse
caa1324457
stub sceNpTus
2020-06-04 23:13:40 +03:00
Megamouse
41eb6d4461
cellAudio improvements
...
- use CELL_AUDIO_BLOCK_32 where possible
- use CELL_AUDIO_BLOCK_SAMPLES where possible
- remove redundant logging
- return CELL_AUDIO_ERROR_AUDIOSYSTEM in cellAudioGetPortConfig (probably unreachable code anyway)
- return CELL_AUDIO_ERROR_PORT_OPEN in cellAudioPortOpen
- stub cellAudioSetPersonalDevice cellAudioUnsetPersonalDevice and cellAudioMiscSetAccessoryVolume
2020-06-04 23:09:47 +03:00
illusion
0315781306
Audio dumper: append filename with titleid and date-time
...
prevents overwrite of old file
Co-authored-by: Megamouse <studienricky89@googlemail.com>
2020-06-04 20:10:56 +03:00
sampletext32
437f374bae
Fix some checks
2020-06-04 19:48:08 +03:00
Ani
9657b3f1d4
Fix sys_net_bnet_poll regression ( #8337 )
...
Co-authored-by: Eladash <elad3356p@gmail.com>
2020-06-04 17:30:11 +01:00
kd-11
650152e05f
rsx: Fix fragment state updates
...
- Fix copypasta for POLYGON_STIPPLE_PATTERN vs SET_POLYGON_STIPPLE method binding
- Use proper enums for ROP_control bits to avoid confusion
2020-06-03 22:05:33 +03:00
kd-11
73fe9b51de
rsx/fp: Ignore self-referencing register writes.
...
- Sometimes, usually with shaders that do pack/unpack operations, there is a write-to-self operation.
For example r0.xy = r0.xy
Obviously no new data was introduced into "r0" by this, so we should not mark the register as having new data.
- TODO: Investigate on realhw if self-reference is needed to "cast" the overlapping half registers to their full register counterparts.
2020-06-03 09:45:02 +03:00
kd-11
26b2e4253d
rsx: Properly account for memory sizes of reused surfaces
2020-06-02 21:37:57 +03:00
kd-11
b353bf6c56
rsx: Improve surface cache resource management
...
- Do not allocate too many objects. This is a problem in games using dynamic memory allocators that can make it rare for a surface to fall on the same address twice, keeping zombie RTVs and DSVs alive much longer than needed.
- Current limit used is 256M of virtual VRAM which is impossible on retail PS3
2020-06-01 22:24:27 +03:00
Malcolm Jestadt
c601374b1f
SPU LLVM: Use clamping helpers for FMA32x4 and FM
2020-06-01 21:39:28 +03:00
Megamouse
66d13da2ac
XAudio2: remove nasty 4x volume factor
2020-06-01 19:05:48 +03:00
Nekotekina
938ca90a02
Improve Stop Watchdog
...
Prevent termination if PPU LLVM compilation is in progress.
2020-06-01 02:27:33 +03:00
Nekotekina
2d2ed7efd0
Add game patch support in 'Create PPU Caches'
...
Try to compile patched version of EBOOT.BIN
2020-05-31 23:06:54 +03:00
Nekotekina
1507a59786
SPU LLVM: fix spu_cache dependency
...
Should fix possible crash on exit.
2020-05-31 21:54:04 +03:00
Eladash
675fde69aa
Avoid copying std::shared_ptr in sys_semaphore
2020-05-31 21:02:52 +03:00
Megamouse
99895471ae
cellAudio: make master volume dynamic
2020-05-31 07:37:59 +02:00
Nekotekina
377ad9887c
Compile EBOOT.BIN on 'Create PPU Caches'
2020-05-31 02:26:40 +03:00
kd-11
c9a978a03e
Typo fix
...
Co-authored-by: Megamouse <studienricky89@googlemail.com>
2020-05-30 14:47:10 +03:00
kd-11
59d44cd1cc
gl: Fix shader logging
2020-05-30 14:47:10 +03:00
kd-11
542a6aed51
rsx: Add stippled rendering support to interpreters
2020-05-30 14:47:10 +03:00
kd-11
1677618c75
rsx: Implement stippled rendering
2020-05-30 14:47:10 +03:00
Eladash
3df83e03a9
SPU: Fix possible deadlock after access violation via DMA transfers
2020-05-28 23:23:11 +03:00
Eladash
a199c71a55
SPU: Fix page faults notifications (non-TSX)
2020-05-28 23:23:11 +03:00
Eladash
3d20ce70f5
rsx: Fix possible case NULL zcull_ctrl in on_exit()
2020-05-28 11:56:02 +02:00
Eladash
f0cdd8ace6
PPU: Implement PPU Traps Stubbing option
2020-05-27 22:39:29 +03:00
Nekotekina
8e9d2fa70e
SPU LLVM: implement get_segment_base()
...
Fake function used to compute 32-bit offset of local functions.
2020-05-27 18:53:09 +03:00
Nekotekina
abf9a08ee3
Fix warnings
2020-05-27 18:41:17 +03:00
xddxd
f56b362769
rsx: Copypasta fix ( #8289 )
2020-05-25 20:07:11 +01:00
Eladash
865180e63e
sys_mmapper: Fix possible memory leak on error of create_lv2_shm
2020-05-24 19:24:07 +03:00
Eladash
3265772ae4
idm: Implement creation/destruction invalidation counter
...
* "Ensures" newely created IDs won't have the same ID as old destroyed objects for lv2_obj. (256 tries cycle)
Similar to how the kernel implements it.
2020-05-24 19:24:07 +03:00
kd-11
224a0e4b1a
rsx: Fix data format remapping
...
- Includes missing 0xEE and 0x44 variants of the 2-component data format remapper
2020-05-24 13:51:19 +03:00
kd-11
bd41a108d8
nv3089: Account for subpixel addressing
...
- Those strange offsets noted in some games seem to match to subpixel addressing.
For example, when scaling down by a factor of 4, a pixel offset of 2 will end up inside pixel 0 of the output
2020-05-24 11:31:37 +03:00
Mrlinkwii
68bee397eb
Update cellSpurs.h
2020-05-22 22:19:04 +03:00
Eladash
81749f4353
SPU/PPU disasm: replace unknown instructions message with question marks
2020-05-22 17:37:22 +03:00
kd-11
7080305d82
vk: Implement masked stencil buffer clears
...
- Partial stencil buffer clears were not implemented. This is for example where a game can choose to clear only some bits from the stencil buffer.
- Vulkan does not support masked stencil clears natively, it has to be implemented as a graphics operation.
- Also refactors vulkan overlay passes to use global resource system instead of forcing the render backend to own all of them and manage lifetimes.
2020-05-21 19:27:23 +03:00
Eladash
7c3166a0c6
SPU MFC: Fix MFC_WrListStallAck on interpreters
2020-05-20 22:55:30 +03:00
Eladash
4405f46aec
SPU MFC: Fix SN interrupts
2020-05-20 22:55:30 +03:00
Eladash
81684919f5
SPU MFC: Implement MFC_SDCRZ_CMD
2020-05-20 22:55:30 +03:00
sampletext32
1a8fb61373
Fix some misspells
...
Note: in main.cpp there are many dirs similar to Program Files, so tip should be appropriate.
2020-05-20 22:53:24 +03:00
Malcolm Jestadt
c47d04fd2f
SPU: Optimize FCGT
...
- Optimize FCGT to a single signed integer comparison when possible
- Add is_spu_float_zero helper
2020-05-20 21:55:01 +03:00
Megamouse
703841e251
Qt: disable TSX in the config.yml if not supported
2020-05-18 17:46:31 +02:00
Nekotekina
72fedccaba
rsx_utils.h: fix signed/unsigned comparison
2020-05-18 00:51:57 +03:00
Eladash
201d54ee08
PPU interpreters: Implement AltiVec NaNs precedence and data preservation
2020-05-18 00:35:06 +03:00
Ani
581176fb1a
gl: Restrict insert_vertex_input_fetch workaround to Intel proprietary
...
It works fine on Mesa iris
Fixes detection of Mesa as recent Mesa does not have "x.org" on vendor string, allowing vendor_MESA to become true instead of vendor_INTEL on Mesa Intel
2020-05-17 17:49:14 +03:00
Eladash
377e2ce3e8
rsx: Write 4-byte long data to all semaphores ( #8246 )
...
* rsx: Write 4-byte long data to all semaphores
2020-05-17 17:48:35 +03:00
Eladash
a2653532ef
SPU reservations (TSX): Remove wait flag in PUTQLLUC
2020-05-17 14:20:21 +03:00
kd-11
37df3c6f96
rsx/fp: Fix precision clamping on MAD instruction
2020-05-17 09:11:26 +03:00
AniLeo
a8bca8b2ed
gl: Only log shaders if g_cfg.video.log_programs is enabled
2020-05-16 16:16:17 +01:00
AniLeo
b0d3c4d75e
gl: Refactor shader type usage
...
Use Common/GLSLTypes.h program_domain instead of duplicated own internal
type
2020-05-16 16:16:17 +01:00
AniLeo
3db2f23e02
gl: Refactor shader compilation
2020-05-16 16:16:17 +01:00
Ani
661636efef
gl: Check for EXT_depth_bounds_test
...
Avoid glEnable/glDisable GL_DEPTH_BOUNDS_TEST_EXT flood that returns
GL_INVALID_ENUM if the feature isn't supported
2020-05-16 14:50:05 +01:00
AniLeo
99f5145aab
glsl: Avoid implicit int->uint conversions
...
Silences debug output regarding implicit int -> uint conversions
2020-05-16 11:45:59 +01:00
Eladash
8a0425570c
rsx: Fix data written to RSX semaphores and the initial data of them ( #8235 )
2020-05-16 09:55:56 +01:00
AniLeo
eecb22e749
gl: Remove older debug code
...
KHR_DEBUG path makes this obsolete, usage of this older path has been
removed a long time ago
2020-05-16 08:29:00 +01:00
AniLeo
3ad12cf5f8
gl: Avoid issuing glDelete calls with m_id == GL_NONE
...
Applies GL_NONE macro usage where it makes sense
2020-05-16 08:29:00 +01:00
AniLeo
308cdfac35
gl: Rewrite Debug Output
...
Remove Windows restriction, enable Debug Output for every supported OS
Filter our severity by Khronos severity
Handle and log source and type enums
2020-05-16 08:29:00 +01:00
Nekotekina
7824419bbf
Remove std::rotr usage for now
...
It seems to be missing on some std implementations.
2020-05-14 21:42:44 +03:00
Mrlinkwii
c22d778143
Spelling fix in texture_cache.h ( #8219 )
...
heurestic_end -> heuristic_end
2020-05-14 21:42:21 +03:00
Eladash
61f43d78df
SPU: Minor cleanup of exception in stop_and_signal
2020-05-14 16:58:50 +01:00
Eladash
54dd9f4eae
sys_spu: Fix sys_spu_thread_group_terminate vs sys_spu_thread_group_exit race on values
2020-05-14 16:58:50 +01:00
Eladash
91d06a9729
SPU LLVM: fixup after #8175 ( #8214 )
...
Mask out RESULT cmd bit, do not create unbound branch blocks. (non-TSX)
2020-05-14 13:34:14 +01:00
kd-11
310f367fb1
rsx: Improve blit engine memory validation ( #8215 )
...
- In blit engine logic there is a tendancy to over-allocate so as to avoid having to sticth together textures later
- Sometimes this can lead to out of bounds access and crash applications, so memory must be validated
2020-05-14 12:57:58 +01:00
Nick Renieris
b1fb5b6239
Emu/Config: Add option for accurate PPU LLVM vector NaNs
...
Turned off by default.
2020-05-14 11:14:28 +01:00
Nick Renieris
20d8d38e53
PPU Interpreter: Accurate vector instruction NaNs
...
Tested with https://github.com/RPCS3/ps3autotests/tree/master/tests/cpu/ppu_vpu .
This commit gets us from 2746 to 353 different lines compared to realhw.
2020-05-14 11:14:28 +01:00
Nick Renieris
78ac2a86bb
PPU LLVM: Accurate vector instruction NaNs
...
Tested with https://github.com/RPCS3/ps3autotests/tree/master/tests/cpu/ppu_vpu ,
results in that test improved by about half.
2020-05-14 11:14:28 +01:00
kd-11
cc723ed45c
vk: Properly fix dynamic state descriptors
2020-05-13 22:20:43 +03:00
kd-11
ed82288c1b
rsx/fp: Support more types of texture access
...
- Allows more instructions to correctly decode depth textures
2020-05-13 22:20:43 +03:00
Eladash
7680466e0d
Minor EFAULT fix in sys_semaphore_get_value/sys_event_flag_get
...
ESRCH preceeds EFAULT in both syscalls.
2020-05-13 19:36:44 +03:00
Eladash
9266507e4c
SPU: Implement spu_channel_(4_)t::try_read
2020-05-13 19:36:44 +03:00
Eladash
8cca113ef4
sys_spu: Add short sleep in sys_spu_thread_group_terminate
2020-05-13 19:36:44 +03:00
Eladash
7ff25588f4
sys_spu: Minor cleanup of group termination process
2020-05-13 19:36:44 +03:00
Eladash
93122196d9
vm: Fix vm::passive_lock regression ( #8175 )
...
possible broken signaling in rare occusions.
2020-05-13 16:53:59 +03:00
Eladash
5c4c8f4539
PPU: Use optimized reservation waiting for reservation load (non-TSX)
2020-05-13 16:53:59 +03:00
kd-11
118bfbbe98
rsx: Rewrite data texture remap expansion
...
- 16-bit channel formats have special 0x4|0xE encoding for only 2 channels, not 4
- float textures do not take any remapping and crash if you try it.
Depth float textures work fine though.
2020-05-13 14:33:22 +03:00
Eladash
12f0278808
SPU LLVM: Improve MFC transfers recompilation for non-TSX
2020-05-13 11:10:13 +01:00
Eladash
b38580bf32
SPU: Use optimized PPU signaling to SPU on reservation pause
2020-05-13 11:10:13 +01:00
Eladash
525453794f
SPU/PPU reservations: Optimizations part 1
...
- Implement vm::reservation_trylock, optimized locking on reservation stores with no waiting. Always fail if reservation lock bitsa are set.
- Make SPU accurate GET transfers on non-TSX not modify reservation lock bits.
- Add some optimization regarding to unmodified data reservations writes.
2020-05-13 11:10:13 +01:00
Megamouse
eb5ec211c2
Input: remember registered ldd controllers
...
- Don't reset ldd pads when saving a pad config
- Prevent configuration of registered ldd pads in the gui while ingame
2020-05-13 11:17:58 +02:00
JohnHolmesII
69ea573b0d
vk: Remove more deprecated VK_DYNAMIC_STATE_RANGE_SIZE usage ( #8206 )
2020-05-13 02:52:01 +01:00
kd-11
dd9397473a
vk: Remove deprecated enum VK_DYNAMIC_STATE_RANGE_SIZE ( #8202 )
2020-05-12 22:36:55 +01:00
sampletext32
86cf8a1717
Fix possible cur_ip nullptr usage in np_handler.cpp
2020-05-12 18:28:12 +02:00
Eladash
f95b81574f
sys_spu: Fix race in sys_spu_thread_group_destroy and other minor fixes ( #8182 )
...
* sys_spu: Fix race in sys_spu_thread_group_destroy and other minor fixes
* SPU: Wait for all threads to have error codes if exited by sys_spu_thread_exit
On last thread in group to run.
* sys_spu: Fix sys_spu_thread_group_start
* fixup ad fix sys_spu_thread_group_terminate
idk why "- !group->running" was put in the first place but its probably no longer relevant due to other changes and was causing other issues such as not always waiting for last SPU thread to set group state to INITIALIZED.
2020-05-11 21:24:04 +03:00
RipleyTom
dd5c54290c
Improves skylander generation ( #8177 )
2020-05-11 11:57:13 +01:00
kd-11
b6e8560532
rsx/fp: Fix PK2/UP2 instruction
...
- These variants take unsigned scalar inputs, not signed.
- Fixes ARGB8->X16Y16 in SR: Gat out of Hell
2020-05-11 09:37:00 +01:00
kd-11
79e2a87bc5
rsx: Fix NOP shader passing
...
- NOP shaders are used to stub rendering when a pass is supposed to be disabled
2020-05-10 21:54:34 +03:00
Eladash
bd61347b21
sys_spu: reset group exit status in sys_spu_thread_group_start
2020-05-10 03:46:11 +01:00
Eladash
09797c3584
sys_spu: Improve sys_spu_thread_get_exit_status
2020-05-10 03:46:11 +01:00
kd-11
14969cd8d0
rsx: Disable SCA writes to output register if vec result flag is set.
...
- Noticed when debugging X-men origins: wolverine which has a bogus SCA op whilst writing vector to output
- It makes no sense for both SCA and VEC to both write to the same register in the same instruction as memory ordering becomes an issue
2020-05-08 14:35:07 +03:00
kd-11
79c54aeba9
rsx: Move analyser dump to its own config option
2020-05-08 14:35:07 +03:00
kd-11
a1b6415c5a
rsx: Fix alpha ref
...
- The alpha ref register is compared directly to the ROP output register in realhw
- alpha ref content must match bit-width of ROP register, which means fp16 values are possible
2020-05-08 00:02:47 +03:00
Megamouse
8e2b2bc179
Don't load custom configs when adding games
2020-05-07 18:10:49 +02:00
Nekotekina
e1042bc631
Get rid of "module" keyword
...
Workaround some intellisense problems.
2020-05-06 18:20:11 +03:00
Eladash
a6025df7de
vm: reset stack memory after deallocation
2020-05-06 18:03:37 +03:00
Megamouse
5c4b8e8dee
Input: fix xinput deadzones
2020-05-06 09:33:38 +02:00
Megamouse
f95bf01c78
Input: fix trigger scaling
...
this is not a problem at the moment, but if you increase the trigger_max then the old code reports values bigger than 255
2020-05-06 09:33:38 +02:00
Megamouse
d4606cfdb9
Input: remame some functions
2020-05-06 09:33:38 +02:00
Nekotekina
907adc817e
Fix some warnings (GCC)
2020-05-05 21:55:22 +03:00
Eladash
1bd6cb2105
SPU/PPU debugger: use ':' instead of '='
2020-05-05 13:46:26 +03:00
kd-11
a3f25bc7c7
rsx/interpreter: Fix DIVSQ instruction
2020-05-05 13:18:03 +03:00
kd-11
a0f63a31e3
vk: Enable optimization passes for generated SPIRV
2020-05-05 13:18:03 +03:00
kd-11
4f7c020e63
glsl: Improve VGPR usage
...
- VGPR usage lowered from 159 -> 127 for texturing. Occupancy doubled from 1 to 2
- Eliminate most temporary registers
2020-05-05 13:18:03 +03:00
Eladash
edde748519
sys_event_queue: Fix forced event queue destruction
...
Add missing last existence check at sys_spu_thread_(try)receive_event and lv2_event_queue::send.
2020-05-04 01:10:19 +03:00
Eladash
37ce7056ac
lv2: Minor optimization for "awake all" threads in sleep queue
2020-05-04 01:10:19 +03:00
Eladash
b84b8f4db4
sys_cond_signal_all: Use SYS_SYNC_PRIORITY protocol to signal threads
2020-05-04 01:10:19 +03:00
Eladash
72bef8dd7f
PPU: Clear reservation on context switch
...
Ensure that only 2 PPU reservations exist at maximum at a time.
2020-05-02 14:57:38 +03:00
Eladash
0e6937a359
SPU GETLLAR: Don't use loop detection for TSX
2020-05-02 14:57:38 +03:00
Nekotekina
fc68c508c8
LLVM DSL: fix FNeg pattern matching
2020-05-01 22:00:57 +03:00
Nekotekina
cda8b3a59e
RSX: fix new warnings
2020-05-01 22:00:57 +03:00
Malcolm Jestadt
c1bd154bcd
SPU: Optimize FMA ops with 0 addend
2020-05-01 17:52:10 +03:00
Eladash
2b75df22d9
sys_event_queue: Fix ports disconnection after queue destruction
2020-04-30 18:58:42 +03:00
Eladash
37110098c7
cellAudioOut Improvements
2020-04-30 15:45:20 +03:00
Megamouse
8f0af6a6fe
rsx/interpreter: merge shader settings
...
- merge disable_asynchronous_shader_compiler and interpreter_mode
- removes disable_asynchronous_shader_compiler setting
- Adds the resulting settings as radio buttons to the gui tab
2020-04-30 15:02:59 +03:00
kd-11
2281c4f662
Fix build
2020-04-30 15:02:59 +03:00
kd-11
2ed50ba263
rsx/interpreter: Improve instruction accuracy
...
- Fix DIV instruction
- Add EXP_TEX modifier
- Implement WPOS register read
- Swap 3D and Cubemap enums to match RSX ids
- Adds two extra instruction classes: flow control and packing control
- Implement remaining FP instructions with exception of the rare projected texture lookups
- Fix typo causing output color index > 0 to not work
- Fix KIL instruction
- Implement conditional vertex program writes
2020-04-30 15:02:59 +03:00
kd-11
fc5b4026e1
vk: Implement optimized pipeline cache
2020-04-30 15:02:59 +03:00
kd-11
bc5c4c9205
rsx/gl: Implement variable path interpreter for optimal performance
2020-04-30 15:02:59 +03:00
kd-11
930bc9179d
rsx/interpreter: Improve instructions support
...
- Must statically write the gl_ClipDistance registers else you get uninitialized trash.
This problem is more readily apparent on NVIDIA technology but even AMD is not completely immune.
2020-04-30 15:02:59 +03:00
kd-11
b4bf48c33b
vk: Integrate shader interpreter
2020-04-30 15:02:59 +03:00
kd-11
0072df7f20
rsx/gl: Add basic interpreter support to OGL
...
- Adds basic interpreter functionality.
- Flow control and other instructions not yet implemented.
2020-04-30 15:02:59 +03:00
kd-11
65e9e568b5
config: Register shader interpreter modes
2020-04-30 15:02:59 +03:00
Nekotekina
19acf260d8
SPU DMA: Fix PUTLLUC (TSX)
...
Prevent edge case of missing store.
2020-04-29 15:40:41 +03:00
Eladash
f4f0fb88b1
kernel explorer: Add more information about SPU/PPU threads
2020-04-29 15:32:16 +03:00
Eladash
dd6825a7bd
Fix sys_ppu_thread_start error checking, fix rare bug in sys_ppu_thread_create
...
* Correct error code to EBUSY.
* lv2_obj::awake was called even when EBSUY should be returned.
* Fix sys_ppu_thread_create for a newly created thread with the same id as ppu_thread::id_base. (can happen if main thread exited before its creation)
2020-04-29 08:58:09 +03:00
Eladash
c1dc6838fa
Fix sys_ppu_thread_get_priority page faults
2020-04-29 07:57:47 +03:00
Eladash
69f82a7311
Make spu_mfc_cmd fmt properly show stalled commands
2020-04-29 07:47:49 +03:00
Eladash
791ec95313
sys_rwlock: Do not allow SYS_SYNC_PRIORITY_INHERIT
2020-04-29 05:56:47 +03:00
Eladash
954e3f6e6c
Fixup for cpu_flag::pause state check after #8114
2020-04-29 05:56:47 +03:00
Nekotekina
689419b0ca
Remove test_stopped() check from ppu_load_acquire_reservation
...
Fixes warning.
2020-04-29 00:09:40 +03:00
Eladash
833ace1190
rsx: Fix zcull time to not time travel to the future
2020-04-28 21:07:15 +03:00
Eladash
a505d87565
Partial revert of 3be687cd18
2020-04-28 20:20:19 +03:00
Nekotekina
790fd9ce14
SPU DMA: implement cmp_rdata_avx
...
Use technique similar to mov_rdata_avx with inline assembly.
2020-04-28 17:58:26 +03:00
Eladash
7da8ba5c15
Wait for SPU event to be received in sys_spu_thread_group_exit
...
Also use atomic check for group->run_state outside the mutex,
explicitly forbid group termination while we are waiting for an event to be received.
2020-04-28 14:58:17 +03:00