eladash
6502d933df
Fix stack memory view on the debugger
...
the debugger uses super ptr which was unmapped for stack.
2019-03-31 14:57:21 +03:00
scribam
f15eb88f59
hle: Fix cellSysutilAvcExt module
...
And add cellSysutilAvcExtSetChatMode and cellSysutilAvcExtSetChatGroup
functions
2019-03-31 00:55:55 +03:00
scribam
1916cc1691
hle: Add cellSysmoduleUnloadModuleInternal and cellSysmoduleLoadModuleInternal functions
2019-03-30 23:52:56 +03:00
scribam
f369aeab7a
hle: Add FT_Get_X11_Font_Format function
2019-03-30 23:52:56 +03:00
scribam
0e9313d2df
hle: Add cellFontInitLibraryFreeType function
2019-03-30 23:52:56 +03:00
Nekotekina
d873802b9c
Use LLVM 9
...
Use new add/sub with saturation intrinsics
2019-03-30 01:36:48 +03:00
Nekotekina
7e0b941e9f
PPU LLVM: implement get_vrs<>() adaptor
...
Make use of structured bindings
2019-03-30 01:36:48 +03:00
Nekotekina
d77fed6105
SPU LLVM: remove wrong dead code
2019-03-29 17:00:53 +03:00
scribam
a254a203bb
hle: Add libad_async and libad_core modules
2019-03-27 21:41:44 +00:00
Nekotekina
71b88cdc82
New SPU interpreter (SPU fast)
...
Use LLVM to build SPU interpreter.
Simplify interpreter loop.
2019-03-27 20:33:44 +03:00
scribam
a9eb321814
hle: Add sceNpEulaAbort function
2019-03-26 23:19:01 +03:00
scribam
956d039415
hle: Add cellVideoPlayerUtility module
2019-03-24 19:16:49 +03:00
scribam
581b205f73
hle: Add cellPesmUtility module
2019-03-24 19:16:49 +03:00
scribam
6c40b9f3e0
hle: Add cellDtcpIpUtility module
2019-03-24 19:16:49 +03:00
scribam
d6bf18eabc
hle: Add some sceNpMatchingInt functions
2019-03-24 17:29:18 +03:00
scribam
32ae7e466c
hle: Add cellNetAoi module
2019-03-24 17:29:18 +03:00
Nekotekina
7ea04d5d76
Minor optimization in SPU analyser
...
Reduce vector copy/allocation
2019-03-23 02:43:41 +03:00
Nekotekina
4b381fbbb1
Implement spu_runtime::reset
...
To handle JIT: Out Of Memory error.
2019-03-23 02:43:41 +03:00
Nekotekina
1880a17f79
SPU recs: implement spu_runtime::find
...
Use this function to link to existing functions from branch patchpoints.
Don't compile from branch patchpoints.
2019-03-23 02:43:41 +03:00
Nekotekina
31304f4234
SPU rec: refactor some trampoline generation
...
Move branch/dispatch trampoline generation at startup.
2019-03-23 02:43:41 +03:00
Nekotekina
3794f65bb6
Add cpu_flag::jit_return
2019-03-23 02:43:41 +03:00
Nekotekina
849411693a
PPU LLVM: add MemoryManager3
...
For temporary allocations.
Add flags in jit_compiler constructor.
2019-03-23 02:43:41 +03:00
Nekotekina
466d58ccef
SPU LLVM: fix branch patchpoints
...
Forgot to passthrough 3rd arg (rip)
2019-03-23 02:43:41 +03:00
kd-11
41b87cf577
rsx: Blit engine fixes
...
- If a transfer writes to a RTT and depth mismatch happens, create a local target and the upload function will likely resolve between the two
- If a surface is rejected, reset the target region!
2019-03-22 21:27:15 +03:00
kd-11
86ad204636
rsx: Rebase output region when using upload-fallback path
2019-03-22 21:27:15 +03:00
kd-11
dbc8e70ddd
rsx: Silence some compiler noise
2019-03-22 21:27:15 +03:00
kd-11
3a4e3fa53a
rsx: Fix use-after-modify condition when inserting a draw command out of order
...
- Fixes barrier->range rebase after the insert
2019-03-22 21:27:15 +03:00
kd-11
d731c07ade
vk: Fix typeless resource management
...
- Fixes bugs that appear with high resolution scaling
2019-03-22 21:27:15 +03:00
kd-11
adc59f9810
rsx: Fix blit transfers when texel sizes mismatch
...
- Also refactors some bpp handling code
- Simplify texture intersection test to use a normalized/uniform coordinate space
- Fix broken bounds checking as well
2019-03-22 21:27:15 +03:00
kd-11
b879b32271
rsx: Fix bpp calculation taking resolution scaling into account
...
- Do not rely on image->width(), use surface_width() instead for unscaled values
- Refactor/clean GL rendertarget class a bit
2019-03-20 10:05:54 +03:00
kd-11
03fca73cf4
rsx: Fix blit intersection falling outside the available texture
...
- Just becaue we have a hit inside the tile of interest does not guarantee that it sits inside the texture!
2019-03-20 10:05:54 +03:00
Matias Morán
3eb2bcad39
Update DualShock 3 warning
2019-03-18 22:46:02 +00:00
RipleyTom
63bbe459ea
DS3 pad handler
2019-03-18 19:05:02 +03:00
RipleyTom
f2aaad11bb
Adds libusb
2019-03-18 19:05:02 +03:00
kd-11
3ef16bee47
rsx: Fix texture lookups and avoid out-of-bounds copies/transfers
2019-03-17 21:50:11 +03:00
kd-11
bb65e45614
rsx: Implement GPU acceleration for rotated images
2019-03-17 21:50:11 +03:00
kd-11
5260f4b47d
rsx: Improvements to memory flush mechanism
...
- Batch dma transfers whenever possible and do them in one go
- vk: Always ensure that queued dma transfers are visible to the GPU before they are needed by the host
Requires a little refactoring to allow proper communication of the commandbuffer state
- vk: Code cleanup, the simplified mechanism makes it so that its not necessary to pass tons of args to methods
- vk: Fixup - do not forcefully do dma transfers on sections in an invalidation zone! They may have been speculated correctly already
2019-03-17 21:50:11 +03:00
kd-11
385485204b
vk/gl: Omit unlocked data when grabbing flip sources from texture cache
2019-03-17 21:50:11 +03:00
kd-11
74eeacd091
vk/gl: Improve memory tag sync and test
...
- Properly pass parameters such as rsx-pitch to the surface store
- Do not crash if a surface fails verification in flip, use fall-back instead
2019-03-17 21:50:11 +03:00
kd-11
1a44446250
rsx: Fix dst upload block region
...
- The section needed starts at image origin, not transfer origin!
2019-03-17 21:50:11 +03:00
kd-11
a49a0f2a86
vk/gl: Synchronization improvements
...
- Properly wait for the buffer transfer operation to finish before map/readback!
- Change vkFence to vkEvent which works more like a GL fence which is what is needed.
- Implement supporting methods and functions
- Do not destroy fence by immediately waiting after copying to dma buffer
2019-03-17 21:50:11 +03:00
kd-11
85cb703633
rsx/cache: Debugging bugs introduced by the atlas coverage check
...
- Figured out why it breaks things, ofc can't actually check for coverage when there is no proper fbo data persistence
2019-03-17 21:50:11 +03:00
kd-11
3a4083263e
rsx: Fix texture transfer when pitch does not match exactly
2019-03-17 21:50:11 +03:00
kd-11
612160a8ff
rsx: Fix zero-pitch textures
...
- Assumption here is that only texel (0, 0) is accessible. Inline with other pitch 0 operations.
- TODO: Verify pitch 0 does not advance in Y either
2019-03-17 21:50:11 +03:00
kd-11
17c49d21a5
rsx/blit: Remove workarounds/hacks added for master. Start implementation/stubs for blit engine rotations in GPU
2019-03-17 21:50:11 +03:00
kd-11
745f8f9627
rsx: Remove pointless assert
2019-03-17 21:50:11 +03:00
Nekotekina
e9b6beadfc
SPU LLVM: implement static branch weights
...
May help branch prediction in some cases
2019-03-13 21:14:55 +03:00
Nekotekina
388d49db80
SPU LLVM: fix SPU MMIO in TSX mode
2019-03-13 21:14:55 +03:00
Ani
3b01e59cd4
InstallPup: Fix exception on newline trim
...
Avoid throwing fatal error when installing firmware without a \n character on the version string
Fixes #5646
2019-03-13 03:45:06 +03:00
Nekotekina
688aabc6c9
Add _sys_lwmutex_unlock2 syscall name
2019-03-12 23:55:13 +03:00
eladash
4a28319edf
Implement SPU page faults notifications
...
* Implement both RawSPU and threaded SPU page fault recovery
* Guard page_fault_notification_entries access with a mutex
* Add missing lock in sys_ppu_thread_recover_page_fault/get_page_fault_context
* Fix EINVAL check in sys_ppu_thread_recover_page_fault, previously when the event was not found begin() was erased and
CELL_OK was returned.
* Fixed page fault recovery waiting logic:
- Do not rely on a single thread_ctrl notification (unsafe)
- Avoided a race where ::awake(ppu) can be called before ::sleep(ppu) therefore nop-ing out the notification
* Avoid inconsistencies with vm flags on page fault cause detection
* Fix sys_mmapper_enable_page_fault_notification EBUSY check
from RE it's allowed to register the same queue twice (on a different area) but not to enable page fault notifications twice
2019-03-12 13:28:31 +03:00
kd-11
1875dc3f18
gl: Fix buffer size calculations
2019-03-10 16:09:05 +03:00
kd-11
358558aaa7
cleanup and fixups
2019-03-10 16:09:05 +03:00
kd-11
04dda44225
rsx: Properly generate render target data with all parameters provided
...
- Build-up to variable-sized framebuffers and AA implementation
- Also allows accurate range calculation for our hit testing
2019-03-10 16:09:05 +03:00
kd-11
21bc6c7a87
rsx: Properly resolve data for upload when needed.
...
- Avoids blindly reusing blit dst sections as they may contain garbage.
If a section was unlocked for a flush, just discard it as its reuse introduces potential data corruption.
Since the data needs to be reuploaded anyway (for now), its better to start afresh
- In case of format mismatch, reset the calculated dst block
- Add a bounds check to determine if data contained in an atlas is good enough for sampling the cache.
If not enough data is provided, fall back to full upload
2019-03-10 16:09:05 +03:00
kd-11
9d4d3d9443
rsx: Reimplement render target intersection tests when using hw accelerated blit engine
...
- Properly collapse memory tree when scanning in case of overlaps!
2019-03-10 16:09:05 +03:00
kd-11
f4ebcb0029
rsx: Properly decode packed renders from the type flag
...
- Seems to occupy bits [8-9]
2019-03-10 16:09:05 +03:00
kd-11
7c379432dd
rsx: Implement proper pitch compatibility lookup
...
- When a single row is required or is all that is available, pitch has
no meaning as the coordinate space changed to 1D
2019-03-10 16:09:05 +03:00
kd-11
dccb4a4888
rsx/texture_cache: fixes to commit_framebuffer_memory
2019-03-10 16:09:05 +03:00
kd-11
b9e7b085fe
rsx/texture_cache: Fixups for local resource hit and fast-path added
2019-03-10 16:09:05 +03:00
kd-11
a80f1a6ed4
gl: Fix memory tag sampling
...
- Also fixes a bad arg passed to glClearBuffer
2019-03-10 16:09:05 +03:00
kd-11
0395fb9955
rsx/tecture_cache: Addendum - fix data cast with scaling conversion (AA emulation)
...
- Blit operations do format conversion automatically which is NOT what we want!
- Scale onto temp buffer with similar format before performing data cast.
2019-03-10 16:09:05 +03:00
kd-11
10dc3dadee
rsx/texture_cache: Improve framebuffer memory locking when WCB/WDB is not enabled
...
- Adds a new mode that removes non-framebuffer stuff inside framebuffer range
2019-03-10 16:09:05 +03:00
kd-11
563e205a72
rsx/texture_cache: Fix 'AA' scaling hack and restore collection template selection
2019-03-10 16:09:05 +03:00
kd-11
fa628f0ac4
rsx/surface_store: More aggressive tag sampling
...
- Use a 5-point tap with an X pattern across the target's memory space to reduce chances of false positives
- TODO: Potential false positives identified, requires some minor
restructuring of surface_store
2019-03-10 16:09:05 +03:00
kd-11
3a071a9c07
rsx: Texture search rewrite
...
- Perform a full search across all resource types as needed without
taking too many shortcuts/hacks
2019-03-10 16:09:05 +03:00
kd-11
6ef9dcd62e
rsx: Handle mismatched/invalidated framebuffer sections when WCB is enabled
2019-03-10 16:09:05 +03:00
kd-11
ef071ebb6b
rsx: Synchronize surface cache and texture cache data
...
- TODO: The whole upload_texture thing is a big hack, fix it properly
2019-03-10 16:09:05 +03:00
eladash
a43e7c172c
Fix shared memory page flags
...
TODO: From hw testing, it seems like sys_memory_get_page_attribute and sys_rsx_context_iomap check page size a little differently
get_page_attribute() always go by area flags, sys_rsx_context_iomap checks page by the page granularity
This means that if the area page size 64k, but shared memory is mapped with SYS_MEMORY_GRANULARITY_1M
It can be mapped for rsxio, but the page attribute will indicate 64k page size :thonk:
rsxio memory is verified to need 1m pages.
2019-03-08 23:44:46 +03:00
eladash
7470388e5a
Use error_code in sys_rsx
2019-03-08 23:44:46 +03:00
eladash
26bcd0a4de
Small improvements to sys_event_flag
...
- From RE, only protocols SYS_SYNC_FIFO and SYS_SYNC_PRIORITY are valid
- Use conditional atomic op store in a few places
- Properly revert changes in sys_event_flag_set when aomic op fails
2019-03-08 23:44:46 +03:00
elad
bd259c8ae4
vulkan zcull: Fix deadlock in zcull flush waiting
...
Block adding additional flush requests until the first ones are treated (by adding missing lock)
2019-03-08 23:44:46 +03:00
elad
fc253165e2
Correctness fix for RSXIOMem
...
- Make RSXIOMem volatile.
- Hint the compiler to check only once the address returned.
2019-03-08 23:44:46 +03:00
elad
b7da3ea5cd
Release ppu thread before ShowSaveDataDialog, Fixes #4031
2019-03-08 23:44:46 +03:00
elad
ce8c92262d
Treat X8R8G8B8 format as A8R8G8B8 in image_in, Fixes #5510
2019-03-08 23:44:46 +03:00
elad
f272a5f779
sys_lwmutex fixup after #5680
...
sys_lwcond_wait unlocks always with the 'usual' unlocking flags
2019-03-08 23:44:46 +03:00
RipleyTom
61bd2ea799
Adds VID/PID for Guitar Hero guitar & drum
2019-03-08 17:52:48 +00:00
elad
3c9f03968c
Yield before flushing io buffers in fsync (sys_fs) ( #5506 )
2019-03-08 16:07:14 +00:00
Nekotekina
4ea76def7c
Update sys_lwmutex_lock and sys_lwmutex_unlock (liblv2 HLE)
...
Implement missing SYS_SYNC_RETRY logic
Following #5680
2019-03-06 15:09:50 +03:00
Nekotekina
986c750fdc
VFS: fix sys_fs_opendir on root
2019-03-05 22:12:01 +03:00
eladash
e38b7aee5a
check address in sys_rsx_context_iomap
...
* Fix 0 vm page flags to behave like 1m flags, follows c8a681e60
* check if address exists and valid for rsx io allcations (must be allocated on 1m pages)
2019-03-05 21:23:24 +03:00
eladash
d82362fa1d
Use sys_memory_allocate on rsx replayer to fix it
2019-03-05 21:23:24 +03:00
Nekotekina
fb64b28886
SPU LLVM: reintroduce branch patchpoints
...
Previously only used on SPU ASMJIT, may improve perf in some cases.
Now refactored to spu_runtime::make_branch_patchpoint.
2019-03-01 00:08:20 +03:00
Nekotekina
7f6a410770
Add dummy __has_builtin macro, use rotate builtins if possible
2019-03-01 00:08:19 +03:00
Nekotekina
765d15f23f
Optimize SPU trampolines
...
Load values in EAX and reuse it if possible
2019-03-01 00:08:19 +03:00
Nekotekina
f143035af1
Fix sys_spu_thread_group_join wait condition
...
After waiting, thread group cannot be safely accessed
Following #5643
2019-03-01 00:08:19 +03:00
Jan Beich
240ba39d16
Chase GIT_VERSION rename after 923700a167
2019-02-28 04:48:16 +03:00
RipleyTom
de5379a69f
Static hle implementation
2019-02-27 22:54:59 +03:00
eladash
a22297f205
exception throwing fix in sys_lwmutex_create
...
arg6 doesnt exist, if arg4 is not negative name is discarded and treated as 0.
2019-02-27 22:16:08 +03:00
eladash
d4459af4b3
Implement _sys_lwmutex_unlock (SYS_SYNC_RETRY mode)
2019-02-27 22:16:08 +03:00
RipleyTom
ad6b0ee122
Adds class type to controller options
2019-02-27 18:13:19 +00:00
Megamouse
b107718869
sysPrxForUser: improve crash dump functions
...
this might fix some crashes that could appear in the todo logging itself
2019-02-26 21:53:59 +00:00
Alex James
f5163cc4ff
CMake: Use Info.plist template for macOS bundle
...
Define and use a template for Info.plist for the macOS bundle. The template
uses the previously defined RPCS3_GIT_TAG variable for automatically
generating the version strings, and also enables proper HiDPI support.
2019-02-26 21:09:18 +00:00
Alex James
923700a167
CMake: Refactor git-version.cmake
...
Refactor git-version.cmake to define the RPCS3_GIT_VERSION,
RPCS3_GIT_BRANCH, and RPCS3_GIT_TAG variables, and move the generation
of git-version.h to a function (gen_git_version).
2019-02-26 21:09:18 +00:00
Megamouse
14ddb0c5b4
Qt: hide viewport settings on custom configs
2019-02-21 22:02:02 +01:00
German
4c72f7c1de
Fix clear string container in CgBinaryFragmentProgram.cpp
2019-02-18 16:34:16 +03:00
German
3b9f9dd4c5
Fix true clear string container in GameInfo.h
2019-02-18 16:34:16 +03:00
German
45c31a99a3
Fix true clear string container in PPUModule.cpp
2019-02-18 16:34:16 +03:00
elad
63a9421634
Fix race in sys_lwcond_wait on error code
2019-02-16 21:41:59 +03:00
EmulationChannel
92ff7c4c24
Update FW Latest Version
...
Updates the latest FW 4.84 version according to: https://www.playstation.com/en-us/support/system-updates/ps3/
2019-02-16 13:59:30 +01:00