Commit Graph
21 Commits
Author SHA1 Message Date
SDK Chan bccc46a325 [src/dynarmic] Fix No member named 'join' in namespace 'fmt' (#3188)
Clang seems to complain that fmt doesn't have a member named join so, it fails to build.
Including fmt/ranges.h fixes that, and lets eden be buildable again.

Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3188
Reviewed-by: Caio Oliveira <[email protected]>
Reviewed-by: MaranBr <[email protected]>
Co-authored-by: SDK Chan <[email protected]>
Co-committed-by: SDK Chan <[email protected]>
2025-12-21 17:28:49 +01:00
SDK ChanandMaufeat 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 <[email protected]>
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/2500
Reviewed-by: Shinmegumi <[email protected]>
Reviewed-by: Caio Oliveira <[email protected]>
Reviewed-by: Maufeat <[email protected]>
Reviewed-by: Lizzie <[email protected]>
Co-authored-by: SDK Chan <[email protected]>
Co-committed-by: SDK Chan <[email protected]>
2025-11-16 22:53:16 +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 <[email protected]>
Reviewed-by: crueter <[email protected]>
Co-authored-by: SDK Chan <[email protected]>
Co-committed-by: SDK Chan <[email protected]>
2025-11-15 14:49:43 +01:00
SDK Chan 49f29e5071 [shader_recompiler] Rewrite ISBERD (#2541)
I tried to simplify ISBERD a little bit, and remove unneeded data shifting, and unneeded complexity through helper functions I previously added.

Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/2541
Reviewed-by: MaranBr <[email protected]>
Reviewed-by: crueter <[email protected]>
Co-authored-by: SDK Chan <[email protected]>
Co-committed-by: SDK Chan <[email protected]>
2025-09-22 17:55:41 +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 <[email protected]>
Reviewed-by: MaranBr <[email protected]>
Reviewed-by: crueter <[email protected]>
Co-authored-by: SDK-Chan <[email protected]>
Co-committed-by: SDK-Chan <[email protected]>
2025-09-18 14:46:53 +02:00
SDK-Chan 3ca0bde0e9 [core/nvnflinger] Rewrite GetBufferHistory (#528)
This rewrite should improve performance with the buffer history by changing the complexity level to O(1).
Replace std::vector with std::array to ensure that elements are allocated on the stack rather than on the free store.
Avoid expensive resizing at runtime.
Adjust buffer states at the right locations.
Tightly pack the BufferHistoryInfo struct to ensure that it only occupies 28 bytes.

Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/528
Co-authored-by: SDK-Chan <[email protected]>
Co-committed-by: SDK-Chan <[email protected]>
2025-09-16 19:41:52 +02:00
SDK-ChanandMaranBr 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 <[email protected]>
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/333
Reviewed-by: crueter <[email protected]>
Reviewed-by: CamilleLaVey <[email protected]>
Co-authored-by: SDK-Chan <[email protected]>
Co-committed-by: SDK-Chan <[email protected]>
2025-08-31 07:32:54 +02:00
SDK-Chan e75ceb676b [core] Finalize AliasRegionExtraSize (#291)
The previous implementation was based on assumptions for the baseline.
The new implementation is based on calculations, and should be more robust for DRAM values beyond 8GB as well.

Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/291
Reviewed-by: Lizzie <[email protected]>
Reviewed-by: Shinmegumi <[email protected]>
Co-authored-by: SDK-Chan <[email protected]>
Co-committed-by: SDK-Chan <[email protected]>
2025-08-21 21:08:43 +02:00
SDK-Chan 7ce051cfb3 [core] Unstub AliasRegionExtraSize (#260)
This implementation is basically usable for up to 8GB of DRAM which you can set in the emulator.
It should ensure that the alias or map region for the virtual address space is bigger when requested.
8GB DRAM is the size of Nintendos DRAM sticks in the developers kit.
Going above 8GB DRAM while emulating a game is not recommended.
That is why this implementation.

Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/260
Reviewed-by: Shinmegumi <[email protected]>
Co-authored-by: SDK-Chan <[email protected]>
Co-committed-by: SDK-Chan <[email protected]>
2025-08-20 17:16:13 +02:00
SDK Chan 72fb15cacc [shader_recompiler] ISBERD minor cleanups (#211)
Clean up some ISBERD related implementations.

Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/211
Reviewed-by: Shinmegumi <[email protected]>
Co-authored-by: SDK Chan <[email protected]>
Co-committed-by: SDK Chan <[email protected]>
2025-08-15 20:11:08 +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 <[email protected]>
Co-authored-by: SDK-Chan <[email protected]>
Co-committed-by: SDK-Chan <[email protected]>
2025-08-14 14:30:09 +02:00
SDK Chan 3f12ae1e6e [shader_recompiler/Maxwell] Unstub ISBERD completely (#160)
Unstub previous ISBERD stubs.
Should improve internal shader handling in certain aspects.

Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/160
Co-authored-by: SDK Chan <[email protected]>
Co-committed-by: SDK Chan <[email protected]>
2025-07-31 16:42:00 +02:00
SDK-Chan 18942b7ee0 [vk] Revert Engine Name and Update some Params (#145)
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/145
2025-07-28 09:53:55 +02:00
SDK-Chan f75a8c44c7 Update src/video_core/vulkan_common/vulkan_wrapper.cpp 2025-07-28 09:51:52 +02:00
SDK Chan 07cab5ba07 [vk] Revert Engine Name and Update some Params 2025-07-28 08:45:23 +00:00
SDK-Chan 87f171e884 [cmake, core] Unbreak FreeBSD Building Process (#117)
During building eden on FreeBSD, it always assumed that FreeBSD due to being part of the unix family, has gamemode support, too.
Since it doesn't the building process failed.
This commit aims to fix that by separating out Unix and Linux for CMake to ensure there are no conflicts.

Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/117
Co-authored-by: SDK-Chan <[email protected]>
Co-committed-by: SDK-Chan <[email protected]>
2025-07-24 18:52:21 +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 <[email protected]>
Co-committed-by: SDK-Chan <[email protected]>
2025-07-24 16:57:53 +02:00
SDK-ChanandShinmegumi 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 <[email protected]>
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/104
Co-authored-by: SDK-Chan <[email protected]>
Co-committed-by: SDK-Chan <[email protected]>
2025-07-24 16:34:18 +02:00
SDK-ChanandMaranBr a8564a09b7 [host1x] FreeBSD: Fix random crashes due to CUDA/VAAPI check sideeffects (#64)
FreeBSD doesn't support NVDEC, CUDA, and partially supports VAAPI (mostly for firefox).
Implementing VAAPI for other use cases would be a little bit complicated so, I chose to switch it off for FreeBSD.
This PR ensures that FFmpeg will always default to software decoding on FreeBSD, but should remain the same functionalities for other OS's.
The results are slight CPU increases while decoding in software mode, but still neglectable and they don't really harm performance.

Co-authored-by: MaranBr <[email protected]>
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/64
Co-authored-by: SDK-Chan <[email protected]>
Co-committed-by: SDK-Chan <[email protected]>
2025-07-14 22:30:07 +02:00
SDK Chan a0a208db57 [cmake] Fix misplaced comment (#54)
A member of the community notified me that I misplaced a comment so, I corrected it.

Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/54
Co-authored-by: SDK Chan <[email protected]>
Co-committed-by: SDK Chan <[email protected]>
2025-07-13 20:58:04 +02:00
SDK-Chan 7f48f4efb6 Add native FreeBSD building functionality (#35)
This commit enables native building on FreeBSD through Cmake + ninja.

Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/35
Reviewed-by: crueter <[email protected]>
Co-authored-by: SDK-Chan <[email protected]>
Co-committed-by: SDK-Chan <[email protected]>
2025-07-11 10:05:17 +02:00