Commit graph

2335 commits

Author SHA1 Message Date
swurl d659d6f5b4 Runtime option for flushing logs by line (#90)
Signed-off-by: swurl <swurl@swurl.xyz>
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/90
Co-authored-by: swurl <swurl@swurl.xyz>
Co-committed-by: swurl <swurl@swurl.xyz>
2025-05-08 06:20:20 +00: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
Briar 54c3c4503a android: Add initial frontend for LAN network rooms (#76)
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/76
Co-authored-by: Briar <205427297+icy-briar@users.noreply.github.com>
Co-committed-by: Briar <205427297+icy-briar@users.noreply.github.com>
2025-05-03 17:53:09 +00:00
MrPurple666 7bd606bece Merge https://git.eden-emu.dev/eden-emu/eden 2025-04-30 16:19:06 -03:00
MrPurple666 b5bec371ae Add toggle for LRU 2025-04-30 04:05:45 -03:00
JPikachu e4e27ef86b implement: New API for Multiplayer Support 2025-04-30 06:34:25 +00:00
Pavel Barabanov 37a508c3ba Add USE AUTO STUB to Android 2025-04-30 03:00:46 +03:00
MrPurple666 b695ca5a2a Revert some wip changes 2025-04-28 16:14:42 -03:00
swurl 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: https://git.eden-emu.dev/eden-emu/eden/pulls/57
Co-authored-by: swurl <swurl@swurl.xyz>
Co-committed-by: swurl <swurl@swurl.xyz>
2025-04-27 17:07:49 -04:00
swurl 9f806138ab Merge branch 'log-by-line'
Signed-off-by: swurl <swurl@swurl.xyz>
2025-04-24 15:58:49 -04:00
CamilleLaVey 30670bd92a Merge pull request 'Add configurations for VkExtendedDynamicState extensions' (#53) from crueter/eden:dynamic-state-config into master
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/53
2025-04-24 19:55:58 +00:00
swurl 83cf9774e1 switch dynamic state to a slider
Signed-off-by: swurl <swurl@swurl.xyz>
2025-04-24 12:08:01 -04:00
swurl 9cb03cd007 Log by line compilation option
Signed-off-by: swurl <swurl@swurl.xyz>
2025-04-24 10:58:22 -04:00
swurl 1949e7c438 Add dynamic state extension configs
Signed-off-by: swurl <swurl@swurl.xyz>
2025-04-23 20:57:53 -04:00
swurl 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
FireBurn b03d51f06f Include memory header
This stops build failures for missing std::shared_ptr which is in multiple files

Signed-off-by: FireBurn <mike@fireburn.co.uk>
2025-04-19 17:56:48 -03: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
crueter 9cef9f5dce Update fmt to allow for v11
Signed-off-by: swurl <swurl@swurl.xyz>
2025-04-10 01:11:22 +02:00
Briar 6f45ab5344 Revert "Disabled MCO_USE_VMEM_ALLOCATOR because standard stack size seems to suffice"
This reverts commit ada5dcf01a.
2025-04-06 22:52:55 -03:00
darktux ada5dcf01a Disabled MCO_USE_VMEM_ALLOCATOR because standard stack size seems to suffice 2025-04-04 03:40:48 +02:00
darktux a1d4963fb8 Remove accidental use of standard format instead of libfmt format 2025-04-04 03:40:48 +02:00
darktux 5af02a5cea Save memory by using dyamic stack size in Fiber 2025-04-04 03:40:48 +02:00
darktux bc2fdfee13 Fixed minicoro.h formatting 2025-04-04 03:40:47 +02:00
darktux 4a71984803 clang-formated new fiber.cpp and minicoro.h 2025-04-04 03:40:47 +02:00
darktux 16f92e5b32 Implemented rewindless Fiber without Boost (using minicoro) 2025-04-04 03:40:47 +02:00
darktux 2032d035a3 Removed telemetry and anonymized SCM (git) strings 2025-04-04 03:40:47 +02:00
darktux 616619c8f7 Port changes from Early Access 2025-04-04 03:40:46 +02:00
Briar 8364ab1b00 android: Rename default device name to eden 2025-04-04 03:23:31 +02:00
Briar 0c4d8a8b08 Rename log file to eden_log 2025-04-01 18:36:48 +02:00
voidanix d60cf76e2d Fix GCC builds with Debug build type 2025-04-01 18:31:44 +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
wheremyfoodat 8a5329b19a common/ring_buffer: Include <limits> header 2024-02-24 02:34:09 +02:00
liamwhite 56834236dc Merge pull request #13100 from liamwhite/audio-ipc
audio: move to new ipc
2024-02-23 11:34:21 -05:00
Narr the Reg 615cc06ca4 Merge pull request #13001 from liamwhite/scaled-availability
vulkan_device: don't use fixed cap for memory limits
2024-02-22 11:31:17 -06:00
Liam a898ae4f7d audio: rewrite IAudioDevice 2024-02-20 22:15:38 -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 a956f0f4f8 vulkan_device: don't use fixed cap for memory limits 2024-02-18 18:59:13 -05:00
t895 a29782ce6a android: Input mapping 2024-02-17 12:32:33 -05:00
Narr the Reg e29b241a5a Merge pull request #12756 from liamwhite/applet-multiprocess-hwc
general: applet multiprocess
2024-02-11 20:58:28 -06:00
liamwhite 354e0a2791 Merge pull request #12920 from t895/jni-common
android: Move JNI setup and helpers to common
2024-02-09 11:49:25 -05:00
Liam b4b3ddf4b4 general: add default configurations for applet mode 2024-02-09 09:20:53 -05:00
t895 5200236f89 common: fs: Expand android macros 2024-02-08 14:13:46 -05:00
t895 28fcbacc78 android: Move JNI setup and helpers to common 2024-02-08 13:45:26 -05:00
liamwhite d26c4a5090 Merge pull request #12914 from FernandoS27/vc-refactor
VideoCore Refactor Part 1.
2024-02-08 10:59:59 -05:00
Fernando Sahmkow 758d895408 Common: Rename SplitRangeSet to OverlapRangeSet 2024-02-05 23:01:17 +01:00
Liam b4c3007b7c typed_address: test values are unsigned 2024-02-05 12:47:10 -05:00
Fernando Sahmkow 80d505b5cf Buffer Cache: Refactor to use Range sets instead 2024-02-05 11:06:52 +01:00
Fernando Sahmkow 75f5d982a0 Common: Introduce Range Sets 2024-02-04 20:01:50 +01:00
Fernando Sahmkow 4d97c54676 VideoCore: Move Slot Vector to Common 2024-02-04 20:01:47 +01:00
Narr the Reg 1f0a9436c7 service: fs: Skip non user id folders 2024-02-02 13:25:38 -06:00
liamwhite df38bba6a8 Merge pull request #12869 from FernandoS27/smmu-fixes
SMMU: A set of different fixes.
2024-01-31 11:22:29 -05:00
Liam 27989bd49c smmu: use new range mutex construction for protecting counters 2024-01-31 16:38:51 +01:00
t895 6c6d6ece77 settings: Allow audio sink, input, and output to be set per game 2024-01-31 09:31:19 -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
Merry a3871f6172 atomic_ops: Fix MSVC 2024-01-27 21:42:16 +00:00
Merry bd45dad4f2 atomic_ops: Remove volatile qualifier 2024-01-27 21:36:39 +00:00
Merry 93e483d9e4 atomic_ops: Reduce code duplication with templates
Also fixes builds on unusual toolchains where:
- u32 is unsigned int
- u64 is unsigned long long
- uintptr_t is unsigned long
2024-01-27 21:12:12 +00: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
FearlessTobi 2b4d7506a8 Address review comments and fix compilation problems 2024-01-25 16:43:53 -05:00
FearlessTobi 99d76bf25a fs: Add path class 2024-01-25 16:42:06 -05:00
liamwhite 0ab550c726 Merge pull request #12499 from Kelebek1/time
Rework time services
2024-01-25 14:19:01 -05:00
Kelebek1 52c35521bd Rework time service to fix time passing offline. 2024-01-24 04:26:55 +00:00
liamwhite 5a6b3a0125 Merge pull request #12579 from FernandoS27/smmu
Core: Implement Device Mapping & GPU SMMU
2024-01-22 10:55:39 -05:00
Merry 66e66eef90 fs/file: Explicitly convert std::u8string to std::filesystem::path 2024-01-20 17:46:30 +00:00
Fernando Sahmkow 04b4af6044 Core: Initial implementation of device memory mapping 2024-01-18 21:12:30 -05:00
Viktor Szépe 168f763ee6 Merge remote-tracking branch 'origin/master' into typos3 2024-01-16 00:09:00 +00:00
Viktor Szépe 8f8a15827f Fix more typos 2024-01-15 23:26:53 +00:00
Liam 12fe8c5b76 kernel: fix page leak on process termination 2024-01-12 18:31:33 -05:00
liamwhite 15ed65780e Merge pull request #12518 from t895/theme-settings
android: Migrate remaining settings to ini
2024-01-01 15:02:06 -05:00
Narr the Reg 5dbd02ebb1 Merge pull request #12466 from liamwhite/sh2
core: track separate heap allocation for linux
2024-01-01 13:56:16 -06:00
t895 c206e92b35 android: Migrate in-game overlay settings to ini 2023-12-30 15:11:36 -05:00
Liam 421c59da99 heap_tracker: use linear-time mapping eviction 2023-12-27 10:42:27 -05:00
liamwhite f7725444ac Merge pull request #12471 from FearlessTobi/port-7146
Port citra-emu/citra#7146: "assert/logging: Stop the logging thread and flush the backends before crashing"
2023-12-26 11:46:04 -05:00
FearlessTobi 85ec46c7d1 assert/logging: Stop the logging thread and flush the backends before crashing
Co-Authored-By: SachinVin <26602104+SachinVin@users.noreply.github.com>
2023-12-26 10:35:14 +01:00
Liam c366d8e8d9 core: track separate heap allocation for linux 2023-12-25 23:30:56 -05:00
FearlessTobi f14b3364ad ring_buffer: Use feature macro
Co-Authored-By: GPUCode <47210458+GPUCode@users.noreply.github.com>
2023-12-25 14:10:40 +01:00
Fernando S 7c8e3b1891 Merge pull request #12387 from liamwhite/oboe
android: add oboe audio sink
2023-12-19 16:15:07 +01:00
Liam 9254cbb1b0 path_util: copy output for GetParentPath 2023-12-17 14:25:42 -05:00
Liam b787b5db2e android: add oboe audio sink 2023-12-17 01:42:59 -05:00
liamwhite b5f4a18f2f Merge pull request #12335 from t895/per-game-settings
android: Game Properties
2023-12-16 13:57:54 -05:00
liamwhite a871e2fd99 Merge pull request #12184 from Kelebek1/system_settings
Make system settings persistent across boots
2023-12-16 11:47:52 -05:00
liamwhite 1c033b5417 Merge pull request #12290 from liamwhite/deferred-path-split
Improve path splitting speed
2023-12-16 11:47:29 -05:00
Kelebek1 9dc9e91e2a Make system settings persistent across boots 2023-12-16 06:01:54 +00:00
Liam 1075c88dca common: use memory holepunching when clearing memory 2023-12-14 23:44:33 -05: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 6cf701ae25 android: Add per-game drivers 2023-12-12 17:25:37 -05:00
t895 10eee4c0c3 android: Refactor settings to expose more options
In AbstractSetting, this removes the category, androidDefault, and valueAsString properties as they are no longer needed and have replacements. isSwitchable, global, and getValueAsString are all exposed and give better options for working with global/per-game settings.
2023-12-12 17:25:36 -05:00
GPUCode 7ab4cb1910 settings: Clearer NCE error messages 2023-12-09 23:37:14 +02:00
t895 23d1e33daa settings: Enable NCE by default on capable systems 2023-12-08 20:25:07 -05:00
BreadFish64 d1ee9e48d9 Improve path splitting speed 2023-12-05 23:17:19 -05:00
Jan Beich d4e8540135 host_memory: move MAP_ALIGNED_SUPER attempt after de66cf5637
src/common/host_memory.cpp:410:14: error: unused function 'ChooseVirtualBase' [-Werror,-Wunused-function]
  410 | static void* ChooseVirtualBase(size_t virtual_size) {
      |              ^~~~~~~~~~~~~~~~~
2023-12-02 00:25:50 +01:00
Jan Beich 6ab3d70252 host_memory: allow missing MAP_NORESERVE on FreeBSD after de66cf5637
src/common/host_memory.cpp:408:47: error: use of undeclared identifier 'MAP_NORESERVE'
                MAP_PRIVATE | MAP_ANONYMOUS | MAP_NORESERVE, -1, 0);
                                              ^
2023-12-02 00:25:50 +01:00
Alexandre Bouvier 6d1049366d cmake: prefer system gamemode library 2023-11-30 16:54:00 +01:00
liamwhite 360381aaaf Merge pull request #12227 from jbeich/gamemode
cmake: unbreak build on FreeBSD by re-enabling gamemode
2023-11-30 09:21:19 -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
Jan Beich 93abc60cf7 cmake: sync gamemode conditionals with code after 0fff56e1ef
FAILED: bin/yuzu
ld: error: unable to find library -lgamemode

FAILED: bin/yuzu-cmd
ld: error: undefined symbol: Common::Linux::StartGamemode()
>>> referenced by yuzu.cpp
>>>               src/yuzu_cmd/CMakeFiles/yuzu-cmd.dir/yuzu.cpp.o:(main)

ld: error: undefined symbol: Common::Linux::StopGamemode()
>>> referenced by yuzu.cpp
>>>               src/yuzu_cmd/CMakeFiles/yuzu-cmd.dir/yuzu.cpp.o:(main)
2023-11-30 00:05:11 +01:00
Liam 0fff56e1ef general: conditionally compile gamemode on linux only 2023-11-29 14:26:11 -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
GPUCode fab81ee39d cmake: Move HAS_NCE to root cmake
* So we can use it in common
2023-11-29 01:35:06 +02:00
amazingfate c95a560bc3 qt: add cpu_backend configuration 2023-11-26 20:44:07 -05:00
Liam 82c5e2472e general: fix mac compile 2023-11-26 19:50:10 -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 064d5bf4aa host_memory: Simplify randomness generation 2023-11-25 00:47:43 -05:00
GPUCode 38091d3a1d common: Enforce fastmem for nce usage 2023-11-25 00:47:36 -05:00
GPUCode 3814ca9d84 Address some review comments 2023-11-25 00:47:35 -05:00
GPUCode 3764cc4be2 android: Add cpu bakend gui toggle 2023-11-25 00:47:28 -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
GPUCode 2590906d14 core: Respect memory permissions in Map 2023-11-25 00:46:15 -05:00
Liam 0dc5c75243 host_memory: Switch to FreeRegionManager 2023-11-25 00:46:15 -05:00
Liam de66cf5637 host_memory: ensure map base is between 36 and 39 bits 2023-11-25 00:46:15 -05:00
--author=Liam 5e96634f40 common: Add free region manager
* Abstraction for placeholder region tracking in host_memory
2023-11-25 00:46:15 -05:00
GPUCode d4ff9e191b common: Add libc sigaction hook 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
t895 230bd06245 config: Unify config handling under frontend_common
Replaces every way of handling config for each frontend with SimpleIni. frontend_common's Config class is at the center where it saves and loads all of the cross-platform settings and provides a set of pure virtual functions for platform specific settings.

As a result of making config handling platform specific, several parts had to be moved to each platform's own config class or to other parts. Default keys were put in platform specific config classes and translatable strings for Qt were moved to shared_translation. Default hotkeys, default_theme, window geometry, and qt metatypes were moved to uisettings. Additionally, to reduce dependence on Qt, QStrings were converted to std::strings where applicable.
2023-11-21 01:58:13 -05:00
liamwhite 3254ed9634 Merge pull request #12007 from german77/moar_buttons
core: hid: Split SL and SR buttons
2023-11-16 09:13:39 -05:00
liamwhite e3a8c777be Merge pull request #11990 from german77/audio
yuzu: Save mute when in background setting
2023-11-13 09:13:12 -05:00
GPUCode 4b853ff5cf renderer_vulkan: Introduce separate cmd buffer for uploads 2023-11-12 20:27:39 +01:00
german77 6788dffa53 core: hid: Split SL and SR buttons 2023-11-11 21:03:15 -06:00
Liam 713f292a25 kernel: add KPageTableBase
Co-authored-by: Kelebek1 <eeeedddccc@hotmail.co.uk>
2023-11-10 12:01:35 -05:00
Narr the Reg e19c9281db yuzu: Make mute audio persistent 2023-11-10 10:22:04 -06:00
Narr the Reg 50474720f2 yuzu: Save mute when in background setting 2023-11-10 10:22:02 -06:00
Charles Lombardo 6fa1b029a7 arm: NativeClock: Special handling for bad system counter clock frequency reporting
On some devices, checking the system counter clock frequency will return 0. Substitute in the correct values to prevent issues.
2023-11-03 16:21:54 -04:00
Charles Lombardo df17162f9c android: Fix resolving android URIs in native code 2023-10-30 11:38:10 -04:00
liamwhite 4940a6b310 Merge pull request #11689 from liamwhite/breakpad
qt: implement automatic crash dump support
2023-10-29 23:41:13 -04:00
Ameer J 5f3f83d1f5 nvidia_flags: Enable GL Threaded optimizations 2023-10-28 21:26:22 -04:00
Alexandre Bouvier fc27fd3f02 cmake: prefer system stb headers 2023-10-25 21:47:32 +02:00
Liam 17cd28ecb5 common: use SetThreadDescription API for thread names 2023-10-20 11:41:29 -04:00
liamwhite bd2d7c4d8b Merge pull request #11159 from flodavid/master_bis
Enable to use controller to close a game
2023-10-14 09:58:03 -04:00
Valeri Ochinski 4f85040c40 common/polyfill_thread: use std::forward where appropriate, qualify std::move calls 2023-10-13 18:51:11 +03:00
liamwhite 6486ef8c30 Merge pull request #11746 from liamwhite/relr
jit: add support for relr-type relocations
2023-10-12 18:23:31 -04:00
Liam 66472af2d0 kernel: mark TLS accessors as noinline for non-MSVC LTO 2023-10-12 09:16:22 -04:00
Florian 032d4938a9 yuzu: Use new setting method for stop emulation 2023-10-12 01:51:53 +02:00
Liam b1f2242a7a jit: add support for relr-type relocations 2023-10-11 11:13:19 -04:00
Fernando S 08876f51c0 Merge pull request #11718 from liamwhite/arm64-native-clock
common: add arm64 native clock
2023-10-10 11:48:06 +02:00
liamwhite 2c7e606aa4 Merge pull request #11705 from FearlessTobi/windows-sc
yuzu: Add desktop shortcut support for Windows (continuation of #11344)
2023-10-08 17:11:52 -04:00
liamwhite 90d65919b5 Merge pull request #10519 from mdmrk/master
yuzu-qt: Track play time
2023-10-08 17:11:34 -04:00
Liam 28e25c454f common: add arm64 native clock 2023-10-08 12:54:23 -04:00
Liam 5f51662bdb qt: implement automatic crash dump support 2023-10-08 11:35:53 -04:00
FearlessTobi bcc50c707c yuzu: Add desktop shortcut support for Windows
Allows creating desktop shortcuts with icons for yuzu games.

Co-Authored-By: Jeroen van Schijndel <13182141+roenyroeny@users.noreply.github.com>
2023-10-07 21:24:11 -04:00
Liam 890f5f8759 gdbserver: use numeric character references for unicode 2023-10-01 19:22:08 -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
lat9nq ab0c149771 settings_setting: Read audio engine
This was mysteriously missing, likely from when I ported Citra fixes
semi-recently.
2023-09-25 22:20:24 -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
Kelebek1 07b63b15ad Reimplement HardwareOpus 2023-09-16 11:56:25 -04:00
liamwhite 8e8e1d4910 Merge pull request #11499 from Squall-Leonhart/bitlockerfix
add std::error_code for std::filesystem exceptions
2023-09-16 11:40:10 -04:00
liamwhite f56103605e Merge pull request #11492 from lat9nq/c-numeric-conversions
general: Remove uncaught usages of C++ string number conversions
2023-09-16 11:40:03 -04:00
Squall-Leonhart e263eb1a98 add std::error_code for std::filesystem exceptions
Resolves a case on Windows where an unmounted bitlocker protected volume containing an assigned game directory would crash Yuzu at start.

May also resolve cases where a disconnected SMB volume causes similar crashes (needs testing)
2023-09-15 04:47:15 +10:00
lat9nq cd0fb12c62 settings_common: Fix typo 2023-09-14 11:30:14 -04:00
GPUCode cc2c6d8805 debug: Add renderdoc capture hotkey 2023-09-14 16:37:41 +03:00
liamwhite 4c4208c8e9 Merge pull request #11496 from liamwhite/ngc
ngc: implement service
2023-09-14 09:24:46 -04:00
liamwhite 8b2bb90e36 Merge pull request #11433 from liamwhite/shutdown-oopsie
polyfill_thread: ensure mutex was locked before signaling stop
2023-09-14 09:24:20 -04:00
Liam 08191b07e3 ngc: implement service 2023-09-14 09:14:08 -04:00
lat9nq 4fc1f4ec1a settings_setting: Don't remove the AudioEngine workaround 2023-09-13 15:59:44 -04:00
lat9nq 8d8e9552aa settings: Retro-port Citra Settings work
This has yet to be PR'd on Citra, but regressions on yuzu that have
been fixed in Citra needed to appear here.
2023-09-13 13:36:25 -04:00
liamwhite 4e96b630b4 Merge pull request #11447 from xcfrg/portable-compile-out
common: add a compile time option to allow disabling portable mode
2023-09-12 09:17:50 -04:00
xcfrg 6178343f3f add a compile time option to allow disabling portable mode 2023-09-06 18:53:39 -04:00
Danila Malyutin 7f0de0f204 msvc: set warning level to /W4 globally
And fix a bunch of warnings
2023-09-03 18:42:10 +04:00
Liam 1da6fd9d74 polyfill_thread: ensure mutex was locked before signaling stop 2023-09-02 11:51:40 -04:00
Charles Lombardo 26d3fa2d01 android: Expose interface for getting settings from native code
Completely removes code related to parsing the settings file on the java side. Now all settings are accessed via NativeConfig.kt and config.cpp has been modified to be closer to the core counterpart. Since the core currently uses QSettings, we can't remove reliance from Wini yet. This also includes simplifications to each settings interface to get closer to native code and prepare for per-game settings.
2023-08-29 19:40:17 -04:00
Mario 54a5b8062e yuzu-qt: Track play time 2023-08-26 22:20:19 -04:00
liamwhite e392005f94 Merge pull request #11356 from lat9nq/console-mode-pg
general,config-qt: Present Console Mode as an enum with separate options in game properties
2023-08-26 19:15:00 -04:00
comex 4285e35375 Warnings cleanup for GCC 13 and Clang 16
Note: For GCC there are still a huge number of `-Warray-bounds` warnings
coming from `externals/dynarmic`.  I could have added a workaround in
`externals/CMakeLists.txt` similar to what this PR does for other
externals, but given Dynarmic's close affiliation with Yuzu, it would be
better to fix it upstream.

Besides that, on my machine, this makes the build warning-free except
for some warnings from glslangValidator and AutoMoc.

Details:

- Disable some warnings in externals.

- Disable `-Wnullability-completeness`, which is a Clang warning triggered
  by the Vulkan SDK where if any pointers in the header are marked
  _Nullable, it wants all pointers to be marked _Nullable or _Nonnull.
  Most of them are, but some aren't.  Who knows why.

- `src/web_service/verify_user_jwt.cpp`: Disable another warning when
  including `jwt.hpp`.

- `src/input_common/input_poller.cpp`: Add missing `override` specifiers.

- src/common/swap.h: Remove redundant `operator&`.  In general, this
  file declares three overloads of each operator.  Using `+` as an
  example, the overloads are:

  - a member function for `swapped_t + integer`
  - a member function for `swapped_t + swapped_t`
  - a free function for `integer + swapped_t`

  But for `operator&`, there was an additional free function for
  `swapped_t + integer`, which was redundant with the member function.
  This caused a GCC warning saying "ISO C++ says that these are
  ambiguous".
2023-08-25 19:22:31 -04: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
liamwhite 4c4ee1b088 Merge pull request #11303 from lat9nq/screenshots-configurable
yuzu-qt: Add configuration for screenshot resolution
2023-08-22 11:30:25 -04:00
lat9nq e6fb92574b yuzu-qt: Screenshots depend more on the graphics settings 2023-08-16 16:12:42 -04:00
lat9nq 9433d04259 yuzu-qt: Implement unspecified screenshot ratio 2023-08-16 00:18:47 -04:00
lat9nq 276bc80544 settings: Add AspectRatio enum, split res scale function 2023-08-15 22:41:50 -04:00
Liam 1cecd1d96a fssystem: rework for yuzu style 2023-08-15 17:47:40 -04:00
Liam 5e3139e7c6 vfs: expand support for NCA reading 2023-08-15 17:47:25 -04:00
Liam 3e4076c2ac general: fix apple clang build 2023-08-09 22:38:37 -04:00
liamwhite 28b236b988 Merge pull request #10839 from lat9nq/pgc-plus
general: Reimplement per-game configurations
2023-08-02 14:25:52 -04:00
Morph 4d018d4060 wall_clock: Increase precision requirements
We are providing a conversion to nanoseconds in NativeClock, which is more precise than the GPU tick.
2023-07-27 18:40:56 -04:00
liamwhite a28a0c47f8 Merge pull request #10990 from comex/ubsan
Fixes and workarounds to make UBSan happier on macOS
2023-07-26 10:33:28 -04:00
lat9nq 4246d7d97d (ui)settings: Add more runtime_modifiable settings 2023-07-25 23:14:13 -04:00
lat9nq 722821707d backend: Remove usage of explicit operator overload
Causes a crash on MSVC from a race condition on application quit.

Intended to address yuzu-emu/yuzu/issues/11137
2023-07-25 22:53:58 -04:00
lat9nq cac8b672aa settings: Correct Linkage member impl location 2023-07-25 15:57:55 -04:00
lat9nq 9fbed50208 settings: Set GPU as default ASTC decoder 2023-07-24 16:28:13 -04:00
lat9nq 43ce3ae0d9 settings_common: Document specializations 2023-07-23 16:21:08 -04:00
lat9nq cce6c6919c common,qt-config: Remove usage of forward_list 2023-07-21 23:09:09 -04:00
liamwhite c52c03b718 Merge pull request #11069 from lat9nq/mingw-no-tzdb
common: Use arithmetic instead of string ops to get time zone
2023-07-21 15:05:59 -04:00
lat9nq 1067bbf7b7 settings_common: Use a vector in category linkage
Improve storage requirements.
2023-07-21 10:56:55 -04:00
lat9nq 093b0c051d settings: Remove sorting from log
Unecessary, and would run every time the settings are logged.
2023-07-21 10:56:55 -04:00
lat9nq 5c0cf58f73 common: Move global configuration state modifiers back to settings 2023-07-21 10:56:55 -04:00
lat9nq fc4d2cbf34 settings_setting: Fix typo 2023-07-21 10:56:55 -04:00
lat9nq b187a3c214 common,configure_system: Rename method to GetCategory
Fixes essentially a shadowing issue.
2023-07-21 10:56:55 -04:00
lat9nq 5e52526942 settings: Cleanup
Addresses review feedback

Co-authored-by: Morph <39850852+Morph1984@users.noreply.github.com>
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 7168d30a6e settings: Give indices to enums 2023-07-21 10:56:55 -04:00
lat9nq 42c6056deb settings_common: Remove unncessary enum spec 2023-07-21 10:56:55 -04:00
lat9nq 8c4acf2ebb settings_enums: Remove casting
Not sure how I missed this earlier, but these vectors can be constructed
using the type of the enum.
2023-07-21 10:56:55 -04:00
lat9nq 6dd818a105 settings_setting: Silence shadowing warnings 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 27df166abd settings,translation: Fix time zone enum
Renames enum values to conform to naming convention.
2023-07-21 10:56:55 -04:00
lat9nq ed14cd8748 settings,opengl,yuzu-qt: Fix AA, Filter maximums
The new enum macros don't support setting values directly.
For LastAA and LastFilter, this means we need a simpler approach to loop
around the toggle in the frontend...
2023-07-21 10:56:55 -04:00
lat9nq f42ebb3405 settings_enums: More aggressively use macros
This lets us define an enum and all the textual representations
of its values in one swing. All for the price of some ugly macros.
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 c2b577b364 settings_setting: Fix MSVC error 2023-07-21 10:56:55 -04:00
lat9nq 859dff4c27 common,yuzu-qt: GCC warning silences
Fixes -Wshadow, -Wdeprecated, and catch by copy rather than by ref.
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 8addc74f4f settings: Document BasicSetting, add Ranged 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 e0d6f3435e settings: Move some simple data to BasicSetting
Reduces the need for the compiler to duplicate this code, by about
100KB executable size.
2023-07-21 10:56:54 -04:00
lat9nq 9eee631154 settings_setting: Fix errors
ToString didn't have a constexpr if statement where needed.
Canonicalize missed an else, causing unreachable code error on MSVC.
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 9d3715a68c settings_enums: Add const type where needed 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 cfa06e42e6 settings: Report all contained settings values
Also adds a couple characters that denotes the state of the setting.
M for modified, or not default.
C for custom, in context of per-game settings.
2023-07-21 10:56:54 -04:00
lat9nq d344ecbee1 settings_enums: Cannonicalize settings names
Gives every option of the enums a string literal via a macro.
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