Commit Graph

340 Commits

Author SHA1 Message Date
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
liamwhite 1bd93d9f3b Merge pull request #9556 from vonchenplus/draw_texture
video_core: Implement maxwell3d draw texture method
2023-01-19 14:58:53 -05:00
liamwhite 41958ff4ae Merge pull request #9552 from liamwhite/turbo
vulkan: implement 'turbo mode' clock booster
2023-01-06 09:59:59 -05:00
Fernando Sahmkow 8eafb91af0 video_core: Cache GPU internal writes. 2023-01-05 05:23:39 -05:00
Feng Chen 3b5e1a24bc video_core: Implement opengl/vulkan draw_texture 2023-01-05 12:41:33 +08:00
Liam 1a32e03a0f vulkan: implement 'turbo mode' clock booster 2023-01-04 22:22:01 -05:00
Fernando Sahmkow 3ea10762d2 RasterizerMemory: Add filtering for flushing/invalidation operations. 2023-01-01 16:43:58 -05:00