eladash
c50d459b1e
cleanup rsx fifo debugger command display
2018-12-15 19:40:18 +03:00
eladash
098d634328
rsx fifo: Fix call cmd offset mask
...
highest 3 bits are masked according to tests, also filter certainly invalid jumps with offset higher than max
2018-12-15 19:40:18 +03:00
eladash
c2aa10cccd
reduce register_pair container
2018-12-15 19:40:18 +03:00
eladash
45ed58cdaf
Fix rsx capture replay
...
Allow to capture non-increment cmd flag that was missing in command.reg
2018-12-15 19:40:18 +03:00
eladash
87988e9da8
rsx fifo: Stability improvements
...
* Restore stack in fifo error handling
* Update get register after the cmd execution
* Fix put pause in the middle of command
* Add restore points when branching to self
* Precise nopcmd detection
* Test all invalid cmds for early treatment of queue corruption
2018-12-15 19:40:18 +03:00
eladash
835a552d8d
rsx: Implement cellGcmSetNotify
2018-12-15 19:40:18 +03:00
eladash
fd894d4c69
hle gcm: Fix cellGcmGetNotifyDataAddress
2018-12-15 19:40:18 +03:00
eladash
415b995a54
log rsx get ctrl
2018-12-15 19:40:18 +03:00
eladash
8cbaa8627c
Do not rely on cellPadInit in native ui
2018-12-15 13:51:16 +01:00
Rui Pinheiro
54bfe2e102
Add log warning on slow flush path
2018-12-11 22:37:10 +03:00
Rui Pinheiro
18b9ee4541
Reimplement overlapping fbo "hack"
...
To avoid the need (and performance hit) of Read Color/Depth Buffers, we
may not invalidate overlapping fbos inside lock_memory_region unless
they are guaranteed to be superseded by the new one.
This avoids e.g. issues with overblooming, among others.
2018-12-11 22:37:10 +03:00
Rui Pinheiro
5ab7296665
Fix xcode build
2018-12-11 22:37:10 +03:00
Rui Pinheiro
bcdf91edbb
Misc. Texture Cache fixes
2018-12-11 22:37:10 +03:00
Rui Pinheiro
9d1cdccb1a
Implement dedicated texture cache predictor
2018-12-11 22:37:10 +03:00
Rui Pinheiro
af360b78f2
Texture cache section management fixups
...
Fixes VRAM leaks and incorrect destruction of resources, which could
lead to drivers crashes.
Additionally, lock_memory_region is now able to flush superseded
sections. However, due to the potential performance impact of this
for little gain, a new debug setting ("Strict Flushing") has been
added to config.yaml
2018-12-11 22:37:10 +03:00
RipleyTom
077e710e3a
sys_fs_fcntl with parameter 0xC0000002 should extract device path from the given path and use that to gather free space information
2018-12-10 14:24:07 +03:00
Nekotekina
d6afba96f1
cellSaveData: fix 'Already exists' error
2018-12-10 01:43:47 +03:00
eladash
fb8302817f
ppu: Set link unconditionally
2018-12-10 01:34:02 +03:00
RipleyTom
5207b00973
Extra Handling of result value of funcStat CB.
2018-12-08 18:44:00 +03:00
Nekotekina
92be67b402
Fix #5370 regression
2018-12-05 00:06:09 +03:00
Nekotekina
476090a747
Detach VBlank and RSX Decompiler threads
...
Should fix exception handling in RSX Thread
2018-12-04 23:41:54 +03:00
elad
90265edfcd
SPU MFC: avoid copying of the lockline onto the stack in putllc/putlluc ( #5392 )
2018-12-04 21:09:55 +03:00
eladash
45942c4962
Fix segfault when scaled image dimension is less than clip's
2018-12-04 13:01:29 +03:00
eladash
fa5652fceb
rsx image_in: Implement negative scaling
2018-12-04 13:01:29 +03:00
eladash
ce500c75c4
throw exceptions in case of invalid/unknown operations in image_in
2018-12-04 13:01:29 +03:00
eladash
6ecf2fb3d0
rsx: default lv2 semaphore context + dma_4097
...
extracted from vsh
2018-12-04 13:01:29 +03:00
eladash
28e4a9e0d0
rsx image_in: Fix in_pitch 0
...
The hw doesnt fix pitch, when specifying src pitch 0 it copies the same pixels line to dst. keep in mind out_pitch = 0 is not allowed in image_in.
Same goes for buffer_notify, though it allows out_pitch to be 0.
2018-12-04 13:01:29 +03:00
eladash
d1d3ac984e
rsx image_in: Fix src size calculation when in_pitch != line_lengh
2018-12-04 13:01:29 +03:00
eladash
0a1da14a15
rsx image_in: remove clip h and w hack
...
If clip region is empty, dont execute
2018-12-04 13:01:29 +03:00
eladash
4ddafc481e
remove unreachable code
2018-12-04 13:01:29 +03:00
eladash
b48a4b6459
rsx-capture: reduce capture size
...
* Dont bother capturing 'destination' blocks with no data. instead premap all main memory to ensure allocated
* Capture zcull and tile state as their compressed gcm forms
* Fix index array capturing, ignore empty sets
* hle gcm: Fix byteswaping in cellGcmSetZcull
2018-12-04 13:01:29 +03:00
NicknineTheEagle
32059bfaa2
Properly get PARAM.SFO and icons for C00 games ( #5370 )
...
* Added a helper function for fetching game's PARAM.SFO path
This should properly get SFO path for unlocked C00 games
* Normalized line endings
* Refresh game list after installing a RAP file
2018-12-04 01:46:01 +03:00
kd-11
a56ba737b5
vk: Silence log spam
2018-12-03 20:01:23 +03:00
kd-11
504ab5a6d4
rsx: Minor cleanup to silence stupid compiler warnings
2018-12-03 20:01:23 +03:00
kd-11
f4c28eceef
rsx: Fix null renderer
2018-12-03 20:01:23 +03:00
kd-11
9d0042f509
rsx: Fixup for the flattener
...
- Reset the flattener before use
- Better detection of FIFO misalignment
2018-12-03 20:01:23 +03:00
scribam
24a8d0aeef
sceNp: add SCE_NP_ERROR_ID_NOT_FOUND for sceNpBasic*Entry* functions
2018-12-03 15:26:29 +03:00
kd-11
ec768afbd9
rsx: Flip workarounds for applications that flip via syscall
...
- Do not assume flip marks end-of-frame if executed via syscall
- Also disables skip_frame for these applications as there is no frame boundary
- NOTE: QUEUE_HEAD cannot be relied on as it is seemingly possible to flip the same head and not need to queue it
2018-11-30 23:51:25 +03:00
kd-11
2168159d03
gl: Fix flip regression
...
- Restore graphics state after flip (including active fbo) because flip can be made through a syscall
2018-11-30 23:51:25 +03:00
kd-11
b96ed5cd4e
gl: Do not rely on driver statistics for s3TC textures; they are inconsistent.
2018-11-30 23:51:25 +03:00
kd-11
f1c3b46d60
rsx: Fixup - undo vertex cache 'improvements'
2018-11-30 23:51:25 +03:00
kd-11
5b6e1420f3
rsx: Pipeline barriers fixed up
...
- Ensure barriers are invoked even if no draw occurs!
-- Ensures that deferred commands are executed eventually
2018-11-30 23:51:25 +03:00
kd-11
8a186bb97e
rsx: Fix insertion of execution barriers
...
- Ignore barriers inserted after BEGIN but before any draw commands are emitted
- Properly process tail barriers inserted before END but after draw commands are submitted
- Ignore execution barriers with no effect (same register value written)
2018-11-30 23:51:25 +03:00
kd-11
1d19f71a46
rsx: Re-enable fifo error reset
2018-11-30 23:51:25 +03:00
kd-11
718a04c84f
fixup: Clear disabled attrib entries
2018-11-30 23:51:25 +03:00
kd-11
833c25894f
[WIP] rsx: Rebase cleanup
2018-11-30 23:51:25 +03:00
kd-11
5193c99973
rsx: Enable dynamic FIFO preprocessing
...
- Tries to detect when FIFO preprocessing is beneficial and only enables optimizations if the benefit outweighs the cost
- Current threshold is at least 500 draw calls saved at over 2000 draw calls to justify the overhead
- TODO: More tuning for other CPUs
2018-11-30 23:51:25 +03:00
kd-11
7b065d7781
rsx: Fixup; input attributes blob decoding
...
- Use an unstructured blob and index into the vec4 structures to extract the real data
2018-11-30 23:51:25 +03:00
kd-11
846daadd5d
rsx: Fixups
...
- Improve vertex attribute layout format. Allows for full 16-bit attribute divisor
- Use actual pitch when declaring framebuffer rsx pitch instead of register value in case of swizzle? rendering
2018-11-30 23:51:25 +03:00
kd-11
2e32777375
rsx: Scrap the prebuffered queue approach
...
- Basically starting over
- The cost of making command copies into the queue has a measurable impact
2018-11-30 23:51:25 +03:00
kd-11
9deecd506a
fixup: It is possible for NOP commands to contain other garbage
2018-11-30 23:51:25 +03:00
kd-11
26a56ef1f1
vk: Spec compliance.
...
- TODO: Implement push_constants path instead of copy + bind descriptor sets
2018-11-30 23:51:25 +03:00
kd-11
d6b4440ef9
gl: Separate vertex env from program env
2018-11-30 23:51:25 +03:00
kd-11
435afcb865
rsx: Fix fifo draw barriers
2018-11-30 23:51:25 +03:00
kd-11
2d88e41583
rsx: Fix some checks when using inlined array rendering
2018-11-30 23:51:25 +03:00
kd-11
54ec363e88
rsx: Critical pipeline fixes
...
- Fix scissor and viewport binding behavior
- Fixes recovery if empty scissor is specified and then 'fixed' later
- Optimizes state binding a bit
2018-11-30 23:51:25 +03:00
kd-11
1ad76ad331
rsx: Restructure programs
...
- Also re-enable pipeline optimizations
2018-11-30 23:51:25 +03:00
kd-11
b0a6b72ce8
rsx: Optimizations
...
- Replace a few more vectors with simple_array<T>
- Avoid unnecessary string comparisons in backends. We already know referenced textures from the program analysers!
2018-11-30 23:51:25 +03:00
kd-11
677b16f5c6
rsx: Fixups
...
- Also fix visual corruption when using disjoint indexed draws
- Refactor draw call emit again (vk)
- Improve execution barrier resolve
- Allow vertex/index rebase inside begin/end pair
- Add ALPHA_TEST to list of excluded methods [TODO: defer raster state]
- gl bringup
- Simplify
- using the simple_array gets back a few more fps :)
2018-11-30 23:51:25 +03:00
kd-11
e01d2f08c9
rsx: Refactor FIFO
...
- Removes fifo structures from common RSXThread
- Sets up a dedicated FIFO controller
- Allows for configurable queue optimizations
2018-11-30 23:51:25 +03:00
Nekotekina
96cabeadff
Rewrite condition variables
...
Implement helper functions balanced_wait_until and balanced_awaken
They include new path for Windows 8.1+ (WaitOnAddress)
shared_mutex, cond_variable, cond_one, cond_x16 modified to use it
Added helper function utils::popcnt16
Replace most semaphore<> with shared_mutex
2018-11-29 01:30:05 +03:00
Nekotekina
f442a8a84c
SPU TG: add thread group stop counter
...
Fix possible race condition introduced by waiting on `running` value
2018-11-27 23:37:26 +03:00
Nekotekina
febe4d4a10
Implement class cond_x16
...
Use as reservation notifier
Limited to 16 threads but allows more precise control of contention
2018-11-26 00:23:29 +03:00
Nekotekina
7f1cbb1136
Fix 16 bit audio mode
...
Pointed by @ruipin, some backends may be affected
Reuse float buffer for conversion result
2018-11-24 02:55:29 +03:00
eladash
4baa159523
cellFsOpen flag fix
2018-11-24 02:54:48 +03:00
eladash
3c7f02d99d
Fix libcamera regression
2018-11-19 19:05:39 +03:00
Nekotekina
65ca934452
cellSaveData: fix truncation size (regression)
2018-11-17 14:40:11 +03:00
Nekotekina
12ceceff19
cellSaveData: restore atime/mtime for unmodified files
2018-11-17 14:40:11 +03:00
isJuhn
225310e04b
Add null alloc_addr checks to sys_memory_allocate and sys_memory_allocate_from_container
2018-11-16 18:37:07 +00:00
RipleyTom
f4fb5200a0
cellVdecGetPicture accurate error checking
2018-11-15 20:06:49 +03:00
Nekotekina
0044eb44e2
Cleanup after #5310 (SPU thread groups)
...
Move lambda into a cpu_stop()
Use running thread counter to synchronize with sys_spu_thread_group_join()
Use SPU_STATUS_STOPPED_BY_STOP exclusively for sys_spu_thread_exit() as before
Remove unnecessary waiting in sys_spu_thread_group_exit()
Rollback some minor unnecessary changes
Use shared_mutex in SPU TG
2018-11-14 12:50:24 +03:00
RipleyTom
0e0a82e536
Ensures threads are stopped in join
2018-11-13 10:19:28 +03:00
eladash
2e1aec4de8
Implement sys_spu_thread_tryreceive_event
2018-11-12 21:12:33 +03:00
RipleyTom
fada8b6594
Increases stack allocation for callbacks.
2018-11-12 15:09:26 +03:00
eladash
57b7892de6
Fix typo in sys_fs_mkdir
...
create_path is a less resticted version of create_dir, it doesnt check for EEXIST for one.
2018-11-12 13:28:58 +03:00
eladash
37b6afaf2c
rsx: inlined array stride fix
2018-11-11 23:17:07 +03:00
Nekotekina
2fd384ae95
SPU LLVM: check state in every callable chunk
...
It's often redundant but may be necessary
2018-11-09 16:19:59 +03:00
eladash
90f816595a
Fix cellPadGetData
...
* Remove complete buffer clear
* If pressure sensitivity option is not specified, write zeroes (should this be handled from our actual controller handler?)
* Check sensor setting before reporting changes
2018-11-07 15:46:51 +03:00
eladash
3332a10052
ppu: Fix threads scheduler
...
*Set priority under a lock
*Fix yield command making threads going out of scheduler control by removing it from the queue (not a bug that affects compatibility)
2018-11-07 13:06:29 +03:00
eladash
3fd17e43a3
lv2: Fix lwcond_queue_wait lock acquiring
2018-11-07 13:06:29 +03:00
eladash
3faaf9e7fb
lv2: Fix lwmutex locking
2018-11-07 13:06:29 +03:00
eladash
777f36e604
Fix error code checking of sys_lwcond_signal_x
2018-11-07 13:06:29 +03:00
Nekotekina
488928eca2
Fix SPU STOP instruction
...
Check thread state after STOP instruction
2018-11-05 14:35:50 +03:00
Nekotekina
f06e6be2c1
Disable npc update for SPU thread groups
2018-11-05 13:14:11 +03:00
Nekotekina
eaa17b7f7c
cellSaveData: anti-corruption precautions
...
Try to commit changes atomically
2018-11-05 13:14:11 +03:00
Nekotekina
6104685ad6
Implement cond_one sync primitive
...
Change futex() args to use unsigned int
2018-11-05 13:14:11 +03:00
Nekotekina
06253c8489
Implement "Initialize Directories" options
...
If disabled, /dev_hdd0, /dev_hdd1, etc, are not created automatically.
2018-11-05 13:14:11 +03:00
eladash
75221a6078
rsx: Fix inlined vertex array validation
2018-11-04 22:57:18 +03:00
eladash
43b75ccf04
cellGame: Add missing nullptr checks
...
if the param is null pointer, the library simply skips writing into it. also fix the order of writes.
2018-11-02 19:47:37 +03:00
eladash
3a7f5b970f
ppu: Fix stack base
2018-11-02 02:16:29 +03:00
eladash
fb30c8a937
rsx enums: fix typos
2018-10-30 22:33:59 +03:00
eladash
4069470585
rsx-debugger: ignore invalid cmds
...
basically ignore all non method cmds when scrolling to the next command, not only branches.
2018-10-30 22:33:59 +03:00
eladash
2058d024ce
Fix cellGcmInit (workaround)
2018-10-28 20:09:09 +03:00
Megamouse
d56c85fe01
RSX/Capture: fix filePath and remove strict mode check ( #5283 )
...
- Fixes regression introduced by kd-11 when merging in jarves' flip rework.
2018-10-27 13:06:50 +03:00
Dennis Luxen
36d4614d12
Fix a warning that shift overflows data type width ( #5116 )
2018-10-23 18:49:01 +03:00
eladash
5ee351234c
rsx-capture: unbreak
2018-10-23 18:02:03 +03:00
eladash
d14c8a03b3
typo fix
2018-10-20 22:27:48 +03:00
msuih
56ea45f9d5
Add setting for master volume
2018-10-20 16:35:01 +03:00
elad
6829fa0286
rsx: Improve inlined arrays ( #5248 )
...
* rsx: Implement register reads in inlined arrays
* rsx: Check for disabled streams in inlined arrays
2018-10-20 16:00:53 +03:00
Nekotekina
1b37e775be
Migration to named_thread<>
...
Add atomic_t<>::try_dec instead of fetch_dec_sat
Add atomic_t<>::try_inc
GDBDebugServer is broken (needs rewrite)
Removed old_thread class (former named_thread)
Removed storing/rethrowing exceptions from thread
Emu.Stop doesn't inject an exception anymore
task_stack helper class removed
thread_base simplified (no shared_from_this)
thread_ctrl::spawn simplified (creates detached thread)
Implemented overrideable thread detaching logic
Disabled cellAdec, cellDmux, cellFsAio
SPUThread renamed to spu_thread
RawSPUThread removed, spu_thread used instead
Disabled deriving from ppu_thread
Partial support for thread renaming
lv2_timer... simplified, screw it
idm/fxm: butchered support for on_stop/on_init
vm: improved allocation structure (added size)
2018-10-19 22:22:35 +03:00
Nekotekina
430e2243ac
Fix audio_thread buffer deallocation race
2018-10-19 22:22:35 +03:00
Nekotekina
73d35b0236
Remove CALL_FUNC, implement ppu_execute<>()
2018-10-19 22:22:35 +03:00
Megamouse
4ab777b429
Add title to emulator message dialogs
2018-10-14 23:14:46 +03:00
scribam
8540399ecb
ppu-interpreter: improve vminfp instruction
2018-10-12 21:30:14 +03:00
elad
623f1b35f6
rsx_capture/gcm: Fix tile binding ( #5246 )
...
* gcm: Fix tile offset setting
highest bit signifyies location, so ignore that while reading the offset.
* rsx-capture: Fix tile binding
fixes division by zero when dividing by pitch when the tile is not bound.
* rsx-capture: Fix zcull binding
2018-10-12 19:05:08 +03:00
eladash
83b6c98563
rsx: Fix u16 index arrays overflow
...
Force u32 index array destinations to avoid overflows when adding vertex base index.
2018-10-08 16:39:47 +03:00
eladash
e361e0daa6
rsx: Fix restart index check for u16 index arrays
...
Dont ignore upper bits of the restart index with u16 types
2018-10-08 16:39:47 +03:00
scribam
39272eef45
ppu-interpreter: improve vsl/vsr instructions
2018-10-08 00:15:26 +03:00
scribam
cc846eb670
ppu-interpreter: improve fnmadd/fnmadds instructions ( #5183 )
...
* ppu-interpreter: improve fnmadd instruction
* ppu-interpreter: improve fnmadds instruction
2018-10-04 00:49:19 +03:00
Megamouse
49e5212a8f
RSX/Overlays: Add option for japanese button layout
2018-10-03 23:08:33 +02:00
Megamouse
76da3fa907
RSX/Overlays: don't press buttons on every iteration
2018-10-03 21:37:05 +02:00
Megamouse
9693d1c3a3
RSX/Overlays: formatted comments
2018-10-03 21:37:05 +02:00
eladash
348db050ae
rsx: Fix texture height read
2018-10-03 20:57:46 +03:00
eladash
62f97f2e5f
rsx: Fix default texture dimensions
...
haha
2018-10-03 20:57:46 +03:00
eladash
fa723f6dc4
rsx: Fix texture depth read
2018-10-03 20:57:46 +03:00
eladash
4174d7274d
sys_rsx: fix log spam
2018-10-03 20:57:46 +03:00
eladash
a92ae827c1
rsx: Remove texture mipmap hack
2018-10-03 20:57:46 +03:00
eladash
6586090307
rsx: Remove texture size hack
2018-10-03 20:57:46 +03:00
eladash
eacd1b8f13
rsx: Remove texture address hack
2018-10-03 20:57:46 +03:00
Nekotekina
1b740995a4
Refactor audio_thread (g_idm)
2018-10-02 23:26:54 +03:00
Nekotekina
1456678316
Refactor audio/camera/mic threads
2018-10-02 02:22:26 +03:00
Nekotekina
19a64e0e94
Add g_typemap and g_idm alias
...
Future idm/fxm replacement
2018-10-02 02:22:26 +03:00
Nekotekina
da6ce80f4f
Make vm::get_super_ptr return contiguous memory
...
Cleanup RSX code complexity
2018-09-27 23:37:13 +03:00
eladash
72ba062b1a
rsx: Fix pfifo ret opcode
2018-09-27 17:47:32 +03:00
eladash
a47ebad24c
rsx: Fix pfifo nop cmd
2018-09-27 17:47:32 +03:00
Nekotekina
306f95a9ae
New named_thread template (preview)
...
Old class named_thread renamed to old_thread
It's too hard to move in a single commit
2018-09-27 14:04:16 +03:00
Nekotekina
4ef384a161
Fix cellVdecClose
...
Thanks Micaelis#6971
2018-09-27 14:04:16 +03:00
Nekotekina
680aaf21f0
Fix consistency in Emu::Stop()
...
Don't clear force_boot on shortcut Load()
2018-09-27 12:16:43 +03:00
Nekotekina
b2f29cd4d4
LLVM: remove false alarm errors
...
Writable sections ARE supported
2018-09-27 12:16:43 +03:00
Nekotekina
a605dd0a3f
Add missing deleted operators
2018-09-27 12:16:43 +03:00
Nekotekina
a8a8cd88a0
Implement lf_queue<>, lf_value<>
...
lf_queue<>: unbound FIFO queue with dynamic linked-list
lf_value<>: concurrently-assignable value readable without locking at the cost of memory (using dynamic linked list)
Add atomic_t<>::compare_exchange
2018-09-27 12:16:43 +03:00
kd-11
bdf85ed900
rsx: Fixup for vertex attrib parsing
...
- POS does not have to be fetched from ATTR[0]
- Confirmed with UC1 that uses WEIGHT for positions
- At least one POS stream has to exist to feed the position attribute which cannot repeat for a single triangle
2018-09-26 19:41:50 +03:00
kd-11
6a9f234dc7
rsx: Fixup flip behaviour
...
- handle_emu_flip is very heavy, only fire
2018-09-26 19:41:50 +03:00
eladash
f056ef7a80
rsx-capture: Save initial method registers state
2018-09-26 17:55:08 +03:00
eladash
5b0ed1e2eb
rsx-capture: Map dynamically rsx data injection addresses
2018-09-26 17:55:08 +03:00
eladash
8e268aedc7
rsx-capture: Rewrite FIFO commands allocation
2018-09-26 00:58:24 +03:00
kd-11
f72157bcec
rsx: Fix vertex attrib parsing
2018-09-25 22:03:35 +03:00
kd-11
dab30c0051
rsx: Disable predictions if 50% of predictions are wrong
...
- This happens often in loading screens where the memory usage pattern is often randomized by loading in of assets
2018-09-24 21:19:38 +03:00
kd-11
a3d44b5e1f
rsx: Cleanup changes for the flip patch
2018-09-24 16:44:02 +03:00
Jake
699eadc84f
rsx: Move render flip from rsx queue command to flip command
2018-09-24 16:44:02 +03:00
Rui Pinheiro
35139ebf5d
Texture cache cleanup, refactoring and fixes
2018-09-24 15:26:40 +03:00
Rui Pinheiro
f3029b2b42
Change Cell->RSX map/unmap notifications
...
This allows for further flexibility on the RSX side, allowing us to fix
some bugs and crashes in later commits.
2018-09-24 15:26:40 +03:00
eladash
06572c6011
rsx: Fix vertex count if all the streams are disabled
2018-09-24 13:25:05 +03:00
eladash
e0a676a3fe
rsx: Fix vertex arrays fetch with inlined draws
2018-09-24 13:25:05 +03:00
eladash
e8474145a5
rsx: Remove shader address verification
...
this came from a misunderstanding of the register's use
2018-09-24 13:25:05 +03:00
Megamouse
b7e010bbd0
Fix Emu.Restart()
2018-09-23 01:49:58 +01:00
kd-11
dafc914bcc
rsx: temporary hack
...
- Removes all use of valid_count as a metric until the new refactor is merged
2018-09-21 16:32:23 +03:00
kd-11
2b6e6a9ae9
gl: Fix problems with framebuffer reuse
...
- Matching attachments with resource id fails because drivers are reusing
handles!
- Properly sets up stale fbo ref counting and removal
- Properly sets up resource reference test with subsequent removal to
avoid using a broken fbo entry
2018-09-21 16:32:23 +03:00
kd-11
fc486a1bac
rsx: Preserve memory order when doing flush
...
- Orders flushing to preserve memory at all cost
- Avoids false positive where flushing overlapping sections can falsely invalidate another with head/tail test
2018-09-21 16:32:23 +03:00
kd-11
23dc9d54e3
rsx: Fix flip source selector
2018-09-21 16:32:23 +03:00
kd-11
a21bdb9f45
rsx; blit engine fixes
...
- Forcefully downloads and reuploads data from the CPU in case of unexpected overlaps
- Properly detect correct size of newly created blit targets
- Remember to clear any existing views when changing the default component map!
2018-09-21 16:32:23 +03:00
eladash
1a6c819176
cellgcm: Fix SET_REFERENCE initial value
2018-09-20 01:05:40 +03:00
eladash
e6b68b260a
rsx: Improve FIFO mem faults handling
...
increase the delay between faults, reduce log spam by allowing the messages to stack up
2018-09-20 01:05:40 +03:00
eladash
a8ea576b22
rsx/cellgcm: Implemet initialization registers reset
2018-09-20 01:05:40 +03:00
Nekotekina
59090f6d26
VFS: fix /host_root
2018-09-19 14:15:38 +03:00
Nekotekina
dce14a359a
Rename lv2_spu_group::num to max_num
2018-09-19 14:15:15 +03:00
Lassi Hämäläinen
566c88802e
CMake: LLVM, Pulse, Alsa and libevdev being disabled
...
- These dependencies have #defines which enable code related to them
in rpcs3 and rpcs3_ui targets. They are only used in rpcs3_emu but
HAVE_* defines have to be defined in rpcs3 and rpcs3_ui targets also,
so they have to have PUBLIC visibility so defines carried over
CMake: Fix Alsa and Pulse audios being disabled
- HAVE_PULSE and HAVE_ALSA were not defined in rpcs3 target
Fixup libevdev
2018-09-19 01:59:27 +03:00
kd-11
d6dc1493cb
rsx/overlays: Implement blur, darkening and ability to disable custom background
2018-09-18 16:24:13 +03:00
kd-11
9f61fb5a78
overlays: Allow custom background for message dialog
2018-09-18 16:24:13 +03:00
Lassi Hämäläinen
7aef811ff7
CMake: Refactor CMake build ( #5032 )
...
* CMake: Refactor build to multiple libraries
- Refactor CMake build system by creating separate libraries for
different components
- Create interface libraries for most dependencies and add 3rdparty::*
ALIAS targets for ease of use and use them to try specifying correct
dependencies for each target
- Prefer 3rdparty:: ALIAS when linking dependencies
- Exclude xxHash subdirectory from ALL build target
- Add USE_SYSTEM_ZLIB option to select between using included ZLib and
the ZLib in CMake search path
* Add cstring include to Log.cpp
* CMake: Add 3rdparty::glew interface target
* Add Visual Studio CMakeSettings.json to gitignore
* CMake: Move building and finding LLVM to 3rdparty/llvm.cmake script
- LLVM is now built under 3rdparty/ directory in the binary directory
* CMake: Move finding Qt5 to 3rdparty/qt5.cmake script
- Script has to be included in rpcs3/CMakeLists.txt because it defines
Qt5::moc target which isn't available in that folder if it is
included in 3rdparty directory
- Set AUTOMOC and AUTOUIC properties for targets requiring them (rpcs3
and rpcs3_ui) instead of setting CMAKE_AUTOMOC and CMAKE_AUTOUIC so
those properties are not defined for all targets under rpcs3 dir
* CMake: Remove redundant code from rpcs3/CMakeLists.txt
* CMake: Add BUILD_LLVM_SUBMODULE option instead of hardcoded check
- Add BUILD_LLVM_SUBMODULE option (defaults to ON) to allow controlling
usage of the LLVM submodule.
- Move option definitions to root CMakeLists
* CMake: Remove separate Emu subtargets
- Based on discussion in pull request #5032 , I decided to combine
subtargets under Emu folder back to a single rpcs3_emu target
* CMake: Remove utilities, loader and crypto targets: merge them to Emu
- Removed separate targets and merged them into rpcs3_emu target as
recommended in pull request (#5032 ) conversations. Separating targets
probably later in a separate pull request
* Fix relative includes in pad_thread.cpp
* Fix Travis-CI cloning all submodules needlessly
2018-09-18 13:07:33 +03:00
eladash
05cd3712a3
spu: Fix MMIO index checking
2018-09-17 17:24:54 +03:00
elad
0d4f0f95cc
rsx: Clamp texture offsets ( #5137 )
...
* rsx: Clamp texture offsets
* rsx: Remove texture location check/hack
2018-09-17 10:55:17 +03:00
Nekotekina
ed8aa774bb
Optimize logging via logs::channel
...
Use constant-initialized severity subobjects instead of temporaries
2018-09-16 00:36:20 +03:00
Nekotekina
b94e98aed5
Rewrite sys_fs_opendir
...
Rewrite lv2_dir object
Support split files and mount points
2018-09-15 17:18:40 +03:00
Nekotekina
c5676e5649
Remove thread_ctrl::atexit
...
It was only a workaround for poor C++11 thread_local support
2018-09-15 17:09:56 +03:00
Nekotekina
f2229a5f53
PPU reservations: ensure aligned atomic ops
...
Store aligned 64 bits to ppu.rdata
Don't save reservation size
2018-09-15 17:09:56 +03:00
Nekotekina
e8b5555630
Rewrite vfs::get and vfs::mount
...
Preprocess . and .. correctly
Don't use recursive locking
Also use std::string_view
Fix format system for std::string and std::string_view
Fix fmt::merge for std::string_view
2018-09-15 17:09:56 +03:00
kd-11
16dcbe8c74
rsx/vp: Fix ARL opcode properly
...
- NOTE: The address swizzle index is only for use as src. The address registers are only used one channel at a time.
- When the destination of ARL, the encoding is the same as the other temp registers
2018-09-15 11:57:06 +03:00
Megamouse
ed7012c9db
cellKb/Qt: Improve basic keyboard
...
Sadly the shift in Qt is a bit counter productive.
You'll have to hack another key as shift until i figured it out
2018-09-13 22:01:30 +02:00
elad
d24f9194f7
typo fix
...
shader's location is decremented by one to match cellGcm's constants.
2018-09-13 16:49:58 +03:00
eladash
b9ad578b00
rsx: Add a default shader address state
2018-09-13 16:49:58 +03:00
Dzmitry Malyshau
d28c0d16f8
[vk] don't ask for VK_FORMAT_UNDEFINED support
2018-09-13 16:04:50 +03:00
scribam
4cb98014a2
rsx: tiny zcull optimizations
2018-09-13 12:43:40 +03:00
eladash
cd11ae5d8b
ppu: Fix extreme reservation corner case
2018-09-12 23:17:53 +03:00
eladash
efbd77deb4
rsx: dont silently ignore null shader address
2018-09-12 00:40:20 +03:00
Dzmitry Malyshau
7c4693e271
[vk] Throw an exception on using a repder pass that the driver doesn't support
2018-09-11 23:44:56 +03:00
Dzmitry Malyshau
89ddeda24a
[vk] check for attachment format properties before pre-creating render passes
2018-09-11 23:44:56 +03:00
scribam
f294729b28
ppu: improve lvebx/lvehx/lvewx instructions
2018-09-11 21:20:52 +03:00
scribam
3072571a4f
cpu: use correct type when defining llvm value is_int constexpr
2018-09-10 19:59:37 +03:00
scribam
c8c8ce5e9e
rsx: add virtual destructor for default_vertex_cache
2018-09-10 19:59:37 +03:00
kd-11
f413996362
rsx: Minor texture cache fixes
...
- Retag resources reprotected under flush_always rules
- Properly check for blit resource fitting taking into account format
mismatch, pitch mismatch and typeless transfers
2018-09-10 15:43:28 +03:00
Nekotekina
2226125728
atomic_t<>: remove inline assignment
...
Add atomic_op/fetch_op overloads with template argument (may be removed in future)
Remove args... in atomic_op (capturing lambda is preferred)
2018-09-09 12:59:24 +03:00
Nekotekina
3ac1b46df2
Add option "HLE lwmutex"
...
Replaces lwmutex/lwcond implementation with alternative one
2018-09-09 01:02:19 +03:00
Alex James
5237779136
cellCamera: Fix check_dev_num call in cellCameraOpenEx
2018-09-08 20:07:10 +03:00
Nekotekina
fb5cdf9769
atomic_t<>: extend fetch_op to support cancellation
...
Use std::invoke inside atomic_op/fetch_op
Remove op_fetch because it's easily replaced
Add fetch_dec_sat algorithm (conditional decrement)
2018-09-08 00:32:04 +03:00
Nekotekina
ed9fb8405b
Move rotate/cntlz/cnttz helpers to Utilities/asm.h
2018-09-08 00:32:04 +03:00
Nekotekina
ee96807305
Remove explicit_bool_t, ignore, multicast<>
...
Remove vm::ptr operator %
This was a bad idea but explicit_bool_t was created almost for it
Other removed types are unused and have little to no meaning
2018-09-08 00:32:04 +03:00
Nekotekina
99ffc3fca9
Use std::invoke_result_t
...
Also simplify idm code
2018-09-08 00:32:04 +03:00
Nekotekina
d750e955c3
Use std::uncaught_exceptions()
...
Also remove wrong attributes
2018-09-08 00:32:04 +03:00
Dzmitry Malyshau
4e09573937
[vk] Check for BGRA8 linear image to support blitting
2018-09-07 22:02:02 +03:00
Dzmitry Malyshau
b454dde871
[vk] fix cubic view construction
2018-09-07 19:11:34 +01:00
Ofek
d7b0344091
Fix trophy regression
...
Hopefully
Correct status order
2018-09-07 20:04:37 +03:00
Dzmitry Malyshau
27474316fd
Add missing virtual desctructors ( #5094 )
2018-09-07 14:35:40 +03:00
Zion Nimchuk
46812d46ba
better stub sceNpUtilBandwidthTestGetStatus
2018-09-07 12:38:51 +03:00
kd-11
66610a28af
rsx/common: Clean up shared glsl header to minimize string concat operations
2018-09-06 21:11:11 +03:00
kd-11
346b97f871
rsx: Preserve fog coordinate across shader stages
...
- The x value contains the VP output value interpolated across primitive surface
- The y coordinate contains the fog fraction according to the selected fog formula
2018-09-06 21:11:11 +03:00
scribam
343656f66d
cleanup: remove unnecessary return and namespace declaration
2018-09-06 13:15:59 +03:00
scribam
2834c88de7
cleanup: remove intermediate const char* variables
2018-09-06 13:15:59 +03:00
scribam
f83d381e1e
clang-tidy: use nullptr
2018-09-06 13:15:59 +03:00
scribam
c4cff9b543
clang-tidy: remove redundant "apply_swizzle_remap" declaration
2018-09-06 13:15:59 +03:00
scribam
d7bb59cd99
c++17: use std::size
2018-09-06 13:15:59 +03:00
scribam
7724161c14
c++17: use std::clamp
2018-09-06 13:15:59 +03:00
scribam
02ba529eea
sys_usbd: add sys_usbd_event_port_send function
2018-09-05 19:53:09 +03:00
Nekotekina
ca5158a03e
Cleanup semaphore<> (sema.h) and mutex.h (shared_mutex)
...
Remove semaphore_lock and writer_lock classes, replace with std::lock_guard
Change semaphore<> interface to Lockable (+ exotic try_unlock method)
2018-09-03 23:00:36 +03:00
Nekotekina
5e556a87ff
Adjust cellMic log levels
2018-09-03 21:40:36 +03:00
Nekotekina
ce4c4696dd
Try to get rid of SIZE_32 macro
2018-09-03 21:40:36 +03:00
Nekotekina
7bccdbf157
Make vm::var unmoveable
...
Fix bugs with discarding vm::make_var result
2018-09-03 21:40:36 +03:00
Nekotekina
8abe6489ed
Mega-cleanup for atomic_t<> and named bit-sets bs_t<>
...
Remove "atomic operator" classes
Remove test, test_and_set, test_and_reset, test_and_complement global functions
Simplify atomic_t<> with constexpr if, remove some garbage
Redesign bs_t<> to use class, mark its methods constexpr
Implement atomic_bs_t<> for optimizations
Remove unused __bitwise_ops concept (should be in other header anyway)
Bitsets can now be tested via safe bool conversion
2018-09-03 21:40:36 +03:00
Nekotekina
69f0ad0d68
Remove ALIGN_32 macro
...
It's never used in expressions like SIZE_32(T) * n, so it doesn't help to fix any warning issued due to truncation.
2018-09-03 21:40:36 +03:00
kd-11
dea5193fd7
rsx: Fix FP temp register count
2018-09-03 21:39:18 +03:00
Rui Pinheiro
1175658bd5
Fix cellMic regression from #4467
...
cellMicEnd would get stuck waiting for the cellMic thread to finish, but
it never does because micInited is still true.
Fixes Resistance: Fall of Mankind getting stuck after the menu
2018-09-03 19:49:41 +02:00
kd-11
2e0ecb556c
rsx: Possible fix for UB data type consistency
2018-09-03 18:24:20 +03:00
kd-11
5a08b690d5
gl: always clean up the heap when using legacy buffers
2018-09-03 18:24:20 +03:00
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