yahfz
1444492eab
lv2: Allow sys_sync_priority_inherit
2019-08-17 23:11:08 +03:00
eladash
050339bb3e
PPU/LV2: Make thread-lists scheduling atomic
2019-08-17 22:46:36 +03:00
Eladash
500a4fa2fb
rsx: Fix potential out of range methods execution (can result in segfaults)
2019-08-17 17:26:04 +01:00
Eladash
0d88f037ff
Add new accuracy control for PUTLLUC accuracy setting (non-TSX)
...
With the option enabled GET commands are blocked until the current PUTLLC/PUTLLUC executer on that address finishes
Additional improvements:
- Minor race fix of sys_ppu_thread_exit (wait until the writer finishes)
- Max number of ppu threads bumped to 8
2019-08-17 00:42:46 +03:00
Eladash
d8402008dd
Stub sys_process_get_number_of_object(object == SYS_SPUPORT_OBJECT)
2019-08-16 23:49:24 +03:00
Eladash
0dce6be8cb
Implement lv2_spu_image
...
- Improved sys_spu_image_.. error checking
- sys_process SYS_SPUIMAGE_OBJECT handling implemented
2019-08-16 23:49:24 +03:00
Eladash
80827aa31a
Stub sys_process_get_number_of_object(object == SYS_TRACE_OBJECT)
2019-08-16 23:49:24 +03:00
Eladash
6540fecdc3
Add another pattern to ppu analyzer imports
2019-08-16 22:55:04 +03:00
Pierre-Loup A. Griffais
f342f4b826
Work around a crash on startup on current versions of KDE on Linux.
...
https://bugs.kde.org/show_bug.cgi?id=401637
2019-08-16 20:37:41 +03:00
Pierre-Loup A. Griffais
56011cbddd
vk: don't die on VK_SUBOPTIMAL_KHR in AcquireNextImage, and recreate swapchain
...
vkAcquireNextImageKHR can also return VK_SUBOPTIMAL_KHR and is non-fatal.
However, it's a good idea to still recreate the swap chain later to maintain
optimal presentation paths after temporary occlusion.
2019-08-16 20:09:37 +03:00
msuih
42ff93d30c
Add advanced tab
2019-08-16 19:58:19 +03:00
Eladash
f2a2dfda3a
Improve unknown settings values dialog text message
2019-08-16 09:45:24 +02:00
Eladash
f0c267ecb0
Change default Sleep Timers Accuracy setting's value to "Usleep Only"
2019-08-16 09:45:24 +02:00
kd-11
a0f0c418d7
gl:Implement proper support for packed 16-bit rendertargets
...
- Also some minor refactoring
2019-08-15 14:00:17 +03:00
kd-11
7f85b18b46
gl: Add support for 4444 typeless texture
2019-08-15 14:00:17 +03:00
Megamouse
9f854dba98
Qt: move default stylesheet to stylesheets.h
2019-08-14 23:54:09 +02:00
Megamouse
503d43889d
rename rpcs3_app to headless_application
2019-08-14 23:54:09 +02:00
Megamouse
0dc7841d0f
Add cli arg for hidpi
2019-08-14 23:54:09 +02:00
Megamouse
13367071b0
update some comments
2019-08-14 23:54:09 +02:00
RipleyTom
2040a11585
header shuffling
2019-08-14 23:54:09 +02:00
Megamouse
8debdfcd09
handle empty callback returns
2019-08-14 23:54:09 +02:00
Megamouse
08c581947d
Create headless application [WIP]
2019-08-14 23:54:09 +02:00
Nekotekina
4df1c16099
Implement stx::typeinfo_v (util/typeindices.hpp)
...
Move and generalize logic from typemap.h
2019-08-14 21:04:25 +03:00
Nekotekina
f8f3067deb
Always check page_allocated in vm::check_addr
2019-08-14 20:28:34 +03:00
Nekotekina
d45c743877
Remove lib_loading_type::automatic
...
This is former default and is now obsolete.
2019-08-14 20:28:34 +03:00
Nekotekina
4f22559ff0
Remove dumb overloads of atomic_op, fetch_op
...
And lf_queue::apply.
Fix inlining problem by passing F by value.
2019-08-14 20:28:34 +03:00
Nekotekina
cf16ee5eb5
Implement lib_loading_type::liblv2list
2019-08-14 20:28:34 +03:00
Nekotekina
ae46333e99
Implement lib_loading_type::liblv2both
2019-08-14 20:28:34 +03:00
RipleyTom
87bf0386c4
Screenshot function
2019-08-14 19:24:42 +02:00
MarioSonic2987
b3f4cd3a95
Update "Enable native user interface" description
...
Since the merge of native OSK, back in February 2019, RPCS3 is able to support more languages with native UI. However, the description hasn't been updated since then.
As far as I know, the languages that are now supported are English, French, German, Italian and Spanish.
Both Greek and Russian use different alphabets from Latin, therefore they aren't supported. Polish or Norwegian uses special Latin characters that aren't covered in extended ASCII character set. Chinese, Japanese and Korean aren't also supported.
2019-08-14 04:44:59 +01:00
Eladash
7fda07eb5b
rsx: UB fix (signed vs unsigned mismatch)
2019-08-13 20:48:50 +01:00
Eladash
519fe9309e
rsx: Fix nv0039::buffer_notify
2019-08-13 20:48:50 +01:00
Eladash
527b1bb071
rsx: Fix overlapping transfer of nv3089::image_in when out_pitch != in_pitch
...
or out_pitch != out_bpp * out_w
2019-08-13 20:48:50 +01:00
Eladash
19825366f5
Fixup for fixup
2019-08-13 17:55:45 +01:00
Eladash
a902874b01
Fixup after #6286
2019-08-13 13:34:14 +03:00
Eladash
a4896eb6df
Fix race on cellVdecClose TLS cleanup
2019-08-13 04:56:00 +03:00
Eladash
30c72b105e
Fix race on notifying vdec thread in cellVdecGetPicture
...
Can dereference nullptr if cellVdecClose was called simultaneously.
2019-08-13 04:56:00 +03:00
Eladash
14ac70dfbf
Avoid using _sys_ppu_thread_exit in _sys_interrupt_thread_disestablish
2019-08-13 04:56:00 +03:00
Eladash
4b82006984
ppu: Improve LWSYNC
...
Block load<->load reordering as real lwsync.
2019-08-13 04:56:00 +03:00
eladash
4f00af6000
ppu interpreter: Allow non-ssse3 to use fast path
...
byte shuffle is now removed which was the barrier for ssse3 check.
2019-08-13 04:56:00 +03:00
Eladash
6d3fc3a386
core config: Expose min/max ranges of integral settings and use it
2019-08-13 04:56:00 +03:00
Eladash
a6c94a0eaf
Fix possible infinite loop on vm area searching (sys_mmapper_allocate_address)
...
Specifically when allocation with 0x8000'0000 alignment fails.
2019-08-13 04:56:00 +03:00
Eladash
cd4e895c04
Use error_code in mmapper_thread_recover_page_fault
2019-08-13 04:56:00 +03:00
Eladash
629d8e3a51
Fix sys_time_get_current_time() date
2019-08-13 04:56:00 +03:00
Eladash
6d0f2ae58a
ppu interpreter: Improve SRD/SLD
2019-08-13 04:56:00 +03:00
Eladash
a560498cd4
ppu: Improve FCTIW, FCTIWZ, FCTID and FCTIDZ
2019-08-13 04:56:00 +03:00
Eladash
0a5b6ad928
Add missing EALIGN check for sys_mmapper_search_and_map
2019-08-11 21:43:13 +03:00
Eladash
a832581201
Fix sys_vm address boundary checks (fix vsize)
2019-08-11 21:43:13 +03:00
Eladash
ecb3b62787
Fix CELL_CAMERA_ERROR_NOT_INIT check in cellCameraSetNotifyEventQueue when camera set to null
...
Don't worry, this was a duplicated check for null camera setting.
2019-08-11 21:43:13 +03:00
Eladash
96527eee5b
idm: Fix bug in ID searching
...
* ID checking now checks if (id % step) == 0
* Extend possible ID range to allow UINT32_MAX (as long as base is non-zero)
2019-08-11 21:43:13 +03:00
Eladash
5c904bf3e2
Fix max allocations for DECR mode (sys_memory)
2019-08-11 21:43:13 +03:00
Eladash
cbcd06d1dc
ppu: Stack size allocation improvements
2019-08-11 21:43:13 +03:00
Eladash
3ce18fd960
Implement vm::page_executable ( #6330 )
...
Fixes segfaults when attenpting to set segfaults on non-executable memory.
2019-08-11 21:04:17 +03:00
Eladash
94d33003a3
Write zero in attr->pad (sys_memory_get_page_attribute)
...
Its included in lv2 as well.
2019-08-10 19:47:37 +03:00
Eladash
25e47e0de0
Fix vm::check_addr memory state check
2019-08-10 19:47:37 +03:00
kd-11
8866a3d6a9
rsx: Cleanup for blit engine fixes
2019-08-10 16:45:02 +01:00
msuih
8150095e8f
Qt warnings cleanup
2019-08-10 16:15:24 +02:00
Megamouse
f051f53e15
Qt: add setting for trophy manager icon background color
2019-08-10 15:13:36 +02:00
Megamouse
2f12226ff9
Qt: add setting for save manager background icon colors + fix icon size
2019-08-10 15:13:36 +02:00
Megamouse
d4c635a83c
Qt: change default icon background color to something friendlier looking
2019-08-10 15:13:36 +02:00
Megamouse
697128464b
Qt: add some sanity checks to prevent list crashes
2019-08-10 15:13:36 +02:00
Megamouse
0559e929d4
fix some warnings
2019-08-10 15:13:36 +02:00
Megamouse
efcb46658b
Qt: fix initial trophy icon background color
2019-08-10 15:13:36 +02:00
Megamouse
01720afba9
silence some warnings
2019-08-10 11:02:20 +02:00
kd-11
033836d88c
rsx: Minor fixup for nv3089::image_in
...
- Typo scale_x->scale_y
- Remove convoluted temp buffer creation and just use vector instead
2019-08-08 15:48:22 +03:00
Eladash
112ad9dda2
Allow to load liblv2.sprx with manual/both lib loading options ( #6274 )
2019-08-07 18:41:27 +03:00
RipleyTom
05813c7e90
Fixes suspend+stop threads not stopping
2019-08-04 21:16:19 +03:00
xddxd
6e89e4ebbf
Update game_list_frame.cpp
2019-08-04 13:29:45 +02:00
Megamouse
4ad784d614
Qt: select custom configs when opening the custom config folder
2019-08-04 08:45:52 +02:00
Eladash
c219417f62
sys_vm: Fix sys_vm_invalidate
2019-08-03 14:29:17 +01:00
Nekotekina
5bd17a44c9
Add fallback implementation for waitable atomics
...
May improve perf on OSX/BSD
2019-08-02 18:37:23 +03:00
Eladash
72fb3ba794
perf hotfix for sys_timer_usleep
2019-08-01 23:38:09 +03:00
kd-11
f0bd0b5a7c
rsx: Conditional render sync optimization
...
- ZCULL queue was updated to one-per-cb but the conditional render sync hint was not updated.
- Do not unconditionally flush the queue unless the upcoming ref is contained in the active CB.
- This avoids spamming queue flush, which frees up resources and improves performance
2019-07-30 21:13:42 +03:00
Malcolm Jestadt
d689a6e47b
vk: Don't warn RADV users on LLVM 8.0.1
...
- The 'back screen' issue on RADV was resolved with LLVM 8.0.1
2019-07-30 19:56:05 +03:00
eladash
e40b76b253
sys_lwcond: Extract protocol from lwmutex at creation
...
This is the only reason theres a need to specify lwmutex_sq id at creation. unlike sys_cond, lwcond isn't connected to lwmutex at the lv2 level.
SYS_SYNC_RETRY fix is done explicitly at the firmware level.
This fixes issues when the original lwcond and lwmutexol data got corrupted or deallocated, this can happen when the program simply memcpy the control data to somewhere else.
Or if it uses direct lv2 the lwcond conrol param can even be NULL which will make it access violate when dereferncing it. (This param is unchecked and can be anything)
2019-07-29 21:58:04 +03:00
eladash
7508ae6e65
Add EAGAIN check for sys_memory_contianer_create
2019-07-29 21:55:59 +03:00
eladash
1e5e0f3b5e
make sys_fs_closedir atomic
2019-07-29 21:55:59 +03:00
Nekotekina
949f33c8a4
Fix sys_config_get_io_event syscall name
2019-07-29 21:55:59 +03:00
Nekotekina
c6993d3f1c
Change bits of waitable atomics
...
Reduce max waiter count to 2^14.
Refactor code to use waiter_mask and signal_mask constants.
2019-07-29 21:55:59 +03:00
Nekotekina
e1db6cef6f
Remove ignored bits in waitable atomics
...
It was not implemented correctly.
2019-07-29 21:55:59 +03:00
Eladash
829047ecdb
ppu disasm: Improve ORI and ORIS disassembly
2019-07-29 18:28:39 +03:00
Nekotekina
f63e89f9b4
Implement waitable atomics
...
Moved Atomic.h to util/atomic.hpp
List source files in CMakeLists.txt
2019-07-29 03:04:55 +03:00
Nekotekina
ec2db8edbc
Correct get_int_t to get_uint_t.
...
Add get_sint_t.
2019-07-29 00:12:07 +03:00
Eladash
997e3046e3
vm/sys_overlay Improvements
...
- Implement sys_overlay_load_module_by_fd.
- Implement special segment allocation when ppc_seg flag is specified.
2019-07-28 14:23:58 +03:00
Megamouse
65134f73d6
Qt: properly scale icons in trophy manager
2019-07-27 15:29:05 +02:00
Megamouse
76a1fd5c88
Qt: simplify game list icon resize
2019-07-27 15:29:05 +02:00
kd-11
1de90bdb1f
rsx: Improve aliased data preservation
...
- Carve out inherited region if any
- Perform pitch compatibility test before assigning old_surface
2019-07-27 16:09:21 +03:00
msuih
738cfccbba
Save manager improvements
2019-07-27 11:48:37 +02:00
Eladash
230c3d55b6
Fixup
2019-07-27 04:03:29 +01:00
Eladash
fcc75c8b0f
rsx: Write atomically semaphore updates and fix zcull timestamp
2019-07-26 21:27:55 +03:00
Eladash
22994d15fb
Fix cellCamera events support with clocks scaling
2019-07-26 21:27:55 +03:00
Eladash
c53f0dd7b5
rsx: Fix gcm unmap events
2019-07-26 21:27:55 +03:00
Megamouse
b56b425b19
Emu: set m_title to the actual disc game title
2019-07-25 08:53:07 +02:00
Megamouse
b44b44b3c4
Qt: cleanup some comments
2019-07-25 08:53:07 +02:00
Megamouse
71c56b719c
Emu/overlays: fix background picture path
2019-07-25 08:53:07 +02:00
Nekotekina
090c71aa7c
TSX: Improve cpu_thread::suspend_all implementation
...
Implement low_lock and vip_lock (for shared_mutex).
Try to simplify suspend_all implementation with updated shared_mutex.
2019-07-24 17:25:52 +03:00
Eladash
49aefc0795
Prefetch MFC list elements ( #5345 )
...
* Prefetch mfc list elemets to protect from overwriting
Also move some stuff away from command processing such as a few constant arguments setup
2019-07-24 01:13:45 +03:00
Eladash
85b1152e29
Timers scaling and fixes
2019-07-23 00:09:01 +01:00
Eladash
d17be2c2ec
Fix similar bug in sys_rsx_context_iomap
...
TODO: Is there an rsxmem unmap event for those cases?
2019-07-22 15:16:43 +03:00
Eladash
cf4d715284
typo fix (to squash)
2019-07-22 15:16:43 +03:00
Eladash
2b721b9e29
correctness fix
...
Not that it really matters because of gcm's lwmutex but just in case the syscall is useb directly.
2019-07-22 15:16:43 +03:00
Eladash
492c9e3c7c
Fix sys_rsx_context_iounmap partial unmapping
2019-07-22 15:16:43 +03:00
Rui Pinheiro
070c3af50f
Initial sys_config implementation
2019-07-22 02:44:45 +03:00
Megamouse
6128fffd3e
Qt: make text labels in about dialog selectable
2019-07-21 20:07:19 +02:00
Silent
66c1143a65
Improvements to Virtual File System dialog:
...
- Replace Add Directory and Reset buttons with + and - buttons
- Add a confirmation message before Reset All
- Rename "Okay" to "Save" (to be in line with the rest of the UI) and add a Close option to quit without savin
2019-07-21 13:25:43 +02:00
Silent
f5f0a5aa19
Use move semantics with several shared pointers in vfs_dialog, they need not be copied
2019-07-21 13:25:43 +02:00
Megamouse
78ecacabcb
input: keep pads intercepted while regular buttons are still pressed
2019-07-21 10:18:59 +02:00
kd-11
9a7c2784f0
rsx: Do not clip scissor to viewport when doing buffer clear
2019-07-20 16:39:32 +03:00
kd-11
e2574ff100
rsx: Support CSAA transparency without multiple rasterization samples enabled
2019-07-19 15:49:08 +03:00
Malcolm Jestadt
79ddf55937
Fix decryption filtering for case sensitive platforms
...
- Filter for .BIN instead of .bin
2019-07-19 14:46:53 +03:00
kd-11
b5a2f0df68
rsx: Implement separate viewport raster clipping
...
- Merge viewport raster window and scissor into one clipping region
- Viewport raster clip is different from viewport geometry clipping in
hardware as the latter is configurable separately
2019-07-19 14:21:19 +03:00
Nekotekina
1b140c8e97
SPU Recompiler: optimize JIT memory consumption
...
Avoid rebuilding trampoline for every function at startup.
This should fix Out of Memory error in some cases.
2019-07-19 04:56:35 +03:00
msuih
95b6883ad4
Tiny typo fix
2019-07-18 19:16:17 +02:00
msuih
d9c311737d
Keep custom name when adding/removing game-specific config
2019-07-18 19:16:17 +02:00
scribam
a268415121
vk: Use macros from Vulkan SDK
2019-07-17 17:56:29 +03:00
kd-11
ea2f4d57fa
rsx: Fixups
2019-07-17 13:29:42 +03:00
kd-11
113a49e00c
rsx: Handle cyclic references when doing memory inheritance
2019-07-17 13:29:42 +03:00
kd-11
34b06453f9
rsx: Handle lost data due to unused data sections
...
- After splitting, the sections may not be referenced at all for anything other than just pixel storage
- In such cases, either merge down or sample from the upstream source instead
2019-07-17 13:29:42 +03:00
kd-11
998717659f
rsx: Fix reference leak when cloning surfaces
2019-07-17 13:29:42 +03:00
kd-11
009e01a347
rsx: Set up for multi-section inheritance
2019-07-17 13:29:42 +03:00
Alex James
397e5dd1ea
Qt/game_list_frame: Ignore file entries when adding disc/game directories
...
Fixes #6212 .
2019-07-16 15:58:52 +03:00
Nekotekina
736ec4035e
Fixup for SPU Recompilers, regression after #6210
2019-07-15 19:51:58 +03:00
Nekotekina
cb5c26f2b5
Fix SPU Interpreter regression after #6147
2019-07-15 16:34:34 +03:00
Eladash
1e2f81dd33
kernel explorer typo fix
2019-07-15 15:50:40 +03:00
Nekotekina
c01f1a8968
Avoid transitive include of vm_ref.h
...
Add forward declarations of vm::_ref_base
Remove default AT = u32 in _ptr_base and _ref_base (doesn't play well).
2019-07-15 15:46:46 +03:00
Nekotekina
cfa1416d64
sys_spu: add vm::temporary_unlock
2019-07-14 18:33:23 +03:00
Nekotekina
1a1eff66bc
sys_timer: add vm::temporary_unlock
2019-07-14 18:21:56 +03:00
Nekotekina
bc1617758c
sys_semaphore: add vm::temporary_unlock
2019-07-14 18:18:03 +03:00
Nekotekina
6126a98111
sys_rwlock: add vm::temporary_unlock
2019-07-14 18:14:15 +03:00
Nekotekina
e1293b14f8
sys_net: add vm::temporary_unlock
2019-07-14 18:11:00 +03:00
Nekotekina
f5ee8c1292
sys_interrupt: add vm::temporary_unlock
2019-07-14 18:08:18 +03:00
Nekotekina
0a88a23bf5
sys_event: add vm::temporary_unlock
2019-07-14 18:06:02 +03:00
Nekotekina
cbfa6cc91f
sys_vm: add vm::temporary_unlock
2019-07-14 17:55:26 +03:00
Nekotekina
38d4e3c184
sys_mmapper: add vm::temporary_unlock
2019-07-14 17:51:03 +03:00
Nekotekina
7398cfc950
sys_event_flag: add vm::temporary_unlock
2019-07-14 17:37:58 +03:00
Nekotekina
22e4ef147a
SPU TSX: fix "Preferred SPU Threads"
2019-07-14 17:33:20 +03:00
Megamouse
9ff6486c85
Qt: Fix small controller icon in pad settings for high dpi modes
2019-07-14 16:19:02 +02:00
Eladash
3de885c7a6
Dealloc exec cache after sys_prx/overlay_unload_module
...
Must come before vm::dealloc of it.
2019-07-13 16:59:58 +03:00
Megamouse
3d6c211382
Qt: fix app versions after a patch was removed from the game list
2019-07-13 10:50:41 +02:00
Malcolm Jestadt
94af3b3f03
vk: Fix Linux Vega float16_t workaround
...
- It was disabling float16_t for non Vega cards
2019-07-12 12:25:46 +03:00
yahfz
ae055f6792
Set the default SPU Decoder to LLVM and rename SPU LLVM to "fastest"
2019-07-11 23:39:27 +02:00
Eladash
17c8ac9ab8
rsx: Debugger output text fix
2019-07-12 00:19:56 +03:00
Eladash
c4d8ef4340
rsx: Allow to configure vblank rate
...
Removed "HLE protection" hack from sys_rsx_context_attribute
2019-07-12 00:19:56 +03:00
Eladash
efbae02a22
Fix Emu.Stop() with vulkan device enumeration hack
2019-07-11 23:34:29 +03:00
Silent
f3551cedb7
rsx: Swap R and B channels in SET_BLEND_COLOR since this color is BGRA, not RGBA
2019-07-11 22:51:01 +03:00
RipleyTom
6c6b973342
Microphone implementation
2019-07-11 20:13:12 +01:00
kd-11
2898309f68
vk: Silence some debug prints
...
- This message confuses some users
2019-07-11 13:22:13 +03:00
kd-11
fc09572648
rsx: Implement texel border decode
...
- Texel borders are no longer actually supported in modern APIs
- Removes the border texels and uses border color instead which is incorrect but should work fine
2019-07-11 13:22:13 +03:00
kd-11
d8f753f1e8
rsx: Do not allow framebuffer surfaces that exceed their allocated pitch dimensions
...
- Truncate surfaces to forcefully fit inside the declared region
2019-07-11 13:22:13 +03:00
Eladash
537d3f2548
Log last function on debug pause or exception, dump cpu_thread state on access violation
2019-07-10 17:35:39 +03:00
Eladash
d7a2d42d8f
MFC: Fix Tag Status report for sync/eieio/barrier commands
2019-07-10 17:35:39 +03:00
Silent
2016a33277
Fixed behaviour of buttons in Welcome, Find, Settings, VFS and Debugger dialogs - now reacting to button click, not press
2019-07-10 13:14:05 +03:00
Margen67
ab228d6407
Fix #6180 (typo in UI options)
2019-07-10 07:55:01 +02:00
Eladash
78e447e28c
rsx: Typo fix
2019-07-09 22:47:55 +03:00
kd-11
2548057ea0
vk: Improve AMD driver support
...
- Workaround broken fp16 in AMDVLK/RADV
- Do not disable primitive restart as the issue seems to have been fixed
2019-07-09 16:27:59 +03:00
kd-11
956270d9be
gl: Add readback/writeback config for format GL_R16
2019-07-09 16:27:59 +03:00
kd-11
c072c511a1
rsx: Add support for slice padding rows when gathering slices for cubemap/3d
2019-07-09 16:27:59 +03:00
kd-11
9ca6546dec
vk: When reusing resources, make sure to reinitialize the component layout
2019-07-09 16:27:59 +03:00
kd-11
0cc672dcb3
vk: "Improve" initialization hack
...
- Change default alpha to 1 from 0
- TODO: Implement memory tagging for synchronizing this
2019-07-09 16:27:59 +03:00
kd-11
219a5382f7
rsx: If no array streams are enabled, mark inline array as disabled (null render)
2019-07-09 16:27:59 +03:00
kd-11
7840cd914e
rsx: Fixup nv3089::image_in
...
- Correct pitch when sourcing from temp block
- Remove obsolete? double transfer that also introduced a stale pointer reference to freed memory
2019-07-09 16:27:59 +03:00
kd-11
c47f4fd59e
vk: Fix frame skipping
2019-07-09 16:27:59 +03:00
Nekotekina
b9130dd663
Remove redundant const on return value in rsx_methods.h
2019-07-09 12:09:21 +03:00
Nekotekina
d1db6a6827
Revert incorrect usage of le_t in name_u64
2019-07-09 12:07:58 +03:00
Eladash
6fba3dd90c
Misc correctness improvement
...
Use let_<u64> for name_64 and prefer it when possible.
2019-07-09 11:52:34 +03:00
Eladash
d57b4dc8f3
rsx: Refactor rsx_decode.h and bugfixes
2019-07-09 11:52:34 +03:00
Nekotekina
92c08be387
Build with -fno-strict-aliasing
...
Doesn't affect MSVC build since MSVC already works in a similar manner.
2019-07-08 19:39:44 +03:00
kd-11
50736263d2
gl: Fix native pitch computation
2019-07-08 18:04:56 +03:00
Eladash
6d65d3424f
rsx: Clamp fragment shaders address
2019-07-06 20:58:18 +03:00
Eladash
4c2fb54b99
Fix possible inconsistencies for sys_memory mem stats report
2019-07-04 22:35:22 +03:00
kd-11
ad10eb391e
vk: Reuse discarded memory whenever possible instead of recreating new
...
objects
- Memory allocations are surprisingly expensive when spammed
2019-07-03 15:52:16 +03:00
kd-11
71e809a78b
rsx: Implement dma abort in case of a reset after misprediction
2019-07-03 15:52:16 +03:00
kd-11
0f11939faf
vk: Refactor gc
2019-07-03 15:52:16 +03:00
kd-11
ae93b417ec
vk: Handle emergency commandbuffer close with dangling queries
...
- TODO: Refactoring
2019-07-03 15:52:16 +03:00
kd-11
d69e8288ad
vk: Restructure commandbuffer submission into tagged event IDs
...
- Tagged eventIDs can be used to safely delete resources that are no
longer used
- TODO: Expand gc to collect images as well
- TODO: Fix the texture cache to avoid over-allocating image resources
2019-07-03 15:52:16 +03:00
kd-11
ce04a797c3
vk: Fix event signal race when speculation fails to avoid a cache miss
...
- TODO: Proper GC for stale events
2019-07-03 15:52:16 +03:00
Malcolm Jestadt
b5d5113803
gl: Workaround slow PBO usage with Mesa
...
-Mesa is currently fastest with GL_STREAM_COPY
-See a338dc0186
-Also see https://bugs.freedesktop.org/show_bug.cgi?id=111043
2019-07-03 11:28:29 +03:00
msuih
690cdff0d3
Minor fixes
...
- Fix a typo in OpenAL
- Fix typo in cellHttp.h
- Unused variables in catch
- Use 64-bit shifts
- Use use_count with shared pointers, unique is depracated and getting removed
- Explicitly cast boolean to int
- Signed/unsigned issues with loop variables
- Fix missing return statement (the code path is unreachable, but compiler wants a return)
- */ ouside of comment
- Fix duplicate layout name
2019-07-01 04:33:23 +03:00
msuih
503e023815
Explicitly downcast integers
2019-07-01 04:33:23 +03:00
msuih
d57124d075
Explicitly cast size_t to integer types
2019-07-01 04:33:23 +03:00
msuih
146e43b6ec
Do not use negative unsigned literals
2019-07-01 04:33:23 +03:00
msuih
13a557fe67
Silence some warnings
...
These are technically UB but work just fine
2019-07-01 04:20:00 +03:00
Eladash
2bce367488
Fixup for fixup ( #6153 )
...
* Fixup for fixup
* Fix memory ordering for MTRSX
volatile doesnt block reordering.
* ugh
2019-06-30 12:47:42 +03:00
Eladash
43f919c04b
Fixup after #6143 ( #6146 )
...
vm::spu max address was overflowing resulting in issues, so cast to u64 where needed. Fixes #6145 .
Use vm::get_addr instead of manually substructing vm::base(0) from pointer in texture cache code.
Prefer std::atomic_thread_fence over _mm_?fence(), adjust usage to be more correct.
Used sequantially consistent ordering in semaphore_release for TSX path as well.
Improved memory ordering for sys_rsx_context_iounmap/map.
Fixed sync bugs in HLE gcm because of not using atomic instructions.
Use release memory barrier in lwsync for PPU LLVM, according to this xbox360 programming guide lwsync is a hw release memory barrier.
Also use release barrier where lwsync was originally used in liblv2 sys_lwmutex and cellSync.
Use acquire barrier for isync instruction, see https://devblogs.microsoft.com/oldnewthing/20180814-00/?p=99485
2019-06-29 18:48:42 +03:00
Eladash
1ee7b91646
Refactoring ( #6143 )
...
Prefer vm::ptr<>::ptr over vm::get_addr.
Prefer vm::_ptr/base over vm::g_base_addr with offset.
Added methods atomic_t<>::bts and atomic_t<>::btr .
Removed obsolute rsx:🧵 :Read/WriteIO32 methods.
Removed wrong check in semaphore_release.
Added handling for PUTRx commands for RawSPU MFC proxy.
Prefer overloaded methods of v128 instead of _mm_... in VPKSHUS ppu interpreter precise.
Fixed more potential overflows that may result in wrong behaviour.
Added io/size alignment check for sys_rsx_context_iounmap.
Added rsx::constants::local_mem_base which represents RSX local memory base address.
Removed obsolute rsx:🧵 :main_mem_addr/ioSize/ioAddress members.
2019-06-29 01:27:49 +03:00
msuih
e043412be4
Add timeout for vulkan device enumeration
2019-06-28 23:34:13 +03:00
JohnHolmesII
232a35b6fc
Various small warning fixes
...
-Indentation warnings
-prevent shift overflow
-This was declared extern in all contexts. Remove this for initialization
-Fix main return types. OH CANADA!
-Silence extraneos 'unused expression' warning
-Force use return value (warning)
-Remove tautological compare copy-pasta (char always < 256)
2019-06-28 01:45:29 +03:00
JohnHolmesII
948c1df969
Remove unecessary vulkan loader check var, per kd
2019-06-28 01:45:29 +03:00
JohnHolmesII
a124ec4a26
Remove braces around shader source strings (warnings)
2019-06-28 01:45:29 +03:00
JohnHolmesII
d0eae7bab1
Fix -Wsign-compare a little bit
...
Explicitly mark loop types (per review)
2019-06-28 01:45:29 +03:00
JohnHolmesII
22917084d9
Explcitly mark overflow in various SIMD functions. Doing so silently
...
created warnings.
2019-06-28 01:40:52 +03:00
JohnHolmesII
ebb1ae6408
Properly ignore SIMD macros to avoid warning
2019-06-28 01:40:52 +03:00
JohnHolmesII
23094b48bb
Fix warnings related to -Wswitch
...
Add default cases.
Move default breaks to newline
Add proper handling in some instances.
Add missing enums to switches
2019-06-28 01:40:52 +03:00
JohnHolmesII
be521ff0ab
Fix warnings related to parentheses
2019-06-25 20:36:32 -07:00
JohnHolmesII
32f8f40a4a
Disable warnings for stb_image.cpp. Should this file be moved to
...
3rdparty?
2019-06-25 20:36:32 -07:00
JohnHolmesII
27fca2ed33
CMake refactor
2019-06-25 20:36:32 -07:00
Nekotekina
1641be5e0c
Fix UTF-8 BOM in vm.cpp
2019-06-25 22:21:56 +03:00
Malcolm Jestadt
31afd046b0
lv2: sys_timer_usleep improvements for linux
...
-The minimum quantum on linux appears to be 50 microseconds by default, not 100
-Do not wait for the last quantum to avoid sleeping too long
2019-06-25 20:20:05 +01:00
kd-11
9ce7b8a401
vk: Add LLVM8 warning for RADV drivers
2019-06-25 20:50:54 +03:00
kd-11
009c55fcba
vk: Fix broken layout stream on first draw call
2019-06-25 20:50:54 +03:00
kd-11
4ff77a8555
rsx: Improve balancing of the offloader thread
...
- Use two counters to avoid atomic operations
- Yield instead of sleeping because some games are very sensitive to timing
2019-06-25 20:50:54 +03:00
kd-11
8249d51aa8
vk: Optimize occlusion pool management
...
- Do not consume a slot every draw call, instead batch as many draws as possible
- Since renderpasses are dispatched per-draw-clause, keeping occlusion queries outside the renderpasses works fine
- If renderpasses are reorganized, occlusion tasks will have to be reorganized again
2019-06-25 20:50:54 +03:00
kd-11
1ee675e1f4
facepalm of the year
...
- Typo fix
- This check leads to forever relocating memory if size never exceeds capacity!
2019-06-25 20:50:54 +03:00
kd-11
2b9c315374
rsx: Use rpcs3 thread construct for the offloader thread
2019-06-25 20:50:54 +03:00
kd-11
d26b25816d
rsx: Improve profiling setup
...
- Avoid spamming QPC when not needed
- Free performance when debug overlay is not enabled
2019-06-25 20:50:54 +03:00
kd-11
b893a75002
rsx: Rework RSX offloading
...
- Use a lockless queue
- Do not enqueue small transfers
2019-06-25 20:50:54 +03:00
kd-11
c32c1b0a62
gl: Minor API tweaks
...
- Avoid spamming the driver with samplerParameter calls unless the parameters have actually changed
2019-06-25 20:50:54 +03:00
kd-11
6a32f716db
rsx: Reimplement vertex layout streaming
...
- Remove string comparisons from the hot-path!
- Use attribute streaming and push constants to avoid forcing a descriptor block copy every other draw call/pass.
While this isn't so bad on nvidia cards, it makes AMD cards a slideshow.
2019-06-25 20:50:54 +03:00
kd-11
59ee74a275
rsx: Disable vertex cache if multithreaded memory access is enabled
...
- When multithreaded RSX is enabled, the vertex cache just lowers performance
- The small cost of upload is paid by the asynchronous thread, allowing RSX to work optimally
2019-06-25 20:50:54 +03:00
kd-11
0fa3bcc336
rsx: Asynchronous data transfer
2019-06-25 20:50:54 +03:00
kd-11
358169507c
rsx: Use SSE to accelerate index buffer uploads
2019-06-25 20:50:54 +03:00
kd-11
b645ebdb04
vk: Refactor device management and improve driver detection
2019-06-25 20:50:54 +03:00
kd-11
25bba9bf56
vk: API update
...
- use KHRONOS_validation instead of LUNARG_standard_validation which is deprecated
2019-06-25 20:50:54 +03:00
kd-11
f113cfe5c0
vk: Avoid some useless memory barriers
...
- Do format conversions only when necessary
2019-06-25 20:50:54 +03:00
kd-11
c9501b60ab
rsx: Use explicit fma for MAD emulation
2019-06-25 20:50:54 +03:00
kd-11
6be7c58fa4
glsl: Refactoring, cleanup and optimizations
...
- Avoid generating unused code
- Reduce GPR usage in emitted code
2019-06-25 20:50:54 +03:00
Lassi Hämäläinen
c963c51a60
Remove unnecessary header includes
...
- Manually removed lot of unneeded #includes to clean code and reduce
compilation time
- Reordered some of the #includes to be in more logical order
2019-06-25 17:11:10 +03:00
Lassi Hämäläinen
23432d420d
CMake: Disable RTTI for jit.cpp on MSVC
2019-06-25 17:11:10 +03:00
Lassi Hämäläinen
a070a414a6
Move rsx::constants and rsx::limits to rsx_utils.h
2019-06-25 17:11:10 +03:00
Lassi Hämäläinen
e9e87b8bd9
Add missing #includes to header files
...
- Multiple header files where missing #includes to other headers that
where used in the header. Correct header was included in correct
order in source files which caused everything to compile.
- Added missing #includes so header files correctly include all their
dependencies and fixes problems with IDEs being unable to parse
headers correctly due to missing symbols
2019-06-25 17:11:10 +03:00
Lassi Hämäläinen
499035512b
Split Emu/Memory into more logical headers
...
- Add vm_locking.h and vm_reservation.h and move relevant functions
and types to these headers.
- Change include order and make vm_ptr.h, vm_var.h and vm_ref.h headers
usable invidually and them including vm.h instead of other way around
- Because usage of vm::ptr now requires including vm_ptr.h instead of
vm.h updated multiple #includes
- Added additional #includes to vm_reservation.h and vm_locking to
where vm::reservation_* and locking related functions are used
2019-06-25 17:11:10 +03:00
Megamouse
8e942eb50c
Qt: add more filters to the decryption file dialog and fix file endings
2019-06-23 21:08:58 +03:00
Eladash
806a7bbf04
Fixup for #6115 ( #6120 )
2019-06-22 12:10:47 +03:00
Eladash
cd0ef99df5
Fix BE endianess arch support in semaphore_406e ( #6116 )
...
Add raw() methods for endianness support types and make use of it.
2019-06-21 19:29:49 +03:00
Eladash
ade291e73d
Fix potential overflow in sys_vm
2019-06-21 00:02:52 +03:00
Nekotekina
517a2bc34a
sys_lwcond: add vm::temporary_unlock
2019-06-20 14:46:32 +03:00
Nekotekina
a935203a18
sys_lwmutex: add vm::temporary_unlock
2019-06-20 14:46:32 +03:00
Nekotekina
b9b591bf02
Fix SPU Loop Detection
2019-06-20 14:46:32 +03:00
Megamouse
3602d45cb7
input: raise max mouse acceleration to x10
2019-06-20 10:23:50 +02:00
Megamouse
a0f2ade55d
gui/input: improve log message for GetNextButtonPress
2019-06-20 10:23:50 +02:00
Nekotekina
5753b3222e
sys_memory: add vm::temporary_unlock
2019-06-19 20:45:59 +03:00
Nekotekina
d021d9e14a
sys_mutex: add vm::temporary_unlock
2019-06-19 20:39:39 +03:00
Nekotekina
89a31292dc
sys_cond: add vm::temporary_unlock
2019-06-19 20:39:29 +03:00
Nekotekina
5d45a3e47d
Implement cpu_thread::suspend_all
...
Remove Accurate PUTLLC option.
Implement fallback path for SPU transactions.
2019-06-19 20:36:12 +03:00
Megamouse
17d0dcb7a2
gui/input: add evdev callback when no button was pressed
2019-06-18 18:15:19 +02:00
Eladash
d52953fca6
minor UB fix
2019-06-17 02:52:43 +03:00
Ivan
0fe26f8293
Add sys_rsx_context_iomap workaround
...
Don't fail with CELL_EINVAL on vm::main.
2019-06-17 01:17:02 +03:00
scribam
185fd3d257
rsx: Minor cleanup after #6055
2019-06-17 00:31:38 +03:00
Megamouse
5928dd826c
Qt: add Remove All Caches to the game context menu
2019-06-16 23:07:13 +03:00
Megamouse
b29a89807e
cellPad: set len to 0 if pads are being intercepted by the system
2019-06-15 00:24:10 +02:00
Megamouse
3f00b485a0
cellMsgDialogAbort: don't call on_close and properly re-enable pads
2019-06-15 00:24:10 +02:00
kd-11
8dafc8e542
cfg: Default MSAA level to auto
2019-06-14 17:19:55 +03:00
kd-11
e515d9b83a
vk: Fixup for missing resource reference
...
- Missing ref increment when using framebuffer could lead to use-after-free.
How master was not crashing is surprising
2019-06-14 16:19:52 +03:00
kd-11
c90186cf35
vk: Do not use pixel_center_origin as its use is explicitly restricted by spec
2019-06-14 16:19:52 +03:00
kd-11
98156d2a2c
vk: Avoid submitting wrong sample count in overlay passes
2019-06-14 16:19:52 +03:00
kd-11
4104d7a6a1
vk: Simplify WCB heuristics and fix out-of-bounds access
2019-06-14 16:19:52 +03:00
kd-11
86119f58d6
rsx: Typo fix
2019-06-14 16:19:52 +03:00
kd-11
9d166c5bed
rsx: Force invalidate of children by issuing a resolve notification whenever the parent is written to
...
- Fixes successive reads of an antialiased surface that is still bound between reads
2019-06-14 16:19:52 +03:00
kd-11
296e0105c4
vk: Fix WCB for antialiased memory
2019-06-14 16:19:52 +03:00
kd-11
9d0f5aedf3
vk: Add some missing barriers
2019-06-14 16:19:52 +03:00
kd-11
e4671c29a6
rsx: Fix typo
...
- Arguments to the transform function are xxyy not xyxy
2019-06-14 16:19:52 +03:00
kd-11
8a1cf2c913
rsx: Attempt to reduce stencil load overhead for nvidia cards
2019-06-14 16:19:52 +03:00
kd-11
ca82dd7200
vk: Improve overlay passes for resolve/unreolve
...
- Refactor overlays and resolve passes to support use of push constants instead of relying buffer map/unmap
- Add support for nvidia resolve (NV is the only vendor not supporting shader_stencil_export)
2019-06-14 16:19:52 +03:00
kd-11
c655036920
rsx/fp: Ease pressure on fragment shaders when emulating clamp16
...
- TODO: Option to completely skip clamping in some architectures as it is not needed in most games
- Mostly affects older GPUs that do not have access to native fp16
2019-06-14 16:19:52 +03:00
kd-11
5f34c0c59a
vk: Clean up WCB readbacks when resource is multisampled
...
- Resolve image first before performing any transfer operations
2019-06-14 16:19:52 +03:00
kd-11
9d314ca4ca
rsx: Correctly count number of valid entries if there are broken entries in the cache
2019-06-14 16:19:52 +03:00
kd-11
bca5f94b3f
rsx: Add option to toggle MSAA
2019-06-14 16:19:52 +03:00
kd-11
ea8409dcfd
rsx: Re-enable optional sample-to-pixel transformation
2019-06-14 16:19:52 +03:00
kd-11
acb14320da
rsx: Fixup for resolution scaling support
2019-06-14 16:19:52 +03:00
kd-11
4a5bbba277
rsx: Enable MSAA
...
- vk: Enable depth buffer resolve+unresolve
- vk: Add AMD stenciling extension support
- rsx: Temporarily disables MSAA-compatible hacks such as transparency AA
- TODO: Add paths to optionally disable MSAA
2019-06-14 16:19:52 +03:00
kd-11
f6f3b40ecc
rsx: Fix AA coordinate transforms
...
- Requires native_pitch value to take samples into account
2019-06-14 16:19:52 +03:00
kd-11
655eff29e8
rsx: Refactoring and cleanup after d3d12 separation
...
- Remove deprecated functionality
- Refactor to share code between common routines
2019-06-14 16:19:52 +03:00
kd-11
db5d56a22d
d3d12: Remove all shared code with other backends
2019-06-14 16:19:52 +03:00
kd-11
0d906d6974
rsx: Remove surface aa_mode hacks
2019-06-14 16:19:52 +03:00
Megamouse
ac3982d2b0
Input: fix evdev buttons
2019-06-13 19:12:46 +02:00
scribam
13671d9684
rsx: Apply Clang-Tidy fix "modernize-loop-convert" + const when relevant
2019-06-12 15:11:52 +03:00
scribam
1e327ad31b
rsx: Apply Clang-Tidy fix "readability-avoid-const-params-in-decls"
2019-06-12 15:11:52 +03:00
scribam
370dcd9d6e
rsx: Apply Clang-Tidy fix "readability-simplify-subscript-expr"
2019-06-12 15:11:52 +03:00
scribam
0b97d12a7b
rsx: Apply Clang-Tidy fix "modernize-use-using"
2019-06-12 15:11:52 +03:00
scribam
f1e939936a
rsx: Apply Clang-Tidy fix "modernize-use-override"
2019-06-12 15:11:52 +03:00
scribam
44265aa27d
rsx: Apply Clang-Tidy fix "modernize-use-equals-default"
2019-06-12 15:11:52 +03:00
scribam
635695ac78
rsx: Apply Clang-Tidy fix "modernize-use-emplace"
2019-06-12 15:11:52 +03:00
scribam
a555504142
rsx: Apply Clang-Tidy fix "modernize-deprecated-headers"
2019-06-12 15:11:52 +03:00
scribam
cba828384d
rsx: Apply Clang-Tidy fix "modernize-pass-by-value"
2019-06-12 15:11:52 +03:00
scribam
a02a8642b0
rsx: Apply Clang-Tidy fix "modernize-make-unique"
2019-06-12 15:11:52 +03:00
scribam
b91bcdbbca
rsx: Apply Clang-Tidy fix "modernize-use-bool-literals"
2019-06-12 15:11:52 +03:00
scribam
349e7c8708
rsx: Apply Clang-Tidy fix "readability-non-const-parameter"
2019-06-12 15:11:52 +03:00
scribam
35dc98be06
rsx: Apply Clang-Tidy fix "readability-string-compare"
2019-06-12 15:11:52 +03:00
scribam
ac7e89660f
rsx: Apply Clang-Tidy fix "readability-redundant-smartptr-get"
2019-06-12 15:11:52 +03:00
scribam
801fa0113f
rsx: Apply Clang-Tidy fix "readability-inconsistent-declaration-parameter-name"
2019-06-12 15:11:52 +03:00
scribam
c9b0a4afd0
rsx: Apply Clang-Tidy fix "performance-type-promotion-in-math-fn"
2019-06-12 15:11:52 +03:00
scribam
8f2647555a
rsx: Apply Clang-Tidy fix "readability-redundant-string-init"
2019-06-12 15:11:52 +03:00
scribam
331fe01762
rsx: Apply Clang-Tidy fix "performance-for-range-copy"
2019-06-12 15:11:52 +03:00
scribam
db926ee671
rsx: Apply Clang-Tidy fix "performance-unnecessary-value-param"
2019-06-12 15:11:52 +03:00
scribam
81a3b49c2f
rsx: Apply Clang-Tidy fix "readability-container-size-empty"
2019-06-12 15:11:52 +03:00
scribam
c4667133c4
gl/vk: Add constexpr to varying_registers and sync functions between the two backends
2019-06-12 10:59:31 +01:00
scribam
65581acbf9
rsx: Use constexpr for flattening_helper::m_register_properties
2019-06-12 10:59:31 +01:00
scribam
b3513cd7fa
Set minimum supported version of GCC to 8.x
...
And update the documentation accordingly
2019-06-11 00:48:11 +03:00
kd-11
d361eedbec
rsx: Clean up window management code
...
- Removes a lot of wm_event code that was used to perform window management and is no longer needed.
- Significantly simplifies the vulkan code.
- Implements resource management when vulkan window is minimized to allow resources to be freed.
2019-06-10 14:57:03 +03:00
kd-11
57196f0504
vk: Move frame present synchronization to the driver
...
- Just use a semaphore and let the driver handle it instead of manual framepacing.
We lose framepace control but drivers have matured in the past few years so it should work fine.
2019-06-10 14:57:03 +03:00
Talkashie
527f7a437a
important fix ( #6067 )
...
Fix typo in Pad Settings Dialog
2019-06-10 13:03:55 +03:00
RainbowCookie32
652e32341d
Update DS3 message in Pads settings
2019-06-10 00:52:22 +01:00
scribam
39fa1d7031
ci/vk: Bump Vulkan version (1.1.73.0/1.1.97.0 => 1.1.106.0)
...
VULKAN_SDK_MIRROR removed as the server is down
2019-06-09 23:43:57 +01:00
scribam
f9ad635856
rsx: TextGlyphs optimizations
2019-06-09 23:09:11 +01:00
Nekotekina
2bc0ea37ab
sys_fs: yield PPU on disk access ops
2019-06-08 19:34:55 +03:00
Megamouse
e8a516529b
fix games.yml
2019-06-08 15:47:11 +03:00
Nekotekina
9dc0368079
Rename cond_x16 to shared_cond
...
Extend capacity from 16 to 32.
Remove redundant m_total counter.
2019-06-04 16:37:50 +03:00
Nekotekina
447029a700
Implement fs::file::write_gather (Vectored I/O)
2019-06-03 23:18:39 +03:00
Nekotekina
31994dd3b2
Rename cond_one to unique_cond
...
Remove redundant in_cv in cellVdec
2019-06-02 23:22:16 +03:00
Nekotekina
dfd50d0185
Implement std::bit_cast<>
...
Partial implementation of std::bit_cast from C++20.
Also fix most strict-aliasing rule break warnings (gcc).
2019-06-02 23:22:16 +03:00
scribam
790962425c
Fix some "-Wpedantic" warnings
2019-06-01 22:59:23 +03:00
scribam
99c1f87289
vk: Fix memory value in comments to match with the code below
2019-06-01 22:59:23 +03:00
scribam
66946a83e6
keyboard: Replace integer literals by bool when relevant
...
Recommendation from Clang-Tidy: https://clang.llvm.org/extra/clang-tidy/checks/modernize-use-bool-literals.html
2019-06-01 22:59:23 +03:00
scribam
8a6b5ca71f
Access class static methods with "::"
...
Recommendation from Clang-Tidy: https://clang.llvm.org/extra/clang-tidy/checks/readability-static-accessed-through-instance.html
2019-06-01 22:59:23 +03:00
scribam
09c9996f31
Use empty() instead of comparing size() with 0
...
Recommendation from Clang-Tidy: https://clang.llvm.org/extra/clang-tidy/checks/readability-container-size-empty.html
2019-06-01 22:59:23 +03:00
scribam
bf557ea6e6
Use the more efficient character literal overload for find_first_of/find_last_of
...
Recommendation from Clang-Tidy: https://clang.llvm.org/extra/clang-tidy/checks/performance-faster-string-find.html
2019-06-01 22:59:23 +03:00
scribam
78c7ef3039
rsx: Use clear() instead of resize(0)
...
The result is the same but clear [1] has slightly less code than resize [2] and signals better the intent IMHO.
[1] fb7fb646fa/libstdc%2B%2B-v3/include/bits/stl_vector.h (L1495)
[2] fb7fb646fa/libstdc%2B%2B-v3/include/bits/stl_vector.h (L934)
2019-06-01 22:59:23 +03:00
Megamouse
cafa4521ee
Better Support For Game Collections ( #4450 )
2019-06-01 01:12:30 +03:00
scribam
d9d7634f8b
vk: remove duplicate condition in pipeline_props struct equal operator
2019-06-01 00:01:32 +03:00
msuih
32776db8a6
Remove SPU verification from settings
2019-05-31 19:49:32 +03:00
msuih
ef587d4cdc
Limit shaderlog writing behind log_programs setting
2019-05-31 19:49:32 +03:00
kd-11
f2cac26154
rsx: Refactor out GLSLTypes from GLSLCommon to avoid warning spam due to unused functions when included in settings dialog code
2019-05-31 13:27:43 +03:00
kd-11
6e92516070
vk: Do not reset descriptors from the aux buffer when things are running slow
...
- The aux buffer borrows its descriptors from the lagging frame, so they are still in use until the frame completes.
2019-05-31 13:27:43 +03:00
kd-11
e118c9e5da
update glslang
2019-05-30 11:48:38 +03:00
Megamouse
c638e82678
Qt: fix a crash when closing rpcs3 after downloading the compat database
2019-05-28 21:47:49 +02:00
Megamouse
fb1d8cb548
Qt/Input: keep LED colors when setting vibration and merge pad functions
2019-05-28 21:47:49 +02:00
Megamouse
5760aa2e57
Qt: Use correct LED color in pad settings dialog
2019-05-28 21:47:49 +02:00
Megamouse
e4fca8274e
PSF: Don't attempt to load files with size 0
2019-05-28 21:47:49 +02:00
Megamouse
f48589005d
handle some more warnings
2019-05-28 21:47:49 +02:00
Megamouse
8ebe02ce32
Qt: properly disable the "Filter Noise" button in pad_settings_dialog
2019-05-28 21:47:49 +02:00
Megamouse
3a5d1c6b15
Input: Add simple stick multipliers
2019-05-28 21:47:49 +02:00
Megamouse
34964e0e4f
handle some warnings
2019-05-28 21:47:49 +02:00
kd-11
d9ab2c7104
vk: Bump shaders cache version
...
- Pipeline properties changed with the renderpass update
2019-05-28 15:28:30 +03:00
kd-11
57eb892153
vk: Refactor framebuffers
...
- Refactor out framebuffers from the renderer core
- Use a proper cache with sorted queues for faster searching
2019-05-28 15:28:30 +03:00
Nekotekina
71b71537a0
SPU TSX: implement Accurate PUTLLC option
...
Allow spurious PUTLLC failure if disabled (default).
2019-05-25 22:23:23 +03:00
Nekotekina
b839cc9d5b
SPU TSX: restore busy_wait in GETLLAR
2019-05-25 21:41:11 +03:00
kd-11
507ec8252b
vk: Refactor renderpass management
...
- Ensures the current renderpass matches the image properties even when a cyclic reference is detected
- Solves SDK debug output error spam due to mismatching layouts and renderpasses
2019-05-25 14:07:29 +03:00
Malcolm Jestadt
c348fec84b
Warn AMD linux users about potential performance loss if not using RADV
2019-05-24 17:16:29 +03:00
Malcolm Jestadt
6ab3011eef
vk: Check_window_status fixups
...
Intel ANV has been tested and verified to work without workaround
AMDVLK and the proprietary AMD driver have been confirmed to require workaround for window resizing
2019-05-24 17:16:29 +03:00
RipleyTom
d616ce223c
Official ds3 driver support
2019-05-22 16:56:40 +03:00
kd-11
370b9e196d
vk: Improve descriptor pool management
...
- Add double-buffered descriptor pools to avoid use-after-free situations
- Make descriptor pools more configurable
- Also adds in a hack to allow renderdoc to capture properly
2019-05-22 01:18:46 +03:00
kd-11
46ba53f122
vk: Propagate more information to the driver
...
- Pass "correct" layout to descriptors
- TODO: Fix renderpass attachment descriptors which are inadvertently doing silent transitions
2019-05-22 01:18:46 +03:00
kd-11
c3b234f972
gl: Fix staging buffer size calculation
2019-05-22 01:18:46 +03:00
Malcolm
9a26c0abda
Overlays: Fix timing
2019-05-21 13:01:38 +03:00
Nekotekina
7de3c410cf
SPU/PPU: update reservation logic on TSX path transactions
...
Make use of lock bits in reservation counters.
On PPU, fallback to compare_and_swap instead of desperate retry.
On SPU, lighten write set on retry by 'locking' outside of the transaction.
2019-05-20 14:32:50 +03:00
Nekotekina
9abb303569
vm: expand reservation lock bit area to 7 bit
...
This is minor change.
2019-05-19 17:46:55 +03:00
Nekotekina
ceaa669494
LLVM DSL: change array syntax again
...
I probably misunderstand something.
2019-05-19 17:46:55 +03:00
kd-11
8009e53642
rsx: Fix upload block range optimization
...
- The 'max' index should take the first assigned ID; fixes problems with divisors
2019-05-19 17:33:21 +03:00
kd-11
a245d9fb24
vk: DOuble general-purpose heap allocation to 128M and add a better diagnostic message for OOM
2019-05-19 17:33:21 +03:00
kd-11
0ef7b2aaff
rsx: Use a saner model for swap queue handling
...
- Use a simple queue to avoid redundant checks over all the contexts
- Poll queue if RSX pipe is idle
- Only check the queue when the frame context is dirty (after a queue operation)
- Reset descriptors at the start of the frame context to avoid having to synchronize mid-frame
- Fully synchronize if a descriptor reset is required mid-frame (spec compliance; also fixes flickering verts on some hardware)
2019-05-19 17:33:21 +03:00
kd-11
dc749d3975
vk: Bump max number of allocated draw calls from 4k to 16k
2019-05-19 17:33:21 +03:00
Nekotekina
85920253b3
SPU ASMJIT: fix BISLED
...
Properly prevent losing branch target (addr) vs get_events result (flags).
Move get_events() to the beginning.
Match BISL indirect_branch() args.
2019-05-17 23:44:19 +03:00
Nekotekina
6416fee986
SPU ASMJIT: fix indirect branch target order
...
Check stack mirror first, as in SPU LLVM.
2019-05-17 23:44:19 +03:00
Nekotekina
bf7ee2de4c
SPU: fix spu_runtime::g_tail_escape (unused yet)
2019-05-17 23:44:19 +03:00
Nekotekina
2cf139c7a8
SPU analyser: minor Safe fix
...
Properly handle known indirect branch target as a function call target.
2019-05-17 23:44:19 +03:00
msuih
164a7636bf
Add max SPURS threads to settings
2019-05-17 23:43:00 +03:00
kd-11
e3f68c66d8
rsx: Use a shared sampler pool instead of relying on the drivers
2019-05-17 22:51:40 +03:00
Megamouse
edb1a32bb1
overlays: use L1 and R1 to step by 10 in the save data list
2019-05-17 20:21:23 +02:00
Megamouse
32bdd8ef7b
overlays: move some code to cpp files
2019-05-17 20:21:23 +02:00
kd-11
4037225e98
vk: Workaround for cyclic feedback loops
...
- Transition attachments to LAYOUT_GENERAL in case of a feedback loop
- Fixes appearance of garbage along polygon edges in some
post-processing passes.
- Also reverse this transition when rendering goes back to normal
2019-05-17 16:41:17 +03:00
gidan80
9aa08313e3
Qt: Add custom pad configs
...
Add a custom pad config for every game.
2019-05-16 20:37:41 +02:00
kd-11
cb78522620
rsx: Fixup for uninitialized surface antialiasing mode
2019-05-16 19:25:26 +03:00
kd-11
45a13d0319
rsx: Fixup for lost aliased surfaces
...
- Intersection routines were changed and require explicit identification of the "old surface"
2019-05-16 19:25:26 +03:00
kd-11
05eb1e9193
rsx: Fix zombie image references from inside the texture cache
...
- Do not add locked orphans to the flush_always cache! They will not remove their cache entries as they are not bound
2019-05-16 19:25:26 +03:00
kd-11
214bb3ec87
rsx: Always initialize memory unless it is guaranteed to be wiped
2019-05-16 19:25:26 +03:00
kd-11
88290d9fab
rsx: Hack around using data regions as transfer targets
2019-05-16 19:25:26 +03:00
kd-11
4182f9984d
rsx: Propagate split section information back to the texture cache
2019-05-16 19:25:26 +03:00
kd-11
3c7d8a1099
rsx: Minor texture/surface scanning optimization
...
- Also re-enable optimization in blit engine accidentally disabled during debugging
2019-05-16 19:25:26 +03:00
kd-11
9f0090772a
rsx: Fix write tagging when comments are transferred in by blit engine
2019-05-16 19:25:26 +03:00
kd-11
4b443be881
rsx: Fix self-intersection with previous occupant of the address being replaced
2019-05-16 19:25:26 +03:00
kd-11
b840f6da28
[WIP] rsx: Use a sane reference counting model
2019-05-16 19:25:26 +03:00
kd-11
e3cf3ab6b8
rsx: Minor fixes
...
- Fix transfer scaling (inverted)
- Fix under-estimated typeless acquisition when doing depth format scaling
2019-05-16 19:25:26 +03:00
kd-11
e02e27b2b3
rsx: Prevent out-of-bounds writes when resolving shader input textures
...
- The target area can also have padding!
2019-05-16 19:25:26 +03:00
kd-11
1c439f6198
vk: Fix some spec violations
2019-05-16 19:25:26 +03:00
kd-11
88c20afd3a
rsx: Implement unaligned surface inheritance with hierachial contribution
...
- Allows render targets to behave like stacked 3D views same as shader inputs are resolved
- Basically implements most of 'Read Color/Depth Buffers" option for 'free'.
- Allows splitting RTV/DSV resources if they are superceded by a partial surface
- Also allows intersecting new resources through the surface cache for proper inheritance from other scattered data
- TODO: Refactor bind_surface_as_rtt and bind_surface_as_ds to reduce asinine code duplication
2019-05-16 19:25:26 +03:00
Nekotekina
a016728a9e
SPU LLVM: re-enable stack mirror
...
It was disabled due to other bugs which should be fixed now.
2019-05-16 04:12:08 +03:00
Nekotekina
a69329fe02
SPU ASMJIT: Fix Giga mode
...
This is embarassing.
Fixed local instruction table computation (indirect branch).
2019-05-16 04:11:05 +03:00
Nekotekina
26d131ef29
SPU LLVM: Fix Giga mode
...
Forgot to adjust global chunk table computation.
2019-05-16 04:02:33 +03:00
Nekotekina
91897fa69d
SPU LLVM/ASMJIT: fix BRA/BRASL instructions for PIC
...
Handle absolute branch addressing correctly.
2019-05-16 02:41:31 +03:00
Nekotekina
f95ec8a37c
SPU LLVM: simplify jump table computation
...
Remove one add operation and adjust constants instead.
2019-05-16 00:54:50 +03:00
Nekotekina
b138d25b97
SPU Disasm: fix absolute addressing in some instructions.
...
STQA, LQA, BRA, BRASL instructions.
2019-05-16 00:53:37 +03:00
Nekotekina
a921af1e96
SPU LLVM/ASMJIT: remove minor unnecessary code
2019-05-16 00:52:52 +03:00
Nekotekina
43ae4b3f33
SPU LLVM/ASMJIT: add missing PC clamping
...
Minor fix, since it's mostly impossible to overflow.
2019-05-16 00:51:47 +03:00
Nekotekina
007108100e
SPU: implement spu_runtime::g_tail_escape
...
May help to avoid gateway costs in some cases.
2019-05-15 18:47:40 +03:00
Nekotekina
4e75d2c2f7
SPU LLVM: don't save $2 in optimized functions
2019-05-15 16:41:57 +03:00
Nekotekina
adc7d96683
SPU LLVM: simplify function prototype
...
Pass only $3
2019-05-15 16:18:13 +03:00
Nekotekina
16401722f1
SPU LLVM: fix $SP passing in functions, write PC on halt
...
Allows to skip updating $SP in optimizable functions.
2019-05-15 15:42:03 +03:00
Nekotekina
b2d0ca83fb
LLVM DSL: simplify value_t template for array
2019-05-15 15:17:36 +03:00
Nekotekina
09eb633f69
SPU ASMJIT: increase stack frame size
...
It seems Windows has minimal stack frame size 0x28.
2019-05-15 02:16:08 +03:00
Nekotekina
3753d27aba
SPU: fix Giga mode (kinda)
...
Don't scan before the entry point.
Disable stack mirror in SPU LLVM.
Improve analyser logic for holes.
2019-05-14 22:15:04 +03:00
Nekotekina
c481472faf
SPU ASMJIT: add PIC support (fix)
...
Also cleanup and adapt for GHC CC.
2019-05-14 22:15:04 +03:00
Nekotekina
82295d131a
SPU LLVM: split LLVM IR dump to spu-ir.log
...
Also move disasm to spu_recompiler_base::dump.
Interleave disasm with block target info for convenience.
2019-05-14 22:15:04 +03:00
Nekotekina
ea554ae828
Implement 'Max SPURS Threads' option (hack)
...
Pauses SPURS threads beyond limit automatically if set.
2019-05-14 22:15:04 +03:00
Nekotekina
1eed421774
SPU LLVM: use branch patchpoints again
...
Renewed and adapted for PIC and all branch types.
This may address performance degradation after #5923 .
2019-05-14 22:15:04 +03:00
Nekotekina
2f6707d0a0
SPU LLVM: regain some efficiency
...
Avoid returns from the recompiler gateway, favoring tail calls.
This may address performance degradation after #5923 .
2019-05-14 22:15:04 +03:00
Nekotekina
f33b81545e
SPU: implement recompiler gateway function in assembly
...
Use GHC calling convention directly for SPU object entry points.
This may address performance degradation after #5923 .
2019-05-14 22:15:04 +03:00
Nekotekina
a74fd27e3d
SPU LLVM: fix SPU termination (spu_escape) on Windows
...
Adjust restored stack pointer for the lack of tail call.
2019-05-14 22:15:04 +03:00
Nekotekina
cc8c635855
SPU: PIC support preview
...
SPU ASMJIT not supported yet.
Giga mode not supported properly.
2019-05-14 22:15:04 +03:00
z0z0z
7cf11c7637
Use setenv instead of qputenv
...
A user reported issues with Qt's hidpi scaling and RPCS3. They could not disable with their own environment variable because qputenv overwrites them, setenv with 0 as third arg doesn't.
2019-05-14 21:48:14 +03:00
scribam
22f61caf9f
GLTexture: add missing #pragma once directive
2019-05-12 18:32:11 +03:00
scribam
6c5ea068c9
Remove redundant semicolons
...
Fix "-Wextra-semi" warnings
2019-05-12 18:32:11 +03:00
Rui Pinheiro
1f82a26a9c
SPU LLVM: Fix Mega
2019-05-12 00:39:42 +03:00
scribam
3623f4343f
gl/vk: clear scissor_setup_invalid bit along with scissor_config_state_dirty bit
2019-05-11 13:13:49 +03:00
Nekotekina
8194c92f1c
SPU LLVM: disable GHC CC for chunks on Windows
...
Causes fatal error inside LLVM.
2019-05-11 02:35:16 +03:00
Nekotekina
5d33d9a3d9
Enable most warnings in GCC
2019-05-11 02:13:19 +03:00
Nekotekina
7492f335e9
SPU analyser: basic function detection in Giga mode
...
Misc: fix EH frame registration (LLVM, non-Windows).
Misc: constant-folding bitcast (cpu_translator).
Misc: add syntax for LLVM arrays (cpu_translator).
Misc: use function names for proper linkage (SPU LLVM).
Changed function search and verification in Giga mode.
Basic stack frame layout analysis.
Function detection in Giga mode.
Basic use of new information in SPU LLVM.
Fixed jump table compilation in SPU LLVM.
Disable broken optimization in Accurate xfloat mode.
Make compiled SPU modules position-independent in SPU LLVM.
Optimizations include but not limited to:
* Compiling SPU functions as native functions when eligible
* Avoiding register context write-out
* Aligned stack assumption (CWD alike instruction)
2019-05-11 02:13:19 +03:00
Megamouse
fce9d6a7b8
Qt/input: add LED color picker to pad settings dialog
2019-05-09 22:02:00 +02:00
eladash
7ead021aa7
rsx: Fix 3d swizzled texture to linear conversation
2019-05-08 23:48:39 +03:00
kd-11
feb77793df
typo fix
...
- Minor argument change requested by Megamouse
2019-05-07 09:39:35 +03:00
Exfiltratior
f1ff75d815
correct small mistake
2019-05-07 09:39:35 +03:00