Commit graph

4892 commits

Author SHA1 Message Date
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