summaryrefslogtreecommitdiff
path: root/src/common (follow)
Commit message (Collapse)AuthorAgeFilesLines
* string_util: Make use of std::string_view and add bounds checkingGravatar Morph2021-10-142-5/+5
| | | | Makes use of std::string_view in StringFromFixedZeroTerminatedBuffer and add bounds checking
* string_util: Prevent out of bounds access in u16string_view bufferGravatar Morph2021-10-141-2/+2
|
* common/fs/path_util: Slightly refactor PathManagerImpl's constructorGravatar Creak2021-10-111-12/+15
| | | This moves all GenerateYuzuPath calls outside of the platofrm-specific #ifdefs, replacing them with assignments to paths.
* Merge pull request #7115 from ameerj/log-compileGravatar bunnei2021-10-057-18/+39
|\ | | | | common/logging: Reduce dependent header include overhead
| * common/logging: Reduce scope of fmt includeGravatar ameerj2021-10-012-1/+2
| |
| * common/logging: Move Log::Entry declaration to a separate headerGravatar ameerj2021-10-016-17/+37
| | | | | | | | This reduces the load of requiring to include std::chrono in all files which include log.h
* | Merge pull request #7102 from Morph1984/remove-boxcatGravatar bunnei2021-10-012-4/+0
|\ \ | |/ |/| Remove Boxcat BCAT backend
| * settings: Remove BCAT settingsGravatar Morph2021-09-292-4/+0
| |
* | Fixed invalid iterator usageGravatar Andrew Strelsky2021-09-291-1/+1
|/
* general: Update style to clang-format-12Gravatar ameerj2021-09-244-22/+28
|
* common/uuid: Add validity checking functions to interfaceGravatar Lioncash2021-09-221-0/+7
| | | | | Given we have a function to invalidate, we should also have ones to query the validity. Also makes the code more straightforward to read.
* Merge pull request #7019 from ameerj/videocore-jthreadGravatar bunnei2021-09-181-5/+22
|\ | | | | videocore: Use std::jthread for worker threads
| * threadsafe_queue: Add std::stop_token overload to PopWaitGravatar ameerj2021-09-151-5/+22
| | | | | | | | Useful for jthreads which make use of the threadsafe queues.
* | input_common/tas: Document the main classGravatar german772021-09-181-7/+4
| |
* | input_common/tas: Add swap controllerGravatar german772021-09-181-1/+1
| |
* | input_common/tas: Fallback to simple updateGravatar MonsterDruide12021-09-181-4/+3
| |
* | config: Move TAS options to it's own menuGravatar german772021-09-183-4/+3
| |
* | core: Hacky TAS syncing & load pausingGravatar MonsterDruide12021-09-183-7/+6
| | | | | | | | | | | | | | | | To keep the TAS inputs synced to the game speed even through lag spikes and loading zones, deeper access is required. First, the `TAS::UpdateThread` has to be executed exactly once per frame. This is done by connecting it to the service method the game calls to pass parameters to the GPU: `Service::VI::QueueBuffer`. Second, the loading time of new subareas and/or kingdoms (SMO) can vary. To counteract that, the `CPU_BOOST_MODE` can be detected: In the `APM`-interface, the call to enabling/disabling the boost mode can be caught and forwarded to the TASing system, which can pause the script execution if neccessary and enabled in the settings.
* | settings: File selector & other settingsGravatar MonsterDruide12021-09-183-0/+7
| | | | | | | | | | | | First of all, TASing requires a script to play back. The user can select the parent directory at `System -> Filesystem`, next to an option to pause TAS during loads: This requires a "hacky" setup deeper in the code and will be added in the last commit. Also, Hotkeys are being introduced: CTRL+F5 for playback start/stop, CTRL+F6 for re-reading the script and CTRL+F7 for recording a new script.
* | input_common/tas: Base playback & recording systemGravatar MonsterDruide12021-09-181-0/+7
| | | | | | | | | | | | | | | | | | The base playback system supports up to 8 controllers (specified by `PLAYER_NUMBER` in `tas_input.h`), which all change their inputs simulataneously when `TAS::UpdateThread` is called. The recording system uses the controller debugger to read the state of the first controller and forwards that data to the TASing system for recording. Currently, this process sadly is not frame-perfect and pixel-accurate. Co-authored-by: Naii-the-Baf <sfabian200@gmail.com> Co-authored-by: Narr-the-Reg <juangerman-13@hotmail.com>
* | Merge pull request #7020 from Moonlacer/remove_audio_stretchingGravatar bunnei2021-09-182-3/+0
|\ \ | | | | | | Remove audio stretching
| * | fix_accidental_deletionGravatar Moonlacer2021-09-151-1/+2
| | |
| * | remove-audio-stretching-settingGravatar Moonlacer2021-09-152-5/+1
| |/
* | Merge pull request #6950 from german77/multiplayGravatar bunnei2021-09-172-3/+6
|\ \ | |/ |/| input_common: Add advanced setting for 8 player support
| * input_common: Enable steam controllers and 8 player supportGravatar german772021-09-102-3/+6
| |
* | common_funcs: Add enum flag bitwise shift operator overloadsGravatar Morph2021-09-131-0/+16
| | | | | | | | This adds bitwise shift operator overloads (<<, >>, <<=, >>=) in the macro DECLARE_ENUM_FLAG_OPERATORS(type)
* | common_funcs: Replace <algorithm> with <iterator>Gravatar Morph2021-09-111-1/+1
| |
* | common: Move error handling to error.cpp/hGravatar Morph2021-09-115-16/+31
| | | | | | | | This allows us to avoid implicitly including <string> every time common_funcs.h is included.
* | Merge pull request #6846 from ameerj/nvdec-gpu-decodeGravatar Fernando S2021-09-112-3/+9
|\ \ | |/ |/| nvdec: Add GPU video decoding for all capable drivers and platforms
| * configure_graphics: Add GPU nvdec decoding as an optionGravatar ameerj2021-08-162-3/+9
| | | | | | | | | | | | Some system configurations may see visual regressions or lower performance using GPU decoding compared to CPU decoding. This setting provides the option for users to specify their decoding preference. Co-Authored-By: yzct12345 <87620833+yzct12345@users.noreply.github.com>
* | common/logging: Add missing includeGravatar german772021-09-011-0/+1
| |
* | Merge pull request #6897 from FernandoS27/pineapple-does-not-belong-in-pizzaGravatar bunnei2021-08-313-3/+140
|\ \ | | | | | | Project <tentative title>: Rework Garbage Collection.
| * | Garbage Collection: Adress Feedback.Gravatar Fernando Sahmkow2021-08-291-12/+11
| | |
| * | Garbage Collection: enable as default, eliminate option.Gravatar Fernando Sahmkow2021-08-282-3/+0
| | |
| * | VideoCore: Rework Garbage Collection.Gravatar Fernando Sahmkow2021-08-281-0/+141
| | |
* | | Merge pull request #6927 from german77/ngctGravatar Morph2021-08-282-0/+2
|\ \ \ | |/ / |/| | ngct: Stub NGCT:U service
| * | ngct: Stub NGCT:U serviceGravatar german772021-08-272-0/+2
| | |
* | | Revert "logging: Display backtrace on crash"Gravatar Morph2021-08-272-114/+1
|/ /
* | Merge pull request #6870 from yzct12345/trace-back-stack-back-stack-backGravatar bunnei2021-08-262-1/+114
|\ \ | | | | | | logging: Display backtrace on crash
| * | logging: Display backtrace on crashGravatar yzct123452021-08-132-1/+114
| | | | | | | | | | | | | | | | | | | | | This implements backtraces so we don't have to tell users how to use gdb anymore. This prints a backtrace after abort or segfault is detected. It also fixes the log getting cut off with the last line containing only a bracket. This change lets us know what caused a crash not just what happened the few seconds before it. I only know how to add support for Linux with GCC. Also this doesn't work outside of C/C++ such as in dynarmic or certain parts of graphics drivers. The good thing is that it'll try and just crash again but the stack frames are still there so the core dump will work just like before.
* | | logging: Fix log filter during initializationGravatar ameerj2021-08-241-4/+5
| | | | | | | | | | | | | | | | | | The log filter was being ignored on initialization due to the logging instance being initialized before the config instance, so the log filter was set to its default value. This fixes that oversight, along with using descriptive exceptions instead of abort() calls.
* | | Merge pull request #6869 from yzct12345/shiny-logs-in-the-fireplaceGravatar bunnei2021-08-222-245/+218
|\| | | | | | | | logging: Simplify and make thread-safe
| * | logging: Simplify and make thread-safeGravatar yzct123452021-08-132-245/+218
| |/ | | | | | | | | | | | | | | | | This simplifies the logging system. This also fixes some lost messages on startup. The simplification is simple. I removed unused functions and moved most things in the .h to the .cpp. I replaced the unnecessary linked list with its contents laid out as three member variables. Anything that went through the linked list now directly accesses the backends. Generic functions are replaced with those for each specific use case and there aren't many. This change increases coupling but we gain back more KISS and encapsulation. With those changes it was easy to make it thread-safe. I just removed the mutex and turned a boolean atomic. I was planning to use this thread-safety in my next PR about stacktraces. It was actually async-signal-safety at first but I ended up using a different approach. Anyway getting rid of the linked list is important for that because have the list of backends constantly changing complicates things.
* | settings: Amend language_index maximum setting rangeGravatar Morph2021-08-211-1/+1
| | | | | | | | The maximum is now 17 with the addition of Brazilian Portuguese
* | Merge pull request #6877 from MerryMage/dyn-ignore-assertsGravatar bunnei2021-08-192-2/+2
|\ \ | | | | | | dynarmic: Update and enable DYNARMIC_IGNORE_ASSERTS
| * | xbyak: Update include pathGravatar Merry2021-08-152-2/+2
| | |
* | | Merge pull request #6863 from spholz/fix-lan-playGravatar Fernando S2021-08-161-1/+2
|\ \ \ | |/ / |/| | Fix LAN Play
| * | Merge branch 'yuzu-emu:master' into fix-lan-playGravatar spholz2021-08-122-28/+164
| |\|
| * | configuration: add option to select network interfaceGravatar spholz2021-08-121-1/+2
| | | | | | | | | | | | This commit renames the "Services" tab to "Network" and adds a combobox that allows the user to select the network interface that yuzu should use. This new setting is now used to get the local IP address in Network::GetHostIPv4Address. This prevents yuzu from selecting the wrong network interface and thus using the wrong IP address. The return type of Network::GetHostIPv4Adress has also been changed.
* | | threadsafe_queue: Fix deadlockGravatar yzct123452021-08-131-6/+4
| |/ |/| | | | | | | This fixes a lost wakeup in SPSCQueue. If the reader is in just the right position, the writer's notification will be lost and this will be a problem if the writer then does something to wait on the reader. This was discovered to affect my upcoming stacktrace PR. I don't think any performance decrease will be noticeable because an uncontended mutex is smart enough to skip the syscall. This PR might also resolve some rare deadlocks but I don't know of any examples.