JosJuice
58487f1633
Jit: Implement error-free transformation for single-precision FMA
...
This implements the equivalent of 07443e2d41 in Jit64 and JitArm64.
Aims to fix https://bugs.dolphin-emu.org/issues/13865 .
2026-01-18 20:02:49 +01:00
JosJuice
6ac7ffcdd7
Jit64: Return FixupBranch from HandleNaNs
...
This will be used in the next commit to skip running code that's
unnecessary when the result is NaN.
2026-01-18 20:02:49 +01:00
JosJuice
d5067b6276
Jit64: Replace MOVSD with MOVAPD in software FMA
...
Should be a little faster by avoiding false dependencies. Note that
there is one remaining MOVSD that really needs to be a MOVSD.
2026-01-18 20:02:49 +01:00
JosJuice
caad84c636
JitArm64: Reduce register pressure for inaccurate FMA with accurate NaNs
...
If result_reg is set to a temporary register instead of VD because of
accurate NaNs, there's no need to allocate a secondary temporary
register because of inaccurate FMA.
2026-01-18 20:02:49 +01:00
JosJuice
84261cfc23
Arm64Emitter: Fix Q bit of vector SHL/URSHR encoding
...
This doesn't affect any existing callers, because all existing callers
use quad registers.
2026-01-18 20:02:49 +01:00
JMC47
ff82ae3b5c
Merge pull request #14064 from JosJuice/jit64-fres-unit-test
...
Jit64: Add fres unit test
2026-01-18 13:52:31 -05:00
JMC47
fe668ebc89
Merge pull request #14033 from JosJuice/jitarm64-inaccurate-fma-double
...
JitArm64: Always use double precision for inaccurate FMA
2026-01-18 13:52:06 -05:00
JMC47
f8b47c031f
Merge pull request #14291 from JosJuice/defer-textureinfo
...
VideoCommon: Defer creating TextureInfo
2026-01-18 13:33:14 -05:00
iwubcode
d8e123a70c
Merge pull request #14241 from jordan-woyak/ar-decode-cleanups
...
ARDecrypt: Code modernization.
2026-01-18 12:04:53 -06:00
JosJuice
fb07406f10
VideoCommon: Defer creating TextureInfo
...
TextureCacheBase::LoadImpl has a hot path where the passed-in
TextureInfo never gets used. Instead of passing in a TextureInfo, let's
pass in the stage and create the TextureInfo from the stage if needed.
This unlocks somewhere above an additional 4% performance boost in the
Hoth level of Rogue Squadron 2 on my PC. Performance varies, making it
difficult for me to measure, so treat this as a very approximate number.
2026-01-18 13:04:06 +01:00
JosJuice
75666604a2
Jit64: Add fres unit test
2026-01-18 11:21:35 +01:00
JosJuice
addededecf
JitArm64: Always use double precision for inaccurate FMA
...
When we're emulating single-precision FMA using an FMA instruction,
there's no precision benefit from using a double-precision instruction,
assuming all inputs are single-precision. But when we're emulating
single-precision FMA using separate multiplication and addition
instructions, there is.
This change increases the precision of inaccurate FMA to the same level
as Jit64, which matters since the only reason we have the inaccurate
FMA mode is for sync compatibility with Jit64.
2026-01-18 10:36:00 +01:00
Jordan Woyak
362d359787
ARDecrypt: Code modernization.
2026-01-18 01:22:10 -06:00
iwubcode
373e35ed5b
Merge pull request #14267 from jordan-woyak/std-expected
...
Common: Replace Result with std::expected.
2026-01-17 22:33:15 -06:00
iwubcode
6d40f4e897
Merge pull request #14265 from JoshuaVandaele/std-unreachable
...
c++23: Replace Common::Unreachable with std::unreachable
2026-01-17 22:32:53 -06:00
JMC47
035bcffc63
Merge pull request #14289 from Sintendo/typos
...
Fix various typos and spelling mistakes
2026-01-17 19:10:50 -05:00
JMC47
d098f2bba9
Merge pull request #14274 from JosJuice/jitregister-check-enabled
...
JitRegister: Check IsEnabled before constructing string
2026-01-17 18:23:43 -05:00
JMC47
cffa4422c9
Merge pull request #14258 from JoshuaVandaele/dinput-unconditional-mousebuttons
...
DInputKeyboardMouse: Always report all possible buttons
2026-01-17 18:23:26 -05:00
JMC47
d32db5e319
Merge pull request #14256 from Tilka/we_cheer
...
GameSettings: improve We Cheer and We Cheer 2 default settings
2026-01-17 18:22:58 -05:00
JMC47
a5b34d43fc
Merge pull request #14215 from Tilka/disasm
...
GekkoDisassembler: fix multiple issues
2026-01-17 18:21:09 -05:00
JMC47
9e8e644fbf
Merge pull request #14193 from jordan-woyak/budokaiprogressive
...
GameSettings: Dragon Ball Z: Budokai 1 and 2 adjustments.
2026-01-17 18:20:37 -05:00
JMC47
663f71b5d1
Merge pull request #14170 from jordan-woyak/gameini-immxfb-updates
...
GameSettings: ImmediateXFB updates.
2026-01-17 18:18:46 -05:00
JMC47
a7b695bd08
Merge pull request #14168 from jordan-woyak/kirby-wii-allow-immxfb
...
GameSettings: Don't force off ImmediateXFB in Kirby's Return to Dream Land.
2026-01-17 18:18:08 -05:00
JMC47
581bef63be
Merge pull request #14250 from jordan-woyak/wmreal-bb-no-pool
...
WiimoteReal: Immediately disconnect balance boards when disabled.
2026-01-17 18:16:04 -05:00
Jordan Woyak
dffc7a650d
Common: Replace Result with C++23's std::expected.
2026-01-17 16:58:45 -06:00
Joshua Vandaële
e822cc3715
c++23: Replace Common::Unreachable with std::unreachable
...
Requires at least GCC 12, Clang 15, MSVC 19.32, or AppleClang 14.0.3.
2026-01-17 23:53:21 +01:00
iwubcode
b556bd99d7
Merge pull request #14268 from JoshuaVandaele/std-tounderlying
...
c++23: Replace Common::ToUnderlying with std::to_underlying
2026-01-17 16:49:57 -06:00
JMC47
8a606fca88
Merge pull request #14286 from JosJuice/textureinfo-vector
...
VideoCommon: Don't create mipmap vector in TextureInfo
2026-01-17 16:03:26 -05:00
OatmealDome
7ec5b06ab9
Merge pull request #14287 from Sintendo/mac-cmake-fix
...
Fix MacUpdater build on CMake 3.31+
2026-01-17 14:51:23 -05:00
Dentomologist
3042918952
Merge pull request #14213 from cscd98/readvalue
...
mingw: move ReadValue definitions into cpp to fix visibility
2026-01-17 11:37:27 -08:00
Sintendo
1e0473e44f
Fix various typos and spelling mistakes
2026-01-17 20:11:38 +01:00
Sintendo
eedee51b93
Fix MacUpdater build on CMake 3.31+
...
Building on macOS with a recent CMake version would result in the
following error:
CMake Error at Source/Core/MacUpdater/CMakeLists.txt:48 (add_custom_command):
The following keywords are not supported when using
add_custom_command(TARGET): DEPENDS
As it turns out, this form of `add_custom_command` does not accept
DEPENDS, but versions of CMake prior to 3.31 silently dropped it.
2026-01-17 18:25:49 +01:00
JosJuice
f7b4d2738b
VideoCommon: Don't create mipmap vector in TextureInfo
...
The TextureInfo constructor creates a vector of MipLevels. This could be
good for performance if MipLevels are accessed very often for each
TextureInfo, but that's not the case. Dolphin creates thousands of
TextureInfos per second that it never accesses the mipmap levels of
because there's a hit in the texture cache, and in the uncommon case of
a texture cache miss, the mipmap levels only get looped through once.
To make the common case of texture cache hits as fast as possible, let's
not create a vector in the TextureInfo constructor. This commit
implements a custom iterator for MipLevels instead.
In my testing on the Death Star level of Rogue Squadron 2, this speeds
up TextureInfo::FromStage by 200%, giving an overall emulation speedup
of a bit over 1%. Results on the Hoth level are even better, with
TextureInfo::FromStage being close to 300% faster and overall emulation
being over 4% faster. (Single core, no GPU texture decoding.)
2026-01-17 17:57:07 +01:00
JMC47
9ec1d70f51
Merge pull request #14285 from sepalani/logitech-cubeb-fix
...
LogitechMicWindow: Fix compilation when cubeb is disabled
2026-01-16 17:28:11 -05:00
Sepalani
faa977f5ee
LogitechMicWindow: Fix compilation when cubeb is disabled
2026-01-17 01:51:38 +04:00
JMC47
c7e063bc71
Merge pull request #14283 from SuperSamus/pes-gameini
...
GameINI: Enable EFB Access for PES 2009-2013
2026-01-15 20:17:57 -05:00
Jordan Woyak
a88c27d855
Merge pull request #14284 from JoshuaVandaele/menubar-folder
...
MenuBar: Add entries to open the config and cache folders
2026-01-15 16:17:40 -06:00
Joshua Vandaële
0e348ee159
MenuBar: Add entries to open the config and cache folders
2026-01-15 20:40:48 +01:00
Martino Fontana
753537377a
GameINI: Enable EFB Access for PES 2009-2013
2026-01-15 19:25:11 +01:00
JosJuice
4c7cb2622f
Merge pull request #14246 from LeddaZ/android-gitignore
...
Android: Add build output folders to gitignore
2026-01-14 18:54:16 +01:00
JosJuice
01b4f8bcf7
Merge pull request #14245 from LeddaZ/android-materialyou-fix
...
Android: Switch to Theme.Material3.DynamicColors
2026-01-14 18:54:05 +01:00
JosJuice
a80734138e
Merge pull request #14244 from LeddaZ/kotlin-compilerdsl
...
Android: Use compilerOptions block to specify JVM version
2026-01-14 18:53:37 +01:00
JMC47
2aee998a8e
Merge pull request #14199 from JosJuice/jit64-rcoparg-isimm
...
Jit64: Return current value from RCOpArg::IsImm
2026-01-12 13:06:09 -05:00
JMC47
03422d38d9
Merge pull request #14277 from jordan-woyak/revert-zlib-ng
...
Revert "Externals: Update zlib-ng to v2.3.2"
2026-01-11 21:59:55 -05:00
Jordan Woyak
5162608df9
Revert "Externals: Update zlib-ng to v2.3.2"
...
This reverts commit 34b402b631 .
2026-01-11 20:29:05 -06:00
Jordan Woyak
dc8f2995ef
Merge pull request #14273 from JosJuice/x64-oparg-padding
...
Jit64: Make OpArg and TrampolineInfo smaller
2026-01-11 16:14:50 -06:00
JMC47
79a4034aa0
Merge pull request #14251 from JoshuaVandaele/cmake-editorconfig
...
.editorconfig: Update CMake style
2026-01-11 16:28:03 -05:00
JMC47
823d111922
Merge pull request #14255 from JoshuaVandaele/bsd-fix
...
cpp-ipc: Fix builds on non-FreeBSD BSDs
2026-01-11 16:27:29 -05:00
JMC47
28a8fa5de6
Merge pull request #14229 from JoshuaVandaele/zlib-ng
...
Externals: Update zlib-ng to v2.3.2
2026-01-11 16:03:18 -05:00
JMC47
79255f550d
Merge pull request #14275 from JosJuice/hotkey-vector
...
HotkeyManager: Don't allocate heap memory in GetInput
2026-01-11 15:41:03 -05:00