Commit Graph

346 Commits

Author SHA1 Message Date
lizzie 421e5073d2 [cmake] fix unordered-dense deps (#380)
Signed-off-by: lizzie <lizzie@eden-emu.dev>
Co-authored-by: crueter <crueter@eden-emu.dev>
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/380
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-01 21:29:57 -04: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 <shinmegumi@eden-emu.dev>
Co-authored-by: SDK Chan <sdkchan@eden-emu.dev>
Co-committed-by: SDK Chan <sdkchan@eden-emu.dev>
2025-08-15 20:11:08 +02:00
crueter 3e55dc6352 [cmake] refactor: CPM over vcpkg (#250)
Completely replaces vcpkg with CPM for all "system" dependencies. Primarily needed for Android and Windows. Also uses my OpenSSL CI for those two platforms.

In theory, improves configure and build time by a LOT and makes things much easier to manage

Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/250
Reviewed-by: Lizzie <lizzie@eden-emu.dev>
2025-08-14 20:30:30 +02:00
crueter 1551387739 [cmake, frontend] feat: CPMUtil + dependency viewer (#238)
- creates a CPMUtil.cmake module that makes my job 10x easier and removes boilerplate
- also lets us generate dependency names/versions at compiletime, thus letting the frontend display each dependency's versions.

Signed-off-by: crueter <crueter@eden-emu.dev>
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/238
2025-08-11 22:27:29 +02:00
crueter 9634342100 [cmake] fix regressions intr. CPM and packaging (#201)
- don't install dynarmic, mcl, unordered_dense files
- fix bundled qt w/ quazip
- don't install libyuzu-room.a
- don't link to VUH

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

Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/201
Reviewed-by: Shinmegumi <shinmegumi@eden-emu.dev>
2025-08-04 21:57:01 +02:00
crueter 51b170b470 [cmake] refactor: Use CPM over submodules (#143)
Transfers the majority of submodules and large externals to CPM, using source archives rather than full Git clones. Not only does this save massive amounts of clone and configure time, but dependencies are grabbed on-demand rather than being required by default. Additionally, CPM will (generally) automatically search for system dependencies, though certain dependencies have options to control this.

Testing shows gains ranging from 5x to 10x in terms of overall clone/configure time.

Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/143
Reviewed-by: CamilleLaVey <camillelavey99@gmail.com>
2025-08-04 04:50:14 +02:00
edendev b01e20414f Readd Revert Problematic Commits 2025-05-04 08:24:54 +00:00
edendev 4181b53e19 revert Remove problematic commits
revert Remove problematic commits
2025-05-04 08:17:03 +00:00
MrPurple666 b689d74bc9 Remove problematic commits 2025-05-03 16:01:11 -03:00
MrPurple666 b695ca5a2a Revert some wip changes 2025-04-28 16:14:42 -03:00
Zephyron 9615e910f9 feat(video_core): Implement HybridMemory for advanced Vulkan memory management
Adds a new cross-platform memory management system with enhanced capabilities:
- Fault-managed memory allocation for Linux/Android platforms
- Memory snapshot and differential snapshot support
- Predictive memory reuse tracking for optimized access patterns
- Vulkan compute buffer integration
- User-configurable settings for enabling features

The system integrates with the existing Vulkan renderer to provide more
efficient memory handling, especially for compute-intensive workloads.

Co-authored-by: boss.sfc <boss.sfc@citron-emu.org>
Co-committed-by: boss.sfc <boss.sfc@citron-emu.org>
Signed-off-by: Zephyron <zephyron@citron-emu.org>
2025-04-12 23:41:26 -03:00
Zephyron b550c6e3cc feat(vulkan): implement enhanced texture and shader management
This commit adds improved Vulkan functionality to the Citron emulator:

- Add thread-safe texture management with automatic error recovery
- Implement shader caching with validation support
- Add robust error handling for Vulkan operations
- Implement platform-specific initialization for Windows, Linux, and Android

These enhancements improve stability when handling texture loading errors
and provide better recovery mechanisms for Vulkan failures.

Co-authored-by: boss.sfc <boss.sfc@citron-emu.org>
Co-committed-by: boss.sfc <boss.sfc@citron-emu.org>
Signed-off-by: Zephyron <zephyron@citron-emu.org>
2025-04-12 23:39:19 -03:00
darktux 616619c8f7 Port changes from Early Access 2025-04-04 03:40:46 +02:00
voidanix d60cf76e2d Fix GCC builds with Debug build type 2025-04-01 18:31:44 +02:00
Liam ba17a8c2b8 gpu: dependency-inject scaling/antialiasing filter state for capture layers 2024-02-09 09:20:53 -05:00
Liam ce72818075 nvnflinger/gpu: implement applet capture 2024-02-09 09:20:53 -05:00
Fernando Sahmkow 4d97c54676 VideoCore: Move Slot Vector to Common 2024-02-04 20:01:47 +01:00
Liam d2f98ce312 renderer_opengl: implement layer stack composition 2024-01-31 11:27:21 -05:00
Liam f727f13cb9 renderer_vulkan: implement layer stack composition 2024-01-31 11:27:21 -05:00
Liam 2a314f9e2e renderer_opengl: split up blit screen resources into antialias and window adapt passes 2024-01-31 11:27:21 -05:00
Liam bd9c228844 renderer_opengl: split out FXAA 2024-01-31 11:27:20 -05:00
Liam 5d9ae38249 renderer_opengl: split out SMAA 2024-01-31 11:27:20 -05:00
Liam 86bfa837fc renderer_vulkan: split up blit screen resources into separate antialias and window adapt passes 2024-01-31 11:27:20 -05:00
Liam f50296ab23 renderer_vulkan: isolate FXAA from blit screen 2024-01-31 11:27:20 -05:00
Liam e8fa898313 renderer_opengl: isolate core presentation code 2024-01-31 11:27:20 -05:00
Liam 84678c7014 video_core: simplify accelerated surface fetch and crop handling between APIs 2024-01-31 11:27:20 -05:00
liamwhite 9b07313a94 Merge pull request #12814 from Kelebek1/time_new_ipc
Move time services to new IPC and add debug printing
2024-01-29 09:08:46 -05:00
liamwhite bc857b4b5a Merge pull request #12439 from FireBurn/vkresult
Simplify VkResult lookup
2024-01-29 09:08:32 -05:00
Kelebek1 05afa94a3b Move time services to new IPC.
Add some fixes/improvements to usage with the new IPC
2024-01-27 03:30:09 +00:00
Mike Lothian 2348a5bdab Add Vulkan-Utility-Libraries dependency 2024-01-22 01:30:44 +00: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
Fernando S 896ae72dbf Merge pull request #11535 from GPUCode/upload_cmdbuf
renderer_vulkan: Introduce separate cmd buffer for uploads
2023-11-26 18:33:05 +01:00
Liam 767b024755 video_core: refactor video frame and packet parsing 2023-11-16 17:01:38 -05:00
GPUCode 4b853ff5cf renderer_vulkan: Introduce separate cmd buffer for uploads 2023-11-12 20:27:39 +01:00
Fernando Sahmkow 7f78d844ab Query Cache: Setup Base rework 2023-09-23 23:05:29 +02:00
Alexandre Bouvier f663418ff5 vma: enable options everywhere 2023-07-31 13:01:21 +02:00
Alexandre Bouvier dad3ef76a2 cmake: allow using system VMA library 2023-07-12 04:51:45 +02:00
GPUCode 5196f05cec video_core: Add BCn decoding support 2023-06-27 18:00:09 -07:00
lat9nq 0a4650cd2b externals: Add vma and initialize it
video_core: Move vma implementation to library
2023-06-18 12:45:12 +03:00
liamwhite 93372f503a Merge pull request #10476 from ameerj/gl-memory-maps
OpenGL: Make use of persistent buffer maps in buffer cache
2023-06-07 14:03:57 -04:00
Liam d54605d1a5 build: only enable adrenotools on arm64 2023-06-03 00:05:43 -07:00
Liam 46927d217c externals: add adrenotools for bcenabler 2023-06-03 00:05:28 -07:00
bunnei 6549cf8bd0 cmake: Integrate bundled FFmpeg for Android. 2023-06-03 00:05:26 -07:00
ameerj 8d223e8092 OpenGL: Make use of persistent buffer maps in buffer cache downloads
Persistent buffer maps were already used by the texture cache, this extends their usage for the buffer cache.

In my testing, using the memory maps for uploads was slower than the existing "ImmediateUpload" path, so the memory map usage is limited to downloads for the time being.
2023-05-28 00:38:46 -04:00
Liam 011dfe1db7 textures: add BC1 and BC3 compressors and recompression setting 2023-05-23 12:54:40 -04:00
GPUCode 8eede48a39 renderer_vulkan: Async presentation 2023-05-01 23:13:24 +03:00
Fernando Sahmkow 64c9a90c20 Buffer Cache: Fully rework the buffer cache. 2023-04-29 00:46:31 +02:00
Matías Locatti 7cc539e8b8 Partially apply LTO to only core and video_core projects. 2023-02-27 18:44:14 -03:00
Wollnashorn 6b840142b3 video_core/opengl: Add FSR upscaling filter to the OpenGL renderer 2023-01-26 21:43:33 +01:00