Commit graph

414 commits

Author SHA1 Message Date
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
Fernando Sahmkow
355bbea52d SMMU: Add Android compatibility 2024-01-18 21:12:30 -05:00
Fernando Sahmkow
ff6cd1c212 GPU-SMMU: Estimate game leak and preallocate device region. 2024-01-18 21:12:30 -05:00
Fernando Sahmkow
bb7b14acd5 GPU SMMU: Expand to 34 bits 2024-01-18 21:12:30 -05:00
Fernando Sahmkow
f11218a03e SMMU: Implement physical memory mirroring 2024-01-18 21:12:30 -05:00
Fernando Sahmkow
9db159da71 SMMU: Initial adaptation to video_core. 2024-01-18 21:12:30 -05:00
Fernando Sahmkow
eb4f7f35ea NVDRV: Implement sessions and initial implementation of SMMU 2024-01-18 21:12:30 -05:00
Viktor Szépe
cff668e1c4 Fix typos in src/core (#12625)
* Fix typos in src/core

* Fix typo correction

* Fix indentation of MemoryStateNames

* Fix indent
2024-01-08 13:31:48 -06:00
Liam
cb176ebdd7 nvdrv: rework to remove memcpy 2023-10-25 13:05:56 -04:00
Liam
16156ce42d nvdrv: fix up remaining copy calls 2023-10-25 13:05:56 -04:00
Liam
a059aedaf1 nvdrv: convert nvmap 2023-10-25 13:05:56 -04:00
Liam
ad86f1c9ce nvdrv: convert codec devices 2023-10-25 13:05:56 -04:00
Liam
fb546a39c7 nvdrv: convert nvhost_gpu 2023-10-25 13:05:56 -04:00
Liam
61e871d4e7 nvdrv: convert nvhost_ctrl 2023-10-25 13:05:56 -04:00
Liam
9153c0f5ce nvdrv: convert nvhost_ctrl_gpu 2023-10-25 13:05:55 -04:00