kd-11
815f4aa63b
vk: Improve logging of device names and driver versions
2018-09-03 18:24:20 +03:00
kd-11
e23435a190
vk: whitespace fix only
2018-09-03 18:24:20 +03:00
kd-11
85d38b5751
d3d12: restore working graphics
2018-09-03 18:24:20 +03:00
kd-11
6399833182
rsx: Fix endianness order when immediate mode register is updated, but used as register lookup
...
- Simplify the code by unifying all the register-backed memory
2018-09-03 18:24:20 +03:00
eladash
9acaee563b
Fix sys_memory_free
2018-09-01 22:44:20 +04:00
scribam
bf89b709cb
Remove useless #include
2018-08-31 20:13:54 +04:00
scribam
7d0e94ab0a
Compilation fixes for optional on osx
2018-08-31 20:13:54 +04:00
Lassi Hämäläinen
79cf2832ae
Remove Utilities/variant.hpp and use C++17 variant
...
- Remove also Utilities/variant_visitor.hpp
- Fix variant and variant_visitor usages and #includes
2018-08-31 17:49:59 +04:00
Nekotekina
85fa0942e7
vm: allow 4k-aligned allocations for vm::stack
...
Fix utils::shm::map logic for MapViewOfFileEx
2018-08-30 14:56:45 +03:00
Nekotekina
c49c7de427
sys_fs_stat: support split files
...
Was forgotten after sys_fs_open
2018-08-30 14:56:45 +03:00
elad
685eaedbf9
rsx: Fix typos ( #5054 )
2018-08-30 00:47:48 +03:00
Ofek
4c1459534d
Trophy fixes
2018-08-29 16:56:17 +03:00
Megamouse
686d3eb1df
cellMsgDialog: improvements
2018-08-29 16:09:00 +03:00
Megamouse
00b31c27a3
cellGame: implement error messages and some stubs
2018-08-29 16:09:00 +03:00
Megamouse
7208aa37cc
cellMsgDialog: introduce open_msg_dialog
2018-08-29 16:09:00 +03:00
Megamouse
d4285fb196
cellGameExec: add param checks
2018-08-29 16:09:00 +03:00
Zion Nimchuk
f9cab3270f
Initial work on cellMic
2018-08-29 15:15:18 +03:00
jmatich
b5dbd44087
Compilation fixes for Mingw64 (MSYS2) ( #4899 )
...
fix compilation on mingw
2018-08-29 14:27:10 +03:00
eladash
37ee0a2f55
Rsx/cellgcm: complete rsx_state::reset()
2018-08-29 13:37:50 +03:00
eladash
fc50e6abcb
Rsx: remove method registers reset
...
cellGcm manually resets registers each flip, tested with cellGcmSetFlip
2018-08-29 13:37:50 +03:00
Dzmitry Malyshau
c452b43ebc
Basic support for Vulkan Portability on OSX
2018-08-28 21:20:11 +03:00
eladash
acf1286b49
Rsx: fix unknown cull faces
2018-08-28 10:47:24 +03:00
eladash
38a72cc6ee
Rsx: fix flip method registers reset
...
driver flip does not reset registers
2018-08-28 10:47:24 +03:00
eladash
e279bdb304
Rsx: add missing default vertex shader attributes registers states
2018-08-28 10:47:24 +03:00
Nekotekina
7b4f70390d
Don't use decltype(spu_opcode_t::...)
...
Add static constant for this purpose
Try to fix MSVC bug warning C4573
2018-08-25 21:06:24 +03:00
Nekotekina
363811981d
Reintroduce LOG_CHANNEL
...
Groundwork for further improvements
2018-08-25 15:39:00 +03:00
Nekotekina
a93a40e8d9
Disable texture_cache::emit_once (MSVC crash)
2018-08-25 01:58:28 +03:00
Nekotekina
1c6c24f8ac
Update GSL and yaml-cpp submodules
2018-08-25 01:15:47 +03:00
Nekotekina
923314aef5
Rewrite texture_cache::emit_once
...
Also trying to workaround MSVC bug
2018-08-25 01:15:47 +03:00
Nekotekina
5afd12e8a4
[CMake] Use C++17
2018-08-24 16:44:19 +03:00
Nekotekina
6cc7d1fb26
Use std::void_t
2018-08-24 16:44:19 +03:00
kd-11
21e1911112
vk: Improve fence wait logic
2018-08-24 14:52:22 +03:00
kd-11
76f102e865
vk: Check for allowed texbuffer range instead of assuming 64M
2018-08-24 14:52:22 +03:00
Mårten Nordheim
b095a0be90
Fix compilation with VS2017
2018-08-24 14:46:33 +04:00
kd-11
f0a91484a0
vk: Implement double-buffered heaps for platforms without universal support for host visibility (APPLE)
2018-08-23 22:54:56 +03:00
kd-11
c6e35706a3
vk: Support sw component swizzle decode because metal sucks
2018-08-23 22:54:56 +03:00
kd-11
f3d3a1a4a5
rsx: Rework section reuse logic
2018-08-22 17:22:54 +03:00
eladash
874d18f761
rsx-debugger: bugfixes and improvements
...
*always translate given address
*add a few missing methods names
*fix branches
2018-08-22 13:19:07 +03:00
eladash
56d553f10d
Rsx: fix cmd jump over put register
2018-08-22 12:20:31 +03:00
eladash
18ec05c070
Fix cellGcmInit
...
add a missing reset
2018-08-22 12:20:31 +03:00
eladash
158019b50f
Rsx: fix translation when address is negative
...
move address shift to where it should be, extend io table to catch all possible values.
2018-08-22 12:20:31 +03:00
Ani
6fc869e21b
Revert d1fd4d5000
2018-08-20 00:12:30 +04:00
kd-11
25ec3789fe
rsx: Fix present modes ordering
...
- Newer nvidia drivers are not exposing IMMEDIATE present mode unless you change options in nvidia control panel
This can cause severe performance degradation unless the vsync option is set to "off" in control panel
2018-08-19 15:56:07 +03:00
Nekotekina
386e301ea0
Name missing vm::spu location
2018-08-18 21:38:43 +03:00
Nekotekina
e8d144f399
Improve vm::reader_lock
...
Add upgrade() method
2018-08-18 21:14:52 +03:00
Nekotekina
6ec4a88eb5
Hardcode vm::user64k location
2018-08-18 21:02:16 +03:00
Nekotekina
182c04b59d
Improve vm::unmap
...
Prevent unmapping predefined locations
2018-08-18 21:01:32 +03:00
kd-11
7915dcb23c
rsx: Do not overflow the program buffer!
...
- Some games overflow the program buffer e.g Resistance games
The observed overflow is one instruction longer, likely an engine bug
with counting instructions
2018-08-18 16:14:30 +03:00
kd-11
dd21e43ed5
rsx: Force disable draw reordering when capturing a frame
2018-08-18 16:14:30 +03:00
kd-11
937f1e8cd0
fix gcc build
2018-08-18 16:14:30 +03:00
kd-11
4b2b662c3a
rsx: Followup to the memory inheritance hierachy patch
...
- Tags framebuffer resources on first use (when on_write is called to verify memory)
- Texture cache now selects the best match and even sorts atlas writes with memory write order to avoid older data showing over newer one
2018-08-18 16:14:30 +03:00
kd-11
ec31157bc7
gl: Avoid unnecessary scissor state change every draw call.
2018-08-18 16:14:30 +03:00
kd-11
8c93db342f
gl: Reuse framebuffer resources
...
- WIP optimizations for GL backend
2018-08-18 16:14:30 +03:00
kd-11
cca488d0cf
rsx: Enable swizzled decode for all formats unless proven otherwise
...
- Some formats are proven to ignore swizzle flag
- DXT compressed textures
- COMPRESSED_BG_GB class textures
- Some applications are using swizzled wide integer formats so those are confirmed to swizzle
2018-08-18 16:14:30 +03:00
kd-11
f8a9b1fa30
[WIP] rsx: Improve memory inheritance hierachy
...
- Cascade memory writes by invalidating 'downstream' subsurfaces
- Fixup; always resolve for overlapping surfaces before sampling (force
atlas gather test)
2018-08-18 16:14:30 +03:00
kd-11
ba5b59dc59
gl: Do not create secondary context if async is disabled
...
- Some third party programs fall apart when multiple contexts are created
2018-08-18 16:14:30 +03:00
kd-11
0f36e87010
zcull: Improve the delay algorithm to be more consistent
...
- Use proper time checking; depending on what is being done one 'tick' can
be almost a millisecond long or several nanoseconds
- Avoid spamming the system timer unless necessary
2018-08-18 16:14:30 +03:00
kd-11
38191c3013
rsx: Avoid acquiring the vm lock; deadlock evasion
...
- A possible deadlock is still present if rsx is trying to get a super_ptr whilst the vm lock holder is in an access violation
This patch makes this scenario very unlikely since each block need only be touched once
2018-08-18 16:14:30 +03:00
kd-11
741ee9ac41
rsx: Allow linear filtering when reading back GPU-resident memory
2018-08-18 16:14:30 +03:00
kd-11
cc7848b3ef
vulkan: Fix blit engine transfer to ARGB8 render target memory
2018-08-18 16:14:30 +03:00
kd-11
e9d6096356
vk: Fixups for type b surfaces
2018-08-18 16:14:30 +03:00
kd-11
373e02e91c
rsx: Timestamp accuracy workaround
2018-08-18 16:14:30 +03:00
kd-11
1200ca8172
rsx: Optimize hash_struct; vk cleanup
2018-08-18 16:14:30 +03:00
kd-11
d0165290b6
rsx: Refactor and fix framebuffer layout checks
...
- Refactors shared code back into rsx core
- Adds extra check to avoid contest confusion
2018-08-18 16:14:30 +03:00
kd-11
0267221586
Minor optimizations and fixes
...
- FIFO: avoid multiline spam
- VK: Fix program setup counter
- FS: Precalculate fragment constants buffer size during analysis step
2018-08-18 16:14:30 +03:00
kd-11
9f0fada17a
ZCULL: lower notice severity to avoid spam
2018-08-18 16:14:30 +03:00
kd-11
8800c10476
zcull synchronization tweaks
...
- Implement forced reading when calling update method to sync partial lists
- Defer conditional render evaluation and use a read barrier to avoid extra work
- Fix HLE gcm library when binding tiles & zcull RAM
2018-08-18 16:14:30 +03:00
kd-11
3b47e43380
rsx: Synchronization rewritten
...
- Do not do a full sync on a texture read barrier
- Avoid calling zcull sync in FIFO spin wait
- Do not flush memory to cache from the renderer side; this method is now obsolete
2018-08-18 16:14:30 +03:00
Rui Pinheiro
23b52e1b1c
Mark unsync textures dirty when deferred flushing
...
invalidate_range_impl_base does not mark all textures that will only be
unprotected as dirty when doing a deferred flush, since that is done by
flush_all.
However, if there are no sections to flush, the deferred flush will
use the same code path as non-deferred flushes for unprotecting textures
and forget to mark them as dirty.
This commit fixes this bug.
2018-08-16 15:38:36 +03:00
Rui Pinheiro
fa6a5761b3
Refactor get_intersecting_set
...
The existing implementation restarts the loop immediately after
finding a range_data instance that updates the trampled_range.
This commit refactors this method to continue the loop with the updated
trampled_range, and then repeat only those range_data instances that
were iterated through before the trampled_range was last updated.
As a result, the number of total iterations required is reduced.
2018-08-16 15:38:36 +03:00
Rui Pinheiro
b534d49e48
Fix off-by-one error in get_intersecting_set
...
When the trampled range changes, get_intersecting_set restarts the
outer loop. However, due to an off-by-one error, it skips the first
cache entry when doing so. This can cause a texture not to be
correctly unlocked, which could lead to issues or even deadlocks.
This commit fixes this off-by-one error.
2018-08-16 15:38:36 +03:00
Rui Pinheiro
f82ce06fdc
Fix typo in buffered_section::overlaps_page
...
If "address" is not page-aligned, the calculated end address for the
corresponding page is incorrect which can lead to false positives,
causing some textures to be re-uploaded unnecessarily.
This commit fixes this typo.
2018-08-16 15:38:36 +03:00
eladash
9d8c9c2460
sys_memory: fix default alignment flag
...
its 1mb
2018-08-16 03:27:11 +04:00
eladash
061c787e56
rsx-capture: unbreak
2018-08-16 03:27:11 +04:00
Nekotekina
5e20d4b481
Fix vm regression from #4975
...
Incorrect vector management
2018-08-14 23:57:20 +03:00
Nekotekina
a3daa99a33
Fixup sys_vm_memory_map
2018-08-14 16:08:45 +03:00
Nekotekina
aa4040bb7b
Implement vm::find_map; improve memory allocation
...
Add vm::user64k and vm::user1m constants
Remove vm::user_space, unreserve it
2018-08-14 15:14:06 +03:00
Nekotekina
9578e1e923
SPU LLVM: lower some log levels
2018-08-14 15:14:06 +03:00
Nekotekina
62f9a2dc4b
sys_fs_open: support split files
2018-08-14 15:14:06 +03:00
Megamouse
57ba9d3939
basic mouse handler: multi monitor adjustments
2018-08-13 22:23:22 +02:00
Megamouse
1a5b950d8b
fix cellMouse lag + fullscreen mouse
2018-08-13 22:23:22 +02:00
eladash
449888b9db
Rsx/vm: fix base addresses
2018-08-13 16:16:34 +03:00
eladash
f349695a75
Rsx: rewrite address translation
2018-08-13 16:16:34 +03:00
eladash
9e380a4a4a
Rsx: avoid invalid cmds execution
2018-08-12 23:37:24 +03:00
eladash
c80eb1ba02
Rsx: fix CALL and RET cmd
2018-08-12 23:37:24 +03:00
Nekotekina
801089cf44
PPU LLVM: always link syscall_## functions
...
Regardless of whether they have name or not
Should fix "Linkage failed" errors introduced after #4886
2018-08-12 15:42:47 +03:00
Nekotekina
fdd4f03b93
SPU LLVM: improve xfloat precision
...
Use doubles for intermediate representation
Add option "Accurate xfloat" to enable
2018-08-12 15:42:47 +03:00
Nekotekina
d1fd4d5000
PPU: don't use transactions (test)
2018-08-12 02:42:32 +03:00
Nekotekina
14e6577700
SPU LLVM: improve debugging RPCS3
...
Build cache in reverse order
Catch exceptions in instruction loop: print IR
2018-08-12 02:42:32 +03:00
Nekotekina
711e0f75ee
SPU LLVM: inline WRCH (preview)
...
With lööps for TSX bróþers
2018-08-12 02:42:32 +03:00
Nekotekina
d01bf3bcb0
SPU LLVM: rewrite CGX
2018-08-12 02:42:32 +03:00
Nekotekina
d3ad44aec4
SPU LLVM: improve constant propagation
...
Propagate constants in non-volatile registers between chunks
Disable function table in Mega mode
2018-08-12 02:42:32 +03:00
Nekotekina
a424fcfcf7
PPU LLVM: fix phenoms
2018-08-12 02:42:32 +03:00
Chris Weermann (TGE)
fdcc5adc8d
Fix overflow in PPUThread stack frame dump
2018-08-11 20:56:19 +04:00
eladash
745ed8331c
Fix sys_rsx_context_iounmap args
2018-08-11 18:14:35 +04:00
Maxetto
05c1f192f5
Update new LV2 names ( #4886 )
2018-08-11 16:46:44 +04:00
VelocityRa
1625f4bcc9
cellCamera: Fixes
...
- Fix regression from #4676
- Refactoring of event queue management stuff
- Some accuracy fixes
2018-08-07 02:54:14 +02:00
Megamouse
69af607491
cellCamera: improvements
2018-08-02 00:24:06 +02:00
Megamouse
456aa4ab8d
cellMusic: improvements
2018-08-02 00:24:06 +02:00
Megamouse
f8c8a3a26c
cellPad: improvements
2018-08-02 00:24:06 +02:00
Megamouse
27820f0371
cellMouse: improvements
2018-08-02 00:24:06 +02:00
Megamouse
bff038f554
cellKb: improvements
2018-08-02 00:24:06 +02:00
Megamouse
6629983ca7
Fix alignment in KeyboardHandler.h
2018-08-02 00:24:06 +02:00
Megamouse
8cb749110f
RSX Overlay: fix set text
2018-07-30 20:58:41 +02:00
Megamouse
d057c79733
RSX: use localtime_s instead of localtime
2018-07-28 23:10:45 +02:00
Megamouse
f82739afb0
RSX: Add performance overlay colors to configs
...
use a string hex color code. Allowed string formats are:
#FFFFFF or #FFFFFFFF (or both without #)
2018-07-28 23:10:45 +02:00
Megamouse
2211e95e41
RSX/Qt: add the possibility to center the performance overlay
2018-07-28 23:10:45 +02:00
Megamouse
67aff85e8e
RSX/Qt: Move rrc captures to captures dir
2018-07-28 23:10:45 +02:00
Megamouse
bb8fa28521
RSX: add config settings for shader compilation hint positions
2018-07-28 23:10:45 +02:00
Megamouse
eecb984689
RSX/Qt: add more performance overlay options to the gui
2018-07-28 23:10:45 +02:00
Megamouse
f8d396ac9e
change rsx_capture filename
2018-07-28 23:10:45 +02:00
Megamouse
ab84a67511
Loader: handle fs::file is Null fatal after decrypt self
2018-07-28 23:10:45 +02:00
Megamouse
f6a3659a14
user_manager: megamouse fixes 4
2018-07-26 03:16:51 +04:00
Megamouse
e58b7cbe1f
user_manager: megamouse fixes 3
2018-07-26 03:16:51 +04:00
Megamouse
eef900ef41
user-manager: megamouse fixes
...
(cherry picked from commit 949807c1cc689e12e5f0cea367564306ea36a759)
2018-07-26 03:16:51 +04:00
mpm11011
68202eb2b7
user-manager: replacing fmt::format with string concat.
...
(cherry picked from commit 63379afc7a402edb2159912318281febc3e7438a)
2018-07-26 03:16:51 +04:00
mpm11011
948bd3673e
user-manager: squash all commits for this feature.
2018-07-26 03:16:51 +04:00
scribam
c5c0f68b3e
ppu-precise: improve vaddsws and vadduws instructions
2018-07-22 19:53:28 +04:00
kd-11
19d808d378
rsx/gl: Minor cleanup and optimization
...
- Track register change status
- Remove unused gl classes
2018-07-22 17:19:59 +03:00
kd-11
8695f95267
rsx: Reimplement cached textures and their views
2018-07-22 17:19:59 +03:00
eladash
12b8908a00
cellvdec: stub unsupported video timebases
2018-07-21 15:32:38 +04:00
Nekotekina
89fe3705a4
Remove cpu_translator::ucarry<>
2018-07-21 12:18:07 +03:00
Nekotekina
9b4e63df6d
SPU LLVM: simplify CG, CGX, BG, BGX
2018-07-21 12:18:07 +03:00
Nekotekina
03e6725fcf
PPU LLVM: simplify VMSUMUHS
2018-07-21 12:18:07 +03:00
Nekotekina
d2d07abcc5
cellSaveData: print SECUREFILE secureId
...
This can help to decrypt savedata
2018-07-21 12:18:07 +03:00
John
6caffd0e32
Add a channel map to the PA backend to fix surround sound ( #4911 )
...
* Add a channel map to the PA backend to prevent issues with more than 6 channels
* Arranged the mapping per cellAudio.cpp
2018-07-21 03:02:07 +04:00
scribam
5828367013
spu-precise: fix double-precision floating-point exception checks
2018-07-20 15:22:14 +04:00
eladash
20e9ae069c
Fix sys_time_get_current_time
2018-07-19 14:43:10 +04:00
Megamouse
a19113025c
HLE/Qt: implement sys_tty_read
2018-07-16 00:05:30 +04:00
scribam
65d270e5d8
clang-tidy: performance-faster-string-find
...
https://clang.llvm.org/extra/clang-tidy/checks/performance-faster-string-find.html
2018-07-15 12:51:09 +04:00
scribam
b36d0fd59f
clang: fix compilation on 3.6
2018-07-15 12:51:09 +04:00
kd-11
c35d0d16e7
vk: cleanup/optimization, remove unnecessary initialization code
2018-07-14 15:19:56 +03:00
kd-11
e7f30640ef
rsx: Async shader compilation
...
- Defer compilation process to worker threads
- vulkan: Fixup for graphics_pipeline_state.
Never use struct assignment operator on vk** structs due to padding after sType member (4 bytes)
2018-07-14 15:19:56 +03:00
eladash
ac99fd764d
mfc: clamp atomic cmd's addr
2018-07-14 01:40:40 +04:00
kd-11
fa55a8072c
rsx: Improve vertex textures support
...
- Adds proper support for vertex textures, including dimensions other than 2D textures
- Minor analyser fixup, removes spurious 'analyser failed' errors
- Minor optimizations for program state tracking
2018-07-12 18:02:28 +03:00
Ofek
d3596fbc95
Change all hddFreeSizeKB to 40gb-1
2018-07-11 02:16:14 +04:00
eladash
a5d4e58ddd
fix barrier type mfc transfers
2018-07-10 14:54:51 +04:00
Chris Weermann (TGE)
c5dcef52fa
Implement sys_dbg_read_process_memory and sys_dbg_write_process_memory
2018-07-10 01:47:47 +04:00
kd-11
d266a25618
silence some annoying warnings
2018-07-09 13:06:00 +03:00
kd-11
1ddcad4fa4
facepalm
...
- Fix openGL regression
2018-07-09 13:06:00 +03:00
scribam
1b0f5b1ed9
spu: improve dfnma instruction
2018-07-09 03:33:05 +04:00
scribam
2ed6e51d24
ppu: improve vnmsubfp instruction
2018-07-09 03:33:05 +04:00
scribam
733efc6b0d
ppu: improve fnmsubs instruction
2018-07-09 03:33:05 +04:00
scribam
f1e6532ec0
ppu: improve fnmsub instruction
2018-07-09 03:33:05 +04:00
kd-11
f0a9799b4b
rsx/Qt: Fix Qt shader loading dialog crash
2018-07-07 16:20:33 +03:00
kd-11
4d40ed9dbd
rsx: Silence harmless warning
2018-07-07 16:20:33 +03:00
kd-11
d78957d1cf
rsx/vp: CodeGen improvements
...
- Fix double destination writes on conditional write masking
- Fix codegen to simplify simple scalar comparisons vs vector functions
2018-07-07 16:20:33 +03:00
kd-11
2c34195954
rsx/vp: Discard broken vertex programs with no writes to POS register
2018-07-07 16:20:33 +03:00
kd-11
2ca935a26b
vp: Improve vertex program analyser
...
- Adds dead code elimination
- Fix absolute branch target addresses to take base address into account
- Patch branch targets relative to base address to improve hash matching
- Bumps shader cache version
- Enables shader logging option to write out vertex program binary,
helpful when debugging problems.
2018-07-07 16:20:33 +03:00
kd-11
bd915bfebd
rsx: vp decompiler fixes
...
- Fix program abort logic to never abort before resolving later label addresses
Fixes jumping over broken code and jumping over END markers
- TEXTURE_CONTROL2 has indexing range of [0..15] without stride skipping!
This register does not have interleaving with other texture registers
- Track shader address poke as it seems to invalidate programs as well
2018-07-07 16:20:33 +03:00
kd-11
66854b78fa
rsx: Fix nv308a::color
2018-07-07 16:20:33 +03:00
Ofek
dceba8a92b
PPU analyser optimizations
2018-07-07 14:26:56 +04:00
Nekotekina
d856dc89a8
SPU LLVM: combine SELB with comparison instructions
...
Turn bitwise select into a vector select
2018-07-06 02:26:18 +03:00
Nekotekina
2f0dc9bd0f
PPU LLVM: simplify VSUBCUW, VSUBUBS, VSUBUHS, VSUBUWS
2018-07-06 00:33:52 +03:00
Nekotekina
9d9869e803
PPU LLVM: simplify VADDCUW, VADDUBS, VADDUHS, VADDUWS
2018-07-06 00:33:52 +03:00
Nekotekina
caf827344f
SPU LLVM: improve SHL, SHLH, ROTM, ROTHM instructions
...
Avoid zero extension, select undef result to zero
2018-07-06 00:33:52 +03:00
Nekotekina
b9c026d441
SPU LLVM: improve ROTMA and ROTMAH instructions
...
Avoid sign extension, clamp shift amount with min op
2018-07-06 00:33:52 +03:00
Nekotekina
2b9fa7ed23
SPU LLVM: combine SHUFB with CWD-alike instructions
...
Turn SHUFB into a vector insert
2018-07-06 00:33:52 +03:00
Nekotekina
253e8b4466
SPU LLVM: improve SHUFB with constant mask
2018-07-06 00:33:52 +03:00
Nekotekina
622f2f7f66
SPU LLVM: constant computation fixes
...
Fixed instructions:
Gather Bits: GB, GBH, GBB
Form Select Mask: FSM, FSMH, FSMB
2018-07-06 00:33:52 +03:00
Nekotekina
c959ab2698
SPU LLVM: fix constant propagation
...
Compute constant bitcasts
2018-07-06 00:33:52 +03:00
Nekotekina
20900ebea2
SPU: rename block stats
...
Use Block Weight and Retreats
2018-07-06 00:33:52 +03:00
Nekotekina
a0c0d8b993
SPU: simplify unimplemented event check
...
Move checks closer to the actual use
2018-07-06 00:33:52 +03:00
Nekotekina
afd5af04f6
SPU: improve analyser (v5)
...
Fix jumptable analysis
2018-07-06 00:33:52 +03:00
Nekotekina
712632d28a
SPU LLVM: inline RDCH
2018-07-06 00:33:52 +03:00
Nekotekina
c1385558ad
SPU LLVM: inline RCHCNT
2018-07-06 00:33:52 +03:00
Nekotekina
0910acad42
SPU LLVM: clean NOP/LNOP
...
Add volatile to state check and update_pc()
2018-07-06 00:33:52 +03:00
Nekotekina
513bac0304
SPU LLVM: refactor halt instructions
2018-07-06 00:33:52 +03:00
Nekotekina
a0bf103e8b
Implement cpu_translator::pshufb<>()
...
Remove spu_translator::pshufb<>()
Improve PSHUFB emulation (pre-SSSE3)
Emit static shufflevector for the constant mask
PPU: Inline VPERM instruction
2018-07-06 00:33:52 +03:00
Nekotekina
41eab62ed7
Implement spu_iname helper
...
Remove old code
Report $SP anomalies
2018-07-06 00:33:52 +03:00
Nekotekina
e009bbac10
Use LLVM 7 (master)
2018-07-06 00:33:52 +03:00
Nekotekina
1ac203a958
Funny workaround
2018-07-05 22:26:35 +03:00
Nekotekina
c86dc133cf
Rewrite cpu_translator::avg()
2018-07-05 22:26:35 +03:00
Nekotekina
8ad05ce10e
SPU LLVM: fix jt target duplication bug
2018-07-05 22:26:35 +03:00
Nekotekina
a999bccc03
SPU LLVM: use cpu_translator::build<>
2018-07-05 22:26:35 +03:00
Nekotekina
ded9d1ddfd
SPU LLVM: improve function type
...
Use pointers for args
Use noalias attribute
2018-07-05 22:26:35 +03:00
Nekotekina
88d0316aad
Update cpu_translator
...
Add get_const_vector<v128>()
Add make_const_vector<v128>()
Add i2 and i4 types
Add build<>() for vector constants
Fix comparisons, allow EQ/NE for bool/char/i2/i4 types
2018-07-05 22:26:35 +03:00
eladash
4db79c458d
Fix cellSysCacheMount error checking
2018-07-05 16:36:57 +04:00
eladash
24699f0f96
Fix cellSysCacheClear
2018-07-05 16:36:57 +04:00
eladash
3b64e0fb3f
Fix cache directory
2018-07-05 16:36:57 +04:00
isJuhn
3d8223fccc
Fix LLVM STW reservation update
2018-07-02 15:19:50 +04:00
Ofek
5d3b0e7352
Fix cellGameDataCheckCreate2 ( #4832 )
...
* Fix cellGameDataCheckCreate2
2018-07-01 23:07:21 +01:00
Megamouse
ca30131faa
Qt: add new spu options to the settings dialog
...
Also rework the layout a bit.
We need to think about creating a firmware tab
2018-07-01 19:33:33 +04:00
eladash
345f92ab0a
rsx: more efficient command reading
2018-06-27 21:59:34 +03:00
kd-11
42851a93d4
vk: Fixup
2018-06-26 20:07:20 +03:00
kd-11
24f4c92759
rsx: Improve texture cache read speculation
2018-06-26 20:07:20 +03:00
kd-11
c3d75e208f
glslang: Bump to version 2776
2018-06-26 20:07:20 +03:00
kd-11
df2137781d
vk: Strip 'stencil' MSB when writing d24x8 data
...
- Seems to contains garbage in MSB when DEPTH aspect is read back
- TODO: Implement custom depth and stencil readback routine
2018-06-26 20:07:20 +03:00
kd-11
1e375e5210
gl: Fixup
2018-06-26 20:07:20 +03:00
kd-11
1730708f47
rsx: Rework memory protection management for framebuffer access
...
- Avoid re-locking memory if there is no reason to do so (no draws issued)
- Actively bound regions should always get written to the backing cache
- Forcefully read memory during download if writes to the target have occured since last sync event
2018-06-26 20:07:20 +03:00
kd-11
bda65f93a6
vk: Tuning [WIP]
...
- Unroll main compute queue loop
- Do NOT run GPU cores on mappable memory! This has a dreadful impact on performance for obvious reasons
- Enable dynamic SSBO indexing (affects AMD)
- Make loop unrolling and loop length variable depending on hardware and find optimum
2018-06-26 20:07:20 +03:00
kd-11
d484253136
vk: Addendum - Synchronize graphics and compute pipelines with barriers
2018-06-26 20:07:20 +03:00
kd-11
5fb4009a07
vk; Add more compute routines to handle texture format conversions
...
- Implement le D24x8 to le D32 upload routine
- Implement endianness swapping and depth format conversions routines (readback)
2018-06-26 20:07:20 +03:00
kd-11
f45dcfe18a
rsx: Fix texture readback
...
- gl: Fix up the calculation for internal image pitch
- vk: Implement GPU-side resizing for read back textures (fixes WCB zoom)
2018-06-26 20:07:20 +03:00
kd-11
278cb52f19
facepalm
2018-06-26 20:07:20 +03:00
eladash
b9fd6ad37d
rsx-capture: unbreak
2018-06-24 15:14:37 +03:00
Jake
00c9b323c2
rsx: fix image_in to use in_pitch when swizzling
2018-06-24 14:29:41 +04:00
Jake
e2c288ff8a
trophy: zero out data before setting
2018-06-24 14:29:41 +04:00
Jake
edeb858138
loader: ignore invalid index_value and allow relative reloc 10
2018-06-24 14:29:41 +04:00
eladash
b3a933ba84
cellgcm: fix regression
2018-06-24 10:57:30 +03:00
eladash
b456955688
rsx: fix hardcoded rsx allocation address
2018-06-24 10:57:30 +03:00
isJuhn
83f096c435
Add conditional reservation update to STW
2018-06-23 23:13:34 +04:00
Nekotekina
6229b3ca8d
Fixes for booting PS1 games
2018-06-23 17:30:16 +03:00
clienthax
8b449ce76c
PS1 Classics
2018-06-23 16:34:19 +04:00
Nekotekina
d62b0c88b0
Restore /dev_flash/ config
2018-06-23 09:26:11 +03:00
Nekotekina
cd92d9bcdf
Fix SPU ASMJIT for SSE2 CPUs
2018-06-23 08:46:50 +03:00
Megamouse
4464951c77
cellVdec: add more detail to the logging
2018-06-22 22:30:02 +04:00
Nekotekina
81e5f3b7f2
Remove /dev_flash/ configuration
...
Simplify code by using root config location for /dev_flash/
Hide Emu.GetEmuDir() function due to the risk of misuse
2018-06-22 14:14:29 +03:00
Nekotekina
e4da284176
SPU: analyser v4 and fixes
...
Build SPU cache after PPU, fix mixing progress
SPU ASMJIT: add support for Giga mode
SPU ASMJIT: use the same spu.log location as SPU LLVM
SPU: improve spu.log disasm
SPU: improve trampolines, unify with SPU ASMJIT
SPU: decode interrupt handler address from BR/BRA at 0x0
SPU LLVM: support Mega/Giga modes
SPU LLVM: implement function chunks
SPU LLVM: use PHI nodes, value visibility across basic blocks
SPU LLVM: implement function chunk table
New simple memory manager for LLVM (bugfix)
2018-06-21 22:29:34 +03:00
eladash
3e433ef05c
create the shaderlog dir in Emu.Init()
2018-06-21 22:54:08 +04:00
kd-11
8f1c36d79f
rsx: Fix region pitch inaccuracy
...
- Region pitch of 64 (disabled) can be used to indicate packed contents - do not assume it is the actual pitch!
- Also fixes interaction of AA factors with lockable_region size
2018-06-21 13:08:50 +03:00
Megamouse
0ffaf6c1ce
Qt/RSX: reset gs_frame taskbar progr. when closing native progr. dialogs
...
I forgot that the gs_frame's taskbar progress will stay unchanged due to its persistence, unlike the msgdialog.
2018-06-19 21:58:09 +03:00
VelocityRa
dd0684b58a
overlays/perf_overlay: Make pos, font, opacity, margin configurable
...
- Also some perf overlay refactoring
2018-06-18 22:34:26 +03:00
VelocityRa
58f4b26134
overlays: Consider padding when auto-resizing label elements
...
- Also make auto_resize return whether it changed the size
2018-06-18 22:34:26 +03:00
VelocityRa
84d1cf5065
overlays: Change how padding and margin work
...
- Also add 3 helper functions to compiled_resource
2018-06-18 22:34:26 +03:00
VelocityRa
07731d0228
overlays: Fix text rendering position
...
- It should be offset by one line, not half
- Also tweak every overlay element affected by this
to look as it used to
2018-06-18 22:34:26 +03:00
VelocityRa
44449dd9e9
overlays: Refactoring
...
- Use names for overlay command config and vertex data instead of std::pair.
- Make a couple of compiled_resource constructors explicitly named functions.
2018-06-18 22:34:26 +03:00
kd-11
c60f7b89ba
vk: Implement safe typeless transfer
...
- Used to transfer D32S8 data where it makes sense to use this variant
- On nvidia cards, it is very slow to move aspects from D24S8 probably due to the format being faked.
For this reason, the unsafe variant is used for both D16 and D24S8 to avoid the heavy performance loss
2018-06-18 17:32:22 +03:00
kd-11
0d61bae1b9
vk: Performance fix for RADV
...
- RADV does not keep a mapping ptr around for subsequent remap and falls back to heavy amdgpu methods every time
Explicitly manage pointer in the ring buffer structure to fix this
2018-06-18 17:32:22 +03:00
kd-11
d77e62c94e
rsx: Improve GPU resource read prediction
2018-06-18 17:32:22 +03:00
kd-11
2afcf369ec
vk: Add synchronous compute pipelines
...
- Compute is now used to assist in some parts of blit operations, since there are no format conversions with vulkan like OGL does
- TODO: Integrate this into all types of GPU memory conversion operations instead of downloading to CPU then converting
2018-06-18 17:32:22 +03:00
kd-11
0d5c071eee
vk: Implement typeless image transport
2018-06-18 17:32:22 +03:00
kd-11
dd4c13b625
rsx: Avoid race conditions in unsynchronized unprotect
2018-06-18 17:32:22 +03:00
eladash
af62c92b7f
mfc: clamp list transfer size
2018-06-17 23:20:00 +04:00
Megamouse
af71cf0922
implement "Enable TSX" combobox
2018-06-17 00:43:00 +04:00
Ofek
2bc4cb4e58
Fix sys_spu_thread_connect event
2018-06-16 19:05:51 +04:00
scribam
6f3a63df94
fix compiler warning "-Winconsistent-missing-override"
2018-06-13 20:22:53 +02:00
Talkashie
f491dc1413
Update System.h
2018-06-13 10:00:32 +03:00
scribam
14dc1fead6
yaml-cpp: update submodule and build integration
2018-06-13 04:25:34 +04:00
Nekotekina
88b6d51643
Fix cellGameContentPermit
2018-06-12 02:09:22 +03:00
Nekotekina
eb081bbcfa
SPU: add 'Accurate PUTLLUC' option
...
Effectively rollback previous PUTLLUC accuracy commit by default
Minor changes in GETLLAR/PUTLLUC transactions
2018-06-12 02:09:22 +03:00
Nekotekina
0a58464f01
SPU ASMJIT: returnable STOP in Mega mode
...
Fix STOP, STOPD, SYNC, DSYNC in Safe mode
2018-06-12 02:09:22 +03:00
Megamouse
a8f19fbfae
RSX: fix shader cache progress bar exit state shenanigans
2018-06-11 22:41:38 +03:00
isJuhn
88bfdb0c05
cellGameContentPermit: Don't set content and usrdir path on gamedata if cellGameCreateGameData was never called
2018-06-11 21:48:29 +04:00
jjsat
53ca2526ed
Fix VSLO and VSRO in the LLVM PPU recompiler
2018-06-10 20:12:40 +04:00
Megamouse
5454f57dd0
cellSaveData: handle fatal error fs::file is_null (read-only files)
2018-06-08 23:41:56 +03:00
Megamouse
4003aacc6a
RSX: add taskbar progress to native ui progress dialogs
2018-06-08 23:41:56 +03:00
Megamouse
b9b6bd85a6
Qt/RSX: add taskbar progress in msg_dialog_frame for shader compilation
2018-06-08 23:41:56 +03:00
Megamouse
edc9e9b4ec
Qt/RSX: add window title to the shader compilation msg_dialog
2018-06-08 23:41:56 +03:00
kd-11
da9affb348
vk: Fix overlays for variable sampler count
2018-06-08 22:17:50 +03:00
kd-11
00eaf39c01
vk: RADV support for depth scaling and transfer
2018-06-08 22:17:50 +03:00
kd-11
63f803b68a
Refactoring
...
- Make the memory allocator a unique child of the render device.
Fixes object lifetime issues with swapchain management due to cyclic dependencies
2018-06-08 22:17:50 +03:00
kd-11
c9e367befd
rsx/debug: Fix rendering when FIFO reordering is disabled
2018-06-08 22:17:50 +03:00
kd-11
1c5667f0ce
vk: Avoid use-after-free fence object
2018-06-08 22:17:50 +03:00
kd-11
e9c3ab7ae6
fix some linux issues
...
- Fix build
- Fix VMA incompatibility with swapchain_NATIVE
2018-06-08 22:17:50 +03:00
kd-11
1b9c9267f0
rsx: Update memory flags after memory transfer
2018-06-08 22:17:50 +03:00
kd-11
fc18e17ba6
vk: Implement depth scaling using hardware blit/copy engines
...
- Removes the old depth scaling using an overlay.
It was never going to work properly due to per-pixel stencil writes being unavailable
- TODO: Preserve stencil buffer during ARGB8->D32S8 shader conversion pass
2018-06-08 22:17:50 +03:00
kd-11
3150619320
rsx: Preserve read AA state separate from write AA state
...
- Some applications (e.g Backbreaker) use an evil hack to resolve MSAA.
The application respecifies a formerly AA region as a region with no AA then performs a framebuffer feedback lookup.
The old memory keeps AA during read, but writes back to itself with AA resolved.
This is evil on several levels but it just happens to work on PS3
2018-06-08 22:17:50 +03:00
kd-11
0f24379c0e
rsx: Obey MSAA resolve during memory persistence transfer
...
- Ugh. This is a bandaid on a festering wound, AA badly needs a rewrite
Also silence some warnings
2018-06-08 22:17:50 +03:00
Daniel Valentine
fb20c27e7b
Delay GDB server launch until emulator run ( #4658 )
2018-06-08 13:34:27 +01:00
isJuhn
dde4a9c6e7
Fix cellGameCreateGameData temporary path
2018-06-06 23:51:58 +04:00
ikki84
73f7ab29bc
Return offline according to g_psn_connection_status.
2018-06-06 19:14:12 +04:00
ikki84
83b09cf047
sceNpManagerRequestTicket2 (return offline)
...
Returning CELL_OK in sceNpManagerRequestTicket2 makes NPEB01268 loop indefinitely trying to check the downloaded content.
Telling that the system is offline escapes the loop and make the game go further.
Moves NPEB01268/BLES01794 from Intro to Ingame.
2018-06-06 19:14:12 +04:00
scribam
824ad4fea7
cmake: simplify glslang integration ( #4652 )
...
* cmake: simplify glslang integration
* Fix warning (ignored attributes), part 2
2018-06-06 15:45:28 +03:00
Nekotekina
5c9d0e4b46
Add "SPU Cache" option
...
If disabled, the cache will still be loaded, but never updated.
2018-06-05 12:35:26 +03:00
Nekotekina
5d4c5ecc1c
Add "SPU Verification" option
...
Should be always enabled
2018-06-05 12:35:26 +03:00
Nekotekina
12eee6a19e
SPU ASMJIT: Implement Mega block mode (experimental)
...
Disable extra modes for SPU LLVM for now.
In Mega mode, SPU Analyser tries to determine complete functions.
Recompiler tries to speed up returns via 'stack mirror'.
2018-06-05 12:35:26 +03:00
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
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
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
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
scribam
bf2f00a163
log: add Vulkan header version
2018-05-19 10:59:10 +03:00
Nekotekina
67391322f4
Transactions: touch memory only after a failure
...
Minor optimization
2018-05-17 22:19:26 +03:00
Nekotekina
39088e5005
SPU: Allow waiting on LR+TM events (fixup)
2018-05-17 21:21:15 +03:00
Nekotekina
7afda26c69
spu_putllc_tx: preload a little more (WIN32)
2018-05-17 18:58:08 +03:00
Nekotekina
58e4d49bb5
Fixup (endless loop)
2018-05-17 18:33:44 +03:00
scribam
70e2873e69
Compilation fix for GCC 8 (at least)
2018-05-17 00:53:31 +04:00
Nekotekina
367f039523
Build transactions at runtime
...
Drop _xbegin family intrinsics due to bad codegen
Implemented `notifier` class, replacing vm::notify
Minor optimization: detach transactions from global mutex on TSX path
Minor optimization: don't acquire vm::passive_lock on PPU on TSX path
2018-05-16 17:31:58 +03:00
Nekotekina
fd525ae1cf
Implement build_function_asm
...
Uses ASMJIT to build function at startup
2018-05-16 15:48:35 +03:00
scribam
fd8aae5725
emu: remove wait_engine files
...
These files are empty and do not serve any purpose currently
2018-05-16 03:56:06 +04:00
scribam
196f985283
hle: improve cellSync2 error checks and logging
2018-05-15 22:59:34 +04:00
sftt
27004eb934
Avoid illegal available_user_memory in sys_memory ( #4399 )
...
jarveson says "the comment and minus can be completely deleted/reverted" in 17cf24d0ed
2018-05-15 17:40:45 +01:00
scribam
04ad49de4d
typos
2018-05-14 21:14:39 +04:00
isJuhn
fc23243d01
Fix setParam in cellHddGameCheck
2018-05-14 16:56:47 +01:00
Nekotekina
3c70645f0b
Update SPU cache (v2)
...
Improve SPU analyser: filter unreachable fragments
More strict NOP/LNOP analysis
Fill block predecessors info
ASMJIT: fix assertion and improve indirect branch
2018-05-13 20:40:23 +03:00
kd-11
4836a03a7d
rsx: Fix build
2018-05-13 14:44:14 +03:00
kd-11
9d1f4a2538
vk: Include RADV POLARIS and RADV VEGA in the primitive restart
...
blacklist
2018-05-13 14:44:14 +03:00
kd-11
bff6060bd6
rsx: Improve puller state management
...
- Properly identify puller spin primitives
- Add a small wake delay after exiting a spin delay. Fixes desynchronization
It seems real hw has a small delay between cell edits to commandbuffer memory at the GET address and the changes becoming visible to the DMA puller
Simulated with a short busy_wait, large values will improve sync but degrade performance
2018-05-13 14:44:14 +03:00
kd-11
1aa44ede31
gl: Improve AMD multidraw workaround
...
- Reimplements the AMD workaround using an identity buffer to avoid the performance hit of doing multiple glDrawArrays for every single compiled set
- Reimplements first/count allocation using a scratch buffer to reduce allocation overhead when large number of draw calls is used
2018-05-13 14:44:14 +03:00
kd-11
eccb57d4b8
vk: AMD primitive restart bug workaround
...
- Emulate primitive restart with degenerate triangles
2018-05-13 14:44:14 +03:00
kd-11
b7979d3f57
rsx/vk: Improvements and minor optimizations
...
- Improve dirty state tracking affecting program state
- vk: Refactor out transform constants upload into a separate channel to avoid if possible
transform data uploads are quite expensive
2018-05-13 14:44:14 +03:00
kd-11
440a31ef18
rsx: Optimizations for program management
2018-05-13 14:44:14 +03:00
kd-11
a52ea7f870
rsx: Improve fragment and vertex program usage
...
- Introduces a gpu program analyser step to examine shader contents before attempting compilation or cache search
- Avoids detecting shader as being different because of unused textures having state changes
- Adds better program size detection for vertex programs
- Improved vertex program decompiler
- Properly support CAL type instructions
- Support jumping over instructions marked with a termination marker with BRA/CAL class opcodes
- Fix SRC checks and abort
- Fix CC register initialization
- NOTE: Even unused SRC registers have to be valid (usually referencing in.POS)
2018-05-13 14:44:14 +03:00
Jake
75b40931fc
rsx: initial capture/replay functionality ( #4510 )
...
* rsx: initial capture/replay functionality
2018-05-13 12:18:05 +03:00
Nekotekina
7cb4672344
Travis: remove LLVM for now
2018-05-13 00:03:08 +03:00
Nekotekina
4c7afb6952
Opt-in set DAZ and FTZ
2018-05-13 00:03:08 +03:00
Nekotekina
a77896c1b6
Update LLVM commit, use small code model
2018-05-13 00:03:08 +03:00
Nekotekina
be5c18cc85
SPU Re: more precise jt generation
...
Improve analyser, set v1
Fix branch indirect conditional
2018-05-12 23:50:49 +03:00
Nekotekina
737db90058
Set DAZ and FTZ
2018-05-09 23:38:26 +03:00
Nekotekina
5d15d64ec8
Memory mirror support
...
Implemented utils::memory_release (not used)
Implemented utils::shm class (handler for shared memory)
Improved sys_mmapper syscalls
Rewritten ppu_patch function
Implemented vm::get_super_ptr (ignores memory protection)
Minimal allocation alignment increased to 0x10000
2018-05-09 23:35:34 +03:00
Nekotekina
fe4c3c4d84
Implement SPU recompiler cache
...
Shared between ASMJIT/LLVM recompilers, compiled at startup
2018-05-09 23:35:18 +03:00
Nekotekina
f5ee6fb113
Convert newlines in game title
2018-05-09 22:19:55 +03:00
Nekotekina
acfe22e5bc
SPU: improve jumptable detection
2018-05-09 22:19:55 +03:00
Nekotekina
8f91917e8c
SPU ASMJIT: simplify patchpoints
...
Remove SPU thread reference from spu_recompiler_base
Disable support for far jumps in pathpoints (they were rare and unsafe)
2018-05-09 22:19:55 +03:00
Nekotekina
1ca51a023c
SPU LLVM Recompiler (preview)
2018-05-09 22:19:55 +03:00
Nekotekina
a975ecdc4f
Use LLVM 6
2018-05-08 13:05:29 +03:00
Nekotekina
8b704588d0
Update cpu_translator
2018-05-08 13:05:29 +03:00
Nekotekina
db229dffb0
PPU LLVM: minor update
2018-05-08 13:05:29 +03:00
Nekotekina
16f5167aed
SPU Analyser improved
...
This restores some functionality removed in SPU ASMJIT v2.0
Also implements new experimental features
2018-05-08 13:05:29 +03:00
Nekotekina
767dfa271e
SPU ASMJIT: internal jumptable
...
Allow indirect calls within current function using a jumptable
This restores some functionality removed in SPU ASMJIT 2.0
Change SPUThread::get_ch_value prototype
2018-05-08 13:05:29 +03:00
Nekotekina
df453d6d4f
SPU ASMJIT: allow holes in raw block data
...
This is preparation for further changes.
This commit shouldn't affect anything.
2018-05-08 13:05:29 +03:00
Nekotekina
2fecddcde2
SPU ASMJIT: rewrite halt instruction
...
Use conditional memory access to invalid address.
This approach can allow continue (for debugging);
but at the same time it doesn't add function call to recompiled code.
2018-05-08 13:05:29 +03:00
Nekotekina
4d60d85db5
SPU: fix MFC_PUTQLLUC_CMD fence trait
2018-05-08 13:05:29 +03:00
Nekotekina
f4af3f2987
PPU: improve LWARX/LDARX consistency
2018-05-08 13:05:29 +03:00
Maxetto
dca6f1f863
Update some lv2 syscall names ( #4490 )
2018-05-06 14:21:50 +04:00
scribam
ff1b0d73b7
hle: make cellSubDisplayInit returns CELL_SUBDISPLAY_ERROR_ZERO_REGISTERED
2018-05-06 12:49:44 +04:00
kd-11
98b715d8c8
gl: Workaround for AMD driver bug
2018-04-25 19:14:36 +03:00
kd-11
ffa62918aa
gl: Improve pixel transfer code and notify on AMD driver bug
...
- Readback does not work at all with float textures on AMD openGL
Driver throws a bogus OUT_OF_MEMORY error regardless of amount of VRAM and system RAM available
2018-04-25 19:14:36 +03:00
kd-11
f3210a9a33
rsx: Workaround for lost memory sections
...
- TODO: surface_cache and texture_cache need a better method of persisting partial framebuffer resources
2018-04-25 19:14:36 +03:00
kd-11
58035697d5
rsx: Restore component mapping override for depth textures
2018-04-25 19:14:36 +03:00
kd-11
7e32e7343a
vk: Reorganize handling of formats support
...
- Formats support is linked to the physical device and by extension the logical device derived from it
It therefore makes no sense to track this as a separate object.
Simplifies parameter passing and template specialization.
Also avoids corner cases with AMD hardware (where D24S8 is not supported)
2018-04-25 19:14:36 +03:00
kd-11
291a828217
fixups
2018-04-25 19:14:36 +03:00
kd-11
40ae5e605d
vk: Fix border color selection
2018-04-25 19:14:36 +03:00
kd-11
c5d1f30e82
rsx: Fix performance counters
...
- Detect jump-to-self type idling
2018-04-25 19:14:36 +03:00
kd-11
91a6091d26
rsx: Minor fixes
...
- vk: Clear dirty textures before copying 'old contents' in case the old data does not fill the new region
- rsx: Properly decode border color - seems to be in BGRA format
- vk: better approximation of border color to better choose between the presets
- vk: Individually clear color images outside render pass and without scissor
- vk: Fix renderpass selection for clear overlay pass
- vk: Include scissor region when emulating clear mask
NOTES:
- vk: Completely avoid using vkClearXXXXimage - its 'broken' on nvidia drivers
Spec is vague about the function so its not an actual bug
ClearAttachment is clearly defined as bypassing bound state which works correctly
- TODO: Implement memory sampling to simulate loading precleared memory if cell used memset to preinitialize the framebuffer
Autoclear depth to 1|255 and color to 0 is hacky!
2018-04-25 19:14:36 +03:00
kd-11
da99f3cb9a
rsx: Critical fixes
...
- texture cache: Avoid leaking memory sections
- Avoid double ref increment on flush-always reprotection
- Detect invalidated_resources entries in surface cache when protecting fbo memory
- vk: Copypasta bugfix, properly initialize aspect mask
2018-04-25 19:14:36 +03:00
kd-11
a42b00488d
rsx: Texture fixes
...
- gl/vk: Fix subresource copy/blit
- gl/vk: Fix default_component_map reading
- vk: Reimplement cell readback path and improve software channel decoder
- Properly name the subresource layout field - its in blocks not bytes!
- Implement d24s8 upload from memory correctly
- Do not ignore DEPTH_FLOAT textures - they are depth textures and abide by the depth compare rules
- NOTE: Redirection of 16-bit textures is not implemented yet
2018-04-25 19:14:36 +03:00
kd-11
63d9cb37ec
rsx: Framebuffer fixes
...
Primary:
- Fix SET_SURFACE_CLEAR channel mask - it has been wrong for all these
years! Layout is RGBA not ARGB/BGRA like other registers
Other Fixes:
- vk: Implement subchannel clears using overla pass
- vk: Simplify and clean up state management
- gl: Fix nullptr deref in case of failed subresource copy
- vk/gl: Ignore float buffer clears as hardware seems to do
2018-04-25 19:14:36 +03:00
kd-11
9abbbb79ae
rsx: Blit engine fixes
...
- Ignore unlocked blit sections [TODO]
- Do not attempt blit on hw if bytesize is unsupported
- gl: Implement typeless memory transfers
Uses pbo to handle type-agnostic memory transfer
2018-04-25 19:14:36 +03:00
kd-11
bb5622401c
overlays/gl: minor fixes
...
- fix ogl color map for overlay resources
- fix label background for save dialog
2018-04-25 19:14:36 +03:00
kd-11
6d46ac1ad6
gl: Reimplement textures
...
- Separate texture data from texture views
2018-04-25 19:14:36 +03:00
kd-11
cf1b700ebc
rsx: Improve format mismatch detection hack
2018-04-25 19:14:36 +03:00
kd-11
c5cd758700
rsx: Workaround for G8B8 render targets
...
- Mainly affected are colormasks and read swizzles
NOTES:
- Writes to G write to the second and fourth component (YW)
- Writes to B write to first and third component (XZ)
- This means the actual format layout is BGBG (RGBA) making RG mapping actually GR
- Clear does not seem to have any intended effect on this format (TLOU)
2018-04-25 19:14:36 +03:00
Nekotekina
bd1d4de422
Fix unnecessary cache dir
2018-04-22 00:06:49 +03:00
Nekotekina
da6afb11f0
Fix game title if unset
2018-04-22 00:06:49 +03:00
Nekotekina
ef0196d791
Fix warning (vm::reservation_update)
2018-04-22 00:06:49 +03:00
Nekotekina
738a7cac4f
SPU ASMJIT: inline WRCH
2018-04-22 00:06:49 +03:00
Nekotekina
9516250bec
SPU: fix MFC_WrTagUpdate
2018-04-22 00:06:49 +03:00
Nekotekina
2418de7e8b
SPU ASMJIT: inline RDCH
2018-04-22 00:06:49 +03:00
Nekotekina
00ce814501
SPU ASMJIT: inline RCHCNT
2018-04-22 00:06:49 +03:00
Nekotekina
9ad5fc8a08
SPU: rewrite spu_channel_t
2018-04-22 00:06:49 +03:00
Nekotekina
3ffafb741c
SPU ASMJIT: übertrampolines and spu_runtime
...
Use opt-out shared spu_runtime to save memory (Option: SPU Shared Runtime)
Implement "übertrampolines" for dispatching compiled blocks
Patch fixed branch points to use trampolines after check failure
2018-04-22 00:06:49 +03:00
Nekotekina
8ca33bcb94
SPU ASMJIT v2.0
...
Use X86Assembler and blocks
2018-04-22 00:06:48 +03:00
Robbie
477522210e
Refactor debugger_frame into subclasses. Mostly trying to simplify
...
breakpoints.
2018-04-21 22:21:51 +04:00
Greg V
633004c820
Fix build with ffmpeg 4.0
2018-04-21 21:06:06 +04:00
Megamouse
8f4fa8a5b6
cellPad: check for more invalid parameters
2018-04-20 17:09:14 +04:00
TheAnig
eb3dfb6bb4
Implemented sysCacheClear() ( #4445 )
2018-04-18 18:17:55 +04:00