Commit graph

239 commits

Author SHA1 Message Date
MrPurple666
b5bec371ae Add toggle for LRU 2025-04-30 04:05:45 -03:00
MrPurple666
b695ca5a2a Revert some wip changes 2025-04-28 16:14:42 -03:00
808276b48a Dynamic State Fixes (#57)
- Forcefully disabled dynamic state extensions if Vulkan reports that
  the device doesn't support it (need to update UI for this)
- Adds some more supported state 3 extensions
- Adds back stencil reinterpretation
- default to 0 on Android and 1 on desktop

Signed-off-by: swurl <swurl@swurl.xyz>

Reviewed-on: #57
Co-authored-by: swurl <swurl@swurl.xyz>
Co-committed-by: swurl <swurl@swurl.xyz>
2025-04-27 17:07:49 -04:00
30670bd92a Merge pull request 'Add configurations for VkExtendedDynamicState extensions' (#53) from crueter/eden:dynamic-state-config into master
Reviewed-on: #53
2025-04-24 19:55:58 +00:00
83cf9774e1 switch dynamic state to a slider
Signed-off-by: swurl <swurl@swurl.xyz>
2025-04-24 12:08:01 -04:00
1949e7c438 Add dynamic state extension configs
Signed-off-by: swurl <swurl@swurl.xyz>
2025-04-23 20:57:53 -04:00
8795b96d46 Fix Qt <6.7 build and allow speed limit to be saved
Signed-off-by: swurl <swurl@swurl.xyz>
2025-04-23 18:36:39 -04:00
Zephyron
34693001aa Add Windows support to Hybrid Memory Manager
This commit adds Windows-specific implementation of the fault-managed memory
system, providing similar functionality to the existing Linux/Android implementation.

Key changes:
- Added Windows-specific memory management using VirtualAlloc/VirtualFree
- Implemented Windows vectored exception handler for page fault handling
- Added proper memory protection and page fault handling on Windows
- Updated memory snapshot functionality to work on Windows
- Added proper cleanup of Windows-specific resources
- Fixed type conversion issues in memory management code
- Added proper error handling for Windows memory operations
- Fixed VRAM Memory Layout Mode to allow up to 12Gb

The implementation uses Windows-specific APIs:
- VirtualAlloc/VirtualFree for memory management
- AddVectoredExceptionHandler for page fault handling
- VirtualProtect for memory protection management

This change maintains feature parity with the Linux/Android implementation
while using Windows-native APIs for better performance and reliability.

Signed-off-by: Zephyron <zephyron@citron-emu.org>
2025-04-12 23:42:24 -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
c57a5fef92 WIP: Enhance shader compilation performance and control
This commit adds new settings and optimizations for shader compilation:

- Add new settings:
  - use_enhanced_shader_building: Enable enhanced shader compilation
  - shader_compilation_priority: Control shader compilation priority

- Improve shader compilation performance:
  - Optimize worker thread allocation based on CPU cores
  - Add smarter async shader compilation heuristics
  - Prioritize vertex and fragment shader compilation
  - Add performance tracking and logging

- Add performance monitoring:
  - Track shader compilation times
  - Log slow shader compilations
  - Monitor async shader compilation statistics

This is a work in progress commit. Further optimizations and refinements
will be needed based on testing and feedback.

Signed-off-by: Zephyron <zephyron@citron-emu.org>
2025-04-12 23:37:11 -03:00
Pavel Barabanov
38737f26e5 Optimize SpiriV output 2025-04-12 22:54:32 -03:00
Pavel Barabanov
bd2f935c4d delete "enable" in setting.h 2025-04-12 22:54:32 -03:00
Pavel Barabanov
be2e838f0d FRAME_SKIPPING and FRAME_INTERPOLATION only android and delete "enable" 2025-04-12 22:54:32 -03:00
Pavel Barabanov
70c2439d8c Add sync core speed 2025-04-12 22:54:32 -03:00
Pavel Barabanov
d25bea5762 Android: add FRAME_SKIPPING and FRAME_INTERPOLATION 2025-04-12 22:54:32 -03:00
darktux
2032d035a3 Removed telemetry and anonymized SCM (git) strings 2025-04-04 03:40:47 +02:00
Briar
8364ab1b00 android: Rename default device name to eden 2025-04-04 03:23:31 +02:00
liamwhite
67120d9623 Merge pull request #13159 from liamwhite/web-error
core: enable error applet, add stubs for web applet
2024-02-26 12:44:55 -05:00
Liam
9db29b4e20 settings: remove global override for smash on amdvlk 2024-02-26 11:16:18 -05:00
Liam
e850ec7aa9 settings: enable error applet 2024-02-24 22:56:08 -05:00
Liam
a956f0f4f8 vulkan_device: don't use fixed cap for memory limits 2024-02-18 18:59:13 -05:00
Liam
b4b3ddf4b4 general: add default configurations for applet mode 2024-02-09 09:20:53 -05:00
t895
6c6d6ece77 settings: Allow audio sink, input, and output to be set per game 2024-01-31 09:31:19 -05:00
Kelebek1
52c35521bd Rework time service to fix time passing offline. 2024-01-24 04:26:55 +00:00
t895
8323adf027 settings: Allow vsync to be changed per-game 2023-12-12 17:25:37 -05:00
t895
1fb59b06a6 settings: Allow CPU Debug and Fastmem to be changed per-game 2023-12-12 17:25:37 -05:00
t895
23d1e33daa settings: Enable NCE by default on capable systems 2023-12-08 20:25:07 -05:00
liamwhite
da8676dda1 Merge pull request #12074 from GPUCode/yuwu-on-the-metal
Implement Native Code Execution (NCE)
2023-11-30 09:20:55 -05:00
liamwhite
c90b7f3b93 Merge pull request #11946 from flodavid/gamemode
Enable (Feral Interactive) Gamemode on Linux
2023-11-29 12:33:09 -05:00
amazingfate
c95a560bc3 qt: add cpu_backend configuration 2023-11-26 20:44:07 -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
flodavid
6bd3056c52 yuzu: create linux group in general settings
- Create files dedicated to starting and stopping gamemode functions
  - Use them in yuzu and yuzu_cmd modules
2023-11-25 19:30:37 +01:00
xcfrg
e21bdc68db yuzu: integrate gamemode support on linux 2023-11-25 19:30:29 +01:00
GPUCode
3814ca9d84 Address some review comments 2023-11-25 00:47:35 -05:00
Liam
19619b1b14 arm: Implement native code execution backend 2023-11-25 00:46:47 -05:00
GPUCode
dee5002355 device_memory: Enable direct mapped addresses for nce 2023-11-25 00:46:47 -05:00
GPUCode
9e5f019dee settings: Add cpu backend setting 2023-11-25 00:46:15 -05:00
t895
95fa508a1c common: settings: Add ifdefs to define android's default settings 2023-11-21 01:58:13 -05:00
GPUCode
4b853ff5cf renderer_vulkan: Introduce separate cmd buffer for uploads 2023-11-12 20:27:39 +01:00
Narr the Reg
e19c9281db yuzu: Make mute audio persistent 2023-11-10 10:22:04 -06:00
liamwhite
4940a6b310 Merge pull request #11689 from liamwhite/breakpad
qt: implement automatic crash dump support
2023-10-29 23:41:13 -04:00
Florian
032d4938a9 yuzu: Use new setting method for stop emulation 2023-10-12 01:51:53 +02:00
Liam
5f51662bdb qt: implement automatic crash dump support 2023-10-08 11:35:53 -04:00
liamwhite
da04fbdc2e Merge pull request #11402 from FernandoS27/depth-bias-control
Vulkan: Implement Depth Bias Control
2023-09-28 09:35:37 -04:00
Fernando Sahmkow
5ea12207f3 Query Cachge: Fully rework Vulkan's query cache 2023-09-23 23:05:29 +02:00
Fernando Sahmkow
dcf5c4bec0 Vulkan: add temporary workaround for AMDVLK 2023-09-16 11:59:20 -04:00
GPUCode
cc2c6d8805 debug: Add renderdoc capture hotkey 2023-09-14 16:37:41 +03:00
lat9nq
8980108234 settings: Add docked mode helper function 2023-08-22 21:58:09 -04:00
lat9nq
447ec24378 general: Convert use_docked_mode to an enumeration
Allows some special interactions with it in the Qt frontend.
2023-08-22 16:07:52 -04:00
lat9nq
276bc80544 settings: Add AspectRatio enum, split res scale function 2023-08-15 22:41:50 -04:00