Commit graph

5720 commits

Author SHA1 Message Date
Nekotekina 11bdb4102a SPU LLVM: implement returnable check_state()
Call it only at the beginning of loop entries
2018-06-05 12:35:26 +03:00
Nekotekina df489d786a sys_timer_usleep: give Linux a partial exemption 2018-06-05 12:35:26 +03:00
Nekotekina ec6d1fb1ba SPU: optimize GETLLAR (TSX)
Add an option "Accurate GETLLAR"
2018-06-05 12:35:26 +03:00
Nekotekina a5f4e6ecef SPU: fix PUTLLUC accuracy 2018-06-04 16:01:17 +03:00
Nekotekina 9fe03a94d8 SPU ASMJIT: implement returnable check_state() 2018-06-04 16:01:17 +03:00
Nekotekina 7242387a42 Block GUI after stopping emulation
This is necessary to prevent restarting the emulation until it's finished
Remove "process_events" callback completely
2018-06-04 16:01:17 +03:00
Nekotekina 1e107487da SPU: improve analyser (v3) 2018-06-04 16:01:17 +03:00
Nekotekina 05e24f38f9 SPU: use progress dialog 2018-06-04 16:01:17 +03:00
Zion Nimchuk ea1bb3b90e Convert all spaces to tabs in CMakeLists.txt 2018-06-04 17:00:44 +04:00
Zion Nimchuk 4d3b60cf46 Unify Linux detection in CMake 2018-06-04 17:00:44 +04:00
Jake 84ae643692 Fix msvc debug build 2018-06-03 16:37:37 +04:00
Megamouse 9dea602496 Discord: add some stuff 2018-06-03 13:28:12 +04:00
Dravonic 400079a006 Parallel shader cache loading (#4677)
* Parallel shader cache loading
2018-06-01 19:49:29 +03:00
kd-11 87b510d5bf vulkan improvements
- Remove deprecated device layers
- Reimplement overlays resource management using real heap instead of using first_vertex hack
2018-05-31 11:22:40 +03:00
kd-11 9f9e1b5fe0 overlay; Fix leak 2018-05-31 11:22:40 +03:00
Nekotekina b0ee369135 Rewrite LLVM compilation progress dialog
Use a single dialog
2018-05-30 20:35:35 +03:00
Nekotekina a2253e840f SPU LLVM: fix *QBI instructions (UB)
Improve codegen at the cost of unnecessary shuffle, use u64[2]
2018-05-30 20:35:35 +03:00
Nekotekina 37577714fa SPU LLVM: emulate PSHUFB
For targets without SSSE3 support
2018-05-30 20:35:35 +03:00
Nekotekina 759370ea1b SPU: rewrite FSM/FSMH/FSMB instructions
Remove lookup tables
2018-05-30 20:35:35 +03:00
Nekotekina 55e9d437a9 Fix warning (ignored attributes) 2018-05-30 20:35:35 +03:00
Nekotekina bdf6545571 SPU: rewrite spu_interpreter::SHUFB
Use ASMJIT to generate SSSE3+ code at runtime
Remove static SSSE3 code from spu_interpreter
2018-05-30 20:35:35 +03:00
Nekotekina bebb1bdeda Extend ppu_decoder/spu_decoder templates
Automatically dereference pointers
2018-05-30 20:35:35 +03:00
Nekotekina 944e89058e SPU: improve SHUFB 2018-05-30 20:35:35 +03:00
Megamouse c5709f71b3 Qt: Add performance overlay options to the emu tab in the settings dialog 2018-05-30 21:31:45 +04:00
Megamouse cc50d503ef Qt: Add a gui tab to the settings dialog
this is mainly to make place in the emulator tab
2018-05-30 21:31:45 +04:00
kd-11 cf2cb7978b facepalm 2018-05-30 13:30:23 +03:00
kd-11 f543fb0243 vk/gl: Fix flush synchronization to be kinder to weaker CPUs but not harm higher end CPUs 2018-05-30 13:30:23 +03:00
kd-11 6362942928 rsx: Avoid semaphore acquire deadlock 2018-05-30 13:30:23 +03:00
VelocityRa c8d8a81ccd overlays: Performance Overlay 2018-05-30 12:35:41 +03:00
VelocityRa c2e17d04e1 overlays: Font improvements
* Support for using arbitrary firmware fonts
* Support for specifying font extension in `font` constructor (useful for most firmware fonts that use .TTF)
2018-05-30 12:35:41 +03:00
VelocityRa 33b01d9306 overlays: Allow for non-interactable UI components
* Also fix a few warnings in overlay_controls
2018-05-30 12:35:41 +03:00
eladash 4576a31f47 fix memory mapping alignment 2018-05-30 00:34:38 +04:00
eladash 8826948c43 cellgcm: implement cellGcmTerminate 2018-05-29 19:57:28 +03:00
eladash 23b380eb41 allow deallocations to unmap rsx mapped memory 2018-05-29 19:57:28 +03:00
eladash ce98c962f8 cellgcm: use offset table to get the corresponding address to io address 2018-05-29 19:57:28 +03:00
eladash c2b2dee56d cellgcm/sys_rsx: fix multiple io maps at the same effective address and vice verse
from hw testing, as long as the io address is valid, it returns CELL_OK, even when it doesn't make much sense
2018-05-29 19:57:28 +03:00
eladash 97515a0941 sys_rsx/cellgcm: return EINVAL if the io map requast's size is 0 2018-05-29 19:57:28 +03:00
eladash 0a7902d313 sys_rsx: fix mem_handle id 2018-05-29 19:57:28 +03:00
eladash 8eab9fe36c sys_rsx: fix unused pointer dereferencing 2018-05-29 19:57:28 +03:00
kd-11 d48f391b41 lv2: Ease the pain of lower end CPUs
- Avoid busy waiting in usleep code as much as possible, instead yield
- Also avoid busy_wait for SPU concurrency choker
2018-05-29 13:54:30 +03:00
kd-11 83f9be2524 rsx: Promote FIFO optimizations outside of strict mode
- The benefits of FIFO optimizations are huge in some cases.
  The optimizations also do not break any tested applications so no need to disable with strict mode
- A debug option is provided to disable this behaviour for testing
2018-05-29 13:54:30 +03:00
kd-11 be13a776f4 lv2: Reimplement sys_timer_usleep
- Matches ps3 accuracy for all tested values with few exceptions
- Do not enter the host OS kernel if waiting for less than 500us to avoid scheduler issues
2018-05-29 13:54:30 +03:00
kd-11 2adb2ebb00 overlays: Avoid race condition on remove-on-update views
- Improves cleanup code to consist of 2 parts, remove then dispose. Remove
  does not deallocate the item until dispose is called on it, allowing the
  backends to first deallocate external references.
- Caller is responsible for managing list locking and tracking disposable list
  of items when external references have been cleaned up before using
  dispose method.
2018-05-29 13:54:30 +03:00
kd-11 0fc67aa2f6 gl: fix wcb regression
- Partial framebuffers and blit targets are possible!
2018-05-24 10:36:04 +03:00
kd-11 493d4e8613 fixup - Improve invalidated region checks for performance 2018-05-24 10:36:04 +03:00
kd-11 b030d1900c rsx: Fixup - fix broken memory protection fail caused by region respec
- Some applications will alternate memory between framebuffer and texture data
2018-05-24 10:36:04 +03:00
kd-11 f38f61d110 vk: Clean up memory allocation and fix GPUOpen VMA for Radeon 2018-05-23 19:07:08 +03:00
kd-11 92b5a705d8 fixup - locking 2018-05-23 19:07:08 +03:00
kd-11 b957eac6e8 rsx: Avoid calling any blocking callbacks from threads that are not rsx::thread
- Defers on_notity_memory_unmapped to only run from within rsx context
- Avoids passive_lock + writer_lock deadlock
2018-05-23 19:07:08 +03:00
kd-11 d2bf04796f Optimized cached write-through
- Allows grabbing an unsynchronized memory block if overwriting contents
anyway
- Allows flushing only specified range of memory
2018-05-23 19:07:08 +03:00
kd-11 f8d999b384 fixup - range check 2018-05-23 19:07:08 +03:00
kd-11 fbf6581249 rsx: Fix segmented memory access for rsx::super_ptr 2018-05-23 19:07:08 +03:00
kd-11 d283200e13 vk: Do not do extension test if in a fast context (enum only) 2018-05-23 19:07:08 +03:00
kd-11 3f14bc6961 rsx: Silence some meaningless error 2018-05-23 19:07:08 +03:00
kd-11 f2a3167193 rsx: Lower format compatibility severity since it confuses some people 2018-05-23 19:07:08 +03:00
kd-11 8fcd5c1e5a rsx: Texture cache fixes
1. rsx: Rework section synchronization using the new memory mirrors
2. rsx: Tweaks
    - Simplify peeking into the current rsx::thread instance.
      Use a simple rsx::get_current_renderer instead of asking fxm for the same
    - Fix global rsx super memory shm block management
3. rsx: Improve memory validation. test_framebuffer() and
tag_framebuffer() are simplified due to mirror support
4. rsx: Only write back confirmed memory range to avoid overapproximation errors in blit engine
5. rsx: Explicitly mark clobbered flushable sections as dirty to have them
removed
6. rsx: Cumulative fixes
    - Reimplement rsx::buffered_section management routines
    - blit engine subsections are not hit-tested against confirmed/committed memory range
      Not all applications are 'honest' about region bounds, making the real cpu range useless for blit ops
2018-05-23 19:07:08 +03:00
pauls-gh f8a0be8c3e Performance enhancement - Vulkan memory allocator (#4635)
* Incorporates the vulkan memory allocator from the AMD GPUOpen project
2018-05-23 17:02:35 +03:00
Nekotekina c5d8d50908 Move SPU LLVM log file 2018-05-23 15:36:29 +03:00
Nekotekina 3e580afe21 SPU: remove passive lock (fixup) 2018-05-23 15:36:29 +03:00
scribam 2270b8d15c vulkan: link with vulkan-1.lib instead of VKstatic.1.lib 2018-05-23 13:54:27 +03:00
Megamouse b230b0df0d Qt: Workaround for yet another hidden column resize 2018-05-22 16:27:33 +01:00
Megamouse 62efe6e5be Qt: set smaller default log frame height 2018-05-22 16:27:33 +01:00
Megamouse 7c031c2330 Qt: remove redundant visibility check in FixNarrowColumns 2018-05-22 16:27:33 +01:00
Megamouse 40d2341ef1 Qt: resize game list columns by default with slight spacing 2018-05-22 16:27:33 +01:00
Megamouse f1670a9ea0 Qt: disable resizing trophy tables to contents by default 2018-05-22 16:27:33 +01:00
Megamouse 325048a134 Qt: apply header states after populating the tables 2018-05-22 16:27:33 +01:00
Megamouse bff9a06f9f Qt: simplify occasions of restoreState 2018-05-22 16:27:33 +01:00
Megamouse 31101b4828 Qt: use correct menu icon for "Play last played game" on booting RPCS3 2018-05-22 16:27:33 +01:00
Megamouse 598008868e Qt: include QButtonGroup in settings_dialog.cpp in order to fix Qt 5.11 2018-05-22 16:27:33 +01:00
Nekotekina 72574b11ff SPU: use reservation spinlocks on writes (non-TSX)
This should decrease contention by avoiding global lock
2018-05-21 21:56:14 +03:00
Nekotekina 182259e4a5 cellSaveData fix 2018-05-21 21:47:04 +03:00
kd-11 c9669818eb Facepalm
- overlays: Do not free self handle!!!!
2018-05-21 15:55:25 +03:00
Nekotekina 6fd402bcf8 Transactions: drop RDTSC usage
Use simple increment (minor optimization)
2018-05-21 00:18:37 +03:00
Nekotekina fb0f5f0c8b Fix vm::reservation_notifier 2018-05-21 00:18:37 +03:00
Nekotekina 7a6db3dd7e spu_getll_tx: diagnose loop count 2018-05-21 00:18:37 +03:00
Nekotekina 295f782b30 spu_putlluc_tx: diagnose loop count 2018-05-21 00:18:37 +03:00
Nekotekina a33f297315 Replace notifier::lock_shared() with try_lock_shared()
Also add notify_one(), try_lock() and unlock()
Move some code in cond.cpp
2018-05-21 00:18:37 +03:00
Nekotekina 8d5bbfb850 Update SPU dump: print current MFC cmd 2018-05-21 00:18:37 +03:00
Nekotekina 33a1c743a4 Transactions: move loops inside
Rewrite loops in assembler (minor optimization)
2018-05-21 00:18:37 +03:00
kd-11 f6f45b8699
Native UI refactored (#4623)
Refactor and improve native overlays
2018-05-20 23:05:00 +03:00
Megamouse 68fff54a8b cellSaveData: don't return after funcStat was successful in savedata_op
also add some missing constants
2018-05-20 23:16:11 +04:00
Megamouse c61049b76f Qt: Fix missing rows in our beloved trophy manager 2018-05-20 14:29:56 +04:00
Megamouse f8bbdc39c5 Qt: Change Trophy Manager to use item selection instead of double click 2018-05-20 14:29:56 +04:00
Megamouse 4c03348e60 Qt: Restrict trophy manager combo box size 2018-05-20 14:29:56 +04:00
Megamouse 95951c31f8 Qt: Fix obnoxious glitch where game list columns ended up with 0 width
Qt can be messy at times
2018-05-19 21:59:13 +01:00
Megamouse 67637dfaa4 Qt: Fix compat download exception 2018-05-19 21:59:13 +01:00
scribam bf2f00a163 log: add Vulkan header version 2018-05-19 10:59:10 +03:00
scribam 6c5c89a4a3 3rdparty: remove Vulkan/Vulkan-LoaderAndValidationLayers 2018-05-19 10:59:10 +03:00
Megamouse 4e8ce7fac0 Qt: Enable all play options for the last played game on StartUp
- main_window::CreateThumbnailToolbar into main_window::Init
- also moved the log message for "Recent Game Not Valid" from Error to Warning (only the common occurance)
2018-05-18 21:30:16 +01:00
Megamouse 6b3eebc907 Qt: trophy manager - fix trophy sorting by ID + handle some warnings 2018-05-18 23:17:10 +04:00
Megamouse 9269d8a370 Qt: resize initial game list headers to minimal size if necessary
we do this on showing columns already
2018-05-18 23:17:10 +04:00
Megamouse 99c52a0d0c Qt: use column names instead of numbers in gui_settings 2018-05-18 23:17:10 +04:00
Megamouse d1a9afbd67 Qt: refactor game list column initialization 2018-05-18 23:17:10 +04:00
Megamouse 2b8f96dcec Qt: refactor Get-/SetGamelistColVisibility 2018-05-18 23:17:10 +04:00
Megamouse 9c025be831 Qt: improve game list header behavior 2018-05-18 23:17:10 +04:00
Megamouse aee03114fd Qt: rsx debugger replace wrong setSectionResize command 2018-05-18 23:17:10 +04:00
Megamouse bb8e89f84a Qt: add game icons to the trophy manager
and fix some header behaviour
2018-05-18 23:17:10 +04:00
Megamouse 6f0bad34f4 Qt: remove trophy_tree_widget_item.h 2018-05-18 23:17:10 +04:00
Megamouse d275c36e0a Qt: trophy manager overhaul 2018-05-18 23:17:10 +04:00
Megamouse 4e5cceb03e TROPUSR: add GetUnlockedTrophiesCount() 2018-05-18 23:17:10 +04:00