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
lat9nq
4246d7d97d
(ui)settings: Add more runtime_modifiable settings
2023-07-25 23:14:13 -04:00
lat9nq
9fbed50208
settings: Set GPU as default ASTC decoder
2023-07-24 16:28:13 -04:00
lat9nq
5c0cf58f73
common: Move global configuration state modifiers back to settings
2023-07-21 10:56:55 -04:00
lat9nq
e952af53be
core,common: Give memory layout setting an enum
...
Allows for 6GB and 8GB layouts to be selected.
2023-07-21 10:56:55 -04:00
lat9nq
5011827255
settings: Require time zone setting value for stirng
2023-07-21 10:56:55 -04:00
lat9nq
245c490e02
settings,configuration: Add a default suffix
2023-07-21 10:56:55 -04:00
lat9nq
4ffbd95fa5
settings: Define paired settings
...
settings_common: Remove unused optional
2023-07-21 10:56:55 -04:00
lat9nq
eb6fe05451
settings: Define specializations for settings
...
Suggests to a frontend how to represent each setting.
2023-07-21 10:56:55 -04:00
lat9nq
c0e9075d6b
settings,uisettings: Remove leading underscore
2023-07-21 10:56:55 -04:00
lat9nq
e09f6ee530
settings: Move speed_limit to core
2023-07-21 10:56:55 -04:00
lat9nq
a7a32ab8a0
common,yuzu-qt: Avoid explicit instantiation on old clang
...
Clang versions < 15 have compile issues with explicit instantiation.
Disable it for these versions.
2023-07-21 10:56:55 -04:00
lat9nq
98eb39ee74
settings: Delete cpu_accuracy_first_time
...
Almost a 2 year old migration setting now
2023-07-21 10:56:54 -04:00
lat9nq
8d4c466cde
settings: Move IsConfiguringGlobal to settings_common
2023-07-21 10:56:54 -04:00
lat9nq
5a2b7f951d
(ui,)settings: Use explicit instantiation
...
Reduces compile times a tad on clang.
2023-07-21 10:56:54 -04:00
lat9nq
5574e68b57
settings: Remove redundant false literals
2023-07-21 10:56:54 -04:00
lat9nq
9d6de208a1
general: Add typeinfo where needed
...
Using typeid without including typeinfo first produces an ill-formed program.
2023-07-21 10:56:54 -04:00
lat9nq
9ba1120d59
settings: yuzu is not capitalized why is it capitalized stop no bad
2023-07-21 10:56:54 -04:00
lat9nq
c97378bbf1
settings: Reorder
...
Groups graphics audio and system settings together in a way that
reflects the frontend. This also just conceptually groups them more
nicely than they were.
2023-07-21 10:56:54 -04:00
lat9nq
78f92086ca
settings,general: Rename non-confirming enums
2023-07-21 10:56:54 -04:00
lat9nq
1eb6680ca3
settings: Make volume runtime-configurable
2023-07-21 10:56:07 -04:00
lat9nq
d39bfc646f
configure_audio: Implement ui generation
...
Needs a considerable amount of management specific to some of
the comoboboxes due to the audio engine configuration.
general: Partial audio config implmentation
configure_audio: Implement ui generation
Needs a considerable amount of management specific to some of
the comoboboxes due to the audio engine configuration.
general: Partial audio config implmentation
settings: Make audio settings as enums
2023-07-21 10:56:07 -04:00
lat9nq
a61beb7123
settings: Split enums to new file
2023-07-21 10:56:07 -04:00
lat9nq
e24838dabc
settings, uisettings: Initialize linkage counter
2023-07-21 10:56:07 -04:00
lat9nq
689efc9175
configure_system: Implement with for loop
2023-07-21 10:56:07 -04:00
lat9nq
0dcb7fe1ce
settings: Move runtime and save to parameters
...
These don't need to be whole new types.
2023-07-21 10:56:07 -04:00
lat9nq
793d6c2a85
settings: Add UiGeneral class
2023-07-21 10:56:07 -04:00
lat9nq
f9310ec1e8
configuration: Implement slider
2023-07-21 10:56:07 -04:00
lat9nq
cc4dbb8c8c
settings: Define base renderer runtime modifiable settings
2023-07-21 10:56:07 -04:00
lat9nq
11c4168adb
settings: Add anisotropy mode enum
2023-07-21 10:56:07 -04:00
lat9nq
eae5e1f6f3
shared_translation: Finish using int ids
2023-07-21 10:56:07 -04:00
lat9nq
825e8f0611
settings,uisettings: Add IDs to settings
2023-07-21 10:56:07 -04:00
lat9nq
d7ffd33ca0
configure_graphics: Partial runtime implementation
2023-07-21 10:56:07 -04:00
lat9nq
c7e5ead869
settings: Recategorize a bit
...
Will help with generating config UI later.
2023-07-21 10:56:07 -04:00
lat9nq
4a5f3e4733
configure_graphics_advance: Generate UI at runtime
...
We can iterate through the AdvancedGraphics settings and generate the UI
during runtime. This doesn't help runtime efficiency, but it helps a ton
in reducing the amount of work a developer needs in order to add a new
setting.
2023-07-21 10:56:07 -04:00
lat9nq
253d2180c5
settings: Add a registry of settings
...
LoadString: Sanitize input
settings: Handle empty string, remove redundant category
settings: Rename Input to Controls, FS to DataStorage
settings: Fix Controls groups information
settings: Move use_docked_mode to System (again)
settings: Document
settings: Add type identification function
settings: Move registry into values
settings: Move global_reset_registry into values
settings: Separate AdvGraphics from Renderer
settings: More document
squash
settings: Use linkage object
uisettings: Move registry into settings
Probably wont build without
uisettings: Use settings linkage object
config: Load settings with a map
Uses the new all_settings vector to load settings.
qt-config: Rename settings category
qt config: Rename to read category
config: Read/write contols category with for_each
This is extremely limited due to the complexity of the Controls group,
but this handles the the settings that use the interface.
qt-config: Use new settings registry
qt-config: Read/write advgrphics
qt-config: Use settings linkage object
yuzu_cmd: Load setting off of vector
cmd-config: Finish settings rename
config: Read controls settings group with for_each
cmd/config: Move registry into values
cmd: Read adv graphics
cmd-config: Use settings linkage object
2023-07-21 10:56:07 -04:00
lat9nq
bd8630531e
settings,core,config_sys: Remove optional type from custom_rtc, rng_seed
...
core: Fix MSVC errors
2023-07-21 10:56:07 -04:00
lat9nq
02a4c18835
settings: Pool SetGlobal functions
2023-07-21 10:56:07 -04:00
lat9nq
fc30b04714
settings,video_core: Consolidate ASTC decoding options
...
Just puts them all neatly into one place.
2023-07-21 10:56:07 -04:00
Narr the Reg
3241ff028c
input_common: Tune mouse controls
2023-06-28 21:04:33 -06:00
liamwhite
4696a032a8
Merge pull request #10495 from bm01/master
...
input_common: Redesign mouse panning
2023-06-27 11:21:28 -04:00
Liam
d0837e10ae
video_core: optionally skip barriers on feedback loops
2023-06-14 14:11:46 -04:00
Baptiste Marie
83f4158d6c
input_common: Redesign mouse panning
2023-06-12 00:47:52 +02:00
Liam
1b33ebdde2
nvnflinger: allow locking framerate during video playback
2023-06-08 01:15:51 -04:00
Liam
011dfe1db7
textures: add BC1 and BC3 compressors and recompression setting
2023-05-23 12:54:40 -04:00
liamwhite
c8356ee137
Merge pull request #10181 from lat9nq/intel-compute-toggle
...
configure_graphics: Add option to enable compute pipelines for Intel proprietary
2023-05-15 12:05:24 -04:00
german77
e43d1c20d5
service: nfp: Allow to load with a different amiibo id
2023-05-09 17:51:59 -06:00
Fernando Sahmkow
62295b5069
Settings: add option to enable / disable reactive flushing
2023-05-07 23:46:12 +02:00
lat9nq
90f4126609
settings: Add enable compute pipelines
...
For the Intel proprietary driver's deficiencies.
settings: Restore compute option global state
2023-05-07 01:06:20 -04:00
bunnei
12c4c09b3f
Merge pull request #10125 from lat9nq/vsync-select
...
configuration: Expose separate swap present modes
2023-05-06 21:55:39 -07:00
Liam
f50b8635b3
settings: remove pessimistic flushing
2023-05-03 18:52:42 -04:00
Morph
069637f4ff
Merge pull request #10124 from liamwhite/pebkac
...
settings: rename extended memory layout to unsafe, move from general to system
2023-05-03 10:52:45 -04:00
lat9nq
2cca81495e
settings: Enable FIFO relaxed
...
Not entirely sure if we need this, but there's also no reason not to
support it.
settings: Give VSyncMode values
2023-05-02 21:51:30 -04:00
lat9nq
581d8f34ee
configuration: Expose separate swap present modes
...
Previously, yuzu would try and guess which vsync mode to use given
different scenarios, but apparently we didn't always get it right. This
exposes the separate modes in a drop-down the user can select.
If a mode isn't available in Vulkan, it defaults to FIFO.
2023-05-02 21:51:29 -04:00
GPUCode
d56a40606c
vk_present_manager: Add toggle for async presentation
2023-05-01 23:13:24 +03:00
Liam
bdaf10ec9e
settings: rename extended memory layout to unsafe, move from general to system
2023-04-30 14:24:22 -04:00
bunnei
4f1ca556e9
Merge pull request #9906 from german77/metroid2
...
input_common: Increase mouse sensitivity range
2023-03-08 10:43:38 -08:00
german77
db3f4f7515
input_common: Increase mouse sensitivity range
2023-03-07 19:31:52 -06:00
Ikko Eltociear Ashimine
538c3df844
fix typo in settings.h
...
Intial -> Initial
2023-03-06 20:28:47 +09:00
Narr the Reg
2e388209d7
Revert "yuzu: config: Remove player 8 and 9 from config file"
2023-02-26 14:39:13 -06:00
liamwhite
b385fc2cd1
Merge pull request #9849 from ameerj/async-astc
...
texture_cache: Add asynchronous ASTC texture decoding
2023-02-26 09:20:12 -05:00
Narr the Reg
f6531fb17c
yuzu: config: Remove player 8 and 9 from config file
2023-02-25 22:20:32 -06:00
ameerj
c5386e2179
configuration: Add async ASTC decode setting
2023-02-22 18:21:09 -05:00
Narr the Reg
75039440f3
input_common: Reintroduce custom pro controller support
2023-02-09 20:08:54 -06:00
Levi Behunin
2ff6c44168
Move to Clang Format 15
...
Depends on https://github.com/yuzu-emu/build-environments/pull/69
clang-15 primary run
2023-01-29 17:49:42 -07:00
Narr the Reg
216bdb7884
input_common: Disable SDL driver with switch controllers
2023-01-19 18:05:20 -06:00
Matías Locatti
7297ab36c1
Update settings.h
2023-01-13 04:56:25 -03:00
Matías Locatti
cf9e60d883
1.5X resolution scaler option
2023-01-13 02:34:24 -03:00
Liam
a9d96415c4
renderer_vulkan: disable turbo by default
2023-01-08 11:38:30 -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
Wollnashorn
0b17b4edd2
config: Better wording for VK pipeline cache option and enable by default
2023-01-05 21:03:01 +01:00
Wollnashorn
ef0b585b0b
video_core/vulkan: Added `VkPipelineCache` to store Vulkan pipelines
...
As an optional feature which can be enabled in the advanced graphics configuration, all pipelines that get built at the initial shader loading are stored in a VkPipelineCache object and are dumped to the disk.
These vendor specific pipeline cache files are located at `/shader/GAME_ID/vulkan_pipelines.bin`. This feature was mainly added because of an issue with the AMD driver (see yuzu-emu#8507) causing invalidation of the cache files the driver builds automatically.
2023-01-05 21:02:44 +01:00
Liam
d9b2bc7f04
common: add setting for renderer clock workaround
2023-01-04 22:22:01 -05:00
Fernando Sahmkow
e5d02ff039
yuzu-ui: Add setting for disabling macro HLE
2023-01-04 14:56:52 -05:00
Chloe Marcec
27a7d5a11a
Set: Allow setting device nickname
2022-12-13 19:54:17 -05:00
Liam
292cc68b75
video_core: Integrate SMAA
...
Co-authored-by: goldenx86 <goldenx86@users.noreply.github.com>
Co-authored-by: BreadFish64 <breadfish64@users.noreply.github.com>
2022-12-08 17:17:45 -05:00
merry
32b13dbca1
Merge pull request #9370 from liamwhite/break-unmapped
...
core: add option to break on unmapped access
2022-12-06 20:20:20 +00:00
Liam
dfc09df118
core: add option to break on unmapped access
2022-12-02 08:25:45 -05:00
Liam
acc4a150ef
video_core: add null backend
2022-11-28 19:49:09 -05:00
bunnei
0e8043fc24
Merge pull request #9276 from goldenx86/fsrSlider
...
FSR Sharpening Slider
2022-11-27 00:13:15 -08:00
Matías Locatti
71055c8e90
Oops
2022-11-26 17:39:43 -03:00
Matías Locatti
492fabc9b2
Replace GLSL as the default OpenGL shader backend
...
GLASM is not very compatible with the latest games, and too many people have the special superpower to break their Vulkan support.
2022-11-26 17:27:04 -03:00
Matías Locatti
8e19421f84
FSR Sharpening Slider part 1 - only a global slider
2022-11-24 04:22:13 -05:00
Morph
98c792dbf4
settings: Update aspect_ratio range
...
Since 16:10 was added, the maximum value is now 4.
2022-10-13 12:24:04 -04:00
lat9nq
e5392df1a5
yuzu qt: Add option to disable startup Vulkan check
...
The startup check apparently confuses other programs when yuzu launches
2 processes and then quickly closes one of them. Though this isn't
really our issues it's also not a big deal for me to add an option to
work around that issue.
2022-09-19 14:46:12 -04:00
Morph
8c3b3247ea
Merge pull request #8682 from lat9nq/dumpy
...
yuzu qt: Add option to create Windows crash dumps
2022-09-16 12:47:51 -04:00
lat9nq
554b7e220b
yuzu: Use a debugger to generate minidumps
...
yuzu: Move mini_dump out of core
startup_checks: Better exception handling
2022-09-04 21:36:04 -04:00
Liam
39c3184237
video_core: add option for pessimistic flushing
2022-08-25 12:32:14 -04:00
Kelebek1
c92bcde27e
Allow audio volume up to 200%
2022-08-12 16:57:29 +01:00
Narr the Reg
a08b8f224b
yuzu: Add webcam support and rebase to latest master
2022-07-23 19:40:25 -05:00
german77
76b18ad549
input_common: Add camera driver
2022-07-23 19:38:42 -05:00
Kelebek1
be1f5f1d9f
Project Andio
2022-07-22 01:11:32 +01:00
bunnei
e42a6ad7d9
yuzu: settings: Remove framerate cap and merge unlocked framerate setting.
...
- These were all somewhat redundant.
2022-07-16 23:11:39 -07:00
merry
4091cca405
common/setting: Make ranged a property of the type
...
- Avoids new GCC 12 warnings when Type is of form std::optional<T>
- Makes more sense this way, because ranged is not a property which would change over time
2022-07-15 18:45:55 +01:00
lat9nq
6e65bb6f83
settings: Consolidate RangedSetting's with regular ones
...
The latest git version of GCC has issues with my diamond inheritance
shenanigans. Since that's now two compilers that don't like it I thought
it'd be best to just axe all of it and just have the two templates like
before.
This rolls the features of BasicRangedSetting into BasicSetting, and
likewise RangedSetting into Setting. It also renames them from
BasicSetting and Setting to Setting and SwitchableSetting respectively.
Now longer name corresponds to more complex thing.
2022-06-30 12:39:48 -04:00
bunnei
d52485dd46
Merge pull request #8393 from lat9nq/default-vulkan
...
general: Set renderer_backend's default to Vulkan
2022-06-11 00:06:59 -07:00
Liam
2ee161a0bf
core/debugger: Implement new GDB stub debugger
2022-06-01 00:01:25 -04:00
lat9nq
9e96b749ca
settings: Set Vulkan to the default renderer backend
2022-05-29 21:38:36 -04:00
Fernando Sahmkow
df5dd2fd82
VideoCore: Add option to dump the macros.
...
Co-Authored-By: liamwhite <liamwhite@users.noreply.github.com>
2022-05-08 21:37:34 -04:00
Morph
2b87305d31
general: Convert source file copyright comments over to SPDX
...
This formats all copyright comments according to SPDX formatting guidelines.
Additionally, this resolves the remaining GPLv2 only licensed files by relicensing them to GPLv2.0-or-later.
2022-04-23 05:55:32 -04:00
german77
25c46f82c5
yuzu: Add custom ringcon configuration
2022-04-16 00:49:26 -05:00
merry
e752529c4c
configuration: Add Paranoid CPU accuracy level
...
Disables most optimizations for the paranoid.
2022-03-26 08:46:25 +00:00
merry
3fe2c2d40d
dynarmic: Inline exclusive memory accesses
...
Inlines implementation of exclusive instructions into JITted code,
improving performance of applications relying heavily on these
instructions.
We also fastmem these instructions for additional speed, with
support for appropriate recompilation on fastmem failure.
An unsafe optimization to disable the intercore global_monitor is also
provided, should one wish to rely solely on cmpxchg semantics for
safety.
See also: merryhime/dynarmic#664
2022-02-27 19:40:05 +00:00
bunnei
5dc4c92dc2
settings: Add a new "use_extended_memory_layout" setting.
...
- This will be used to enable emulation of a larger memory arrangement.
2022-02-21 13:07:19 -08:00
german77
47ca44ad1d
yuzu: Add setting to disable controller navigation
2022-01-23 21:08:49 -06:00
Fernando Sahmkow
65387dd0a0
ShaderDecompiler: Add a debug option to dump the game's shaders.
2022-01-04 02:39:00 +01:00
german77
b7357d95a7
settings: Add debug setting to enable all controllers
2021-11-27 20:24:37 -06:00
Narr the Reg
7b56b2cab6
input_common: Fully implement UDP controllers
2021-11-26 15:46:36 -06:00
german77
dfb63175d1
core/hid: Fully implement native mouse
2021-11-24 20:30:28 -06:00
german77
6032358402
input_common: Allow keyboard to be backwards compatible
2021-11-24 20:30:28 -06:00