Commit Graph

28454 Commits

Author SHA1 Message Date
JosJuice 1fd8d476e8
Merge pull request #11325 from t895/extra-dark
Android: Add black backgrounds toggle
2022-12-10 21:09:26 +01:00
Charles Lombardo fd7a84b794 Android: Add black backgrounds toggle
Makes all background colors black in dark mode when enabled through a ThemeOverlay. Applied the same way as a theme/mode.
2022-12-10 14:53:01 -05:00
Mai 54e01c660e
Merge pull request #11334 from AdmiralCurtiss/globals-fifo
VideoCommon/Fifo: Refactor to class, move to Core::System.
2022-12-10 19:13:23 +00:00
Mai 48ce5318e1
Merge pull request #11338 from JosJuice/jitarm64-revert-supposed-tail
Revert "JitArm64: Optimize a few tail calls"
2022-12-10 19:11:23 +00:00
Mai c3bed35468
Merge pull request #11337 from JosJuice/aarch64-shrn
Arm64Emitter: Fix SHRN/SHRN2
2022-12-10 19:09:33 +00:00
Admiral H. Curtiss ceae4242fc
VideoCommon/Fifo: Pass Core::System to methods. 2022-12-10 17:16:26 +01:00
Admiral H. Curtiss 5624dd6d39
VideoCommon/Fifo: Refactor to class, move to Core::System. 2022-12-10 17:16:19 +01:00
JosJuice 64bc150b8c Revert "JitArm64: Optimize a few tail calls"
This reverts commit 351d095fff.

In hindsight, my attempted optimization messes with the return
predictor, unlike real tail calls. So I think it does more bad than
good.
2022-12-10 11:35:52 +01:00
JosJuice b5b8871bce Arm64Emitter: Fix SHRN/SHRN2
The "vector shift by immediate" category encodes the shift amount for
right shifts as `size - amount`, whereas left shifts use `amount`.

We're not actually using SHRN/SHRN2 anywhere, which is why this has gone
undetected.
2022-12-10 11:20:23 +01:00
Admiral H. Curtiss 1d199f4664
Qt/EnhancementsWidget: Combine texture filtering and anisotropic filtering. 2022-12-09 02:02:17 +01:00
Admiral H. Curtiss ff2cc4d02b
Qt/EnhancementsWidget: Convert texture filtering option to a ComboBox. 2022-12-09 02:02:16 +01:00
Admiral H. Curtiss 8a3b8a925e
Core: Add option to force linear texture filtering. 2022-12-09 02:02:16 +01:00
Admiral H. Curtiss b207611c33
Merge pull request #11274 from TryTwo/PR_Conditional_BP_Add_Memory
Debugger: Add conditional breakpoints to memory BPs
2022-12-07 19:55:04 +01:00
Mai 000c6c4813
Merge pull request #11321 from JosJuice/jitarm64-accurate-nans
JitArm64: Implement accurate NaNs
2022-12-07 00:58:13 +00:00
Mai 94faad0d37
Merge pull request #11320 from AdmiralCurtiss/globals-memory
HW/Memmap: Refactor Memory to class, move to Core::System.
2022-12-07 00:52:31 +00:00
Mai a9a603b8cb
Merge pull request #11268 from jordan-woyak/ascii-controller
Rename "Keyboard" to "Keyboard Controller"
2022-12-04 21:05:52 +00:00
TryTwo a17fbe7c65 Expand conditional breakpoints to memory breakpoints 2022-12-04 11:25:33 -07:00
Mai b23eb1f550
Merge pull request #11322 from JosJuice/jit64-madds-nan
Jit64: Correctly handle NaNs for ps_maddsX
2022-12-04 17:58:16 +00:00
Mai f21edf6d5a
Merge pull request #11270 from t895/theme-mode
Android: Add theme mode switcher
2022-12-04 17:56:59 +00:00
Admiral H. Curtiss c9f31ad6a6
Merge pull request #11262 from K0bin/present-sync
VideoBackends:Vulkan: Synchronize presentation
2022-12-04 14:30:59 +01:00
Admiral H. Curtiss 2b93d5e0d7
Merge pull request #11273 from TryTwo/PR_Conditional_BP_Callstack
Debugger: add callstack to conditional breakpoints
2022-12-04 14:16:12 +01:00
Admiral H. Curtiss 2bd47d1435
Merge pull request #11232 from TryTwo/PR_MemoryView_highlighting
Debugger MemoryViewWidget: always highlight target address
2022-12-04 14:07:19 +01:00
TryTwo 76bf1b5f7d Add callstack to conditional breakpoints. Checks entire stack for value.
Use: callstack(0x80000000).
  !callstack(value) works as a 'does not contain'.
Add strings to expr.h conditionals.
  Use quotations: callstack("anim") to check symbols/name.
