DONOTMERGE: [dynarmic] next 2026-03-26 #3781

Closed
Lizzie wants to merge 22 commits from lizzie/dynarmic-next-2026-03-26 into master
Member

general testbed for my recent dynarmic changes

#3777
#3752
#3717
#3301
#3780
#3749

general testbed for my recent dynarmic changes #3777 #3752 #3717 #3301 #3780 #3749
Signed-off-by: lizzie <lizzie@eden-emu.dev>
license
All checks were successful
eden-license / license-header (pull_request) Successful in 28s
GitHub Actions [CI] Build succeeded
GitHub Releases [CD] Release published
b9ce74c2bd
fix crashes on rw
All checks were successful
eden-license / license-header (pull_request) Successful in 30s
GitHub Actions [CI] Build succeeded
GitHub Releases [CD] Release published
4f336a971e
fix mk8d
All checks were successful
eden-license / license-header (pull_request) Successful in 31s
GitHub Actions [CI] Build succeeded
GitHub Releases [CD] Release published
6f2a737322
- repeated 32 times
- is like 3432
- 32 * 3432 = 109824 = 109kb
- now it's just 3.4kb

Signed-off-by: lizzie <lizzie@eden-emu.dev>

Reviewed-on: #3756
Reviewed-by: MaranBr <maranbr@eden-emu.dev>
Reviewed-by: CamilleLaVey <camillelavey99@gmail.com>
Co-authored-by: lizzie <lizzie@eden-emu.dev>
Co-committed-by: lizzie <lizzie@eden-emu.dev>
why not? i like it a lot on both phone and TV.
toggle in app settings. disabled by default so no hassle.

Reviewed-on: #3676
Reviewed-by: MaranBr <maranbr@eden-emu.dev>
Reviewed-by: CamilleLaVey <camillelavey99@gmail.com>
Co-authored-by: xbzk <xbzk@eden-emu.dev>
Co-committed-by: xbzk <xbzk@eden-emu.dev>
Signed-off-by: lizzie <lizzie@eden-emu.dev>
Reviewed-on: #3751
Co-authored-by: lizzie <lizzie@eden-emu.dev>
Co-committed-by: lizzie <lizzie@eden-emu.dev>
Signed-off-by: lizzie <lizzie@eden-emu.dev>
Reviewed-on: #3763
Reviewed-by: Maufeat <sahyno1996@gmail.com>
Reviewed-by: MaranBr <maranbr@eden-emu.dev>
Co-authored-by: lizzie <lizzie@eden-emu.dev>
Co-committed-by: lizzie <lizzie@eden-emu.dev>
Signed-off-by: lizzie <lizzie@eden-emu.dev>
Reviewed-on: #3762
Reviewed-by: Maufeat <sahyno1996@gmail.com>
Reviewed-by: MaranBr <maranbr@eden-emu.dev>
Co-authored-by: lizzie <lizzie@eden-emu.dev>
Co-committed-by: lizzie <lizzie@eden-emu.dev>
My server is getting hammered, let's just move them here.

Signed-off-by: crueter <crueter@eden-emu.dev>
Reviewed-on: #3766
Thanks to @chrelliott978 for the initial impl

Signed-off-by: lizzie <lizzie@eden-emu.dev>

Reviewed-on: #3765
Reviewed-by: Maufeat <sahyno1996@gmail.com>
Reviewed-by: crueter <crueter@eden-emu.dev>
Co-authored-by: lizzie <lizzie@eden-emu.dev>
Co-committed-by: lizzie <lizzie@eden-emu.dev>
fucks up unity builds, also it's an innocuous trivial change for a warning that should've been fixed a while ago

Signed-off-by: lizzie <lizzie@eden-emu.dev>
Reviewed-on: #3764
Reviewed-by: Maufeat <sahyno1996@gmail.com>
Reviewed-by: crueter <crueter@eden-emu.dev>
Co-authored-by: lizzie <lizzie@eden-emu.dev>
Co-committed-by: lizzie <lizzie@eden-emu.dev>
This Pr is a reply to certain issues found on Android due to the new artificial waits inside Vulkan (Frame Pacing Mode); which caused GPU/CPU desync's even if TimelineSemaphore (Adreno's drivers) does a constant check to retain synchronization with each frame-data, removes the yield() for all platforms (remains the same on PC) and aligns a new way to handle the output of video by using native Android tools, such as AGP, which makes a bridge inside Vulkan to Android's Surface (screen) and reduces not only the latency, but also improves the smoothness of each frame processed; currently we quantize the amount of frame processed by hinting the surface on Android space and adjust the heuristics of the old handling (yuzu) and we link it to screen refresh rate; this way we ensure that even if the game moves below the screen's HZ, we can always pick up the cadence by clamping the duration of each frame and using a chrono function to work as internal fernce if performance goes below the game speed requirment or game's frame rate requirements.

Co-authored-by: CamilleLaVey <camillelavey99@gmail.com>
Reviewed-on: #3735
Reviewed-by: CamilleLaVey <camillelavey99@gmail.com>
Reviewed-by: Lizzie <lizzie@eden-emu.dev>
Co-authored-by: PavelBARABANOV <pavelbarabanov94@gmail.com>
Co-committed-by: PavelBARABANOV <pavelbarabanov94@gmail.com>
Signed-off-by: lizzie <lizzie@eden-emu.dev>
Signed-off-by: lizzie <lizzie@eden-emu.dev>
Lets do the quick math
There was 1 LUT for every fsize() instancing

