lizzie
1b482fa99b
[hle] remove parent object reference data on Request/Response builders, pass by argument ( #3774 )
...
anyways this should remove a bunch of redundant code/stack usage for response builders (ahem, msvc)
SHOULD help games that use IPC heavily like PKZA and whatnot
biblical levels of performance greed
Signed-off-by: lizzie <lizzie@eden-emu.dev >
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3774
Reviewed-by: CamilleLaVey <camillelavey99@gmail.com >
Reviewed-by: Maufeat <sahyno1996@gmail.com >
2026-06-29 08:11:12 +02:00
lizzie
3aa0d46259
[video_core, hle] remove redundant parent references in system structs ( #3908 )
...
reworked a bit to remove references of parent objects and instead pass as arguments to methods to prevent useless reloads
Signed-off-by: lizzie <lizzie@eden-emu.dev >
Co-authored-by: maufeat <sahyno1996@gmail.com >
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3908
Reviewed-by: Maufeat <sahyno1996@gmail.com >
Reviewed-by: crueter <crueter@eden-emu.dev >
2026-06-23 06:31:25 +02:00
lizzie
3875093c70
[hle] Fixes for nxident, nxmp and nxplay, remove hbl.nsp workarounds ( #3996 )
...
adds `gpio` and `i2c` services
implements `IApplicationFunctions::SetMediaPlaybackStateForApplicatio`
stubs `IBtmSystemCore::GetDiscoveredAudioDevice`
implements `nvhost_ctrl_gpu::PmuGetGpuLoad` IOCTL (0x20)
implements `PSM::GetBatteryAgePercentage`, `PSM::GetBatteryVoltageState` and `PSM::GetBatteryChargeInfoFields`
implements `ISystemSettingsServer::GetConsoleInformationUploadFlag`, `ISystemSettingsServer::SetConsoleInformationUploadFlag`, `ISystemSettingsServer::GetAutomaticApplicationDownloadFlag`, `ISystemSettingsServer::SetAutomaticApplicationDownloadFlag`, `&ISystemSettingsServer::GetUsb30EnableFlag`, `ISystemSettingsServer::SetUsb30EnableFlag`
removes `hbl.nsp` specific workarounds
Signed-off-by: lizzie <lizzie@eden-emu.dev >
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3996
Reviewed-by: MaranBr <maranbr@eden-emu.dev >
Reviewed-by: crueter <crueter@eden-emu.dev >
2026-06-12 23:48:24 +02:00
lizzie
2aa2ac7d9a
[hle/service{nvdrv,apm}] fixes for TetrisSwitch ( #3983 )
...
- testriswitch submits buffers with a fence id of -1, just skip them instead of trying to process them?
- apm:u, which is removed, but hey, backwards compat never hurted
- another instance of shared_memory crashing NPad
Signed-off-by: lizzie <lizzie@eden-emu.dev >
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3983
Reviewed-by: MaranBr <maranbr@eden-emu.dev >
Reviewed-by: CamilleLaVey <camillelavey99@gmail.com >
2026-05-24 01:04:32 +02:00
lizzie
4f4c298a39
[hle, service] fix errors related to race conditions triggering under SMG1 and SMG2 ( #3927 )
...
- service manager may add a service while someone else is finding it, so properly lock
- nvhost doesn't properly account for the fact that iterators GET FUCKING INVALIDATED
- use proper exit routine for mapping locked that failed (try/catch hell)
the last two were introduced by #3858 , but the first one has been present since ???
either way, remember that ankerl map has invalidated iterators upon erase/insert, so i accounted for that and SMG1 (and probably smg2) boot fine now
Signed-off-by: lizzie <lizzie@eden-emu.dev >
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3927
Reviewed-by: crueter <crueter@eden-emu.dev >
Reviewed-by: CamilleLaVey <camillelavey99@gmail.com >
2026-05-05 07:31:08 +02:00
lizzie
a587b7dc3a
[hle/nvdrv] drop redundant shared_ptr<> in internal nvhost_as_gpu mappings ( #3858 )
...
Signed-off-by: lizzie <lizzie@eden-emu.dev >
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3858
Reviewed-by: MaranBr <maranbr@eden-emu.dev >
Reviewed-by: crueter <crueter@eden-emu.dev >
2026-04-29 16:44:28 +02:00
lizzie
90515bc6a2
[host1x] fix ffmpeg not having va-api on freebsd, inline nvenc ( #3878 )
...
- fix va-api not being used on freebsd
small thingies dont affect a lot:
- removes some pointer indirection (why save pointer to GMMU if its accesible via host1x)
- use std::variant<> for decoder
- miscelly vp9/v8/h264 opts
Signed-off-by: lizzie <lizzie@eden-emu.dev >
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3878
Reviewed-by: crueter <crueter@eden-emu.dev >
Reviewed-by: MaranBr <maranbr@eden-emu.dev >
2026-04-29 16:41:25 +02:00
lizzie
395613b01f
[common/logging] Simplify logging logic and fix issues when logging before system is created ( #3688 )
...
- our logging code was bigger than spdlog itself, why???? just keep it simple
- fix issues when logging before logging system is even started
- removes the "initialized logging twice" issue
- removes uneeded indirection in file logging
- uses direct formatting instead of jumping hoopla-around the fmt::format() ressult
- code duplication and dead code removal as usual
I did explore dup2() but I think it's not worth the hassle
I did try `fwopen()` but it's better if things are just kept as-is.
there is a lot of noise because I removed a bunch of redundant files on logging and just put everything in one file
now normally this wouldn't be a good idea, however consider: the complexity of logging; it's less than 500 lines... does it really need a whole subsystem?!?!?! ITS JUST LOGGING
Signed-off-by: lizzie <lizzie@eden-emu.dev >
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3688
Reviewed-by: crueter <crueter@eden-emu.dev >
Reviewed-by: DraVee <chimera@dravee.dev >
Reviewed-by: CamilleLaVey <camillelavey99@gmail.com >
Co-authored-by: lizzie <lizzie@eden-emu.dev >
Co-committed-by: lizzie <lizzie@eden-emu.dev >
2026-03-12 18:29:15 +01:00
lizzie
a8093c2a3c
[*] change all std::unordered_map and std::unordered_set into ankerl::unordered_dense::map/set variants ( #3442 )
...
mainly doing this to reduce memory footprint; we all know how nice ankerl::unordered_dense is
in theory 4x faster - in practice these maps arent that "hot" anyways so not likely to have much perf gained
i just want to reduce mem fragmentation to ease my porting process, plus it helps other platforms as well (ahem weak Mediatek devices) :)
Signed-off-by: lizzie <lizzie@eden-emu.dev >
Co-authored-by: Caio Oliveira <caiooliveirafarias0@gmail.com >
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3442
Reviewed-by: DraVee <dravee@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 >
2026-02-10 03:34:07 +01:00
Lizzie
6ec6ca7c37
[clang, opengl] fix opengl build on PGO build and clang-cl on windows ( #3332 )
...
- [backported] opengl: fix PGO build error
(pulled from 34332ab81326c3f2dfae2fd11ff5b18619fedb1e@pflyly/eden-nightly)
- [clang] chore: fix std::min on windows
Signed-off-by: lizzie lizzie@eden-emu.dev
Co-authored-by: DraVee <dravee@dravee.dev >
Co-authored-by: Escary <81011361+pflyly@users.noreply.github.com >
Co-authored-by: Caio Oliveira <caiooliveirafarias0@gmail.com >
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3332
Reviewed-by: DraVee <dravee@eden-emu.dev >
Reviewed-by: MaranBr <maranbr@eden-emu.dev >
Co-authored-by: Lizzie <lizzie@eden-emu.dev >
Co-committed-by: Lizzie <lizzie@eden-emu.dev >
2026-01-18 02:35:57 +01:00
lizzie
d8f2e22bf8
Revert "[gpu/nvdrv] Unstub SetErrorNotifier, add PostErrorNotification function ( #2500 )" ( #3046 )
...
This reverts commit 74d6eaf721 .
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3046
Reviewed-by: MaranBr <maranbr@eden-emu.dev >
Co-authored-by: lizzie <lizzie@eden-emu.dev >
Co-committed-by: lizzie <lizzie@eden-emu.dev >
2025-11-19 23:17:38 +01:00
SDK Chan
74d6eaf721
[gpu/nvdrv] Unstub SetErrorNotifier, add PostErrorNotification function ( #2500 )
...
This commit should ensure that GPU error handling is handled correctly.
Replace some unimplemented stubs with PostErrorNotification.
I believe this should mitigate some hiccups encountered in unreal engine based games.
Co-authored-by: Maufeat <sahyno1996@gmail.com >
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/2500
Reviewed-by: Shinmegumi <shinmegumi@eden-emu.dev >
Reviewed-by: Caio Oliveira <caiooliveirafarias0@gmail.com >
Reviewed-by: Maufeat <sahyno1996@gmail.com >
Reviewed-by: Lizzie <lizzie@eden-emu.dev >
Co-authored-by: SDK Chan <sdkchan@eden-emu.dev >
Co-committed-by: SDK Chan <sdkchan@eden-emu.dev >
2025-11-16 22:53:16 +01:00
lizzie
7d239df065
[hle, kernel] Add support for FW21 and kernel changes ( #3004 )
...
- Adapts kernel changes from atmosphere for firmware 21.0.0.
- Fixes launch error of firmware 21.0.0 applets.
- Adds new commands for `prepo` (New `SaveSystemReport` & `SaveSystemReportWithUser`).
- Adds new commands for `IReadOnlyApplicationControlDataInterface` (cmd 19; incomplete!)
- Adds `{12010, nullptr, "SetButtonConfigLeft"},` undocumented IHidServer.
- Adds new commands for `ngc:u` (`Mask2` and `Check2`)
- Adds new commands for system settings server (GetHttpAuthConfig) for webapplet
- Removes incompatible firmware popup warning.
Signed-off-by: lizzie lizzie@eden-emu.dev
Co-authored by: maufeat sahyno1996@gmail.com
Co-authored-by: crueter <crueter@eden-emu.dev >
Co-authored-by: JPikachu <jpikachu.eden@gmail.com >
Co-authored-by: Maufeat <sahyno1996@gmail.com >
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3004
Reviewed-by: Maufeat <sahyno1996@gmail.com >
Reviewed-by: crueter <crueter@eden-emu.dev >
Reviewed-by: MaranBr <maranbr@eden-emu.dev >
Co-authored-by: lizzie <lizzie@eden-emu.dev >
Co-committed-by: lizzie <lizzie@eden-emu.dev >
2025-11-16 22:15:09 +01:00
SDK Chan
680384f7b8
[gpu/NVDRV] Unstub SetChannelPriority and adjust ChannelSetTimeSlice ( #3017 )
...
Games usually rely on either 1 of this services or both.
The last call adjusts channel_timeslice.
This behavior closely resembles Ryujinx accurate behavior for setting the channel_timeslice accordingly to the situation.
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3017
Reviewed-by: Caio Oliveira <caiooliveirafarias0@gmail.com >
Reviewed-by: crueter <crueter@eden-emu.dev >
Co-authored-by: SDK Chan <sdkchan@eden-emu.dev >
Co-committed-by: SDK Chan <sdkchan@eden-emu.dev >
2025-11-15 14:49:43 +01:00
MaranBr
326865cba2
[host1x] Improve FFmpeg error handling ( #2643 )
...
This improves the FFmpeg error handling.
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/2643
Co-authored-by: MaranBr <maranbr@outlook.com >
Co-committed-by: MaranBr <maranbr@outlook.com >
2025-10-02 00:15:14 +02:00
lizzie
191e4c75a1
[meta] fix license headers ( #2547 )
...
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/2547
Reviewed-by: MaranBr <maranbr@eden-emu.dev >
Co-authored-by: lizzie <lizzie@eden-emu.dev >
Co-committed-by: lizzie <lizzie@eden-emu.dev >
2025-09-21 21:58:59 +02:00
SDK-Chan
cf634d4d6f
[gpu/nvdrv] Rewrite ZBC functions ( #2501 )
...
This rewrite attempts to implement a fully correct ZBC (Zero Bandwith Clear) mechanism.
The zbc_mutex attempts to mitigate contention by assuring that only threads which hold the mutex can modify the table.
Notify drivers about the index size, I believe some drivers even need the notification.
Only add new entries if a entry was not previously available.
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/2501
Reviewed-by: Shinmegumi <shinmegumi@eden-emu.dev >
Reviewed-by: MaranBr <maranbr@eden-emu.dev >
Reviewed-by: crueter <crueter@eden-emu.dev >
Co-authored-by: SDK-Chan <sdkchan@eden-emu.dev >
Co-committed-by: SDK-Chan <sdkchan@eden-emu.dev >
2025-09-18 14:46:53 +02:00
lizzie
9d2681ecc9
[cmake] enable clang-cl and WoA builds ( #348 )
...
Compilation and CMake fixes for both Windows on ARM and clang-cl, meaning Windows can now be built on both MSVC and clang on both amd64 and aarch64.
Compiling on clang is *dramatically* faster so this should be useful for CI.
Co-authored-by: crueter <crueter@eden-emu.dev >
Co-authored-by: crueter <crueter@crueter.xyz >
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/348
Reviewed-by: CamilleLaVey <camillelavey99@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 >
2025-09-09 20:47:49 +02:00
SDK-Chan
8dba6a2cb4
[gpu/NVDRV] Finalize, improve AllocObjCtx ( #333 )
...
Improves object allocation per channel, only allowing max amount of 6 objects contexts per channel.
Previously objects were stored in a heap allocated vector which is sub-optimal for performance reasons.
The new implementation instead uses a stack based array with a O(1) approach.
This should boost performance in games which heavily rely on object context creation.
Co-authored-by: MaranBr <maranbr@outlook.com >
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/333
Reviewed-by: crueter <crueter@eden-emu.dev >
Reviewed-by: CamilleLaVey <camillelavey99@gmail.com >
Co-authored-by: SDK-Chan <sdkchan@eden-emu.dev >
Co-committed-by: SDK-Chan <sdkchan@eden-emu.dev >
2025-08-31 07:32:54 +02:00
lizzie
9d53933a95
[fmt] use {:#X} for format instead of 0x{:X} ( #309 )
...
Signed-off-by: lizzie <lizzie@eden-emu.dev >
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/309
Reviewed-by: crueter <crueter@eden-emu.dev >
Co-authored-by: lizzie <lizzie@eden-emu.dev >
Co-committed-by: lizzie <lizzie@eden-emu.dev >
2025-08-27 22:39:11 +02:00
SDK-Chan
c36cc0d3ee
[core/nvdrv] Fix Random Unmap Memory Clearing ( #176 )
...
Now memory should only be unmapped after it was mapped.
Could eventually fix some graphical errors, and improve performance.
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/176
Reviewed-by: Shinmegumi <shinmegumi@eden-emu.dev >
Co-authored-by: SDK-Chan <sdkchan@eden-emu.dev >
Co-committed-by: SDK-Chan <sdkchan@eden-emu.dev >
2025-08-14 14:30:09 +02:00
SDK-Chan
03ab350bc6
[nvdrv] Add AllocGPFIFOEX1 + modify GPFIFOEXs ( #115 )
...
I noticed that AllocGPFIFOEX was missing from eden.
It is the same as GPFIFOEX2, but is called separately, even on the real console.
I updated the struct to match closely the one seen on switchbrew, and changed the STUBS, because according to sources they seem to be complete.
My guess is that the STUBS were remained due to the unknowns back then.
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/115
Co-authored-by: SDK-Chan <sdkchan@eden-emu.dev >
Co-committed-by: SDK-Chan <sdkchan@eden-emu.dev >
2025-07-24 16:57:53 +02:00
SDK-Chan
46ddbea71c
[nvdrv] Unstub Allocate Object Context ( #104 )
...
Adds proper checking to allocate object context, and saves each context separately, based on old stubs from Yuzu's, implemented now to resolve services and better handling of future issues.
Co-authored-by: Shinmegumi <shinmegumi@eden-emu.dev >
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/104
Co-authored-by: SDK-Chan <sdkchan@eden-emu.dev >
Co-committed-by: SDK-Chan <sdkchan@eden-emu.dev >
2025-07-24 16:34:18 +02:00
lizzie
12a690e15f
[nvdrv] ZBC table implement stubs ( #83 )
...
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/83
This commit introduces an implementation for `ZBCSetTable` in `nvhost_ctrl_gpu`, which is invoked by games and system services to configure default clear values for depth, stencil, and color attachments on the GPU, allowing better instructions on how the ZCull Block Compression expects to work within the emulated GPU.
This is an important step for compatibility with titles or system modules that expect ZBC configuration support.
Co-authored-by: lizzie <lizzie@eden-emu.dev >
Co-committed-by: lizzie <lizzie@eden-emu.dev >
2025-07-21 04:35:43 +02:00
Pavel Barabanov
b66ebe638b
Qlauncher firmware 19
2025-04-14 14:18:13 -04:00
crueter
9cef9f5dce
Update fmt to allow for v11
...
Signed-off-by: swurl <swurl@swurl.xyz >
2025-04-10 01:11:22 +02:00
darktux
616619c8f7
Port changes from Early Access
2025-04-04 03:40:46 +02:00
Liam
e15b1021a4
video_core: make gpu context aware of rendering program
2024-02-26 11:16:14 -05:00
FearlessTobi
4d55e58ee4
scope_exit: Make constexpr
...
Allows the use of the macro in constexpr-contexts.
Also avoids some potential problems when nesting braces inside it.
2024-02-19 16:00:46 +01:00
Liam
f5d736af4b
vi: manage resources independently of nvnflinger and refactor
2024-02-17 18:08:38 -05:00
Liam
b1f1beae41
nvnflinger: convert to process
2024-02-17 18:01:41 -05:00
Liam
1c32e4157c
nvnflinger/gpu: implement blending
2024-02-09 09:20:53 -05:00
Liam
effe70a904
nvservices: unmap only on last container free
2024-02-09 09:20:53 -05:00
liamwhite
d26c4a5090
Merge pull request #12914 from FernandoS27/vc-refactor
...
VideoCore Refactor Part 1.
2024-02-08 10:59:59 -05:00
liamwhite
9e83fdcde3
Merge pull request #12883 from FernandoS27/memory_manager_mem
...
MemoryManager: Reduce the page table size based on last big page address.
2024-02-06 10:25:03 -05:00
Fernando Sahmkow
758d895408
Common: Rename SplitRangeSet to OverlapRangeSet
2024-02-05 23:01:17 +01:00
Fernando Sahmkow
6f91002f90
NVDRV: Refactor HeapMapper to use RangeSets
2024-02-04 20:01:50 +01:00
Fernando Sahmkow
4d65645d80
MemoryManager: Reduce the page table size based on last big page address.
2024-02-01 13:00:36 +01:00
Liam
5ec76db392
nvnflinger/gpu: implement layer stack composition
2024-01-31 11:27:21 -05:00
Fernando Sahmkow
811f5f1b1e
NVDRV: Join the heaper optimization blocks
2024-01-31 16:38:51 +01:00
liamwhite
ff084ece75
Merge pull request #12759 from liamwhite/mp-misc
...
core: miscellaneous fixes
2024-01-25 16:21:38 -05:00
Narr the Reg
aad9258100
service: properly convert buffers to strings
2024-01-23 10:24:05 -06:00
Liam
cc7a7b5253
nvservices: close map handles on session close
2024-01-22 21:18:52 -05:00
Liam
d31406f2c1
nvhost_vic: use map erase by key
2024-01-18 21:12:30 -05:00
Liam
0bb66a7b2b
nvdrv: clean up preallocation
2024-01-18 21:12:30 -05:00
Liam
344d9c067c
nvdrv: use correct names for interface factory
2024-01-18 21:12:30 -05:00
Liam
bf2dab5b2b
nvdrv: use static typing for SessionId, smmu Asid types
2024-01-18 21:12:30 -05:00
Fernando Sahmkow
b206089ea7
Core: Clang format and other small issues.
2024-01-18 21:12:30 -05:00
Fernando Sahmkow
aaf5f8c831
SMMU: Fix software rendering and cleanup
2024-01-18 21:12:30 -05:00
Fernando Sahmkow
0797d63a36
SMMU: Add continuity tracking optimization.
2024-01-18 21:12:30 -05:00