Commit Graph

13206 Commits

Author SHA1 Message Date
Henrik Rydgård
9ef5250387 IRJit: If we're in "JIT using IR" mode, don't accidentally optimize for the interpreter. 2024-06-11 10:24:08 +02:00
Henrik Rydgård
5bfc0259be Optimize away the redundant vector loads in the Wipeout games. 2024-06-08 23:22:58 +02:00
Henrik Rydgård
2ff91fab2b Optimize a common case of the ins instruction 2024-06-08 23:10:29 +02:00
Henrik Rydgård
c9ca3904d3 Combine move-from-gpr and float cast. 2024-06-08 22:59:48 +02:00
Henrik Rydgård
0abcd00372 IR Interpreter: Don't split up lone lwr/swr/lwl/swl instructions, the interpreter handles them faster. 2024-06-08 22:28:11 +02:00
Henrik Rydgård
0c246297d2 Create an IR op for a FPRtoGPR + shift-right-8, very common 2024-06-07 21:26:20 +02:00
Henrik Rydgård
d1e0384b2f Improve disasm 2024-06-07 19:32:37 +02:00
Henrik Rydgård
bd0beb68a4 Add new IR optimization pass, OptimizeLoadsAfterStores 2024-06-07 19:32:37 +02:00
Henrik Rydgård
da88011805 Specialize a few arithmetic instructions for the interpreter. 2024-06-07 19:32:37 +02:00
Henrik Rydgård
a4c4fb44fb Cleanup 2024-06-07 18:33:48 +02:00
Henrik Rydgård
94ef6d4ce7 Fix savestates (oops) 2024-06-07 18:33:40 +02:00
Henrik Rydgård
7ef6cdb515 Improve accuracy of block timing 2024-06-07 10:17:16 +02:00
Henrik Rydgård
a6f398a7d2 Add IRJit arena overflow check 2024-06-07 10:17:01 +02:00
Henrik Rydgård
8d6e96d04e Use binary search to find IR block offsets 2024-06-07 09:28:27 +02:00
Henrik Rydgård
ee6ba74c88 Store IRInst offsets instead of block indices 2024-06-07 09:28:27 +02:00
Henrik Rydgård
5526ef012c Store IR instructions in a large arena vector instead of loosely in each block. 2024-06-07 09:28:27 +02:00
Henrik Rydgård
0ea9120ca5 Add a stats view 2024-06-06 19:21:50 +02:00
Henrik Rydgård
d1a00f61de Improve disassembly of CallReplacement IR op 2024-06-06 15:24:58 +02:00
Henrik Rydgård
584d07ea8e iOS: Implement basic physical keyboard support 2024-06-05 23:27:03 +02:00
Henrik Rydgård
ff48de1636
Merge pull request #19255 from hrydgard/ir-interpret-profiling
Add built-in IR Interpreter profiler
2024-06-05 20:46:26 +02:00
Henrik Rydgård
294593f741 Fix IR profiling 2024-06-05 19:12:08 +02:00
Henrik Rydgård
5583dc10d5 Hook up profiling, something is wrong 2024-06-05 18:58:33 +02:00
Henrik Rydgård
3bb74ea9ad Rework the JitCompare window to hold a list of blocks, and allow some filtering and browsing 2024-06-05 18:16:33 +02:00
Henrik Rydgård
feeddbabe3 Redesign the jit compare screen a bit (add a top bar) 2024-06-05 16:13:38 +02:00
Henrik Rydgård
338758f430 iOS: Fix "Home" button on controllers (like the PS logo button on a PS4 controller) 2024-06-05 15:01:02 +02:00
Henrik Rydgård
ba1ced77c3 IRJit block profiling basics 2024-06-05 13:02:40 +02:00
Henrik Rydgård
510cf1891b Random UWP text bugfix. Some warning fixes. 2024-06-05 12:38:43 +02:00
Henrik Rydgård
ab257e335f Ugprade miniupnp submodule to latest
Maybe will help #19246, but no idea really.

Windows buildfix

UWP buildfix

miniupnpc path fixes

libretro buildfix attempt, android.mk
2024-06-05 00:18:00 +02:00
Henrik Rydgård
a653939380 Avoid crashing when atrac3 decoders fail to init due to bad params. Fixes Kosmodrones (though no music). 2024-06-03 12:01:42 +02:00
Henrik Rydgård
becc145099 Improve code generation for some IRInterpreter ops 2024-06-02 10:25:04 +02:00
Henrik Rydgård
d4e3597ddb Minor codegen improvement 2024-06-02 10:23:44 +02:00
Henrik Rydgård
3b5c71170c IRInterpreter: Various SIMD optimization. Move out the reverse-bits implementation 2024-06-01 20:29:03 +02:00
Henrik Rydgård
49b0af20ca IRInterpreter: Reorder some ops towards the end, trying to keep "hot" ops together 2024-06-01 18:06:31 +02:00
Henrik Rydgård
533f8f06be Unify DrawString between Windows, UWP and Android. More to come. 2024-05-31 17:27:59 +02:00
Henrik Rydgård
5999690af5 i18n: Remove our awkward ampersand-escape support, except in [DesktopUI] 2024-05-31 09:45:59 +02:00
Henrik Rydgård
d29a2a2b8c Make the "Pause when not focused" setting available in the regular settings menu 2024-05-29 13:06:49 +02:00
Henrik Rydgård
869139078a Do the same for the current browsed directory 2024-05-29 10:16:48 +02:00
Henrik Rydgård
606a895985 iOS: Update recents paths on load
Fixes the main part of #19211
2024-05-29 10:12:20 +02:00
Henrik Rydgård
35c40196d4 Implement UI for setting up the iOS audio modes 2024-05-27 15:17:47 +02:00
Henrik Rydgård
e5baebf139 Prevent a buffer overflow at the end of Atrac tracks.
Fixes #19177
2024-05-27 12:36:19 +02:00
Henrik Rydgård
6817858d61 Use a hacked MoltenVK that can be loaded (but doesn't work) on iOS 12.
See https://github.com/KhronosGroup/MoltenVK/issues/2240
2024-05-26 16:45:29 +02:00
Henrik Rydgård
f2837e3b55 JIT compare screen with IR blocks - fix some crashing issues 2024-05-26 14:10:50 +02:00
Henrik Rydgård
7464b5f17b IRInterpreter: Enable some optimizations that accidentally were only enabled on non-ARM64. 2024-05-26 13:41:31 +02:00
Henrik Rydgård
e75e7a0e43 Add an optimizeForInterpreter flag 2024-05-26 13:41:31 +02:00
Henrik Rydgård
d46a7ed228 iOS gamepad mapping: Better mapping, better defaults. Fixes the start button problem.
controller.controllerPausedHandler should not be set.
2024-05-26 11:12:13 +02:00
Henrik Rydgård
c26de64d0f iOS: Pass through touches near the task switcher only in-game. Makes the UI better behaved. 2024-05-26 10:27:14 +02:00
Henrik Rydgård
bdf7f5f40f IRInterpreter: Fix issue where we could accidentally optimize out CallReplacement ops. 2024-05-26 00:12:48 +02:00
Henrik Rydgård
ccbcf1369b Convert DrawString* functions to use std::string_view 2024-05-24 22:52:51 +02:00
Henrik Rydgård
fea6727ffd Add a convenience method to VulkanContext to reduce code duplication
Will need the exact same code for iOS.
2024-05-23 02:13:54 +02:00
Henrik Rydgård
5e3abe3def IRInterpreter compiler: Reject all vec2ops where the prefix is unknown
Fixes #19164

May help #19172
2024-05-22 23:19:14 +02:00