Now... the number of functions on each lut was (fsize + 1), multiplied by 5 (number of rounding modes)

8 = 9 * 5 = 45
16 = 17 * 5 = 85
32 = 33 * 5 = 165
64 = 65 * 5 = 325

this is just pure insanity - look at what fucking nm reported:

```
0000000003dc39b8 0000000000000008 V guard variable for void Dynarmic::Backend::X64::EmitFPVectorToFixed<16ul, false>(Dynarmic::Backend::X64::BlockOfCode&, Dynarmic::Backend::X64::EmitContext&, Dynarmic::IR::Inst*)::lut
0000000003dc3a18 0000000000000008 V guard variable for void Dynarmic::Backend::X64::EmitFPVectorToFixed<16ul, true>(Dynarmic::Backend::X64::BlockOfCode&, Dynarmic::Backend::X64::EmitContext&, Dynarmic::IR::Inst*)::lut
0000000003dc39d8 0000000000000008 V guard variable for void Dynarmic::Backend::X64::EmitFPVectorToFixed<32ul, false>(Dynarmic::Backend::X64::BlockOfCode&, Dynarmic::Backend::X64::EmitContext&, Dynarmic::IR::Inst*)::lut
0000000003dc3a38 0000000000000008 V guard variable for void Dynarmic::Backend::X64::EmitFPVectorToFixed<32ul, true>(Dynarmic::Backend::X64::BlockOfCode&, Dynarmic::Backend::X64::EmitContext&, Dynarmic::IR::Inst*)::lut
0000000003dc39f8 0000000000000008 V guard variable for void Dynarmic::Backend::X64::EmitFPVectorToFixed<64ul, false>(Dynarmic::Backend::X64::BlockOfCode&, Dynarmic::Backend::X64::EmitContext&, Dynarmic::IR::Inst*)::lut
0000000003dc3a58 0000000000000008 V guard variable for void Dynarmic::Backend::X64::EmitFPVectorToFixed<64ul, true>(Dynarmic::Backend::X64::BlockOfCode&, Dynarmic::Backend::X64::EmitContext&, Dynarmic::IR::Inst*)::lut
```

"ah its not bad" - OH MATE ITS JUST THE GUARD VARIABLES - i attached a file with just the functions generated for each case...

now with this PR only 6 * 6 functions are made (still not ideal, but way better), 36 is way better than 1156 FUCKING FUNCTIONS

Signed-off-by: lizzie <lizzie@eden-emu.dev>

Reviewed-on: #3718
Reviewed-by: DraVee <chimera@dravee.dev>
Reviewed-by: Maufeat <sahyno1996@gmail.com>
Co-authored-by: lizzie <lizzie@eden-emu.dev>
Co-committed-by: lizzie <lizzie@eden-emu.dev>
Complementary for 3750.
User found a way to get same driver doubled and deleting one would lead to a crash.
Reason: manual driver install was still adding drivers directly to adapter, instead of thru drivermodel. fixed.
Also added guards against crash upon driver removal.
Thoroughly tested.

Reviewed-on: #3757
Reviewed-by: Maufeat <sahyno1996@gmail.com>
Reviewed-by: MaranBr <maranbr@eden-emu.dev>
Co-authored-by: xbzk <xbzk@eden-emu.dev>
Co-committed-by: xbzk <xbzk@eden-emu.dev>
Signed-off-by: lizzie <lizzie@eden-emu.dev>
Signed-off-by: lizzie <lizzie@eden-emu.dev>
Signed-off-by: lizzie <lizzie@eden-emu.dev>
Signed-off-by: lizzie <lizzie@eden-emu.dev>
fix aarch64
All checks were successful
eden-license / license-header (pull_request) Successful in 37s
GitHub Actions [CI] Build succeeded
GitHub Releases [CD] Release published
e8d816a90d
Lizzie force-pushed lizzie/dynarmic-next-2026-03-26 from e8d816a90d
All checks were successful
eden-license / license-header (pull_request) Successful in 37s
GitHub Actions [CI] Build succeeded
GitHub Releases [CD] Release published
to 933ab989f0
All checks were successful
eden-license / license-header (pull_request) Successful in 38s
GitHub Actions [CI] Build succeeded
GitHub Releases [CD] Release published
2026-03-27 07:10:01 +01:00
Compare
Lizzie force-pushed lizzie/dynarmic-next-2026-03-26 from 933ab989f0
All checks were successful
eden-license / license-header (pull_request) Successful in 38s
GitHub Actions [CI] Build succeeded
GitHub Releases [CD] Release published
to 653c7494cd
All checks were successful
eden-license / license-header (pull_request) Successful in 57s
GitHub Actions [CI] Build succeeded
GitHub Releases [CD] Release published
2026-03-28 03:19:54 +01:00
Compare
Lizzie force-pushed lizzie/dynarmic-next-2026-03-26 from 653c7494cd
All checks were successful
eden-license / license-header (pull_request) Successful in 57s
GitHub Actions [CI] Build succeeded
GitHub Releases [CD] Release published
to 4e6f5c044b
All checks were successful
eden-license / license-header (pull_request) Successful in 24s
GitHub Actions [CI] Build succeeded
GitHub Releases [CD] Release published
2026-03-30 00:36:54 +02:00
Compare
Lizzie closed this pull request 2026-03-31 06:41:09 +02:00
All checks were successful
eden-license / license-header (pull_request) Successful in 24s
Required
Details
GitHub Actions [CI] Build succeeded
GitHub Releases [CD] Release published

Pull request closed

Sign in to join this conversation.
No description provided.