2022-12-03 20:52:17 -07:00
JosJuice eeef5363e4 Jit64: Correctly handle NaNs for ps_maddsX 2022-12-03 21:05:05 +01:00
JosJuice 06e60ac327 JitArm64: Implement accurate NaNs
For quite some time now, we've had a setting on x86-64 that makes Dolphin
handle NaNs in a more accurate but slower way. There's only one game that
cares about this, Dragon Ball: Revenge of King Piccolo, and what that game
cares about more specifically is that the default NaN (or "generated NaN"
as I believe it's called in PowerPC documentation) is the same as on
PowerPC. On ARM, the default NaN is the same as on PowerPC, so for the
longest time we didn't need to do anything special to get Dragon Ball:
Revenge of King Piccolo working. However, in 93e636a I changed how we
handle FMA instructions in a way that resulted in the sign of NaNs
becoming inverted for nmadd/nmsub instructions, breaking the game.
To fix this, let's implement the AccurateNaNs setting, like on x86-64.
2022-12-03 19:41:32 +01:00
JosJuice 5c41d3b602 JitArm64: Refactor temp reg handling in fp_arith/ps_arith 2022-12-03 19:08:27 +01:00
Admiral H. Curtiss 839db591d9
HW/Memmap: Refactor Memory to class, move to Core::System. 2022-12-03 13:27:02 +01:00
Mai 6b514e81f9
Merge pull request #11316 from Pokechu22/jit-widget-fixes
Jit widget fixes
2022-12-02 20:54:48 +00:00
Charles Lombardo b9fffa2e66 Android: Add theme mode switcher
Similar to app themes, theme modes have to be loaded before directory initialization is ready. So we save the proper key the same way.
2022-12-02 13:31:57 -05:00
Pokechu22 3d6bfcd236 JITWidget: Convert to fmt 2022-12-01 17:44:41 -08:00
Pokechu22 6a6d24550e Clean up DisassembleBlock and JitInterface::GetHostCode 2022-12-01 17:43:35 -08:00
Pokechu22 5842b90bee Show JIT blocks widget when selecting 'PPC vs Host' in code widget
Before, I just assumed this feature was broken since I didn't know what widget it used. Now, it behaves like show memory and show code elsewhere.
2022-12-01 17:43:35 -08:00
Pokechu22 0ccfa31ec8 Fix code widget not becoming visible when selecting 'view code' or similar
This affected the memory and registers widgets (and possibly others). I'm pretty sure it regressed in 5f629abd8b.

The SetCodeVisible line is a new fix, but the equivalent already existed in the memory widget.
2022-12-01 17:43:35 -08:00
Pokechu22 4f4bd57fe9 Fix crash when stopping emulation while the JIT widget is in use
The call to analyzer.Analyze breaks when it attempts to read an instruction, as it eventually tries to read memory when Memory::m_pRAM is nullptr. Trying to read when execution is not paused in general seems like a bad idea (especially as analyzer.Analyze uses PowerPC::TryReadInstruction which can update icache - this is probably still a problem).
2022-12-01 17:43:34 -08:00
TellowKrinkle ffb73f43e1 VideoBackends:Metal: Fix min/max lod when setting non-zero-based samplers 2022-11-30 21:11:37 -06:00
TryTwo 700eca1baa MemoryViewWidget set target address as selected. Fix focus call. Always color selected item blue. 2022-11-30 16:38:56 -07:00
Mai 7cd9a78ebf
Merge pull request #11304 from JosJuice/jit64-nan-c
Jit64: Correctly handle NaNs for ps_mulsX/ps_sumX
2022-11-29 12:57:43 +00:00
Mai 5f22a0054f
Merge pull request #11305 from JosJuice/jitarm64-optimize-ps-merge
JitArm64: Optimize ps_mergeXX
2022-11-29 12:57:10 +00:00
Mai ff830c08b6
Merge pull request #11307 from AdmiralCurtiss/globals-command-processor
VideoCommon/CommandProcessor: Refactor to class, move to Core::System.
2022-11-29 12:56:30 +00:00
Admiral H. Curtiss 6941d2e7e6
VideoCommon/CommandProcessor: Refactor to class, move to Core::System. 2022-11-29 08:15:01 +01:00
TellowKrinkle e3cc42069f VideoBackends:OGL: Creating vertex formats shouldn't unbind anything 2022-11-28 21:28:24 -06:00
JosJuice 2f1a8ee1b9 Jit64: Skip HandleNaNs for operations that can't generate NaN
Operations that have two operands and can't generate a default NaN,
i.e. addition and subtraction, already have the desired NaN handling
on x86. We just need to make sure to not reverse the operands.

This fixes ps_sum0/ps_sum1 outputting NaNs in cases where they shouldn't.
(HandleNaNs assumes that a NaN in a ps0 input always results in a NaN in
the ps0 output, and correspondingly for ps1.)
2022-11-27 11:30:10 +01:00
JosJuice cbceae9176 Jit64: Correctly handle NaNs for ps_mulsX 2022-11-27 11:30:10 +01:00
JosJuice d3180e3516 Jit64: Refactor HandleNaNs operand passing 2022-11-27 11:30:05 +01:00
Mai 44f8b8c100
Merge pull request #11303 from AdmiralCurtiss/coretiming-class
CoreTiming: Refactor to class.
2022-11-27 06:00:46 +00:00
Admiral H. Curtiss 64bb9ae9a9
Correctly call CoUninitialize() on Cubeb helper class destruction. 2022-11-27 03:58:50 +01:00
Admiral H. Curtiss daa70533cd
CoreTiming: Store Globals in CoreTimingManager. 2022-11-27 03:47:12 +01:00
Admiral H. Curtiss c9558ecb4c
CoreTiming: Refactor to class. 2022-11-27 03:47:12 +01:00
Admiral H. Curtiss 3cdc6e3d4a
Merge pull request #10343 from AdmiralCurtiss/cubeb-2021
Update cubeb to mozilla/cubeb@27d2a102b0
2022-11-27 03:26:11 +01:00
JosJuice f45d3a6a2c JitArm64: Optimize ps_mergeXX
1. In some cases, ps_merge01 can be implemented using one instruction.
2. When we need two instructions for ps_merge01, it's best to start with
   a MOV to avoid false dependencies on the destination register.
3. ps_merge10 can be implemented using a single EXT instruction.
2022-11-26 18:14:58 +01:00