summaryrefslogtreecommitdiffstats
path: root/src/common (follow)
Commit message (Collapse)AuthorAgeFilesLines
* scope_exit: Make constexprFearlessTobi2024-02-194-25/+53
| | | | | Allows the use of the macro in constexpr-contexts. Also avoids some potential problems when nesting braces inside it.
* android: Input mappingt8952024-02-173-0/+191
|
* Merge pull request #12756 from liamwhite/applet-multiprocess-hwcNarr the Reg2024-02-124-0/+38
|\ | | | | general: applet multiprocess
| * general: add default configurations for applet modeLiam2024-02-094-0/+38
| |
* | Merge pull request #12920 from t895/jni-commonliamwhite2024-02-099-135/+1060
|\ \ | |/ |/| android: Move JNI setup and helpers to common
| * common: fs: Expand android macrost8952024-02-082-134/+91
| |
| * android: Move JNI setup and helpers to commont8952024-02-087-1/+969
| |
* | Merge pull request #12914 from FernandoS27/vc-refactorliamwhite2024-02-084-0/+607
|\ \ | | | | | | VideoCore Refactor Part 1.
| * | Common: Rename SplitRangeSet to OverlapRangeSetFernando Sahmkow2024-02-052-40/+43
| | |
| * | Buffer Cache: Refactor to use Range sets insteadFernando Sahmkow2024-02-051-81/+103
| | |
| * | Common: Introduce Range SetsFernando Sahmkow2024-02-043-0/+354
| | |
| * | VideoCore: Move Slot Vector to CommonFernando Sahmkow2024-02-042-0/+228
| |/
* / typed_address: test values are unsignedLiam2024-02-051-41/+41
|/
* service: fs: Skip non user id foldersNarr the Reg2024-02-021-0/+3
|
* Merge pull request #12869 from FernandoS27/smmu-fixesliamwhite2024-01-312-0/+94
|\ | | | | SMMU: A set of different fixes.
| * smmu: use new range mutex construction for protecting countersLiam2024-01-312-0/+94
| |
* | settings: Allow audio sink, input, and output to be set per gamet8952024-01-311-6/+6
|/
* Merge pull request #12814 from Kelebek1/time_new_ipcliamwhite2024-01-291-2/+2
|\ | | | | Move time services to new IPC and add debug printing
| * Move time services to new IPC.Kelebek12024-01-271-2/+2
| | | | | | | | Add some fixes/improvements to usage with the new IPC
* | atomic_ops: Fix MSVCMerry2024-01-271-15/+19
| |
* | atomic_ops: Remove volatile qualifierMerry2024-01-271-21/+19
| |
* | atomic_ops: Reduce code duplication with templatesMerry2024-01-271-45/+26
|/ | | | | | | Also fixes builds on unusual toolchains where: - u32 is unsigned int - u64 is unsigned long long - uintptr_t is unsigned long
* Address review comments and fix compilation problemsFearlessTobi2024-01-251-0/+1
|
* fs: Add path classFearlessTobi2024-01-251-0/+17
|
* Merge pull request #12499 from Kelebek1/timeliamwhite2024-01-2510-79/+70
|\ | | | | Rework time services
| * Rework time service to fix time passing offline.Kelebek12024-01-2410-79/+70
| |
* | Merge pull request #12579 from FernandoS27/smmuliamwhite2024-01-221-0/+1
|\ \ | | | | | | Core: Implement Device Mapping & GPU SMMU
| * | Core: Initial implementation of device memory mappingFernando Sahmkow2024-01-191-0/+1
| |/
* / fs/file: Explicitly convert std::u8string to std::filesystem::pathMerry2024-01-201-1/+1
|/
* Merge remote-tracking branch 'origin/master' into typos3Viktor Szépe2024-01-161-24/+10
|\
| * kernel: fix page leak on process terminationLiam2024-01-131-24/+10
| |
* | Fix more typosViktor Szépe2024-01-162-2/+2
|/
* Merge pull request #12518 from t895/theme-settingsliamwhite2024-01-012-0/+3
|\ | | | | android: Migrate remaining settings to ini
| * android: Migrate in-game overlay settings to init8952023-12-302-0/+3
| |
* | Merge pull request #12466 from liamwhite/sh2Narr the Reg2024-01-015-7/+395
|\ \ | |/ |/| core: track separate heap allocation for linux
| * heap_tracker: use linear-time mapping evictionLiam2023-12-272-9/+28
| |
| * core: track separate heap allocation for linuxLiam2023-12-265-7/+376
| |
* | Merge pull request #12471 from FearlessTobi/port-7146liamwhite2023-12-263-0/+23
|\ \ | | | | | | Port citra-emu/citra#7146: "assert/logging: Stop the logging thread and flush the backends before crashing"
| * | assert/logging: Stop the logging thread and flush the backends before crashingFearlessTobi2023-12-263-0/+23
| |/ | | | | | | Co-Authored-By: SachinVin <26602104+SachinVin@users.noreply.github.com>
* / ring_buffer: Use feature macroFearlessTobi2023-12-251-1/+1
|/ | | | Co-Authored-By: GPUCode <47210458+GPUCode@users.noreply.github.com>
* Merge pull request #12387 from liamwhite/oboeFernando S2023-12-191-4/+3
|\ | | | | android: add oboe audio sink
| * android: add oboe audio sinkLiam2023-12-171-4/+3
| |
* | path_util: copy output for GetParentPathLiam2023-12-172-4/+4
|/
* Merge pull request #12335 from t895/per-game-settingsliamwhite2023-12-164-6/+12
|\ | | | | android: Game Properties
| * settings: Allow vsync to be changed per-gamet8952023-12-121-1/+1
| |
| * settings: Allow CPU Debug and Fastmem to be changed per-gamet8952023-12-121-4/+4
| |
| * android: Add per-game driverst8952023-12-122-0/+3
| |
| * android: Refactor settings to expose more optionst8952023-12-121-1/+4
| | | | | | | | 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.
* | Merge pull request #12184 from Kelebek1/system_settingsliamwhite2023-12-161-0/+6
|\ \ | | | | | | Make system settings persistent across boots
| * | Make system settings persistent across bootsKelebek12023-12-161-0/+6
| |/
* | Merge pull request #12290 from liamwhite/deferred-path-splitliamwhite2023-12-162-11/+33
|\ \ | | | | | | Improve path splitting speed
| * | Improve path splitting speedBreadFish642023-12-062-11/+33
| | |
* | | common: use memory holepunching when clearing memoryLiam2023-12-152-9/+31
| |/ |/|
* | settings: Clearer NCE error messagesGPUCode2023-12-091-2/+6
| |
* | settings: Enable NCE by default on capable systemst8952023-12-091-4/+10
|/
* host_memory: move MAP_ALIGNED_SUPER attempt after 448d4815deceJan Beich2023-12-021-13/+11
| | | | | | src/common/host_memory.cpp:410:14: error: unused function 'ChooseVirtualBase' [-Werror,-Wunused-function] 410 | static void* ChooseVirtualBase(size_t virtual_size) { | ^~~~~~~~~~~~~~~~~
* host_memory: allow missing MAP_NORESERVE on FreeBSD after 448d4815deceJan Beich2023-12-021-0/+4
| | | | | | src/common/host_memory.cpp:408:47: error: use of undeclared identifier 'MAP_NORESERVE' MAP_PRIVATE | MAP_ANONYMOUS | MAP_NORESERVE, -1, 0); ^
* cmake: prefer system gamemode libraryAlexandre Bouvier2023-11-301-1/+1
|
* Merge pull request #12227 from jbeich/gamemodeliamwhite2023-11-301-1/+1
|\ | | | | cmake: unbreak build on FreeBSD by re-enabling gamemode
| * cmake: sync gamemode conditionals with code after 5eec980a2d71Jan Beich2023-11-301-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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)
* | Merge pull request #12074 from GPUCode/yuwu-on-the-metalliamwhite2023-11-3010-46/+320
|\ \ | |/ |/| Implement Native Code Execution (NCE)
| * cmake: Move HAS_NCE to root cmakeGPUCode2023-11-291-1/+1
| | | | | | | | * So we can use it in common
| * qt: add cpu_backend configurationamazingfate2023-11-273-4/+4
| |
| * general: fix mac compileLiam2023-11-271-0/+2
| |
| * host_memory: Simplify randomness generationGPUCode2023-11-251-11/+2
| |
| * common: Enforce fastmem for nce usageGPUCode2023-11-251-1/+1
| |
| * Address some review commentsGPUCode2023-11-253-3/+6
| |
| * android: Add cpu bakend gui toggleGPUCode2023-11-253-5/+11
| |
| * arm: Implement native code execution backendLiam2023-11-253-8/+8
| |
| * device_memory: Enable direct mapped addresses for nceGPUCode2023-11-252-3/+10
| |
| * settings: Add cpu backend settingGPUCode2023-11-253-0/+17
| |
| * core: Respect memory permissions in MapGPUCode2023-11-252-14/+44
| |
| * host_memory: Switch to FreeRegionManagerLiam2023-11-252-29/+67
| |
| * host_memory: ensure map base is between 36 and 39 bitsLiam2023-11-251-2/+58
| |
| * common: Add free region manager--author=Liam2023-11-252-0/+56
| | | | | | | | * Abstraction for placeholder region tracking in host_memory
| * common: Add libc sigaction hookGPUCode2023-11-253-0/+68
| |
* | general: conditionally compile gamemode on linux onlyLiam2023-11-292-1/+2
| |
* | Merge pull request #11946 from flodavid/gamemodeliamwhite2023-11-296-0/+78
|\ \ | | | | | | Enable (Feral Interactive) Gamemode on Linux
| * | yuzu: create linux group in general settingsflodavid2023-11-256-2/+78
| | | | | | | | | | | | | | | - Create files dedicated to starting and stopping gamemode functions - Use them in yuzu and yuzu_cmd modules
| * | yuzu: integrate gamemode support on linuxxcfrg2023-11-251-0/+2
| |/
* | Merge pull request #11535 from GPUCode/upload_cmdbufFernando S2023-11-261-0/+2
|\ \ | |/ |/| renderer_vulkan: Introduce separate cmd buffer for uploads
| * renderer_vulkan: Introduce separate cmd buffer for uploadsGPUCode2023-11-121-0/+2
| |
* | common: settings: Add ifdefs to define android's default settingst8952023-11-211-6/+36
| |
* | config: Unify config handling under frontend_commont8952023-11-211-2/+2
| | | | | | | | | | | | 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.
* | Merge pull request #12007 from german77/moar_buttonsliamwhite2023-11-162-6/+10
|\ \ | | | | | | core: hid: Split SL and SR buttons
| * | core: hid: Split SL and SR buttonsgerman772023-11-122-6/+10
| |/
* | Merge pull request #11990 from german77/audioliamwhite2023-11-133-1/+4
|\ \ | |/ |/| yuzu: Save mute when in background setting
| * yuzu: Make mute audio persistentNarr the Reg2023-11-101-1/+1
| |
| * yuzu: Save mute when in background settingNarr the Reg2023-11-102-0/+3
| |
* | kernel: add KPageTableBaseLiam2023-11-102-18/+29
|/ | | | Co-authored-by: Kelebek1 <eeeedddccc@hotmail.co.uk>
* arm: NativeClock: Special handling for bad system counter clock frequency reportingCharles Lombardo2023-11-031-1/+20
| | | | On some devices, checking the system counter clock frequency will return 0. Substitute in the correct values to prevent issues.
* android: Fix resolving android URIs in native codeCharles Lombardo2023-10-304-0/+70
|
* Merge pull request #11689 from liamwhite/breakpadliamwhite2023-10-304-1/+3
|\ | | | | qt: implement automatic crash dump support
| * qt: implement automatic crash dump supportLiam2023-10-084-1/+3
| |
* | nvidia_flags: Enable GL Threaded optimizationsAmeer J2023-10-291-0/+1
| |
* | cmake: prefer system stb headersAlexandre Bouvier2023-10-253-1/+21
| |
* | common: use SetThreadDescription API for thread namesLiam2023-10-201-22/+2
| |
* | Merge pull request #11159 from flodavid/master_bisliamwhite2023-10-143-0/+12
|\ \ | | | | | | Enable to use controller to close a game
| * | yuzu: Use new setting method for stop emulationFlorian2023-10-123-0/+12
| | |
* | | common/polyfill_thread: use std::forward where appropriate, qualify std::move callsValeri Ochinski2023-10-131-10/+11
| | |
* | | Merge pull request #11746 from liamwhite/relrliamwhite2023-10-131-0/+8
|\ \ \ | | | | | | | | jit: add support for relr-type relocations
| * | | jit: add support for relr-type relocationsLiam2023-10-111-0/+8
| |/ /
* / / kernel: mark TLS accessors as noinline for non-MSVC LTOLiam2023-10-121-0/+4
|/ /
* | Merge pull request #11718 from liamwhite/arm64-native-clockFernando S2023-10-104-1/+134
|\ \ | | | | | | common: add arm64 native clock
| * | common: add arm64 native clockLiam2023-10-084-1/+134
| | |
* | | Merge pull request #11705 from FearlessTobi/windows-scliamwhite2023-10-083-0/+3
|\ \ \ | | | | | | | | yuzu: Add desktop shortcut support for Windows (continuation of #11344)
| * | | yuzu: Add desktop shortcut support for WindowsFearlessTobi2023-10-083-0/+3
| | |/ | |/| | | | | | | | | | | | | Allows creating desktop shortcuts with icons for yuzu games. Co-Authored-By: Jeroen van Schijndel <13182141+roenyroeny@users.noreply.github.com>
* | | Merge pull request #10519 from mdmrk/masterliamwhite2023-10-083-0/+3
|\ \ \ | |_|/ |/| | yuzu-qt: Track play time
| * | yuzu-qt: Track play timeMario2023-08-273-0/+3
| | |
* | | gdbserver: use numeric character references for unicodeLiam2023-10-022-0/+6
| |/ |/|
* | Merge pull request #11402 from FernandoS27/depth-bias-controlliamwhite2023-09-281-0/+2
|\ \ | | | | | | Vulkan: Implement Depth Bias Control
| * | Vulkan: add temporary workaround for AMDVLKFernando Sahmkow2023-09-161-0/+2
| | |
* | | settings_setting: Read audio enginelat9nq2023-09-261-0/+2
| | | | | | | | | | | | | | | This was mysteriously missing, likely from when I ported Citra fixes semi-recently.
* | | Query Cachge: Fully rework Vulkan's query cacheFernando Sahmkow2023-09-232-3/+9
| | |
* | | Reimplement HardwareOpusKelebek12023-09-162-4/+5
|/ /
* | Merge pull request #11499 from Squall-Leonhart/bitlockerfixliamwhite2023-09-161-6/+9
|\ \ | | | | | | add std::error_code for std::filesystem exceptions
| * | add std::error_code for std::filesystem exceptionsSquall-Leonhart2023-09-141-6/+9
| | | | | | | | | | | | | | | | | | 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)
* | | Merge pull request #11492 from lat9nq/c-numeric-conversionsliamwhite2023-09-162-5/+38
|\ \ \ | | | | | | | | general: Remove uncaught usages of C++ string number conversions
| * | | settings_common: Fix typolat9nq2023-09-141-1/+1
| | | |
| * | | settings_setting: Don't remove the AudioEngine workaroundlat9nq2023-09-131-0/+3
| | | |
| * | | settings: Retro-port Citra Settings worklat9nq2023-09-132-8/+38
| | | | | | | | | | | | | | | | | | | | This has yet to be PR'd on Citra, but regressions on yuzu that have been fixed in Citra needed to appear here.
* | | | debug: Add renderdoc capture hotkeyGPUCode2023-09-141-0/+2
| |/ / |/| |
* | | Merge pull request #11496 from liamwhite/ngcliamwhite2023-09-142-2/+2
|\ \ \ | | | | | | | | ngc: implement service
| * | | ngc: implement serviceLiam2023-09-142-2/+2
| |/ /
* | | Merge pull request #11433 from liamwhite/shutdown-oopsieliamwhite2023-09-141-7/+13
|\ \ \ | |/ / |/| | polyfill_thread: ensure mutex was locked before signaling stop
| * | polyfill_thread: ensure mutex was locked before signaling stopLiam2023-09-021-7/+13
| | |
* | | Merge pull request #11447 from xcfrg/portable-compile-outliamwhite2023-09-122-2/+8
|\ \ \ | | | | | | | | common: add a compile time option to allow disabling portable mode
| * | | add a compile time option to allow disabling portable modexcfrg2023-09-072-2/+8
| |/ /
* / / msvc: set warning level to /W4 globallyDanila Malyutin2023-09-031-2/+0
|/ / | | | | | | And fix a bunch of warnings
* / android: Expose interface for getting settings from native codeCharles Lombardo2023-08-303-0/+5
|/ | | | 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.
* Merge pull request #11356 from lat9nq/console-mode-pgliamwhite2023-08-274-1/+17
|\ | | | | general,config-qt: Present Console Mode as an enum with separate options in game properties
| * settings: Add docked mode helper functionlat9nq2023-08-232-0/+7
| |
| * general: Convert use_docked_mode to an enumerationlat9nq2023-08-223-1/+10
| | | | | | | | Allows some special interactions with it in the Qt frontend.
* | Warnings cleanup for GCC 13 and Clang 16comex2023-08-261-5/+0
|/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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".
* Merge pull request #11303 from lat9nq/screenshots-configurableliamwhite2023-08-222-3/+8
|\ | | | | yuzu-qt: Add configuration for screenshot resolution
| * yuzu-qt: Screenshots depend more on the graphics settingslat9nq2023-08-161-2/+0
| |
| * yuzu-qt: Implement unspecified screenshot ratiolat9nq2023-08-161-1/+1
| |
| * settings: Add AspectRatio enum, split res scale functionlat9nq2023-08-163-3/+10
| |
* | fssystem: rework for yuzu styleLiam2023-08-153-4/+8
| |
* | vfs: expand support for NCA readingLiam2023-08-153-2/+35
|/
* general: fix apple clang buildLiam2023-08-103-13/+15
|
* Merge pull request #10839 from lat9nq/pgc-plusliamwhite2023-08-028-592/+1455
|\ | | | | general: Reimplement per-game configurations
| * (ui)settings: Add more runtime_modifiable settingslat9nq2023-07-261-4/+5
| |
| * backend: Remove usage of explicit operator overloadlat9nq2023-07-261-1/+1
| | | | | | | | | | | | Causes a crash on MSVC from a race condition on application quit. Intended to address yuzu-emu/yuzu/issues/11137
| * settings: Correct Linkage member impl locationlat9nq2023-07-252-3/+3
| |
| * settings: Set GPU as default ASTC decoderlat9nq2023-07-241-1/+1
| |
| * settings_common: Document specializationslat9nq2023-07-231-9/+10
| |
| * common,qt-config: Remove usage of forward_listlat9nq2023-07-222-2/+0
| |
| * settings_common: Use a vector in category linkagelat9nq2023-07-212-2/+2
| | | | | | | | Improve storage requirements.
| * settings: Remove sorting from loglat9nq2023-07-211-4/+0
| | | | | | | | Unecessary, and would run every time the settings are logged.
| * common: Move global configuration state modifiers back to settingslat9nq2023-07-214-13/+13
| |
| * settings_setting: Fix typolat9nq2023-07-211-4/+4
| |
| * common,configure_system: Rename method to GetCategorylat9nq2023-07-213-7/+7
| | | | | | | | Fixes essentially a shadowing issue.
| * settings: Cleanuplat9nq2023-07-213-32/+51
| | | | | | | | | | | | Addresses review feedback Co-authored-by: Morph <39850852+Morph1984@users.noreply.github.com>
| * core,common: Give memory layout setting an enumlat9nq2023-07-212-2/+8
| | | | | | | | Allows for 6GB and 8GB layouts to be selected.
| * settings: Require time zone setting value for stirnglat9nq2023-07-212-3/+3
| |
| * settings: Give indices to enumslat9nq2023-07-213-6/+36
| |
| * settings_common: Remove unncessary enum speclat9nq2023-07-211-2/+2
| |
| * settings_enums: Remove castinglat9nq2023-07-211-55/+55
| | | | | | | | | | Not sure how I missed this earlier, but these vectors can be constructed using the type of the enum.
| * settings_setting: Silence shadowing warningslat9nq2023-07-211-17/+18
| |
| * settings,configuration: Add a default suffixlat9nq2023-07-214-32/+48
| |
| * settings: Define paired settingslat9nq2023-07-214-21/+49
| | | | | | | | settings_common: Remove unused optional
| * settings: Define specializations for settingslat9nq2023-07-214-64/+130
| | | | | | | | Suggests to a frontend how to represent each setting.
| * settings,translation: Fix time zone enumlat9nq2023-07-211-4/+4
| | | | | | | | Renames enum values to conform to naming convention.
| * settings,opengl,yuzu-qt: Fix AA, Filter maximumslat9nq2023-07-211-2/+2
| | | | | | | | | | | | 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...
| * settings_enums: More aggressively use macroslat9nq2023-07-211-351/+149
| | | | | | | | | | 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.
| * settings,uisettings: Remove leading underscorelat9nq2023-07-213-3/+3
| |
| * settings: Move speed_limit to corelat9nq2023-07-211-4/+4
| |
| * common,yuzu-qt: Avoid explicit instantiation on old clanglat9nq2023-07-213-3/+12
| | | | | | | | | | Clang versions < 15 have compile issues with explicit instantiation. Disable it for these versions.
| * settings_setting: Fix MSVC errorlat9nq2023-07-211-1/+1
| |
| * common,yuzu-qt: GCC warning silenceslat9nq2023-07-212-7/+9
| | | | | | | | Fixes -Wshadow, -Wdeprecated, and catch by copy rather than by ref.
| * settings: Delete cpu_accuracy_first_timelat9nq2023-07-211-2/+0
| | | | | | | | Almost a 2 year old migration setting now
| * settings: Document BasicSetting, add Rangedlat9nq2023-07-212-9/+110
| |
| * settings: Move IsConfiguringGlobal to settings_commonlat9nq2023-07-214-12/+13
| |
| * settings: Move some simple data to BasicSettinglat9nq2023-07-215-108/+129
| | | | | | | | | | Reduces the need for the compiler to duplicate this code, by about 100KB executable size.
| * settings_setting: Fix errorslat9nq2023-07-211-2/+3
| | | | | | | | | | ToString didn't have a constexpr if statement where needed. Canonicalize missed an else, causing unreachable code error on MSVC.
| * (ui,)settings: Use explicit instantiationlat9nq2023-07-215-471/+587
| | | | | | | | Reduces compile times a tad on clang.
| * settings: Remove redundant false literalslat9nq2023-07-211-19/+16
| |
| * general: Add typeinfo where neededlat9nq2023-07-212-0/+2
| | | | | | | | Using typeid without including typeinfo first produces an ill-formed program.
| * settings_enums: Add const type where neededlat9nq2023-07-211-2/+2
| |
| * settings: yuzu is not capitalized why is it capitalized stop no badlat9nq2023-07-211-1/+1
| |
| * settings: Reorderlat9nq2023-07-211-75/+78
| | | | | | | | | | | | 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.
| * settings: Report all contained settings valueslat9nq2023-07-211-45/+19
| | | | | | | | | | | | 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.
| * settings_enums: Cannonicalize settings nameslat9nq2023-07-211-2/+163
| | | | | | | | Gives every option of the enums a string literal via a macro.
| * settings,general: Rename non-confirming enumslat9nq2023-07-213-38/+45
| |
| * settings: Make volume runtime-configurablelat9nq2023-07-211-1/+1
| |
| * configure_audio: Implement ui generationlat9nq2023-07-212-4/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
| * settings: Split enums to new filelat9nq2023-07-213-186/+241
| |
| * settings, uisettings: Initialize linkage counterlat9nq2023-07-212-2/+2
| |
| * configure_system: Implement with for looplat9nq2023-07-212-12/+103
| |
| * settings: Move runtime and save to parameterslat9nq2023-07-211-63/+85
| | | | | | | | These don't need to be whole new types.
| * settings: Add UiGeneral classlat9nq2023-07-212-2/+9
| |
| * configuration: Implement sliderlat9nq2023-07-211-2/+11
| |
| * settings: Define base renderer runtime modifiable settingslat9nq2023-07-211-21/+22
| |
| * settings: Add anisotropy mode enumlat9nq2023-07-211-0/+8
| |
| * shared_translation: Finish using int idslat9nq2023-07-211-2/+2
| |
| * settings,uisettings: Add IDs to settingslat9nq2023-07-211-3/+13
| |
| * configure_graphics: Partial runtime implementationlat9nq2023-07-211-1/+1
| |
| * settings: Recategorize a bitlat9nq2023-07-212-40/+54
| | | | | | | | Will help with generating config UI later.
| * configure_graphics_advance: Generate UI at runtimelat9nq2023-07-211-12/+41
| | | | | | | | | | | | | | 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.
| * settings: Add a registry of settingslat9nq2023-07-212-187/+485
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
| * settings,core,config_sys: Remove optional type from custom_rtc, rng_seedlat9nq2023-07-212-3/+6
| | | | | | | | core: Fix MSVC errors
| * settings: Pool SetGlobal functionslat9nq2023-07-212-61/+14
| |
| * settings,video_core: Consolidate ASTC decoding optionslat9nq2023-07-212-4/+9
| | | | | | | | Just puts them all neatly into one place.
* | wall_clock: Increase precision requirementsMorph2023-07-281-2/+2
| | | | | | | | We are providing a conversion to nanoseconds in NativeClock, which is more precise than the GPU tick.
* | Merge pull request #10990 from comex/ubsanliamwhite2023-07-261-6/+6
|\ \ | | | | | | Fixes and workarounds to make UBSan happier on macOS
| * | Fixes and workarounds to make UBSan happier on macOScomex2023-07-151-6/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There are still some other issues not addressed here, but it's a start. Workarounds for false-positive reports: - `RasterizerAccelerated`: Put a gigantic array behind a `unique_ptr`, because UBSan has a [hardcoded limit](https://stackoverflow.com/questions/64531383/c-runtime-error-using-fsanitize-undefined-object-has-a-possibly-invalid-vp) of how big it thinks objects can be, specifically when dealing with offset-to-top values used with multiple inheritance. Hopefully this doesn't have a performance impact. - `QueryCacheBase::QueryCacheBase`: Avoid an operation that UBSan thinks is UB even though it at least arguably isn't. See the link in the comment for more information. Fixes for correct reports: - `PageTable`, `Memory`: Use `uintptr_t` values instead of pointers to avoid UB from pointer overflow (when pointer arithmetic wraps around the address space). - `KScheduler::Reload`: `thread->GetOwnerProcess()` can be `nullptr`; avoid calling methods on it in this case. (The existing code returns a garbage reference to a field, which is then passed into `LoadWatchpointArray`, and apparently it's never used, so it's harmless in practice but still triggers UBSan.) - `KAutoObject::Close`: This function calls `this->Destroy()`, which overwrites the beginning of the object with junk (specifically a free list pointer). Then it calls `this->UnregisterWithKernel()`. UBSan complains about a type mismatch because the vtable has been overwritten, and I believe this is indeed UB. `UnregisterWithKernel` also loads `m_kernel` from the 'freed' object, which seems to be technically safe (the overwriting doesn't extend as far as that field), but seems dubious. Switch to a `static` method and load `m_kernel` in advance.
* | | Merge pull request #11069 from lat9nq/mingw-no-tzdbliamwhite2023-07-212-29/+21
|\ \ \ | |_|/ |/| | common: Use arithmetic instead of string ops to get time zone
| * | time_zone: Clean up includeslat9nq2023-07-121-1/+1
| | |
| * | time_zone: Swap subtraction orderlat9nq2023-07-121-1/+1
| | |
| * | time_zone: Account for leap yearslat9nq2023-07-121-4/+6
| | | | | | | | | | | | | | | Protects against invalid hour offsets during transitions to years following leap years.
| * | settings: Disable C++20 tzdb path on MinGWlat9nq2023-07-101-1/+2
| | | | | | | | | | | | | | | This path always results in Etc/UTC on MinGW, which often is not close to the local time zone.
| * | time_zone: Remove string ops for determing zonelat9nq2023-07-101-27/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | MinGW's strftime implementation does not work and cannot be used to determine the time zone. Besides that, the string operations are actually unnecessary since we can get the offset from std::localtime. Compare localtime to gmtime to find the zone offset on all platforms.
* | | general: Silence -Wshadow{,-uncaptured-local} warningslat9nq2023-07-192-3/+3
| | | | | | | | | | | | These occur in the latest commits in LLVM Clang.
* | | ssl: Reorder inclusionsMorph2023-07-171-2/+3
| | |
* | | Merge pull request #10912 from comex/sslliamwhite2023-07-161-1/+15
|\ \ \ | |_|/ |/| | Implement SSL service
| * | Merge remote-tracking branch 'origin/master' into sslcomex2023-07-0220-303/+353
| |\ \
| * | | socket_types: Improve commentcomex2023-06-251-3/+3
| | | |
| * | | Implement SSL servicecomex2023-06-251-1/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This implements some missing network APIs including a large chunk of the SSL service, enough for Mario Maker (with an appropriate mod applied) to connect to the fan server [Open Course World](https://opencourse.world/). Connecting to first-party servers is out of scope of this PR and is a minefield I'd rather not step into. ## TLS TLS is implemented with multiple backends depending on the system's 'native' TLS library. Currently there are two backends: Schannel for Windows, and OpenSSL for Linux. (In reality Linux is a bit of a free-for-all where there's no one 'native' library, but OpenSSL is the closest it gets.) On macOS the 'native' library is SecureTransport but that isn't implemented in this PR. (Instead, all non-Windows OSes will use OpenSSL unless disabled with `-DENABLE_OPENSSL=OFF`.) Why have multiple backends instead of just using a single library, especially given that Yuzu already embeds mbedtls for cryptographic algorithms? Well, I tried implementing this on mbedtls first, but the problem is TLS policies - mainly trusted certificate policies, and to a lesser extent trusted algorithms, SSL versions, etc. ...In practice, the chance that someone is going to conduct a man-in-the-middle attack on a third-party game server is pretty low, but I'm a security nerd so I like to do the right security things. My base assumption is that we want to use the host system's TLS policies. An alternative would be to more closely emulate the Switch's TLS implementation (which is based on NSS). But for one thing, I don't feel like reverse engineering it. And I'd argue that for third-party servers such as Open Course World, it's theoretically preferable to use the system's policies rather than the Switch's, for two reasons 1. Someday the Switch will stop being updated, and the trusted cert list, algorithms, etc. will start to go stale, but users will still want to connect to third-party servers, and there's no reason they shouldn't have up-to-date security when doing so. At that point, homebrew users on actual hardware may patch the TLS implementation, but for emulators it's simpler to just use the host's stack. 2. Also, it's good to respect any custom certificate policies the user may have added systemwide. For example, they may have added custom trusted CAs in order to use TLS debugging tools or pass through corporate MitM middleboxes. Or they may have removed some CAs that are normally trusted out of paranoia. Note that this policy wouldn't work as-is for connecting to first-party servers, because some of them serve certificates based on Nintendo's own CA rather than a publicly trusted one. However, this could probably be solved easily by using appropriate APIs to adding Nintendo's CA as an alternate trusted cert for Yuzu's connections. That is not implemented in this PR because, again, first-party servers are out of scope. (If anything I'd rather have an option to _block_ connections to Nintendo servers, but that's not implemented here.) To use the host's TLS policies, there are three theoretical options: a) Import the host's trusted certificate list into a cross-platform TLS library (presumably mbedtls). b) Use the native TLS library to verify certificates but use a cross-platform TLS library for everything else. c) Use the native TLS library for everything. Two problems with option a). First, importing the trusted certificate list at minimum requires a bunch of platform-specific code, which mbedtls does not have built in. Interestingly, OpenSSL recently gained the ability to import the Windows certificate trust store... but that leads to the second problem, which is that a list of trusted certificates is [not expressive enough](https://bugs.archlinux.org/task/41909) to express a modern certificate trust policy. For example, Windows has the concept of [explicitly distrusted certificates](https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2012-r2-and-2012/dn265983(v=ws.11)), and macOS requires Certificate Transparency validation for some certificates with complex rules for when it's required. Option b) (using native library just to verify certs) is probably feasible, but it would miss aspects of TLS policy other than trusted certs (like allowed algorithms), and in any case it might well require writing more code, not less, compared to using the native library for everything. So I ended up at option c), using the native library for everything. What I'd *really* prefer would be to use a third-party library that does option c) for me. Rust has a good library for this, [native-tls](https://docs.rs/native-tls/latest/native_tls/). I did search, but I couldn't find a good option in the C or C++ ecosystem, at least not any that wasn't part of some much larger framework. I was surprised - isn't this a pretty common use case? Well, many applications only need TLS for HTTPS, and they can use libcurl, which has a TLS abstraction layer internally but doesn't expose it. Other applications only support a single TLS library, or use one of the aforementioned larger frameworks, or are platform-specific to begin with, or of course are written in a non-C/C++ language, most of which have some canonical choice for TLS. But there are also many applications that have a set of TLS backends just like this; it's just that nobody has gone ahead and abstracted the pattern into a library, at least not a widespread one. Amusingly, there is one TLS abstraction layer that Yuzu already bundles: the one in ffmpeg. But it is missing some features that would be needed to use it here (like reusing an existing socket rather than managing the socket itself). Though, that does mean that the wiki's build instructions for Linux (and macOS for some reason?) already recommend installing OpenSSL, so no need to update those. ## Other APIs implemented - Sockets: - GetSockOpt(`SO_ERROR`) - SetSockOpt(`SO_NOSIGPIPE`) (stub, I have no idea what this does on Switch) - `DuplicateSocket` (because the SSL sysmodule calls it internally) - More `PollEvents` values - NSD: - `Resolve` and `ResolveEx` (stub, good enough for Open Course World and probably most third-party servers, but not first-party) - SFDNSRES: - `GetHostByNameRequest` and `GetHostByNameRequestWithOptions` - `ResolverSetOptionRequest` (stub) ## Fixes - Parts of the socket code were previously allocating a `sockaddr` object on the stack when calling functions that take a `sockaddr*` (e.g. `accept`). This might seem like the right thing to do to avoid illegal aliasing, but in fact `sockaddr` is not guaranteed to be large enough to hold any particular type of address, only the header. This worked in practice because in practice `sockaddr` is the same size as `sockaddr_in`, but it's not how the API is meant to be used. I changed this to allocate an `sockaddr_in` on the stack and `reinterpret_cast` it. I could try to do something cleverer with `aligned_storage`, but casting is the idiomatic way to use these particular APIs, so it's really the system's responsibility to avoid any aliasing issues. - I rewrote most of the `GetAddrInfoRequest[WithOptions]` implementation. The old implementation invoked the host's getaddrinfo directly from sfdnsres.cpp, and directly passed through the host's socket type, protocol, etc. values rather than looking up the corresponding constants on the Switch. To be fair, these constants don't tend to actually vary across systems, but still... I added a wrapper for `getaddrinfo` in `internal_network/network.cpp` similar to the ones for other socket APIs, and changed the `GetAddrInfoRequest` implementation to use it. While I was at it, I rewrote the serialization to use the same approach I used to implement `GetHostByNameRequest`, because it reduces the number of size calculations. While doing so I removed `AF_INET6` support because the Switch doesn't support IPv6; it might be nice to support IPv6 anyway, but that would have to apply to all of the socket APIs. I also corrected the IPC wrappers for `GetAddrInfoRequest` and `GetAddrInfoRequestWithOptions` based on reverse engineering and hardware testing. Every call to `GetAddrInfoRequestWithOptions` returns *four* different error codes (IPC status, getaddrinfo error code, netdb error code, and errno), and `GetAddrInfoRequest` returns three of those but in a different order, and it doesn't really matter but the existing implementation was a bit off, as I discovered while testing `GetHostByNameRequest`. - The new serialization code is based on two simple helper functions: ```cpp template <typename T> static void Append(std::vector<u8>& vec, T t); void AppendNulTerminated(std::vector<u8>& vec, std::string_view str); ``` I was thinking there must be existing functions somewhere that assist with serialization/deserialization of binary data, but all I could find was the helper methods in `IOFile` and `HLERequestContext`, not anything that could be used with a generic byte buffer. If I'm not missing something, then maybe I should move the above functions to a new header in `common`... right now they're just sitting in `sfdnsres.cpp` where they're used. - Not a fix, but `SocketBase::Recv`/`Send` is changed to use `std::span<u8>` rather than `std::vector<u8>&` to avoid needing to copy the data to/from a vector when those methods are called from the TLS implementation.
* | | | Merge pull request #10996 from Kelebek1/readblock_optimisationbunnei2023-07-113-2/+17
|\ \ \ \ | |_|_|/ |/| | | Use spans over guest memory where possible instead of copying data
| * | | Fix ScratchBuffer movesKelebek12023-07-041-2/+15
| | | |
| * | | Use spans over guest memory where possible instead of copying data.Kelebek12023-07-032-0/+2
| | | |
* | | | settings: Catch runtime error from STLlat9nq2023-07-091-3/+2
| | | | | | | | | | | | | | | | | | | | | | | | This function throws a runtime error we can catch on old Windows 10 installs, so we can catch it here rather than disable this path for everybody.
* | | | settings: Disable C++20 path on MSVClat9nq2023-07-051-1/+2
|/ / / | | | | | | | | | | | | | | | | | | | | | Even though it compiles and runs fine on the latest Windows versions, older LTSC builds will crash due to lacking support somewhere in the OS. For now just disable it for MSVC until either Microsoft fixes this or we no longer support 1809 LTSC.
* | | Merge pull request #10970 from Morph1984/thingliamwhite2023-07-022-21/+27
|\ \ \ | | | | | | | | general: Misc changes that did not deserve their own PRs
| * | | ring_buffer: Fix const usage on std::spanMorph2023-06-301-1/+1
| | | |
| * | | scratch_buffer: Add member types to ScratchBufferMorph2023-06-301-20/+26
| | |/ | |/| | | | | | | Allows for implicit conversion to std::span<T>.
* | | Merge pull request #10950 from german77/mouse_tuneliamwhite2023-07-021-6/+4
|\ \ \ | |/ / |/| | input_common: Tune mouse controls
| * | input_common: Tune mouse controlsNarr the Reg2023-06-291-6/+4
| | |
* | | Merge pull request #10935 from Morph1984/mwaitxliamwhite2023-06-294-14/+41
|\ \ \ | | | | | | | | x64: Make use of monitorx instructions for power efficient sleeps (AMD)
| * | | x64: cpu_wait: Implement MWAITX for non-MSVC compilersMorph2023-06-281-0/+10
| | | |
| * | | x64: cpu_wait: Remove magic valuesMorph2023-06-281-3/+8
| | | |
| * | | x64: cpu_wait: Make use of MWAITX in MicroSleepMorph2023-06-281-12/+21
| | | | | | | | | | | | | | | | | | | | MWAITX is equivalent to UMWAIT on Intel's Alder Lake CPUs. We can emulate TPAUSE by using MONITORX in conjunction with MWAITX to wait for 100K cycles.
| * | | x64: Add detection of monitorx instructionsMorph2023-06-283-0/+3
| |/ / | | | | | | | | | monitorx introduces 2 instructions: MONITORX and MWAITX.
* / / input_common: Remove duplicated DriverResult enumgerman772023-06-281-0/+2
|/ /
* | settings: Clean up includeslat9nq2023-06-281-2/+3
| | | | | | | | | | | | Adds <version> since we are looking at C++ implementation version details. Also moves exception header includes into the if preprocessor command since we only use it there.
* | settings: Catch runtime_error, fallback time zonelat9nq2023-06-281-3/+15
| | | | | | | | | | | | Windows will let you select time zones that will fail in their own C++ implementation library. Evidently from the stack trace, we get a runtime error to work with, so catch it and use the fallback.
* | Merge pull request #10495 from bm01/masterliamwhite2023-06-271-2/+9
|\ \ | | | | | | input_common: Redesign mouse panning
| * | input_common: Redesign mouse panningBaptiste Marie2023-06-121-2/+9
| | |
* | | android: Fix size check for content urisCharles Lombardo2023-06-271-0/+6
| | | | | | | | | | | | Fix for checking file size for android content uris
* | | Merge pull request #10859 from liamwhite/no-more-atomic-waitliamwhite2023-06-231-1/+1
|\ \ \ | | | | | | | | general: remove atomic signal and wait
| * | | general: remove atomic signal and waitLiam2023-06-221-1/+1
| | | |
* | | | Merge pull request #10842 from german77/native_mifareliamwhite2023-06-231-4/+39
|\ \ \ \ | | | | | | | | | | input_common: Implement native mifare/skylander support for joycons/pro controller
| * | | | input_common: Implement native mifare supportNarr the Reg2023-06-221-4/+39
| | |_|/ | |/| |
* | | | Merge pull request #10457 from Kelebek1/optimisebunnei2023-06-232-1/+11
|\ \ \ \ | | | | | | | | | | Remove memory allocations in some hot paths
| * | | | Remove memory allocations in some hot pathsKelebek12023-06-222-1/+11
| | |/ / | |/| |
* | | | Merge pull request #10806 from liamwhite/worst-fs-implementation-everbunnei2023-06-232-5/+5
|\ \ \ \ | |/ / / |/| | | vfs_real: misc optimizations
| * | | vfs_real: misc optimizationsLiam2023-06-162-5/+5
| |/ /
* | | Merge pull request #10086 from Morph1984/coretiming-ng-1bunnei2023-06-2210-274/+223
|\ \ \ | | | | | | | | core_timing: Use CNTPCT as the guest CPU tick
| * | | core_timing: Fix SingleCore cycle timerMorph2023-06-081-16/+20
| | | |
| * | | (wall, native)_clock: Add GetGPUTickMorph2023-06-084-4/+34
| | | | | | | | | | | | | | | | Allows us to directly calculate the GPU tick without double conversion to and from the host clock tick.
| * | | core_timing: Use CNTPCT as the guest CPU tickMorph2023-06-081-0/+17
| | | | | | | | | | | | | | | | | | | | Previously, we were mixing the raw CPU frequency and CNTFRQ. The raw CPU frequency (1020 MHz) should've never been used as CNTPCT (whose frequency is CNTFRQ) is the only counter available.
| * | | (wall, native)_clock: Rework NativeClockMorph2023-06-085-259/+94
| | | |
| * | | x64: Deduplicate RDTSC usageMorph2023-06-085-19/+82
| | | |
* | | | Merge pull request #10777 from liamwhite/no-barrierbunnei2023-06-221-0/+1
|\ \ \ \ | |_|/ / |/| | | video_core: optionally skip barriers on feedback loops
| * | | video_core: optionally skip barriers on feedback loopsLiam2023-06-141-0/+1
| | | |
* | | | android: fs: Fix Exists / IsFile for SAF.bunnei2023-06-162-1/+31
|/ / /
* | | Merge pull request #10603 from lat9nq/tz-more-completebunnei2023-06-133-15/+85
|\ \ \ | |_|/ |/| | core,common: Implement missing time zone data/computations
| * | time_zone: Handle offset time zoneslat9nq2023-06-051-38/+26
| | | | | | | | | | | | | | | | | | | | | | | | time_zone: Remove maybe_unused time_zone: Use s64 storages time_zone: Catch by reference
| * | common: Move system time zone string detectionlat9nq2023-06-053-76/+84
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Moves it from Settings to Common::TimeZone, since this algorithm doesn't depend on the setting. It also lets us use it in other libraries. common: Various fixes time_zone: Don't double up the std::abs Too many absolute values were causing mirrored time zones to resolve as the same.
| * | settings: Always report a valid time zonelat9nq2023-06-051-2/+76
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Prevents needing to deduce the non-Switch setting in core. Instead, we deduce the meaning of this setting where the heresy is committed, in common. settings: Remove strftime usage GetTimeZoneString: Use standard features Also forces GMT on MinGW due to broken strftime.
* | | Merge pull request #10623 from german77/backupliamwhite2023-06-093-0/+3
|\ \ \ | | | | | | | | service: nfc: Add backup support
| * | | service: nfc: Add backup supportgerman772023-06-073-0/+3
| | |/ | |/|
* | | Merge pull request #10666 from liamwhite/my-framerate-is-fineliamwhite2023-06-092-0/+2
|\ \ \ | | | | | | | | nvnflinger: allow locking framerate during video playback
| * | | nvnflinger: allow locking framerate during video playbackLiam2023-06-082-0/+2
| |/ /
* / / Fix potentially uninitialized local variable warningTokarev Artem2023-06-091-1/+1
|/ /
* | Merge pull request #10508 from yuzu-emu/limebunnei2023-06-0613-6/+322
|\ \ | |/ |/| Project Lime - yuzu Android Port
| * Use yuzu as category instead of citraNarr the Reg2023-06-031-1/+1
| |
| * common: link libandroid on androidLiam2023-06-031-0/+5
| |
| * common: dynamic_library: Add ctor for existing handle.bunnei2023-06-032-0/+5
| |
| * android: Implement SAF support & migrate to SDK 31. (#4)bunnei2023-06-036-9/+236
| |
| * common: error: Fix for Android.bunnei2023-06-031-1/+2
| |
| * common: fs: Implement for Android.bunnei2023-06-031-0/+7
| |
| * common: logging: Implement Android logcat backend.bunnei2023-06-033-0/+63
| |
| * common: host_memory: Implement for Android.bunnei2023-06-031-2/+10
| |
* | host_memory: merge adjacent placeholder mappings on Linuxkkoniuszy2023-06-011-0/+22
|/ | | | | | | | | | | | Track the private anonymous placeholder mappings created by Unmap() and wherever possible, replace existing placeholders with larger ones instead of creating many small ones. This helps with the buildup of mappings in /proc/YUZU_PID/maps after a longer gaming session, improving stability without having to increase vm.max_map_count to a ridiculous value. The amount of placeholder mappings will no longer outgrow the amount of actual memfd mappings in cases of high memory fragmentation.
* externals: Update to fmt 10 and add format_as formatter for BitFieldMorph2023-05-281-0/+5
| | | | Implicit conversions are now disallowed in fmt 10. Use format_as to convert to the underlying type.
* textures: add BC1 and BC3 compressors and recompression settingLiam2023-05-232-0/+11
|
* Merge pull request #10181 from lat9nq/intel-compute-toggleliamwhite2023-05-152-0/+2
|\ | | | | configure_graphics: Add option to enable compute pipelines for Intel proprietary
| * settings: Add enable compute pipelineslat9nq2023-05-072-0/+2
| | | | | | | | | | | | For the Intel proprietary driver's deficiencies. settings: Restore compute option global state
* | Merge pull request #10132 from Kelebek1/fermi_blit2liamwhite2023-05-111-0/+9
|\ \ | | | | | | Allow Fermi blit accelerate to work without images in cache
| * | Allow Fermi blit accelerate to add src/dst to the cache if they don't exist already. Use ScratchBuffers in the software blit path.Kelebek12023-05-111-0/+9
| | |
* | | service: nfp: Allow to load with a different amiibo idgerman772023-05-101-0/+2
|/ /
* | Settings: add option to enable / disable reactive flushingFernando Sahmkow2023-05-072-0/+3
| |
* | Fix address space allocator slow path to avoid OOBKelebek12023-05-071-1/+1
|/
* Merge pull request #10125 from lat9nq/vsync-selectbunnei2023-05-072-3/+10
|\ | | | | configuration: Expose separate swap present modes
| * settings: Enable FIFO relaxedlat9nq2023-05-031-5/+6
| | | | | | | | | | | | | | Not entirely sure if we need this, but there's also no reason not to support it. settings: Give VSyncMode values
| * configuration: Expose separate swap present modeslat9nq2023-05-032-3/+9
| | | | | | | | | | | | | | | | 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.
* | Merge pull request #10167 from german77/motion_previewliamwhite2023-05-072-0/+16
|\ \ | | | | | | yuzu: Add motion preview to controller input
| * | input_common: Add property to invert an axis buttonNarr the Reg2023-05-062-1/+3
| | |
| * | yuzu: Add motion preview to controller inputNarr the Reg2023-05-051-0/+14
| | |
* | | Fix read access violationRoni Kirla2023-05-061-1/+1
|/ /
* | settings: remove pessimistic flushingLiam2023-05-042-2/+0
| |
* | Merge pull request #10124 from liamwhite/pebkacMorph2023-05-032-2/+4
|\ \ | |/ |/| settings: rename extended memory layout to unsafe, move from general to system
| * settings: rename extended memory layout to unsafe, move from general to systemLiam2023-04-302-2/+4
| |
* | vk_present_manager: Add toggle for async presentationGPUCode2023-05-012-0/+2
| |
* | common: add intrusive list typeLiam2023-04-291-0/+631
|/
* general: fixes for gcc 13Liam2023-04-032-13/+0
|
* Fixes 'Continous' typoMax Dunbar2023-03-301-3/+3
|
* telemetry: Add waitpkg instructionMorph2023-03-271-0/+1
|
* x64: Simplify RDTSC on non-MSVC compilersMorph2023-03-272-16/+10
| | | | Co-Authored-By: liamwhite <liamwhite@users.noreply.github.com>
* x64: Add MicroSleepMorph2023-03-273-0/+84
| | | | | | | MicroSleep allows the processor to pause for a "short" amount of time (in the microsecond range). This is useful for spin-waiting that does not require nanosecond precision. This uses the new TPAUSE instruction introduced on Intel's newest processors as part of the waitpkg instructions. For CPUs that do not support waitpkg instructions, this is equivalent to yield(). Co-Authored-By: liamwhite <liamwhite@users.noreply.github.com>
* x64: cpu_detect: Add detection of waitpkg instructionsMorph2023-03-272-0/+2
| | | | waitpkg introduces 3 instructions, UMONITOR, UMWAIT and TPAUSE.
* container_hash: use climitsLiam2023-03-261-0/+1
|
* common: Port boost's hash_value implementationMorph2023-03-262-0/+92
| | | | Ports a small subset of boost's hash_value implementation (<= 1.80.0).
* zstd: Use ZSTD_getFrameContentSize instead of ZSTD_getDecompressedSizeMorph2023-03-241-1/+1
|
* Merge pull request #9971 from Morph1984/qliamwhite2023-03-232-121/+211
|\ | | | | bounded_threadsafe_queue: Use simplified impl of bounded queue
| * bounded_threadsafe_queue: Refactor PopMorph2023-03-221-140/+62
| | | | | | | | Introduces PopModes to bring waiting logic into Pop, similar to Push.
| * bounded_threadsafe_queue: Add producer cv to avoid busy waitingMorph2023-03-221-17/+29
| |
| * bounded_threadsafe_queue: Deduplicate and add PushModesMorph2023-03-222-87/+85
| | | | | | | | | | | | | | Adds the PushModes Try and Wait to allow producers to specify how they want to push their data to the queue if the queue is full. If the queue is full: - Try will fail to push to the queue, returning false. Try only returns true if it successfully pushes to the queue. This may result in items not being pushed into the queue. - Wait will wait until a slot is available to push to the queue, resulting in potential for deadlock if a consumer is not running.
| * bounded_threadsafe_queue: Add TryPushMorph2023-03-221-0/+71
| |
| * logging: Make use of bounded queueMorph2023-03-221-8/+8
| |
| * bounded_threadsafe_queue: Use simplified impl of bounded queueMorph2023-03-221-112/+199
| | | | | | | | Provides a simplified SPSC, MPSC, and MPMC bounded queue implementation using mutexes.
* | Merge pull request #9964 from liamwhite/typed-addressliamwhite2023-03-232-0/+321
|\ \ | |/ |/| kernel: use KTypedAddress for addresses
| * kernel: use KTypedAddress for addressesLiam2023-03-222-0/+321
| |
* | common: string_util: Use std::string_view for UTF16ToUTF8/UTF8ToUTF16W.bunnei2023-03-192-11/+11
| |
* | common: bounded_threadsafe_queue: Use polyfill_thread.bunnei2023-03-181-2/+3
|/
* general: fix spelling mistakesLiam2023-03-126-15/+15
|
* Merge pull request #9917 from Morph1984/the-real-timeliamwhite2023-03-104-7/+72
|\ | | | | native_clock: Re-adjust the RDTSC frequency to its real frequency
| * native_clock: Wait for 10 seconds instead of 30Morph2023-03-081-3/+3
| | | | | | | | It was experimentally determined to be sufficient.
| * native_clock: Use RealTimeClock instead of SteadyClockMorph2023-03-081-4/+4
| | | | | | | | We want to synchronize RDTSC to real time.
| * steady_clock: Introduce a real time clockMorph2023-03-082-0/+36
| |
| * native_clock: Re-adjust the RDTSC frequencyMorph2023-03-082-5/+34
| | | | | | | | | | The RDTSC frequency reported by CPUID is not accurate to its true frequency. We will spawn a separate thread to calculate the true RDTSC frequency after a measurement period of 30 seconds has elapsed.
* | Merge pull request #9906 from german77/metroid2bunnei2023-03-081-1/+1
|\ \ | | | | | | input_common: Increase mouse sensitivity range
| * | input_common: Increase mouse sensitivity rangegerman772023-03-081-1/+1
| | |
* | | Merge pull request #9918 from liamwhite/fwrapvMorph2023-03-082-0/+23
|\ \ \ | | | | | | | | kernel: avoid signed overflow UB on MSVC
| * | | kernel: avoid signed overflow UB on MSVCLiam2023-03-082-0/+23
| | |/ | |/|
* | | Merge pull request #9920 from liamwhite/constexpr-bit-castMorph2023-03-081-9/+11
|\ \ \ | | | | | | | | common: make BitCast constexpr
| * | | common: make BitCast constexprLiam2023-03-081-9/+11
| |/ /
* / / input_common: Minor typo issues (#9922)Narr the Reg2023-03-081-1/+1
|/ /
* | Merge pull request #9889 from Morph1984/time-is-tickingliamwhite2023-03-078-28/+267
|\ \ | | | | | | core_timing: Reduce CPU usage on Windows
| * | native_clock: Round RDTSC frequency to the nearest 1000Morph2023-03-051-5/+12
| | |
| * | timer_resolution: Set current process to High QoSMorph2023-03-051-0/+22
| | | | | | | | | | | | Ensures that this process is treated as a high performance process by the Windows scheduler.
| * | core_timing: Use higher precision sleeps on WindowsMorph2023-03-052-0/+8
| | | | | | | | | | | | | | | | | | The precision of sleep_for and wait_for is limited to 1-1.5ms on Windows. Using SleepForOneTick() allows us to sleep for exactly one interval of the current timer resolution. This allows us to take advantage of systems that have a timer resolution of 0.5ms to reduce CPU overhead in the event loop.
| * | wall_clock: Make use of SteadyClockMorph2023-03-051-23/+11
| | |
| * | common: Implement a method to change the Windows timer resolutionMorph2023-03-053-0/+133
| | | | | | | | | | | | This utilizes undocumented NtDll functions to change the current timer resolution from the default of 1ms.
| * | common: Implement a high resolution steady clockMorph2023-03-053-0/+81
| |/ | | | | | | This implementation provides a consistent, high performance, and high resolution clock where/when std::chrono::steady_clock does not provide sufficient precision.
* / fix typo in settings.hIkko Eltociear Ashimine2023-03-061-4/+4
|/ | | Intial -> Initial
* nvnflinger: fix nameLiam2023-03-012-102/+102
|
* cmake: use correct boost imported targetsAlexandre Bouvier2023-02-281-1/+1
|
* Revert "yuzu: config: Remove player 8 and 9 from config file"Narr the Reg2023-02-261-1/+1
|
* Merge pull request #9849 from ameerj/async-astcliamwhite2023-02-263-0/+4
|\ | | | | texture_cache: Add asynchronous ASTC texture decoding
| * configuration: Add async ASTC decode settingameerj2023-02-232-0/+3
| |
| * texture_cache: Add async texture decodingameerj2023-02-221-0/+1
| |
* | yuzu: config: Remove player 8 and 9 from config fileNarr the Reg2023-02-261-1/+1
| |
* | settings: Add more input settings to the logNarr the Reg2023-02-221-0/+7
|/
* Update settings.cppm-HD2023-02-121-0/+4
| | | added missing graphical settings to RestoreGlobalState()
* input_common: Reintroduce custom pro controller supportNarr the Reg2023-02-101-0/+1
|
* Revert "Merge pull request #9718 from yuzu-emu/revert-9508-hle-ipc-buffer-span"ameerj2023-02-032-2/+3
| | | | | This reverts commit 25fc5c0e1158cb8e81cbc769b24ad84032a1fbfd, reversing changes made to af20e25081f97d55b451606c87922e2b49f0d363.
* Revert "hle_ipc: Use std::span to avoid heap allocations/copies when calling ReadBuffer"liamwhite2023-02-022-3/+2
|
* Merge pull request #9696 from german77/please_forgive_me_for_this_sinbunnei2023-02-011-0/+2
|\ | | | | input_common: Implement turbo buttons
| * input_common: Implement turbo buttonsgerman772023-02-011-0/+2
| |
* | Merge pull request #9508 from ameerj/hle-ipc-buffer-spanbunnei2023-01-302-2/+3
|\ \ | |/ |/| hle_ipc: Use std::span to avoid heap allocations/copies when calling ReadBuffer
| * fsp_srv: Use ReadBufferSpanameerj2022-12-252-2/+3
| |
* | Move to Clang Format 15Levi Behunin2023-01-3014-121/+124
| | | | | | | | | | | | Depends on https://github.com/yuzu-emu/build-environments/pull/69 clang-15 primary run
* | polyfill_thread: satisfy execution ordering requirements of stop_callbackLiam2023-01-281-37/+46
| |
* | polyfill_thread: Implement StoppableTimedWaitMorph2023-01-251-0/+36
| | | | | | | | | | | | | | StoppableTimedWait allows for a timed wait to be stopped immediately after a stop is requested. This is useful in cases where long duration thread sleeps are needed and allows for immediate joining of waiting threads after a stop is requested. Co-Authored-By: liamwhite <liamwhite@users.noreply.github.com>
* | Merge pull request #9662 from abouvier/cmake-llvmbunnei2023-01-242-5/+3
|\ \ | | | | | | cmake: prefer system llvm library
| * | cmake: prefer system llvm libraryAlexandre Bouvier2023-01-232-5/+3
| | |
* | | Merge pull request #9492 from german77/joycon_releaseliamwhite2023-01-242-27/+42
|\ \ \ | |/ / |/| | Input_common: Implement custom joycon driver v2
| * | input_common: Use DriverResult on all enginesgerman772023-01-201-26/+20
| | |
| * | input_common: Disable SDL driver with switch controllersNarr the Reg2023-01-201-0/+1
| | |
| * | input_common: Initial skeleton for custom joycon driverNarr the Reg2023-01-201-3/+23
| | |
* | | Merge pull request #9613 from Kelebek1/demangleliamwhite2023-01-223-1/+52
|\ \ \ | |/ / |/| | Add stacktrace symbol demangling
| * | Be careful of mangled out of bounds readKelebek12023-01-141-5/+9
| | |
| * | Move demangle impl to cppKelebek12023-01-143-23/+36
| | |
| * | Add stacktrace symbol demanglingKelebek12023-01-142-1/+35
| | |
* | | Update settings.hMatías Locatti2023-01-131-0/+2
| | |
* | | CPPMatías Locatti2023-01-131-0/+8
| | |
* | | 1.5X resolution scaler optionMatías Locatti2023-01-132-5/+10
|/ /
* | renderer_vulkan: disable turbo by defaultLiam2023-01-081-1/+1
| |
* | Merge pull request #9563 from german77/crash_not_allowedbunnei2023-01-071-3/+0
|\ \ | | | | | | input_common: Create an update engine
| * | input_common: Create an update engineNarr the Reg2023-01-061-3/+0
| | |
* | | Merge pull request #9552 from liamwhite/turboliamwhite2023-01-062-0/+2
|\ \ \ | | | | | | | | vulkan: implement 'turbo mode' clock booster
| * | | common: add setting for renderer clock workaroundLiam2023-01-052-0/+2
| | | |
* | | | config: Set the Vulkan driver pipeline cache option to be globalWollnashorn2023-01-051-0/+1
| | | |
* | | | config: Better wording for VK pipeline cache option and enable by defaultWollnashorn2023-01-051-1/+1
| | | |
* | | | video_core/vulkan: Added `VkPipelineCache` to store Vulkan pipelinesWollnashorn2023-01-051-0/+2
|/ / / | | | | | | | | | | | | | | | 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.
* | | yuzu-ui: Add setting for disabling macro HLEFernando Sahmkow2023-01-041-0/+1
| | |
* | | Video_core: Address feedbackFernando Sahmkow2023-01-041-3/+3
| | |
* | | MacroHLE: Final cleanup and fixes.Fernando Sahmkow2023-01-011-4/+4
| | |
* | | MacroHLE: Reduce massive calculations on sizing estimation.Fernando Sahmkow2023-01-012-0/+140
|/ /
* | host_memory: Use transparent huge pages where availableMerry2023-01-011-0/+15
| |
* | host_memory: Allocate virtual_base with MAP_NORESERVEMerry2023-01-011-2/+2
|/ | | | | Specify that we do not require swap to be reserved for this address range; allow overcommitting.
* scratch_buffer: Explicitly defing resize and resize_destructive functionsameerj2022-12-201-0/+17
| | | | | resize keeps previous data intact when the buffer grows resize_destructive destroys the previous data when the buffer grows
* tests: Add ScratchBuffer testsameerj2022-12-201-5/+9
|
* common: Add ScratchBuffer classameerj2022-12-202-0/+75
| | | | | This class creates a default initialized heap allocated buffer for cases where value initializing members during allocation or resize is redundant.
* common: add make_unique_for_overwriteameerj2022-12-202-0/+26
|
* Enable compiler optimizations and enforce x86-64-v2 on GCC/Clang (#9442)Matías Locatti2022-12-181-2/+2
| | | | | | | | | | | | | | | | | * Testing LTO (#4) * Testing LTO * clang * linux * Added the rest of Blinkhawk's optimizations * Unlikely asserts * Removing LTO from Linux builds - GCC * Removing LTO from Linux builds - Clang
* Set: Allow setting device nicknameChloe Marcec2022-12-142-0/+2
|
* Merge pull request #9398 from liamwhite/failbunnei2022-12-121-4/+7
|\ | | | | general: improve handling of system startup failure
| * general: improve handling of system startup failureLiam2022-12-061-4/+7
| |
* | Merge pull request #9415 from liamwhite/dcMai2022-12-113-88/+0
|\ \ | | | | | | memory: correct semantics of data cache management operations
| * | memory: correct semantics of data cache management operationsLiam2022-12-113-88/+0
| | |
* | | video_core: Integrate SMAALiam2022-12-081-1/+2
|/ / | | | | | | | | Co-authored-by: goldenx86 <goldenx86@users.noreply.github.com> Co-authored-by: BreadFish64 <breadfish64@users.noreply.github.com>
* | Merge pull request #9370 from liamwhite/break-unmappedmerry2022-12-061-0/+1
|\ \ | |/ |/| core: add option to break on unmapped access
| * core: add option to break on unmapped accessLiam2022-12-021-0/+1
| |
* | Merge pull request #6833 from abouvier/unbundleliamwhite2022-12-051-12/+2
|\ \ | | | | | | cmake: prefer system libraries
| * | cmake: prefer system librariesAlexandre Bouvier2022-12-041-12/+2
| | |
* | | Merge pull request #9273 from ameerj/per-game-profileliamwhite2022-12-041-0/+1
|\ \ \ | |/ / |/| | Configuration: Add per-game input profiles
| * | Configuration: Add per-game input profilesameerj2022-11-201-0/+1
| | |
* | | Merge pull request #9344 from liamwhite/nullbunnei2022-12-031-1/+2
|\ \ \ | | | | | | | | video_core: add null backend
| * | | video_core: add null backendLiam2022-11-291-1/+2
| | | |
* | | | Merge pull request #9300 from ameerj/pchliamwhite2022-12-034-2/+28
|\ \ \ \ | | | | | | | | | | CMake: Use precompiled headers to improve compile times
| * | | | CMake: Consolidate common PCH headersameerj2022-12-013-8/+16
| | | | |
| * | | | string_util: Fix Mingw compile errorameerj2022-12-011-2/+2
| | | | | | | | | | | | | | | | | | | | Co-Authored-By: liamwhite <9658600+liamwhite@users.noreply.github.com>
| * | | | CMake: Use precompiled headersameerj2022-11-302-0/+18
| | |_|/ | |/| |
* | | | Merge pull request #9289 from liamwhite/fruit-companyliamwhite2022-12-039-4/+865
|\ \ \ \ | |/ / / |/| | | general: fix compile for Apple Clang
| * | | general: fix compile for Apple ClangLiam2022-11-239-4/+865
| | | |
* | | | Merge pull request #9339 from lioncash/cacheheaderMorph2022-11-282-4/+3
|\ \ \ \ | | | | | | | | | | common/cache_management: Amend header includes
| * | | | common/cache_management: Amend header includesLioncash2022-11-282-4/+3
| | |/ / | |/| | | | | | | | | | | | | | | | | | Narrows the include in the header to <cstddef>, since that's what houses size_t's definition, meanwhile the <cstdint> include can be moved into the cpp file.
* | | | common/input: Add helpers functions for creating input and output devicesLioncash2022-11-281-0/+34
| | | | | | | | | | | | | | | | | | | | Avoids the redundancy of needing to explictly specify the common namespace and the type.
* | | | common/input: Pass ParamPackage by const reference in CreateDeviceLioncash2022-11-281-3/+3
|/ / / | | | | | | | | | | | | This was previously being passed by value, which was unnecessary and created more allocations than necessary.
* | | Merge pull request #9276 from goldenx86/fsrSliderbunnei2022-11-272-0/+3
|\ \ \ | | | | | | | | FSR Sharpening Slider
| * | | settings: Reset FSR sharpening global state with the otherslat9nq2022-11-261-0/+1
| | | |
| * | | FSR Sharpening Slider part 1 - only a global sliderMatías Locatti2022-11-242-0/+2
| |/ /
* | | OopsMatías Locatti2022-11-261-1/+1
| | |
* | | Replace GLSL as the default OpenGL shader backendMatías Locatti2022-11-261-1/+1
|/ / | | | | GLASM is not very compatible with the latest games, and too many people have the special superpower to break their Vulkan support.
* | Merge pull request #9234 from liamwhite/data-cash-moneybunnei2022-11-183-0/+89
|\ \ | | | | | | kernel: implement data cache management operations
| * | common: add cache management functionsLiam2022-11-123-0/+89
| | |
* | | Merge pull request #9229 from Docteh/achy_breaky_heartMorph2022-11-181-0/+1
|\ \ \ | |_|/ |/| | Add break for default cases
| * | Add break for default casesKyle Kienapfel2022-11-141-0/+1
| |/ | | | | | | | | | | | | | | | | | | | | Visual Studio has an option to search all files in a solution, so I did a search in there for "default:" looking for any missing break statements. I've left out default statements that return something, and that throw something, even if via ThrowInvalidType. UNREACHABLE leads towards throw R_THROW macro leads towards a return
* / Add CPU core count to log filesMatías Locatti2022-11-122-3/+60
|/
* Merge pull request #9198 from liamwhite/arm64bunnei2022-11-112-1/+9
|\ | | | | Initial ARM64 support
| * Initial ARM64 supportLiam2022-11-092-1/+9
| |
* | Add break statement in default casesEnrico Mancuso2022-11-091-0/+1
|/ | | | | | | According to the contributing page (https://github.com/yuzu-emu/yuzu/wiki/Contributing) the default cases should have a break statement default: // Yes, even break for the last case break;
* concepts: Use the std::contiguous_iterator conceptMorph2022-10-262-19/+9
| | | | | | This also covers std::span, which does not have a const iterator. Also renames IsSTLContainer to IsContiguousContainer to explicitly convey its semantics.
* Merge pull request #9107 from german77/gidoly_rulesliamwhite2022-10-251-1/+4
|\ | | | | input_common: cache vibration tests
| * input_common: cache vibration testsgerman772022-10-211-1/+4
| |
* | CMakeLists: Disable C4100 and C4324Morph2022-10-221-9/+0
| | | | | | | | Disabling C4100 is similar to -Wno-unused-parameter
* | CMakeLists: Remove redundant warningsMorph2022-10-221-2/+0
| | | | | | | | These warnings are already included in /W3.
* | CMakeLists: Treat MSVC warnings as errorsMorph2022-10-221-1/+0
| |
* | general: Enforce C4800 everywhere except in video_coreMorph2022-10-222-4/+17
| |
* | CMakeLists: Remove all redundant warningsMorph2022-10-221-2/+0
|/ | | | These are already explicitly or implicitly set in src/CMakeLists.txt
* fixed_point: Mark default constructor as constexprLioncash2022-10-181-2/+2
| | | | | | | | | | | | | | Ensures that a fixed-point value is always initialized This likely also fixes several cases of uninitialized values being operated on, since we have multiple areas in the codebase where the default constructor is being used like: Common::FixedPoint<50, 14> current_sample{}; and is then followed up with an arithmetic operation like += or something else, which operates directly on FixedPoint's internal data member, which would previously be uninitialized.
* fixed_point: Mark copy/move assignment operators and constructors as constexprLioncash2022-10-181-3/+6
| | | | | Given these are just moving a raw value around, these can sensibly be made constexpr to make the interface more useful.
* fixed_point: Mark std::swap and move constructor as noexceptLioncash2022-10-181-2/+2
| | | | | These shouldn't throw and can influence how some standard algorithms will work.
* fixed_point: Mark relevant member function [[nodiscard]]Lioncash2022-10-181-14/+14
| | | | | Marks member functions as discard, where ignoring the return value would be indicative of a bug or dead code.
* fixed_point: Make to_uint() non-constLioncash2022-10-181-2/+2
| | | | | | | | | | | This calls round_up(), which is a non-const member function, so if a fixed-point instantiation ever calls to_uint(), it'll result in a compiler error. This allows the member function to work. While we're at it, we can actually mark to_long_floor() as const, since it's not modifying any member state.
* fixed_point: Use defaulted comparisonsLioncash2022-10-181-23/+1
| | | | Collapses all of the comparison functions down to a single line.
* fixed_point: Use variable templates and concepts where applicableLioncash2022-10-182-72/+56
| | | | | Makes a few things a little less noisy and removes the need for SFINAE in quite a few functions.
* Merge pull request #9054 from Docteh/just_lz4bunnei2022-10-181-1/+5
|\ | | | | CMake: Try add_library "lz4" if "lz4::lz4" is unavailable
| * CMake: Try add library "LZ4::lz4_shared" if "lz4::lz4" is unavailableKyle Kienapfel2022-10-141-1/+5
| | | | | | | | | | | | | | | | | | | | | | | | Right now this looks like a distro specific problem, but we'll have to see. Over on Gentoo: with lz4 1.9.3 there is a lz4::lz4 library target, with 1.9.4 it's no longer mentioned in the cmake files provided by the package. (/usr/lib64/cmake/lz4) arch and openSUSE have lz4 1.9.4 available so I checked there, they only have .pc files for pkg-config, so asking for "lz4::lz4" works as usual MSVC does require "lz4::lz4" to be asked for
* | fixed_point: Replace CONSTEXPR14 with constexprMorph2022-10-171-50/+42
| | | | | | | | As we require the latest C++ standards to compile yuzu, checking for C++14 constexpr is not needed.
* | general: Add missing pragma onceMorph2022-10-171-4/+1
|/
* settings: Update aspect_ratio rangeMorph2022-10-131-1/+1
| | | | Since 16:10 was added, the maximum value is now 4.
* input_common: have an unique vector in callback statusgerman772022-10-091-2/+3
|
* General: address feedbackFernando Sahmkow2022-10-061-4/+4
|
* general: rework usages of UNREACHABLE macroLiam2022-10-061-15/+16
|
* address_space: Rename va_start to virt_startMorph2022-10-062-5/+5
| | | | Avoids conflicting with the va_start macro
* address_space: Address feedbackMorph2022-10-062-191/+233
|
* general: Format licenses as per SPDX guidelinesMorph2022-10-066-14/+13
|
* General: Fix clang format.Fernando Sahmkow2022-10-061-2/+2
|
* Common: Fix variable shadowing.Fernando Sahmkow2022-10-061-5/+5
|
* General: Fix compilation for GCCLiam White2022-10-065-17/+14
|
* DMA & InlineToMemory Engines Rework.bunnei2022-10-061-0/+8
|
* MemoryManager: initial multi paging system implementation.Fernando Sahmkow2022-10-061-0/+3
|
* Refactor VideoCore to use AS sepparate from Channel.Fernando Sahmkow2022-10-061-0/+7
|
* NVDRV: Remake ASGPUFernando Sahmkow2022-10-064-0/+485
|
* VideoCore: Update MemoryManagerFernando Sahmkow2022-10-062-4/+4
|
* Common: implement MultiLevelPageTable.Fernando Sahmkow2022-10-064-0/+171
|
* NVDRV: Refactor and add new NvMap.Fernando Sahmkow2022-10-061-5/+8
|
* common: remove "yuzu:" prefix from thread namesLiam2022-10-041-1/+1
|
* service: nfp: address commentsgerman772022-10-021-1/+1
|
* input_common: Create virtual amiibo drivergerman772022-10-021-0/+27
|
* Merge pull request #8920 from abouvier/cmake-gitbunnei2022-09-251-27/+2
|\ | | | | cmake: fix git detection
| * cmake: fix git detectionAlexandre Bouvier2022-09-181-27/+2
| |
* | yuzu qt: Add option to disable startup Vulkan checklat9nq2022-09-191-0/+1
|/ | | | | | | 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.
* Merge pull request #8650 from Kelebek1/vsyncbunnei2022-09-171-0/+4
|\ | | | | [Coretiming/NVNFlinger] Improve multi-core vsync timing, and core timing accuracy
| * Make coretiming waiting more accurateKelebek12022-08-021-0/+4
| |
* | Merge pull request #8649 from lat9nq/common-position-independentMorph2022-09-161-3/+3
|\ \ | | | | | | common: Use PROJECT_SOURCE_DIR to find CMakeModules
| * | common: Use PROJECT_SOURCE_DIR to find CMakeModuleslat9nq2022-08-021-3/+3
| | | | | | | | | | | | Fixes CMake configuration when yuzu is a submodule of another project.
* | | Merge pull request #8682 from lat9nq/dumpyMorph2022-09-161-0/+1
|\ \ \ | | | | | | | | yuzu qt: Add option to create Windows crash dumps
| * | | yuzu: Use a debugger to generate minidumpslat9nq2022-09-051-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | yuzu: Move mini_dump out of core startup_checks: Better exception handling
* | | | common: do not link to xbyak on non-amd64 architecturesliushuyu2022-09-141-1/+2
| | | |
* | | | Merge pull request #8864 from german77/toggle_analogbunnei2022-09-101-0/+5
|\ \ \ \ | | | | | | | | | | input_common: Add support for analog toggle
| * | | | input_common: Add support for analog toggleNarr the Reg2022-09-061-0/+5
| | | | |
* | | | | Merge pull request #8819 from liamwhite/cash-moneylat9nq2022-09-092-0/+2
|\ \ \ \ \ | |_|/ / / |/| | | | video_core: add option for pessimistic flushing
| * | | | video_core: add option for pessimistic flushingLiam2022-08-252-0/+2
| | | | |
* | | | | Merge pull request #8822 from FearlessTobi/multiplayer-fixesbunnei2022-09-021-0/+1
|\ \ \ \ \ | |_|/ / / |/| | | | network: Fixes and improvements to the room feature
| * | | | yuzu: Display current game version in multiplayer roomFearlessTobi2022-08-271-0/+1
| |/ / / | | | | | | | | | | | | Makes it easier for users to recognize connection errors caused by different game versions.
* / / / Silence std::aligned_storage warnings as it's deprecated in C++23,Kelebek12022-09-011-1/+1
|/ / / | | | | | | | | | replace it with alignas() and a C array
* | | Merge pull request #8784 from Docteh/nosnekliamwhite2022-08-211-9/+0
|\ \ \ | | | | | | | | code: dodge PAGE_SIZE #define
| * | | code: dodge PAGE_SIZE #defineKyle Kienapfel2022-08-201-9/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Some header files, specifically for OSX and Musl libc define PAGE_SIZE to be a number This is great except in yuzu we're using PAGE_SIZE as a variable Specific example `static constexpr u64 PAGE_SIZE = u64(1) << PAGE_BITS;` PAGE_SIZE PAGE_BITS PAGE_MASK are all similar variables. Simply deleted the underscores, and then added YUZU_ prefix Might be worth noting that there are multiple uses in different classes/namespaces This list may not be exhaustive Core::Memory 12 bits (4096) QueryCacheBase 12 bits ShaderCache 14 bits (16384) TextureCache 20 bits (1048576, or 1MB) Fixes #8779
* | | | common: remove unneeded x86-specific headerliushuyu2022-08-161-1/+0
|/ / /
* | | Make copyright headers SPDX-compliantFearlessTobi2022-08-151-3/+2
| | |
* | | core, network: Add ability to proxy socket packetsFearlessTobi2022-08-153-7/+56
| | |
* | | Allow audio volume up to 200%Kelebek12022-08-122-2/+2
| |/ |/|
* | common: move forwarded value into SPSCQueueLiam2022-07-291-1/+1
| |
* | Revert Coretiming PRs 8531 and 7454 (#8591)Maide2022-07-282-6/+1
| |
* | chore: make yuzu REUSE compliantAndrea Pappacoda2022-07-2731-106/+68
|/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | [REUSE] is a specification that aims at making file copyright information consistent, so that it can be both human and machine readable. It basically requires that all files have a header containing copyright and licensing information. When this isn't possible, like when dealing with binary assets, generated files or embedded third-party dependencies, it is permitted to insert copyright information in the `.reuse/dep5` file. Oh, and it also requires that all the licenses used in the project are present in the `LICENSES` folder, that's why the diff is so huge. This can be done automatically with `reuse download --all`. The `reuse` tool also contains a handy subcommand that analyzes the project and tells whether or not the project is (still) compliant, `reuse lint`. Following REUSE has a few advantages over the current approach: - Copyright information is easy to access for users / downstream - Files like `dist/license.md` do not need to exist anymore, as `.reuse/dep5` is used instead - `reuse lint` makes it easy to ensure that copyright information of files like binary assets / images is always accurate and up to date To add copyright information of files that didn't have it I looked up who committed what and when, for each file. As yuzu contributors do not have to sign a CLA or similar I couldn't assume that copyright ownership was of the "yuzu Emulator Project", so I used the name and/or email of the commit author instead. [REUSE]: https://reuse.software Follow-up to 01cf05bc75b1e47beb08937439f3ed9339e7b254
* network, yuzu: Make copyright headers SPDX-compliantFearlessTobi2022-07-251-3/+2
|
* network, yuzu: Improve variable naming and style consistencyFearlessTobi2022-07-251-1/+1
|
* common: multiplayer: Use GameInfo typegerman772022-07-251-19/+16
|
* Address second part of review commentsFearlessTobi2022-07-251-21/+30
|
* common, core: fix -Wmissing-field-initializersFearlessTobi2022-07-251-2/+2
|
* yuzu: Add ui files for multiplayer roomsFearlessTobi2022-07-252-0/+139
|
* yuzu: Add webcam support and rebase to latest masterNarr the Reg2022-07-241-2/+2
|
* input_common: Add camera drivergerman772022-07-242-1/+31
|
* Merge pull request #8545 from Kelebek1/Audioliamwhite2022-07-236-2/+2447
|\ | | | | Project Andio
| * Project AndioKelebek12022-07-226-2/+2447
| |
* | ci,CMake: Drop Conan support for vcpkglat9nq2022-07-231-2/+3
|/ | | | | | | | | | | | | | | | | | Between packages breaking, Conan always being a moving target for minimum required CMake support, and now their moves to Conan 2.0 causing existing packages to break, I suppose this was a long time coming. vcpkg isn't without its drawbacks, but at the moment it seems easier on the project to use for external packages. Mostly removes the logic for Conan from the root CMakeLists file, leaving basic find_package()'s in its place. Sets only the find_package()'s that require CONFIG mode as necessary. clang and linux CI now use the vcpkg toolchain file configured in the Docker container when possible. mingw CI turns off YUZU_TESTS because there's no way on the container to run Windows executables on a Linux host anyway, and it's not easy to get Catch2 there.
* Merge pull request #8508 from yuzu-emu/mc-speed-limitbunnei2022-07-172-3/+0
|\ | | | | hle: service: nvflinger: Factor speed limit into frame time calculation.
| * yuzu: settings: Remove framerate cap and merge unlocked framerate setting.bunnei2022-07-172-3/+0
| | | | | | | | - These were all somewhat redundant.
* | Merge pull request #8543 from BreadFish64/use_tsc_from_capsbunnei2022-07-173-1/+22
|\ \ | |/ |/| common/x64: Use TSC clock rate from CPUID when available
| * guard against div-by-zeroMarshall Mohror2022-07-061-2/+5
| |
| * common/x64: Use TSC clock rate from CPUID when availableMarshall Mohror2022-07-063-1/+19
| | | | | | | | The current method used to estimate the TSC is fairly accurate - within a few kHz - but the exact value can be extracted from CPUID if available.
* | Merge pull request #8593 from merryhime/ranged-setting-Tbunnei2022-07-171-34/+33
|\ \ | | | | | | common/setting: Make ranged a property of the type
| * | common/setting: Make ranged a property of the typemerry2022-07-151-34/+33
| | | | | | | | | | | | | | | - 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
* | | Merge pull request #8511 from german77/hbmenubunnei2022-07-162-2/+2
|\ \ \ | | | | | | | | service: ptm: Add TS, nifm: Stub GetInternetConnectionStatus
| * | | service: ptm: Rewrite PSM and add TSgerman772022-06-292-2/+2
| | | |
* | | | Merge pull request #8560 from liamwhite/bitfield-may-aliasbunnei2022-07-161-0/+9
|\ \ \ \ | |_|/ / |/| | | common: fix bitfield aliasing on GCC/Clang
| * | | common: fix bitfield aliasing on GCC/ClangLiam2022-07-101-0/+9
| | | |
* | | | common_funcs: Mark padding as [[maybe_unused]]Merry2022-07-151-4/+6
|/ / /
* | | Merge pull request #8522 from lat9nq/consolidate-settingsMorph2022-07-071-270/+182
|\ \ \ | |_|/ |/| | settings: Consolidate RangedSetting's with regular ones
| * | settings: Consolidate RangedSetting's with regular oneslat9nq2022-06-301-270/+182
| |/ | | | | | | | | | | | | | | | | | | | | | | 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.
* | common/fiber: make fibers easier to useLiam2022-07-022-20/+8
| |
* | Adress Feedback.Fernando Sahmkow2022-06-301-1/+0
| |
* | Native clock: Use atomic ops as before.Fernando Sahmkow2022-06-282-24/+29
| |
* | Native Clock: remove inaccuracy mask.Fernando Sahmkow2022-06-282-6/+1
| |
* | Core: Fix tests.Fernando Sahmkow2022-06-282-2/+2
| |
* | Core/Common: Corrections to core timing and add critical priority.Fernando Sahmkow2022-06-282-4/+10
| |
* | Common: improve native clock.Fernando Sahmkow2022-06-283-29/+29
|/
* Merge pull request #8432 from liamwhite/watchpointbunnei2022-06-221-0/+3
|\ | | | | core/debugger: memory breakpoint support
| * core/debugger: memory breakpoint supportLiam2022-06-161-0/+3
| |
* | Merge pull request #8472 from german77/taceMorph2022-06-161-3/+3
|\ \ | |/ |/| common: param_package: Demote DEBUG to TRACE for getters
| * common: param_package: Demote DEBUG to TRACE for gettersNarr the Reg2022-06-161-3/+3
| |
* | Merge pull request #8460 from Morph1984/bounded-qliamwhite2022-06-161-86/+73
|\ \ | | | | | | bounded_threadsafe_queue: Use constexpr capacity and mask
| * | bounded_threadsafe_queue: Use constexpr capacity and maskMorph2022-06-151-86/+73
| | | | | | | | | | | | | | | | | | | | | | | | While this is the primary change, we also: - Remove the mpsc namespace and rename Queue to MPSCQueue - Make Slot a private struct within MPSCQueue - Remove the AlignedAllocator template argument, as we use std::allocator - Replace instances of mask + 1 with capacity, and mask + 2 with capacity + 1
* | | Merge pull request #8383 from Morph1984/shadow-of-the-pastMai2022-06-151-2/+2
|\ \ \ | |_|/ |/| | yuzu: Make variable shadowing a compile-time error
| * | common: Eliminate variable shadowingMorph2022-06-141-2/+2
| |/ | | | | | | GCC/Clang treats variables within lambdas as potentially shadowing those outside the lambda, despite them not being captured inside the lambda's capture list.
* | common/assert: rework ASSERT handling to avoid std::function usageLiam2022-06-142-35/+20
| |
* | common/assert: add unlikelyLiam2022-06-141-1/+1
| |
* | common: Don't test ASSERT conditions inlineLiam2022-06-142-32/+36
| |
* | common: Change semantics of UNREACHABLE to unconditionally crashLiam2022-06-143-3/+18
|/
* Merge pull request #8413 from behunin/bounded-queuebunnei2022-06-111-0/+180
|\ | | | | gpu_thread: Move to bounded queue
| * gpu_thread: Move to bounded queueLevi Behunin2022-06-031-0/+180
| |
* | Merge pull request #8393 from lat9nq/default-vulkanbunnei2022-06-111-1/+1
|\ \ | | | | | | general: Set renderer_backend's default to Vulkan
| * | settings: Set Vulkan to the default renderer backendlat9nq2022-05-301-1/+1
| | |
* | | common: consolidate ELF structure definitionsLiam2022-06-052-0/+334
| |/ |/|
* | core/debugger: Implement new GDB stub debuggerLiam2022-06-012-1/+2
|/
* Merge pull request #8374 from german77/asnycvibrationsbunnei2022-05-281-0/+1
|\ | | | | input_common: Make vibration request async
| * input_common: Make vibration request asyncNarr the Reg2022-05-231-0/+1
| |
* | path_util: Resolve `-Wpointer-bool-conversion` warninglat9nq2022-05-271-3/+1
|/ | | | | | | | | Clang (rightfully) warns that we are checking for the existence of pointer to something just allocated on the stack, which is always true. Instead, check whether GetModuleFileNameW failed. Co-authored-by: Mai M <mathew1800@gmail.com>
* string_util: Add U16StringFromBufferlat9nq2022-05-162-0/+6
| | | | | | Qt's QString::toStdU16String doesn't work when compiling against the latest libstdc++, at least when using Clang. This function effectively does the same thing as the aforementioned one.
* VideoCore: Add option to dump the macros.Fernando Sahmkow2022-05-091-0/+1
| | | | Co-Authored-By: liamwhite <liamwhite@users.noreply.github.com>
* Merge pull request #8280 from Tachi107/spdx-fixupMai M2022-04-2919-172/+59
|\ | | | | chore: add missing SPDX tags
| * chore: add missing SPDX tagsAndrea Pappacoda2022-04-2819-172/+59
| | | | | | | | Follow-up to 99ceb03a1cfcf35968cab589ea188a8c406cda52
* | GCC 12 fixesLiam2022-04-281-1/+1
|/
* general: Convert source file copyright comments over to SPDXMorph2022-04-2367-211/+136
| | | | | 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.
* yuzu: Add custom ringcon configurationgerman772022-04-162-0/+4
|
* hle: kernel: Use std::mutex instead of spin locks for most kernel locking.bunnei2022-04-121-2/+3
|
* common: Replace lock_guard with scoped_lockMerry2022-04-073-5/+5
|
* Merge pull request #8143 from merryhime/rdtscFernando S2022-04-071-14/+35
|\ | | | | native_clock: Use lfence with rdtsc
| * native_clock: Internal linkage for FencedRDTSCMerry2022-04-031-2/+4
| | | | | | | | __forceinline required on MSVC for function to be inlined
| * native_clock: Use lfence with rdtscmerry2022-04-031-14/+33
| |
* | service: jit: stub JIT serviceLiam2022-04-072-0/+2
| |
* | Merge pull request #8089 from merryhime/paranoiabunnei2022-04-041-1/+2
|\ \ | |/ |/| configuration: Add Paranoid CPU accuracy level
| * configuration: Add Paranoid CPU accuracy levelmerry2022-03-261-1/+2
| | | | | | | | Disables most optimizations for the paranoid.
* | native_clock: Use writeback from CAS to avoid double-loadingmerry2022-04-021-4/+6
| |
* | atomic_ops: Implement AtomicCompareAndSwap with writebackmerry2022-04-021-0/+73
| |
* | native_clock: Use AtomicLoad128Merry2022-04-021-2/+2
| |
* | atomic_ops: Implement AtomicLoad128Merry2022-04-021-0/+17
|/
* hle: nvflinger: Merge Rect with Common::Rectangle.bunnei2022-03-251-5/+45
|
* common: logging: Add a logger for NVFlinger.bunnei2022-03-252-0/+2
|
* general: Fix clang/gcc build errorsameerj2022-03-207-0/+9
|
* common: Reduce unused includesameerj2022-03-1925-32/+1
|
* common: Reduce unused includesameerj2022-03-198-12/+0
|
* common: tree: Various updates.bunnei2022-03-151-284/+341
|
* common: intrusive_red_black_tree: Various updates.bunnei2022-03-151-181/+210
|
* cpu_detect: Add additional x86 flags and telemetryWunkolo2022-03-113-27/+84
| | | | | | | | | | | Adds detection of additional CPU flags to cpu_detect and additions to telemetry output. This is not exhaustive but guided by features that [dynarmic utilizes](https://github.com/merryhime/dynarmic/blob/bcfe377aaa5138af740e90af5be7a7dff7b62a52/src/dynarmic/backend/x64/host_feature.h#L12-L33) as well as features that are currently utilized but not reported to telemetry(invariant_tsc). This is intended to guide future optimizations. AVX512 in particular is broken up into its individual subsets and some other processor features such as [sha](https://en.wikipedia.org/wiki/Intel_SHA_extensions) and [gfni](https://en.wikipedia.org/wiki/AVX-512#GFNI) are added to have some forward-facing data-points. What used to be a single `CPU_Extension_x64_AVX512` telemetry field is also broken up into individual `CPU_Extension_x64_AVX512{F,VL,CD,...}` fields.
* common/telemetry: Update `AddField` name type to `string_view`Wunkolo2022-03-111-3/+4
| | | | | Non-owning `string_view` is flexable and avoids some of the many redundant copies made over `std::string`
* backend: Ensure backend_thread is destructed before message_queueMerry2022-03-101-1/+1
| | | | Ensures that stop_token signals that stop has been requested before destruction of conditional_variable
* cpu_detect: Revert `__cpuid{ex}` array-type argumentWunkolo2022-03-101-6/+6
| | | | Restores compatibility with MSVC's `__cpuid` intrinsic.
* cpu_detect: Add missing `lzcnt` detectionWunkolo2022-03-091-0/+1
|
* cpu_detect: Refactor cpu/manufacturer identificationWunkolo2022-03-092-24/+38
| | | | | | | Set the zero-enum value to Unknown Move the Manufacterer enum into the CPUCaps structure namespace Add "ParseManufacturer" utility-function Fix cpu/brand string buffer sizes(!)
* cpu_detect: Update array-types to `span` and `array`Wunkolo2022-03-091-11/+13
| | | | Update some uses of `int` into some more explicitly sized types as well
* cpu_detect: Utilize `Bit<N>` utility functionWunkolo2022-03-091-32/+20
|
* cpu_detect: Compact capability fieldsWunkolo2022-03-091-20/+21
| | | | | As this structure gets more explicit, bools can be bitfields and small enums can use smaller types for their span of values.
* bit_util: Add `bit` utility functionWunkolo2022-03-091-0/+7
| | | | Extracts a singular bit, as a bool, from the specified compile-time index.
* Merge pull request #7973 from Morph1984/debug-crashFernando S2022-03-061-2/+2
|\ | | | | host_memory: Fix fastmem crashes in debug builds
| * host_memory: Fix fastmem crashes in debug buildsMorph2022-03-031-2/+2
| | | | | | | | | | | | It is possible for virtual_offset to not be 0 when the iterator is at the beginning, and thus, std::prev(it) may be evaluated, leading to a crash in debug mode. Co-Authored-By: Fernando S. <1731197+FernandoS27@users.noreply.github.com>
* | Merge pull request #7935 from Wunkolo/logging-join-fixbunnei2022-03-031-13/+5
|\ \ | |/ |/| logging: Convert `backend_thread` into an `std::jthread`
| * logging: Convert `backend_thread` into an `std::jthread`Wunkolo2022-02-281-13/+5
| | | | | | | | | | | | Was getting an unhandled `invalid_argument` [exception](https://en.cppreference.com/w/cpp/thread/thread/join) during shutdown on my linux machine. This removes the need for a `StopBackendThread` function entirely since `jthread` [automatically handles both checking if the thread is joinable and stopping the token before attempting to join](https://en.cppreference.com/w/cpp/thread/jthread/~jthread) in the case that `StartBackendThread` was never called.
* | dynarmic: Inline exclusive memory accessesmerry2022-02-272-0/+4
|/ | | | | | | | | | | | | | | 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
* settings: Add a new "use_extended_memory_layout" setting.bunnei2022-02-212-0/+2
| | | | - This will be used to enable emulation of a larger memory arrangement.
* fixup! core: hle: kernel: KPageTable: Improve Un/MapPhysicalMemory.bunnei2022-02-192-16/+16
|
* core: hle: kernel: KPageTable: Improve Un/MapPhysicalMemory.bunnei2022-02-192-6/+76
| | | | - Improves the implementations of MapPhysicalMemory and UnmapPhysicalMemory to more closely reflect latest HOS.
* common: Add NullVisitor default constructorWunkolo2022-02-171-0/+3
| | | | | | | | Addresses https://github.com/yuzu-emu/yuzu/issues/7881 to fix linux builds. `YUZU_NON_COPYABLE` deletes the `T(const T&)` constructor which will cause the implicitly defined default ctor/dtor to no-longer generate.
* Merge pull request #7878 from german77/mnppbunnei2022-02-172-0/+2
|\ | | | | service/mnpp: Stub mnpp_app
| * service/mnpp: Stub mnpp_appNarr the Reg2022-02-112-0/+2
| | | | | | | | Used in Super Nintendo Entertainment System™ - Nintendo Switch Online
* | common: fs_util: Add buffer to string view utility functionsMorph2022-02-142-0/+26
| | | | | | | | These functions allow to construct a string view from an input buffer, avoiding the copy done by the non string view counterparts. However, callers must be cognizant of the viewed buffer's lifetime to avoid a use-after-free.
* | common: uuid: Use sizeof(u64) instead of 8 in Hash()Morph2022-02-101-5/+5
| |
* | common: uuid: Return an invalid UUID if conversion from string failsMorph2022-02-051-14/+39
| | | | | | | | | | The string constructor of UUID states: Should the input string not meet the above requirements, an assert will be triggered and an invalid UUID is set instead.
* | general: Rename NewUUID to UUID, and remove the previous UUID implMorph2022-02-056-434/+256
| | | | | | | | This completes the removal of the old UUID implementation.
* | common: uuid: Add AsU128()Morph2022-02-052-0/+9
| | | | | | | | This copies the internal bytes of the UUID into a u128 for backwards compatibility. This should not be used.
* | input/hid: Migrate to the new UUID implementationMorph2022-02-051-4/+4
| |
* | common: Implement NewUUIDMorph2022-02-053-0/+322
|/ | | | | This is a fixed and revised implementation of UUID that uses an array of bytes as its internal representation of a UUID instead of a u128 (which was an array of 2 u64s). In addition to this, the generation of RFC 4122 Version 4 compliant UUIDs is also implemented.
* common_types: Remove NonCopyable structLioncash2022-02-021-10/+0
| | | | | Now that we're moved over to the YUZU_ defines, we can get rid of this struct.
* general: Replace NonCopyable struct with equivalentsLioncash2022-02-021-9/+17
|
* Merge pull request #7807 from german77/moar-buttonsbunnei2022-02-021-0/+2
|\ | | | | input_common: Add home and hard touch press buttons to UDP controllers
| * input_common: Add home and hard touch press buttons to UDP controllersgerman772022-01-301-0/+2
| |
* | Merge pull request #7809 from Morph1984/clock-constantsbunnei2022-02-023-11/+19
|\ \ | | | | | | common: wall_clock: Utilize constants for ms, us, and ns ratios
| * | common: wall_clock: Check precision against the emulated CPU and CNTFRQMorph2022-01-302-8/+12
| | | | | | | | | | | | In addition to requiring nanosecond precision, using the native clock requires that the hardware TSC has a precision greater than the emulated CPU and its clock counter.
| * | common: wall_clock: Utilize constants for ms, us, and ns ratiosMorph2022-01-303-5/+9
| |/
* / common/file: Remove [[nodiscard]] from Open()Lioncash2022-02-011-3/+2
|/ | | | | Since this has a void return value, there's nothing that can actually be used.
* Merge pull request #7791 from german77/wall_clockMorph2022-01-291-1/+3
|\ | | | | wall_clock: Use standard wall clock if rtsc frequency is too low
| * wall_clock: use standard wall clock if rtsc frequency is too lowgerman772022-01-281-1/+3
| |
* | common/xbyak_api: Make BuildRegSet() constexprLioncash2022-01-261-8/+8
| | | | | | | | | | This allows us to eliminate any static constructors that would have been emitted due to the function not being constexpr.
* | yuzu: Add setting to disable controller navigationgerman772022-01-241-0/+1
|/
* Merge pull request #7695 from Morph1984/is-pow2bunnei2022-01-211-0/+6
|\ | | | | common: bit_util: Add IsPow2 helper function
| * common: bit_util: Add IsPow2 helper functionMorph2022-01-111-0/+6
| | | | | | | | Makes use of std::has_single_bit() to check whether the value is a power of 2.
* | Merge pull request #7725 from german77/mouse_in_motionbunnei2022-01-191-0/+7
|\ \ | | | | | | input_common: Reintroduce motion from mouse and use button names
| * | input_common: Reintroduce motion from mouse and use button namesgerman772022-01-171-0/+7
| |/
* / common: fiber: YieldTo: Avoid hard crash on nullptr previous_fiber.bunnei2022-01-151-1/+4
|/ | | | - When the emulator crashes to desktop below, we don't even get this captured in a log, making such issues harder to debug.
* logging/log.h: move enum class formatter to a separate file ...liushuyu2022-01-103-15/+25
| | | | ... to common/logging/formatter.h
* logging/log: use `underlying_type` instead of hardcoding typesliushuyu2022-01-091-2/+4
|
* logging: adapt to changes in fmt 8.1liushuyu2022-01-081-1/+14
|
* ShaderDecompiler: Add a debug option to dump the game's shaders.Fernando Sahmkow2022-01-041-0/+1
|
* Allow overriding SCM version infoAndrew Udvare2021-12-211-0/+5
| | | | | | If the build is from a non-repository, these functions will return empty. This patch allows using defines to CMake to set version info such as -DGIT_BRANCH=master.
* Merge pull request #7558 from Morph1984/unused-cpu-family-modelMai M2021-12-151-12/+0
|\ | | | | common/cpu_detect: Remove CPU family and model
| * common/cpu_detect: Remove CPU family and modelMorph2021-12-141-12/+0
| | | | | | | | We currently do not make use of these fields, remove them for now.
* | common/input: Avoid numerous large copies of CallbackStatusLioncash2021-12-141-2/+2
| | | | | | | | | | | | | | | | | | CallbackStatus instances aren't the cheapest things to copy around (relative to everything else), given that they're currently 520 bytes in size and are currently copied numerous times when callbacks are invoked. Instead, we can pass the status by const reference to avoid all the copying.
* | common/input: Remove unnecessary returnsLioncash2021-12-141-6/+2
| | | | | | | | Given these return void, these can be omitted.
* | input_engine: Pass LedStatus by const referenceLioncash2021-12-131-1/+1
| | | | | | | | Avoids copies where reasonably applicable
* | input_engine: Pass VibrationStatus by const reference in SetRumble()Lioncash2021-12-131-4/+2
|/ | | | Avoids creating copies of the struct where not necessary.
* Merge pull request #7525 from german77/notifabunnei2021-12-082-0/+2
|\ | | | | service/notif: Add notif:a and stub ListAlarmSettings, Initialize
| * service/notif: Add notif:a and stub ListAlarmSettings,Initializegerman772021-12-062-0/+2
| | | | | | | | Used by ring fit adventure 1.2.0
* | general: Add missing copyright noticesameerj2021-12-051-0/+4
|/
* native_clock: Wait for less time in EstimateRDTSCFrequencyMorph2021-12-041-18/+18
| | | | | In my testing, waiting for 200ms provided the same level of precision as the previous implementation when estimating the RDTSC frequency. This significantly improves the yuzu executable launch times since we reduced the wait time from 3 seconds to 200 milliseconds.
* general: Replace high_resolution_clock with steady_clockMorph2021-12-021-3/+3
| | | | On some OSes, high_resolution_clock is an alias to system_clock and is not monotonic in nature. Replace this with steady_clock.
* settings: Add debug setting to enable all controllersgerman772021-11-282-0/+6
|
* config: Remove vibration configurationgerman772021-11-271-2/+0
|
* input_common: Fully implement UDP controllersNarr the Reg2021-11-262-0/+15
|
* input_common: Move button names to the frontendgerman772021-11-251-0/+22
|
* core/hid: Fully implement native mousegerman772021-11-252-5/+11
|
* input_common: Allow keyboard to be backwards compatiblegerman772021-11-251-2/+0
|
* core/hid: Improve accuracy of the keyboard implementationgerman772021-11-251-12/+23
|
* config: Cleanup and documentationgerman772021-11-252-6/+31
|
* core/hid: Prevent Emulated controller from flapping with multiple inputs devicesgerman772021-11-251-0/+4
|
* core/hid: Fully emulate motion from buttongerman772021-11-251-0/+5
|
* second commit lion reviewgerman772021-11-251-1/+1
|
* settings: Fix Debug controller type optionsgerman772021-11-251-2/+2
|
* kraken: Address comments from reviewgerman772021-11-252-3/+2
| | | | start lion review
* core/hid: Add TAS inputgerman772021-11-251-1/+0
|
* input_common: Add manual update options to input devicesgerman772021-11-251-0/+10
|
* core/hid: Fix rumble too strong at 1%german772021-11-251-0/+7
|
* core/hid: Only signal when neededgerman772021-11-251-0/+1
|
* core/hid: Add output devicesgerman772021-11-251-0/+39
|
* settings: Cleanup settingsgerman772021-11-252-4/+12
|
* common: Rewrite and move core/frontend/input.h to commongerman772021-11-252-0/+243
|
* configure_general: Allow framerate cap to be used in custom game configsKewlan2021-11-212-1/+2
|
* TextureCache: Refactor and fix linux compiling.Fernando Sahmkow2021-11-201-0/+7
|
* TextureCache: Add automatic anisotropic filtering and refactor code.Fernando Sahmkow2021-11-161-1/+1
|
* Yuzu UI: Add button for Anti AliasFernando Sahmkow2021-11-161-0/+1
|
* Settings: Add anti-aliasing method settingMarshall Mohror2021-11-162-0/+7
|
* QtGUI: Add buttton to toggle the filter.FernandoS272021-11-161-0/+1
|
* VideoCore: Add gaussian filtering.FernandoS272021-11-161-2/+3
|
* VideoCore: Add more rescaling option.FernandoS272021-11-162-4/+20
|
* Video Core: fix building for GCC.Fernando Sahmkow2021-11-161-2/+2
|
* Presentation: add Nearest Neighbor filter.Fernando Sahmkow2021-11-161-4/+5
|
* vulkan: Implement FidelityFX Super ResolutionMarshall Mohror2021-11-161-0/+1
|
* Texture Cahe: Fix downscaling on SMO.Fernando Sahmkow2021-11-162-0/+3
|
* video_core: Refactor resolution scale functionameerj2021-11-161-0/+14
|
* video_core: Misc resolution scaling related refactoringameerj2021-11-161-1/+1
|
* Renderer: Implement Bicubic and ScaleForce filters.Fernando Sahmkow2021-11-162-15/+12
|
* common/settings: Remove unused scaling optionsReinUsesLisp2021-11-162-18/+7
|
* Settings: eliminate rescaling_factor.Fernando Sahmkow2021-11-162-2/+2
|
* Settings: Add resolution scaling to settings.Fernando Sahmkow2021-11-162-4/+60
|
* VideoCore: Initial Setup for the Resolution Scaler.Fernando Sahmkow2021-11-162-0/+19
|
* Merge pull request #7272 from behunin/the-courteous-loggerbunnei2021-11-133-28/+39
|\ | | | | Logging: Impl refactor
| * Refactor Logging ImplLevi Behunin2021-11-023-28/+39
| | | | | | | | | | | | | | Loop on stop_token and remove final_entry in Entry. Move Backend thread out of Impl Constructor to its own function. Add Start function for backend thread. Use stop token in PopWait and check if entry filename is nullptr before logging.
* | common: Implement a subset of P0323 (std::expected)Morph2021-11-022-0/+988
|/ | | | | This implementation is based on and is a subset of the proposed implementation of std::expected https://github.com/TartanLlama/expected/blob/master/include/tl/expected.hpp
* common/alignment: Fix VS2022 compilationameerj2021-10-201-1/+6
| | | | VS2022 seems to introduce an optimization when moving vectors to check for equality of the element values. AlignmentAllocator needed to overload the equality operator to fix compilation of its usage in vector moving.
* settings: Remove std::chrono usageameerj2021-10-171-3/+2
| | | | Alleviates the dependency on chrono for all files that include settings.h
* string_util: Make use of std::string_view and add bounds checkingMorph2021-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 bufferMorph2021-10-141-2/+2
|
* common/fs/path_util: Slightly refactor PathManagerImpl's constructorCreak2021-10-121-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-compilebunnei2021-10-057-18/+39
|\ | | | | common/logging: Reduce dependent header include overhead
| * common/logging: Reduce scope of fmt includeameerj2021-10-022-1/+2
| |
| * common/logging: Move Log::Entry declaration to a separate headerameerj2021-10-026-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-boxcatbunnei2021-10-022-4/+0
|\ \ | |/ |/| Remove Boxcat BCAT backend
| * settings: Remove BCAT settingsMorph2021-09-292-4/+0
| |
* | Fixed invalid iterator usageAndrew Strelsky2021-09-291-1/+1
|/
* general: Update style to clang-format-12ameerj2021-09-244-22/+28
|
* common/uuid: Add validity checking functions to interfaceLioncash2021-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-jthreadbunnei2021-09-191-5/+22
|\ | | | | videocore: Use std::jthread for worker threads
| * threadsafe_queue: Add std::stop_token overload to PopWaitameerj2021-09-161-5/+22
| | | | | | | | Useful for jthreads which make use of the threadsafe queues.
* | input_common/tas: Document the main classgerman772021-09-181-7/+4
| |
* | input_common/tas: Add swap controllergerman772021-09-181-1/+1
| |
* | input_common/tas: Fallback to simple updateMonsterDruide12021-09-181-4/+3
| |
* | config: Move TAS options to it's own menugerman772021-09-183-4/+3
| |
* | core: Hacky TAS syncing & load pausingMonsterDruide12021-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 settingsMonsterDruide12021-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 systemMonsterDruide12021-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_stretchingbunnei2021-09-182-3/+0
|\ \ | | | | | | Remove audio stretching
| * | fix_accidental_deletionMoonlacer2021-09-161-1/+2
| | |
| * | remove-audio-stretching-settingMoonlacer2021-09-162-5/+1
| |/
* | Merge pull request #6950 from german77/multiplaybunnei2021-09-182-3/+6
|\ \ | |/ |/| input_common: Add advanced setting for 8 player support
| * input_common: Enable steam controllers and 8 player supportgerman772021-09-102-3/+6
| |
* | common_funcs: Add enum flag bitwise shift operator overloadsMorph2021-09-131-0/+16
| | | | | | | | This adds bitwise shift operator overloads (<<, >>, <<=, >>=) in the macro DECLARE_ENUM_FLAG_OPERATORS(type)
* | common_funcs: Replace <algorithm> with <iterator>Morph2021-09-111-1/+1
| |
* | common: Move error handling to error.cpp/hMorph2021-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-decodeFernando S2021-09-112-3/+9
|\ \ | |/ |/| nvdec: Add GPU video decoding for all capable drivers and platforms
| * configure_graphics: Add GPU nvdec decoding as an optionameerj2021-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 includegerman772021-09-021-0/+1
| |
* | Merge pull request #6897 from FernandoS27/pineapple-does-not-belong-in-pizzabunnei2021-08-313-3/+140
|\ \ | | | | | | Project <tentative title>: Rework Garbage Collection.
| * | Garbage Collection: Adress Feedback.Fernando Sahmkow2021-08-291-12/+11
| | |
| * | Garbage Collection: enable as default, eliminate option.Fernando Sahmkow2021-08-282-3/+0
| | |
| * | VideoCore: Rework Garbage Collection.Fernando Sahmkow2021-08-281-0/+141
| | |
* | | Merge pull request #6927 from german77/ngctMorph2021-08-292-0/+2
|\ \ \ | |/ / |/| | ngct: Stub NGCT:U service
| * | ngct: Stub NGCT:U servicegerman772021-08-272-0/+2
| | |
* | | Revert "logging: Display backtrace on crash"Morph2021-08-272-114/+1
|/ /
* | Merge pull request #6870 from yzct12345/trace-back-stack-back-stack-backbunnei2021-08-272-1/+114
|\ \ | | | | | | logging: Display backtrace on crash
| * | logging: Display backtrace on crashyzct123452021-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 initializationameerj2021-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-fireplacebunnei2021-08-232-245/+218
|\| | | | | | | | logging: Simplify and make thread-safe
| * | logging: Simplify and make thread-safeyzct123452021-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 rangeMorph2021-08-211-1/+1
| | | | | | | | The maximum is now 17 with the addition of Brazilian Portuguese
* | Merge pull request #6877 from MerryMage/dyn-ignore-assertsbunnei2021-08-202-2/+2
|\ \ | | | | | | dynarmic: Update and enable DYNARMIC_IGNORE_ASSERTS
| * | xbyak: Update include pathMerry2021-08-152-2/+2
| | |
* | | Merge pull request #6863 from spholz/fix-lan-playFernando S2021-08-161-1/+2
|\ \ \ | |/ / |/| | Fix LAN Play
| * | Merge branch 'yuzu-emu:master' into fix-lan-playspholz2021-08-122-28/+164
| |\|
| * | configuration: add option to select network interfacespholz2021-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 deadlockyzct123452021-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.
* | settings: Fix MSVC issueslat9nq2021-08-111-7/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | According to https://stackoverflow.com/questions/469508, we run into a MSVC bug (since VS 2005) when using diamond inheritance for RangedSetting. This explicitly implements those functions in RangedSetting. GetValue is implemented as just calling the inherited version. The explicit converson operator is reimplemented. I opted for this over ignoring the warning with a pragma since this specifies the inherited behavior, and I have now less faith in MSVC to pick the right one. In addition, we mark destructors as virtual to silence what I believe is a fair MSVC compilation error.
* | Merge pull request #6776 from lat9nq/ranged-settingsbunnei2021-08-111-26/+136
|\ \ | | | | | | settings: Implement settings ranges
| * | settings: Use std::clamp where possiblelat9nq2021-07-311-39/+9
| | | | | | | | | | | | | | | | | | Addresses PR review Co-authored-by: PixelyIon <pixelyion@protonmail.com>
| * | settings: Remove unnecessary std::move usageslat9nq2021-07-311-12/+12
| | | | | | | | | | | | | | | | | | Addresses review feedback. Co-authored-by: Mai M. <mathew1800@gmail.com>
| * | settings: Fix function virtualizationlat9nq2021-07-301-12/+18
| | | | | | | | | | | | | | | | | | | | | Fixes a theoretical scenario where a Setting is using the BasicSetting's GetValue function. In practice this probably only happens on yuzu-cmd, where there is no need for a Setting's additional features. Need to fix regardless.
| * | settings: Implement setting rangeslat9nq2021-07-301-18/+152
| | | | | | | | | | | | | | | Clamps the setting's values against the specified minimum and maximum values.
* | | Merge pull request #6827 from Morph1984/uuid-hashbunnei2021-08-081-0/+11
|\ \ \ | |_|/ |/| | common: uuid: Add hash function for UUID
| * | common: uuid: Add hash function for UUIDMorph2021-08-061-0/+11
| | | | | | | | | | | | Used when UUID is a key in an unordered_map. The hash is produced by XORing the high and low 64-bits of the UUID together.
* | | Merge pull request #6822 from yzct12345/clion-assertbunnei2021-08-061-2/+6
|\ \ \ | |/ / |/| | assert: Avoid empty macros
| * | assert: Verify formattingyzct123452021-08-051-2/+6
| | |
| * | assert: Avoid empty macrosyzct123452021-08-051-2/+2
| | |
* | | Merge pull request #6813 from Morph1984/hex-string-to-uuidbunnei2021-08-052-0/+73
|\ \ \ | |/ / |/| | common: uuid: Add hex string to UUID constructor
| * | common: uuid: Add hex string to UUID constructorMorph2021-08-042-0/+73
| | | | | | | | | | | | This allows for easily converting a hex string into a Common::UUID, which is backed by a 128 bit unsigned integer.
* | | hex_util: Fix incorrect array size in AsArrayMorph2021-08-051-1/+1
|/ / | | | | | | Although this isn't used, this is a potential bug as HexStringToArray will perform an out-of-bounds read.
* | Merge pull request #6759 from ReinUsesLisp/pipeline-statisticsbunnei2021-07-301-0/+1
|\ \ | |/ |/| renderer_vulkan: Add setting to log pipeline statistics
| * renderer_vulkan: Add setting to log pipeline statisticsReinUsesLisp2021-07-281-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Use VK_KHR_pipeline_executable_properties when enabled and available to log statistics about the pipeline cache in a game. For example, this is on Turing GPUs when generating a pipeline cache from Super Smash Bros. Ultimate: Average pipeline statistics ========================================== Code size: 6433.167 Register count: 32.939 More advanced results could be presented, at the moment it's just an average of all 3D and compute pipelines.
* | Merge pull request #6742 from Morph1984/uuidbunnei2021-07-291-1/+1
|\ \ | | | | | | common: uuid: Return a lower-case hex string in Format
| * | common: uuid: Return a lower-case hex string in FormatMorph2021-07-271-1/+1
| | |
* | | Merge pull request #6758 from jbeich/fastmembunnei2021-07-281-2/+7
|\ \ \ | | | | | | | | host_memory: enable fastmem on FreeBSD
| * | | host_memory: Add workaround for FreeBSD 12Jan Beich2021-07-271-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | src/common/host_memory.cpp:360:14: error: use of undeclared identifier 'memfd_create' fd = memfd_create("HostMemory", 0); ^
| * | | host_memory: Enable Linux implementation on FreeBSDJan Beich2021-07-271-2/+2
| | |/ | |/| | | | | | | HW.Memory <Critical> common/host_memory.cpp:HostMemory:492: Fastmem unavailable, falling back to VirtualBuffer for memory allocation
* | | Merge pull request #6700 from lat9nq/fullscreen-enumbunnei2021-07-281-3/+8
|\ \ \ | | | | | | | | general: Implement FullscreenMode enumeration
| * \ \ Merge branch 'master' into fullscreen-enumlat9nq2021-07-257-70/+24
| |\ \ \ | | | |/ | | |/|
| * | | general: Implement FullscreenMode enumerationlat9nq2021-07-231-3/+8
| | | | | | | | | | | | | | | | | | | | Prevents us from using an unclear 0 or 1 to describe the fullscreen mode.
* | | | common: fs: fs_util: Add BufferToUTF8StringMorph2021-07-272-0/+15
| |_|/ |/| | | | | | | | Allows for direct conversion to std::string without having to convert std::u8string to std::string
* | | Merge pull request #6696 from ameerj/speed-limit-renamebunnei2021-07-272-6/+6
|\ \ \ | | | | | | | | general: Rename "Frame Limit" references to "Speed Limit"
| * | | general: Rename "Frame Limit" references to "Speed Limit"ameerj2021-07-242-6/+6
| |/ / | | | | | | | | | | | | This setting is best referred to as a speed limit, as it involves the limits of all timing based aspects of the emulator, not only framerate. This allows us to differentiate it from the fps unlocker setting.
* | | Merge pull request #6697 from ameerj/fps-capbunnei2021-07-261-0/+1
|\ \ \ | |_|/ |/| | config, nvflinger: Add FPS cap setting
| * | config, nvflinger: Add FPS cap settingameerj2021-07-241-0/+1
| |/ | | | | | | Allows finer tuning of the FPS limit.
* | Merge pull request #6585 from ameerj/hadesbunnei2021-07-257-69/+23
|\ \ | | | | | | Shader Decompiler Rewrite
| * | cmake: Remove shader cache versionReinUsesLisp2021-07-232-11/+1
| | |
| * | general: Add setting shader_backendlat9nq2021-07-232-3/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | GLASM is getting good enough that we can move it out of advanced graphics settings. This removes the setting `use_assembly_shaders`, opting for a enum class `shader_backend`. This comes with the benefits that it is extensible for additional shader backends besides GLSL and GLASM, and this will work better with a QComboBox. Qt removes the related assembly shader setting from the Advanced Graphics section and places it as a new QComboBox in the API Settings group. This will replace the Vulkan device selector when OpenGL is selected. Additionally, mark all of the custom anisotropic filtering settings as "WILL BREAK THINGS", as that is the case with a select few games.
| * | shader: Add loggingReinUsesLisp2021-07-232-0/+8
| | |
| * | shader: Add shader loop safety check settingslat9nq2021-07-231-0/+3
| | | | | | | | | | | | Also add a setting for enable Nsight Aftermath.
| * | shader_recompiler,video_core: Cleanup some GCC and Clang errorslat9nq2021-07-231-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Mostly fixing unused *, implicit conversion, braced scalar init, fpermissive, and some others. Some Clang errors likely remain in video_core, and std::ranges is still a pertinent issue in shader_recompiler shader_recompiler: cmake: Force bracket depth to 1024 on Clang Increases the maximum fold expression depth thread_worker: Include condition_variable Don't use list initializers in control flow Co-authored-by: ReinUsesLisp <reinuseslisp@airmail.cc>
| * | shader: Remove old shader managementReinUsesLisp2021-07-231-55/+1
| | |
| * | thread_worker: Fix compile time errorameerj2021-07-231-1/+1
| |/ | | | | | | state is unused in the branch where with_state is false
* / common: Publically link to pthreadslat9nq2021-07-231-1/+1
|/ | | | | Common requires pthreads but does not refer to it when linking to other modules. Fix this by linking to Threads where necessary.
* uuid: Directly compare UUID instead of checking per elementChloe Marcec2021-07-201-3/+2
| | | | We can now update this for C++20
* input_common: Fix mouse panning behaivourgerman772021-07-171-1/+1
|
* Merge pull request #6579 from ameerj/float-settingsbunnei2021-07-162-6/+6
|\ | | | | settings: Eliminate usage of float-point setting values
| * configure_input: Use u8 for mouse sensitivityameerj2021-07-091-1/+1
| |
| * configure_graphics: Use u8 for bg_color valuesameerj2021-07-091-3/+3
| |
| * configure_audio: Use u8 for volume valueameerj2021-07-092-2/+2
| |
* | Merge pull request #6576 from ameerj/unlock-fps-settingMorph2021-07-111-1/+1
|\ \ | | | | | | settings: Disable FPS unlimit setting between title launches
| * | settings: Disable FPS unlimit setting between title launchesameerj2021-07-101-1/+1
| |/ | | | | | | | | | | Some titles crash if the FPS limit is disabled when launching. This change ensures that titles launch with the limit in-place to avoid issues. In order to simplify the change, the UI toggle was removed as it will always be overridden at launch to be disabled. The setting can still be toggled during gameplay with the hotkey, and indicated by the fps label in the status bar.
* | Merge pull request #6573 from lat9nq/cpu-settings-cleanup-2Fernando S2021-07-092-5/+8
|\ \ | | | | | | core,common,yuzu qt: Add CPU accuracy option 'Auto'
| * | settings, arm_dynarmic, yuzu qt: Move CPU debugging optionlat9nq2021-07-082-2/+2
| | | | | | | | | | | | | | | | | | Decouples the CPU debugging mode from the enumeration to its own boolean. After this, it moves the CPU Debugging tab over to a sub tab underneath the Debug tab in the configuration UI.
| * | settings, yuzu qt: Add migration code for CPU accuracylat9nq2021-07-081-0/+2
| | | | | | | | | | | | | | | | | | Old CPU Accuracy setting won't translate well into since we're adding one at the beginning of the list. On first boot with the new setting, just use the default setting.
| * | core,common,yuzu qt: Add CPU accuracy option 'Auto'lat9nq2021-07-081-4/+5
| |/ | | | | | | | | | | | | The current CPU accuracy settings in yuzu are fairly polarized and require more than common knowledge to know what the optimal settings for yuzu would be. This adds a curated option called 'Auto' that applies a few at the moment known-good unsafe optimizations to Dynarmic.
* | common/thread_worker: Stop workers on stop_token when waitingReinUsesLisp2021-07-091-18/+20
| |
* | common/thread_worker: Add support for stateful threadsReinUsesLisp2021-07-093-78/+86
| |
* | common/thread_worker: Simplify logicFernandoS272021-07-091-8/+1
| |
* | common/thread_worker: Fix data raceFernandoS272021-07-092-1/+18
| |
* | common/thread_worker: Use unique functionReinUsesLisp2021-07-092-28/+24
| |
* | common: Add unique functionReinUsesLisp2021-07-092-0/+63
| |
* | common/thread_worker: Add wait for requests methodReinUsesLisp2021-07-092-0/+11
|/
* Merge pull request #6539 from lat9nq/default-settingAmeer J2021-07-082-123/+303
|\ | | | | general: Move most settings' defaults and labels into their definition
| * general: Code formatting improvementslat9nq2021-07-081-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | Slight improvements to readability. Dropped suggestions for string_view (settings.h:101), pass by value (settings.h:82), reverting double to a float (config.cpp:316), and other smaller ones, some out of scope. Addresses review feedback. Co-authored-by: Ameer J <52414509+ameerj@users.noreply.github.com>
| * settings: Set resolution_factor default to 1lat9nq2021-07-011-1/+1
| | | | | | | | Fixes Disgaea 6 Demo issues.
| * general: Make most settings a BasicSettinglat9nq2021-06-282-127/+295
| | | | | | | | | | | | | | | | | | | | | | Creates a new BasicSettings class in common/settings, and forces setting a default and label for each setting that uses it in common/settings. Moves defaults and labels from both frontends into common settings. Creates a helper function in each frontend to facillitate reading the settings now with the new default and label properties. Settings::Setting is also now a subclass of Settings::BasicSetting. Also adds documentation for both Setting and BasicSetting.
| * common: Force defaults for Settings::Setting'slat9nq2021-06-261-44/+57
| | | | | | | | Requires a default value when creating each per-game setting.
* | common: logging: backend: Close the file after exceeding the write limitMorph2021-07-061-8/+11
| | | | | | | | There's no point in keeping the file open after the write limit is exceeded. This allows the file to be committed to the disk shortly after it is closed and avoids redundantly checking whether or not the write limit is exceeded.
* | common: fs: file: Revert Flush to its previous behavior and add CommitMorph2021-07-062-3/+34
| | | | | | | | | | | | It became apparent that logging can continuously spam errors that trigger file flushing. Since committing the files to disk is an expensive operation, this causes unnecessarily high disk usage. As such, we will revert Flush() to the previous behavior and add a Commit() member function in the event that this behavior is needed.
* | common: fs: file: Flush the file in GetSizeMorph2021-07-061-0/+3
|/ | | | This ensures that GetSize always retrieves the correct file size after a write operation.
* Merge pull request #6519 from Wunkolo/mem-size-literalbunnei2021-06-254-49/+39
|\ | | | | common: Replace common_sizes into user-literals
| * common: Replace common_sizes into user-literalsWunkolo2021-06-244-49/+39
| | | | | | | | | | | | | | | | | | | | | | | | | | Removes common_sizes.h in favor of having `_KiB`, `_MiB`, `_GiB`, etc user-literals within literals.h. To keep the global namespace clean, users will have to use: ``` using namespace Common::Literals; ``` to access these literals.
* | general: Add missing #pragma once directivesMorph2021-06-241-0/+2
| |
* | Merge pull request #6517 from lioncash/fmtlibbunnei2021-06-241-1/+2
|\ \ | |/ |/| externals: Update fmt to 8.0.0
| * General: Resolve fmt specifiers to adhere to 8.0.0 API where applicableLioncash2021-06-231-1/+2
| | | | | | | | Also removes some deprecated API usages.
* | Merge pull request #6465 from FernandoS27/sex-on-the-beachMai M2021-06-233-0/+4
|\ \ | |/ |/| GPU: Implement a garbage collector for GPU Caches (project Reaper+)
| * Reaper: Address Feedback.Fernando Sahmkow2021-06-161-0/+1
| |
| * Reaper: Setup settings and final tuning.Fernando Sahmkow2021-06-162-0/+3
| |
* | Merge pull request #6512 from ReinUsesLisp/wait-detached-stasksMai M2021-06-231-0/+2
|\ \ | | | | | | common/detached_tasks: Wait for tasks before shutting down
| * | common/detached_tasks: Wait for tasks before shutting downRodrigo Locatti2021-06-221-0/+2
| | | | | | | | | | | | | | | | | | If this is not waited on, the synchronization primitives are destroyed whe main exits and the detached task ends up signalling garbage and not properly finishing.
* | | common: fs: Add a description of a regular file in IsFileMorph2021-06-221-4/+6
| | | | | | | | | | | | This provides a more concrete example of what a regular file is and isn't.
* | | common: fs: Amend IsFile check in FileOpen / (Write/Append)StringToFileMorph2021-06-224-9/+12
| | | | | | | | | | | | | | | | | | | | | This check was preventing files with the Write or Append file access modes from being created, as per the documented behavior in FileAccessMode. This amends the check to test for the existence of a filesystem object prior to checking whether it is a regular file. Thanks to liushuyu for pointing out that removing the check altogether would not guard against attempting to open non-regular files such as directories, symlinks, FIFO (pipes), sockets, block devices, or character devices. The documentation has also been updated for these functions to clarify that a file refers to a regular file.
* | | common: fs: file: Remove [[nodiscard]] attribute from FlushMorph2021-06-222-3/+3
| | | | | | | | | | | | Similarly, Flush() is typically called to attempt to flush a file into the disk. In the one case where this is used, we do not care whether the flush has succeeded or not, making [[nodiscard]] unnecessary.
* | | common: fs: Remove [[nodiscard]] attribute on Remove* functionsMorph2021-06-222-9/+9
|/ / | | | | | | | | | | There are a lot of scenarios where we don't particularly care whether or not the removal operation and just simply attempt a removal. As such, removing the [[nodiscard]] attribute is best for these functions.
* | Merge pull request #6499 from FernandoS27/we-were-on-a-breakbunnei2021-06-212-0/+2
|\ \ | | | | | | Update dynarmic and add new unsafe CPU option.
| * | Update dynarmic and add new unsafe CPU option.Fernando Sahmkow2021-06-202-0/+2
| | |
* | | Merge pull request #6475 from ameerj/unlimit-fpsbunnei2021-06-211-0/+1
|\ \ \ | |/ / |/| | nvflinger: Add experimental toggle to disable buffer swap interval limits
| * | nvflinger: Add toggle to disable buffer swap interval limitsameerj2021-06-171-0/+1
| |/ | | | | | | | | Enabling this setting will allow some titles to present more frames to the screen as they become available in the nvflinger buffer queue.
* / host_memory: Correct MEM_RESERVE_PLACEHOLDERlat9nq2021-06-191-1/+1
|/ | | | | Microsoft defines `MEM_RESERVE_PLACEHOLDER` as `0x00040000`, but our manually imported version of it drops the last zero.
* Merge pull request #6464 from ameerj/disable-astcbunnei2021-06-162-0/+3
|\ | | | | textures: Add a toggle for GPU Accelerated ASTC decoder
| * configure_graphics: Add Accelerate ASTC decoding settingameerj2021-06-162-0/+3
| |
* | Merge pull request #6460 from Morph1984/fs-access-log-fixMorph2021-06-163-6/+2
|\ \ | | | | | | fsp_srv: Fix filesystem access logging
| * | common: fs: file: Remove redundant call to WriteStringToFileMorph2021-06-162-6/+1
| | | | | | | | | | | | The Append open mode will create a new file if said file does not exist at a given path, making this call redundant.
| * | fsp_srv: Fix filesystem access loggingMorph2021-06-161-0/+1
| |/ | | | | | | | | | | | | | | This introduces a new setting Enable FS Access Log which saves the filesystem access log to sdmc:/FsAccessLog.txt If this setting is not enabled, this will indicate to FS to not call OutputAccessLogToSdCard. Fixes softlocks during loading in Xenoblade Chronicles 2 when certain DLC is enabled.
* | Merge pull request #6462 from Morph1984/proper-flushbunnei2021-06-161-1/+5
|\ \ | |/ |/| common: fs: file: Flush the file to the disk when Flush() is called
| * common: fs: file: Flush the file to the disk when Flush() is calledMorph2021-06-131-1/+5
| | | | | | | | | | | | std::fflush does not guarantee that file buffers are flushed to the disk. Use _commit on Windows and fsync on all other OSes to ensure that the file is flushed to the disk.
* | Merge pull request #6448 from Morph1984/recursive-dir-iteratorFernando Sahmkow2021-06-141-2/+16
|\ \ | | | | | | common: fs: Use the normal directory iterator in *Recursively functions
| * | common: fs: Use the normal directory iterator in *Recursively functionsMorph2021-06-121-2/+16
| |/ | | | | | | | | | | MSVC's implementation of recursive_directory_iterator throws an exception on an error despite a std::error_code being passed into its constructor. This is most likely a bug in MSVC's implementation since directory_iterator does not throw an exception on an error. We can replace the usage of recursive_directory_iterator for now until MSVC fixes their implementation of it.
* | common: logging: Restructure backend codeMorph2021-06-138-278/+288
| |
* | common: logging: backend: Wrap IOFile in a unique_ptrMorph2021-06-132-6/+27
|/ | | | Allows us to forward declare Common::FS::IOFile.
* common/host_memory: Implement a fallback if fastmem fails.Markus Wick2021-06-112-14/+49
| | | | | | This falls back to the old approach of using a virtual buffer. Windows is untested, but this build should fix support for Windows < 10 v1803. However without fastmem support at all.
* common/host_shader: Load Windows 10 functions dynamicallyReinUsesLisp2021-06-111-29/+88
| | | | Workaround old headers and libraries shipped on MinGW.
* host_memory: Support staged VirtualProtect callsReinUsesLisp2021-06-111-3/+12
|
* General: Add settings for fastmem and disabling adress space check.FernandoS272021-06-112-0/+12
|
* common/host_memory: Optimize for huge tables.Markus Wick2021-06-112-11/+24
| | | | | In theory, if we have 2 MB continously mapped, this should save one layer of TLB. Let's make it at least more likely by aligning the memory.
* core: Make use of fastmemMarkus Wick2021-06-111-0/+2
|
* common/host_memory: Add Linux implementationMarkus Wick2021-06-111-10/+120
|
* common/host_memory: Add interface and Windows implementationReinUsesLisp2021-06-113-0/+384
|
* src/common/CMakeLists.txt: fix variable escapingliushuyu2021-06-091-8/+9
|
* common/fs/path_util: Remove [[nodiscard]] from function with void returnLioncash2021-06-091-1/+1
| | | | | We can't make use of the return value here, since we don't a return value to work with.
* Merge pull request #6395 from lioncash/result-moveMorph2021-06-021-25/+0
|\ | | | | common_funcs: Move R_ macros to result.h
| * common_funcs: Move R_ macros to result.hLioncash2021-05-311-25/+0
| | | | | | | | | | | | These macros all interact with the result code type, so they should ideally be within this file as well, so all the common_funcs machinery doesn't need to be pulled in just to use them.
* | common: fs: fs_util: Move PathToUTF8String to fs_utilMorph2021-06-024-15/+14
| |
* | common: fs: fs_util: Add more string conversion functionsMorph2021-06-022-0/+33
|/
* Merge pull request #6385 from degasus/save_memory_accessbunnei2021-05-312-0/+7
|\ | | | | core/memory: Check our memory fallbacks for out-of-bound behavior.
| * core/memory: Check our memory fallbacks for out-of-bound behavior.Markus Wick2021-05-292-0/+7
| | | | | | | | | | | | This makes it by far harder to crash yuzu. Also implement the 48bit masking of AARCH64 while touching this code.
* | common: Extract point into a common structLioncash2021-05-282-0/+58
|/ | | | | This is generic enough that it can be moved into the Common class for reuse.
* common/fs/file: Explicitly delete copy constructorsLioncash2021-05-281-1/+4
| | | | | Relocates them to the same place the move equivalents are at for consistent viewing.
* common/fs/file: Devirtualize destructorLioncash2021-05-281-1/+1
| | | | IOFile is a final class, so there's no need for a virtual destructor.
* common/fs/file: Default initialize IOFile membersLioncash2021-05-281-2/+2
| | | | Prevents a potential uninitialized read vector in the move constructor.
* common: fs: Rework the Common Filesystem interface to make use of std::filesystem (#6270)Morph2021-05-2620-1432/+2963
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * common: fs: fs_types: Create filesystem types Contains various filesystem types used by the Common::FS library * common: fs: fs_util: Add std::string to std::u8string conversion utility * common: fs: path_util: Add utlity functions for paths Contains various utility functions for getting or manipulating filesystem paths used by the Common::FS library * common: fs: file: Rewrite the IOFile implementation * common: fs: Reimplement Common::FS library using std::filesystem * common: fs: fs_paths: Add fs_paths to replace common_paths * common: fs: path_util: Add the rest of the path functions * common: Remove the previous Common::FS implementation * general: Remove unused fs includes * string_util: Remove unused function and include * nvidia_flags: Migrate to the new Common::FS library * settings: Migrate to the new Common::FS library * logging: backend: Migrate to the new Common::FS library * core: Migrate to the new Common::FS library * perf_stats: Migrate to the new Common::FS library * reporter: Migrate to the new Common::FS library * telemetry_session: Migrate to the new Common::FS library * key_manager: Migrate to the new Common::FS library * bis_factory: Migrate to the new Common::FS library * registered_cache: Migrate to the new Common::FS library * xts_archive: Migrate to the new Common::FS library * service: acc: Migrate to the new Common::FS library * applets/profile: Migrate to the new Common::FS library * applets/web: Migrate to the new Common::FS library * service: filesystem: Migrate to the new Common::FS library * loader: Migrate to the new Common::FS library * gl_shader_disk_cache: Migrate to the new Common::FS library * nsight_aftermath_tracker: Migrate to the new Common::FS library * vulkan_library: Migrate to the new Common::FS library * configure_debug: Migrate to the new Common::FS library * game_list_worker: Migrate to the new Common::FS library * config: Migrate to the new Common::FS library * configure_filesystem: Migrate to the new Common::FS library * configure_per_game_addons: Migrate to the new Common::FS library * configure_profile_manager: Migrate to the new Common::FS library * configure_ui: Migrate to the new Common::FS library * input_profiles: Migrate to the new Common::FS library * yuzu_cmd: config: Migrate to the new Common::FS library * yuzu_cmd: Migrate to the new Common::FS library * vfs_real: Migrate to the new Common::FS library * vfs: Migrate to the new Common::FS library * vfs_libzip: Migrate to the new Common::FS library * service: bcat: Migrate to the new Common::FS library * yuzu: main: Migrate to the new Common::FS library * vfs_real: Delete the contents of an existing file in CreateFile Current usages of CreateFile expect to delete the contents of an existing file, retain this behavior for now. * input_profiles: Don't iterate the input profile dir if it does not exist Silences an error produced in the log if the directory does not exist. * game_list_worker: Skip parsing file if the returned VfsFile is nullptr Prevents crashes in GetLoader when the virtual file is nullptr * common: fs: Validate paths for path length * service: filesystem: Open the mod load directory as read only
* Merge pull request #6357 from lioncash/compressionbunnei2021-05-254-7/+8
|\ | | | | common/compression: Make use of std::span
| * zstd_compression: Make use of std::spanLioncash2021-05-242-3/+4
| | | | | | | | Allows for the incoming data stream to be non-allocating.
| * lz4_compression: Make use of std::spanLioncash2021-05-242-4/+4
| | | | | | | | Allows making the incoming data stream non-allocating.
* | common: tree: Avoid a crash on nullptr dereference.bunnei2021-05-211-0/+11
|/
* Merge pull request #6321 from lat9nq/per-game-cpubunnei2021-05-212-7/+12
|\ | | | | configuration: Add CPU tab to game properties and slight per-game settings rework
| * general: Demote custom_rtc to regular settinglat9nq2021-05-172-2/+1
| |
| * configuration: Add CPU tab to game propertieslat9nq2021-05-161-0/+6
| | | | | | | | | | | | Allows setting CPU accuracy to Accurate or Unsafe per-game, as well as the accuracy options for Unsafe. Debug is not allowed here as a per-game CPU accuracy.
| * general: Make CPU accuracy and related a Settings::Settinglat9nq2021-05-162-5/+5
| | | | | | | | | | Required to make CPU accuracy and unsafe settings available to use as a per-game setting.
* | Merge pull request #6297 from lioncash/common-convbunnei2021-05-201-1/+2
|\ \ | | | | | | parent_of_member: Make sign conversion explicit in OffsetOfImpl()
| * | parent_of_member: Make sign conversion explicit in OffsetOfImpl()Lioncash2021-05-101-1/+2
| |/ | | | | | | | | Previously these conversions were implicit and causing quite a few warnings on clang.
* / common: tree: Avoid a nullptr dereference.bunnei2021-05-121-1/+1
|/
* fixup! common: bit_util: Add BIT macro.bunnei2021-05-061-2/+0
|
* common: parent_of_member: Fix build for OffsetOf().bunnei2021-05-061-4/+4
|
* fixup! common: intrusive_red_black_tree: Disable static_assert that will not evaluate as constant on MSVC.bunnei2021-05-061-5/+0
|
* common: Rename NON_COPYABLE/NON_MOVABLE with YUZU_ prefix.bunnei2021-05-061-2/+2
|
* common: common_funcs: Add Size helper function.bunnei2021-05-061-0/+15
|
* common: bit_util: Add BIT macro.bunnei2021-05-061-0/+2
|
* common: intrusive_red_black_tree: Disable static_assert that will not evaluate as constant on MSVC.bunnei2021-05-061-0/+4
|
* common: common_funcs: Add helper macros for non-copyable and non-moveable.bunnei2021-05-061-0/+8
| | | | - Useful for scenarios where we do not want to inherit from NonCopyable.
* log/backend: Use in-class initializer for FileBackendLioncash2021-04-202-6/+8
| | | | We can also avoid redundant constructions of the same string repeatedly.
* log/backend: Make use of erase_ifLioncash2021-04-201-4/+4
| | | | Same behavior, but less verbose.
* Merge pull request #6199 from lioncash/log-nsbunnei2021-04-157-35/+44
|\ | | | | common/log: Move Log namespace into the Common namespace
| * log/backend: Correct order of const in copy constructorLioncash2021-04-151-2/+5
| | | | | | | | | | Follows our predominant coding style. Also explicitly specifies the move constructor/assignment operator as well.
| * common/log: Move Log namespace into the Common namespaceLioncash2021-04-157-33/+39
| | | | | | | | | | Forgot to move this over when I moved the rest of the source files with lacking namespaces over.
* | common: Move settings to common from core.bunnei2021-04-157-2/+830
| | | | | | | | - Removes a dependency on core and input_common from common.
* | core: settings: Add setting for debug assertions and disable by default.bunnei2021-04-151-2/+5
| | | | | | | | | | | | - This is a developer-only setting and no longer needs to be enabled by default. - Also adds "use_auto_stub" setting to SDL frontend while we are here. - Supersedes #1340.
* | nvidia_flags: Add missing header guardLioncash2021-04-131-0/+2
|/ | | | Prevents potential inclusion compilation errors.
* Merge pull request #6099 from bunnei/derive-membunnei2021-04-102-0/+44
|\ | | | | Kernel Rework: Derive memory regions from board layout.
| * common: common_sizes: Move sizes to the Common namespace.bunnei2021-03-241-0/+4
| |
| * common: common_sizes: Move Invalid to Size_* prefix and add missing values.bunnei2021-03-211-1/+7
| |
| * hle: kernel: board: k_system_control: Extend to include memory region sizes.bunnei2021-03-211-0/+10
| |
| * common: Move common sizes to their own header for code reuse.bunnei2021-03-212-0/+24
| |
* | Merge pull request #6162 from degasus/no_spin_loopsbunnei2021-04-091-1/+9
|\ \ | | | | | | video_core: Avoid spin loops.
| * | common/threadsafe_queue: Provide Wait() method.Markus Wick2021-04-071-1/+9
| | | | | | | | | | | | | | | | | | | | | It shall block until there is something to consume in the queue. And use it for the GPU emulation instead of the spin loop. This is only in booting the emulator, however in BOTW this is the case for about 1 second.
* | | bgtc: Update to 12.x and implement OpenTaskServiceMorph2021-04-092-0/+2
|/ /
* / common: Move assert failure handling into a cpp file.Markus Wick2021-04-043-6/+20
|/ | | | | | | | | | Advantage: Altering the handler does not need a full recompilation. Disadvantage: noreturn is droped, so the caller is a bit slower. We quite often run yuzu with a YOLO assertion handler. In fact, only very few games run at all with asserts. This patch allows developers to patch the handler without recompiling everything. The overhead of the missing "noreturn" attribute shoul be negletable.
* fiber: Double default stack sizeMerryMage2021-03-101-1/+1
| | | | Stack overflow occurs with some guest applications
* common: Fiber: use a reference for YieldTo.bunnei2021-03-072-8/+6
| | | | - Fixes another small leak.
* common: fiber: Use weak_ptr when yielding.bunnei2021-03-062-8/+13
| | | | | - Avoids a memory leak, as taking a strong reference of the fiber here causes a circular reference. - Supersedes #6006 with a more narrow fix.
* Revert "core: Switch to unique_ptr for usage of Common::Fiber."bunnei2021-03-062-9/+9
|
* Merge pull request #6006 from bunnei/fiber-unique-ptrbunnei2021-03-052-9/+9
|\ | | | | core: Switch to unique_ptr for usage of Common::Fiber.
| * core: Switch to unique_ptr for usage of Common::Fiber.bunnei2021-02-272-9/+9
| | | | | | | | | | - With using unique_ptr instead of shared_ptr, we have more explicit ownership of the context. - Fixes a memory leak due to circular reference of the shared pointer.
* | [network] Error handling reformcomex2021-02-282-16/+34
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `network.cpp` has several error paths which either: - report "Unhandled host socket error=n" and return `SUCCESS`, or - switch on a few possible errors, log them, and translate them to Errno; the same switch statement is copied and pasted in multiple places in the code Convert these paths to use a helper function `GetAndLogLastError`, which is roughly the equivalent of one of the switch statements, but: - handling more cases (both ones that were already in `Errno`, and a few more I added), and - using OS functions to convert the error to a string when logging, so it'll describe the error even if it's not one of the ones in the switch statement. - To handle this, refactor the logic in `GetLastErrorMsg` to expose a new function `NativeErrorToString` which takes the error number explicitly as an argument. And improve the Windows version a bit. Also, add a test which exercises two random error paths.
* | Merge pull request #5984 from jbeich/gcc-freebsdbunnei2021-02-271-0/+1
|\ \ | |/ |/| common,video-core: unbreak GCC 11 build on FreeBSD 13
| * common: add missing header after f3805376f726Jan Beich2021-02-231-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In file included from src/video_core/dma_pusher.cpp:5: src/./common/cityhash.h:69:47: error: 'size_t' has not been declared 69 | [[nodiscard]] u64 CityHash64(const char* buf, size_t len); | ^~~~~~ src/./common/cityhash.h:73:55: error: 'size_t' has not been declared 73 | [[nodiscard]] u64 CityHash64WithSeed(const char* buf, size_t len, u64 seed); | ^~~~~~ src/./common/cityhash.h:77:56: error: 'size_t' has not been declared 77 | [[nodiscard]] u64 CityHash64WithSeeds(const char* buf, size_t len, u64 seed0, u64 seed1); | ^~~~~~ src/./common/cityhash.h:80:47: error: 'size_t' has not been declared 80 | [[nodiscard]] u128 CityHash128(const char* s, size_t len); | ^~~~~~ src/./common/cityhash.h:84:55: error: 'size_t' has not been declared 84 | [[nodiscard]] u128 CityHash128WithSeed(const char* s, size_t len, u128 seed); | ^~~~~~
* | Merge pull request #5953 from bunnei/memory-refactor-1bunnei2021-02-273-0/+256
|\ \ | |/ |/| Kernel Rework: Memory updates and refactoring (Part 1)
| * common: Add implementation of TinyMT (Mersenne Twister RNG).bunnei2021-02-192-0/+251
| |
| * common: alignment: Add DivideUp utility method.bunnei2021-02-191-0/+5
| |
* | common: wall_clock: Fix integer overflow with StandardWallClock.bunnei2021-02-202-7/+28
|/ | | | | - Previous optimized impl. resulted in an integer overflow, so revert. - This is our slow/fallback path that should never be really be used, so the optimization in unimportant.
* common/cityhash: Use common typesReinUsesLisp2021-02-182-114/+98
| | | | | | | | Allow sharing return types with the rest of the code base. For example, we use 'u128 = std::array<u64, 2>', meanwhile Google's code uses 'uint128 = std::pair<u64, u64>'. While we are at it, use size_t instead of std::size_t.
* common: wall_clock: Optimize GetClockCycles/GetCPUCycles to use a single MUL instruction.bunnei2021-02-151-8/+9
|
* common: Merge uint128 to a single header file with inlines.bunnei2021-02-154-135/+84
|
* common: Add -fsized-deallocation as a Clang flaglat9nq2021-02-101-0/+2
| | | | Prevents an operator delete error when compiling with Clang 11.
* string_util: Remove MSVC workaround for converting between UTF8/UTF16Morph2021-02-081-14/+0
| | | | This has been fixed as of Visual Studio 2019 Version 16.2
* Merge pull request #5885 from MerryMage/ring_buffer-granularitybunnei2021-02-061-11/+10
|\ | | | | ring_buffer: Remove granularity template argument
| * ring_buffer: Remove granularity template argumentMerryMage2021-02-061-11/+10
| | | | | | | | | | | | Non-obvious bug in RingBuffer::Push(std::vector<T>&) when granularity != 1 Just remove it altogether because we do not have a use for granularity != 1
* | hle: kernel: Drop R_UNLESS_NOLOG in favor of expanded if-statement.bunnei2021-02-051-8/+0
| |
* | common: scope_exit: Add a cancellable ScopeExit macro.bunnei2021-02-051-0/+6
| |
* | common: common_funcs: Add R_UNLESS_NOLOG for scenarios that should not log.bunnei2021-02-051-0/+8
|/
* common: common_funcs: Change R_UNLESS to LOG_ERROR.bunnei2021-01-291-1/+1
|
* common: common_funcs: Log error on R_UNLESS.bunnei2021-01-291-0/+3
|
* common: common_funcs: Add useful kernel macro R_SUCCEED_IF.bunnei2021-01-291-0/+3
|
* common: common_funcs: Add a few more useful macros for kernel code.bunnei2021-01-291-0/+11
|
* Merge pull request #5778 from ReinUsesLisp/shader-dirbunnei2021-01-273-0/+39
|\ | | | | renderer_opengl: Avoid precompiled cache and force NV GL cache directory
| * renderer_opengl: Avoid precompiled cache and force NV GL cache directoryReinUsesLisp2021-01-213-0/+39
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Setting __GL_SHADER_DISK_CACHE_PATH we can force the cache directory to be in yuzu's user directory to stop commonly distributed malware from deleting our driver shader cache. And by setting __GL_SHADER_DISK_CACHE_SKIP_CLEANUP we can have an unbounded shader cache size. This has only been implemented on Windows, mostly because previous tests didn't seem to work on Linux. Disable the precompiled cache on Nvidia's driver. There's no need to hide information the driver already has in its own cache.
* | common: Add missing include to bit_util.hbunnei2021-01-221-0/+1
| |
* | bit_util: Unify implementations of MostSignificantBit32/MostSignificantBit64Lioncash2021-01-211-35/+13
|/ | | | | | We can use the standardized CLZ facilities to perform this. This also allows us to make utilizing functions constexpr and eliminate the inclusion of an intrinsics header.
* Merge pull request #5360 from ReinUsesLisp/enforce-memclass-accessbunnei2021-01-171-2/+2
|\ | | | | core: Silence Wclass-memaccess warnings and enforce it
| * core: Silence Wclass-memaccess warningsReinUsesLisp2021-01-151-2/+2
| | | | | | | | | | This requires making several types trivial and properly initialize them whenever they are called.
* | Merge pull request #5275 from FernandoS27/fast-native-clockbunnei2021-01-165-104/+174
|\ \ | | | | | | X86/NativeClock: Improve performance of clock calculations on hot path.
| * | X86/NativeClock: Reimplement RTDSC access to be lock free.Fernando Sahmkow2021-01-025-103/+107
| | |
| * | X86/NativeClock: Improve performance of clock calculations on hot path.Fernando Sahmkow2021-01-022-5/+71
| | |
* | | Merge pull request #5336 from lioncash/treebunnei2021-01-162-841/+668
|\ \ \ | | | | | | | | common/tree: Convert defines over to templates
| * | | common/tree: Convert defines over to templatesLioncash2021-01-122-592/+666
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Reworks the tree header to operate off of templates as opposed to a series of defines. This allows all tree facilities to obey namespacing rules, and also allows this code to be used within modules once compiler support is in place. This also gets rid to use a macro to define functions and structs for necessary data types. With templates, these will be generated when they're actually used, eliminating the need for the separate declaration.
| * | | common/tree: Remove unused splay tree definesLioncash2021-01-121-249/+2
| | | | | | | | | | | | | | | | Makes for less code to take care of.
* | | | Merge pull request #5358 from ReinUsesLisp/rename-insert-paddingLC2021-01-151-4/+4
|\ \ \ \ | | |_|/ | |/| | common/common_funcs: Rename INSERT_UNION_PADDING_{BYTES,WORDS} to _NOINIT
| * | | common/common_funcs: Rename INSERT_UNION_PADDING_{BYTES,WORDS} to _NOINITReinUsesLisp2021-01-151-4/+4
| | | | | | | | | | | | | | | | INSERT_PADDING_BYTES_NOINIT is more descriptive of the underlying behavior.
* | | | Merge pull request #5355 from lioncash/timerbunnei2021-01-153-202/+0
|\ \ \ \ | | | | | | | | | | common/timer: Remove
| * | | | common/timer: RemoveLioncash2021-01-153-202/+0
| |/ / / | | | | | | | | | | | | | | | | This is a leftover from citra and dolphin that isn't used at all, particularly given the <chrono> header exists.
* | | | Merge pull request #5357 from ReinUsesLisp/alignment-log2LC2021-01-151-17/+12
|\ \ \ \ | | | | | | | | | | common/alignment: Rename AlignBits to AlignUpLog2 and use constraints
| * | | | common/alignment: Upgrade to use constraints instead of static assertsReinUsesLisp2021-01-151-13/+9
| | | | |
| * | | | common/alignment: Rename AlignBits to AlignUpLog2ReinUsesLisp2021-01-151-5/+4
| | | | | | | | | | | | | | | | | | | | AlignUpLog2 describes what the function does better than AlignBits.
* | | | | common/bit_util: Replace CLZ/CTZ operations with standardized onesLioncash2021-01-151-76/+0
| |/ / / |/| | | | | | | | | | | Makes for less code that we need to maintain.
* | | | common/color: RemoveReinUsesLisp2021-01-152-272/+0
|/ / / | | | | | | | | | This is a leftover from Citra we no longer use.
* | | Merge pull request #5280 from FearlessTobi/port-5666bunnei2021-01-131-4/+12
|\ \ \ | |/ / |/| | Port citra-emu/citra#5666: "Rotate previous log file to "citra_log.txt.old""
| * | Address review commentsFearlessTobi2021-01-041-5/+5
| | |
| * | Delete the old log file before rotating (#5675)xperia642021-01-041-0/+3
| | |
| * | Fix the old log file to work with the log parser.bunnei2021-01-031-1/+1
| | |
| * | Rotate previous log file to '.old' if it existsxperia642021-01-031-4/+9
| | |
* | | common/parent_of_member: Replace TYPED_STORAGE define with template aliasLioncash2021-01-122-8/+10
| | | | | | | | | | | | Provides the same construct, but makes it obey namespacing.
* | | common: common_funcs: Add R_UNLESS macro.bunnei2021-01-111-0/+8
| | |
* | | common: Introduce useful tree structures.bunnei2021-01-114-0/+1641
| | |
* | | common/div_ceil: Return numerator typeReinUsesLisp2021-01-091-5/+5
|/ / | | | | | | | | Fixes instances where DivCeil(u32, u64) would surprisingly return u64, instead of the more natural u32.
* / general: Fix various spelling errorsMorph2021-01-022-3/+3
|/
* memory: Remove MemoryHookMerryMage2021-01-014-78/+0
|
* Merge pull request #5249 from ReinUsesLisp/lock-free-pagesbunnei2021-01-013-23/+65
|\ | | | | core/memory: Read and write page table atomically
| * core/memory: Read and write page table atomicallyReinUsesLisp2020-12-303-23/+65
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Squash attributes into the pointer's integer, making them an uintptr_t pair containing 2 bits at the bottom and then the pointer. These bits are currently unused thanks to alignment requirements. Configure Dynarmic to mask out these bits on pointer reads. While we are at it, remove some unused attributes carried over from Citra. Read/Write and other hot functions use a two step unpacking process that is less readable to stop MSVC from emitting an extra AND instruction in the hot path: mov rdi,rcx shr rdx,0Ch mov r8,qword ptr [rax+8] mov rax,qword ptr [r8+rdx*8] mov rdx,rax -and al,3 and rdx,0FFFFFFFFFFFFFFFCh je Core::Memory::Memory::Impl::Read<unsigned char> mov rax,qword ptr [vaddr] movzx eax,byte ptr [rdx+rax]
* | Merge pull request #5208 from bunnei/service-threadsbunnei2020-12-313-0/+90
|\ \ | | | | | | Service threads
| * | common: ThreadWorker: Add class to help do asynchronous work.bunnei2020-12-303-0/+90
| |/
* / k_priority_queue: Fix concepts usecomex2020-12-291-0/+4
|/ | | | | | | | | | | | - For `std::same_as`, add missing include of `<concepts>`. - For `std::convertible_to`, create a replacement in `common/concepts.h` and use that instead. This would also be found in `<concepts>`, but unlike `std::same_as`, `std::convertible_to` is not yet implemented in libc++, LLVM's STL implementation - not even in master. (In fact, `std::same_as` is the *only* concept currently implemented. For some reason.)
* Merge pull request #5131 from bunnei/scheduler-rewritebunnei2020-12-213-346/+100
|\ | | | | Rewrite Kernel scheduler based on Atmosphere
| * common: BitSet: Various style fixes based on code review feedback.bunnei2020-12-061-23/+22
| |
| * hle: kernel: Separate KScheduler from GlobalSchedulerContext class.bunnei2020-12-062-346/+0
| |
| * common: Port BitSet from Mesosphere.bunnei2020-12-062-0/+101
| |
* | cmake: Fix generating CMake configs and linking with Boostlat9nq2020-12-131-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixes regression by 761206cf81b271f7f4dd6a167a120325b760dbf3, causing yuzu to not build on Linux with any version of Boost except a cached 1.73 Conan version from before about a day ago. Moves the Boost requirement out of the `REQUIRED_LIBS` psuedo-2D-array for Conan to instead be manually configured, using Conan as a fallback solution if the system does not meet our requirements. Requires any update from the linux-fresh container in order to build. **DO NOT MERGE** until someone with the MSVC toolchain can verify this works there, too.
* | common: Update CMakeList to fix build issue with Boost.bunnei2020-12-121-2/+1
| |
* | Revert "Merge pull request #5173 from lioncash/common-fs"Morph2020-12-122-112/+396
| | | | | | | | | | This reverts commit ce5fcb6bb2c358b0251a2ce87945bda52789a76d, reversing changes made to 6f41763061082d5fa2ab039c554427152243cb46.
* | Revert "Merge pull request #5174 from ReinUsesLisp/fs-fix"Morph2020-12-122-36/+4
| | | | | | | | | | This reverts commit 5fe55b16a11d9ec607fb8a3fdddc77a4393cd96a, reversing changes made to e94dd7e2c4fc3f7ca2c15c01bdc301be2b8a4c1b.
* | Revert "Merge pull request #5179 from ReinUsesLisp/fs-path"Morph2020-12-121-1/+1
| | | | | | | | | | This reverts commit 4e94d0d53af2cdb7b03ef9de23cc29f3565df97a, reversing changes made to 6d6115475b4edccdf1bb4e96ecc3d3b1be319e76.
* | Revert "Merge pull request #5181 from Morph1984/5174-review"Morph2020-12-121-3/+9
| | | | | | | | | | This reverts commit cdb36aef9ec9d30bdef1953f9ed46776ae2f12af, reversing changes made to 5e9b77129f2cf8c039a8d98033cae4ac0f93f515.
* | common/file_util: Simplify the behavior of CreateFullPathMorph2020-12-101-9/+3
| |
* | common/file_util: Let std::filesystem cast from UTF16 to std::stringReinUsesLisp2020-12-091-1/+1
| | | | | | | | Fix invalid encoding paths when iterating over a directory on Windows.
* | common/file_util: Fix and deprecate CreateFullPath, add CreateDirsReinUsesLisp2020-12-092-4/+31
| | | | | | | | | | | | | | | | Fix CreateFullPath to have its intended previous behavior (whatever that was), and deprecate it in favor of the new CreateDirs function. Unlike CreateDir, CreateDirs is marked as [[nodiscard]] to avoid new code ignoring its result value.
* | common/file_util: Succeed on CreateDir when the directory existsReinUsesLisp2020-12-091-0/+5
| |
* | file_util: Migrate remaining file handling functions over to std::filesystemLioncash2020-12-092-340/+100
| | | | | | | | | | | | | | Converts creation and deletion functions over to std::filesystem, simplifying our file-handling code. Notably with this, CopyDir will now function on Windows.
* | file_util: Migrate Exists() and IsDirectory() over to std::filesystemLioncash2020-12-092-57/+13
| | | | | | | | Greatly simplifies our file-handling code for these functions.
* | Merge pull request #5136 from lioncash/video-shadow3LC2020-12-072-3/+3
|\ \ | | | | | | video_core: Resolve more variable shadowing scenarios pt.3
| * | video_core: Resolve more variable shadowing scenarios pt.3Lioncash2020-12-052-3/+3
| |/ | | | | | | | | Cleans out the rest of the occurrences of variable shadowing and makes any further occurrences of shadowing compiler errors.
* | xbyak_abi: Shorten std::size_t to size_tLioncash2020-12-051-8/+8
| | | | | | | | Makes for less reading.
* | xbyak_abi: Avoid implicit sign conversionsLioncash2020-12-051-2/+2
|/
* Merge pull request #4996 from bunnei/use-4jitsbunnei2020-12-042-115/+11
|\ | | | | Kernel: Refactor to use 4-instances of Dynarmic & various cleanups and improvements
| * common: fiber: Use VirtualBuffer for stack memory.bunnei2020-11-291-2/+5
| | | | | | | | - This will be aligned by default, and helps memory usage.
| * common: fiber: Use boost::context instead of native fibers on Windows.bunnei2020-11-292-115/+8
| |
* | Merge pull request #5000 from lioncash/audio-errorbunnei2020-12-034-10/+11
|\ \ | | | | | | audio_core: Make shadowing and unused parameters errors
| * | audio_core: Make shadowing and unused parameters errorsLioncash2020-12-034-10/+11
| |/ | | | | | | Moves the audio code closer to enabling warnings as errors in general.
* / common: Add Common::DivCeil and Common::DivCeilLog2ReinUsesLisp2020-11-262-0/+27
|/ | | | Add an equivalent to 'Common::AlignUp(n, d) / d' and a log2 alternative.
* Merge pull request #4451 from slashiee/extended-loggingbunnei2020-11-231-2/+12
|\ | | | | logging/settings: Increase maximum log size to 100 MB and add extended logging option
| * logging/settings: Increase maximum log size to 100 MB and add extended logging optionM&M2020-08-251-2/+12
| | | | | | | | | | The extended logging option is automatically disabled on boot but can be enabled afterwards, allowing the log file to go up to 1 GB during that session. This commit also fixes a few errors that are present in the general debug menu.
* | Merge pull request #4951 from bunnei/olsc-stubbunnei2020-11-202-0/+2
|\ \ | | | | | | hle: service: Stub OLSC Initialize and SetSaveDataBackupSettingEnabled functions.
| * | hle: service: Stub OLSC Initialize and SetSaveDataBackupSettingEnabled functions.bunnei2020-11-192-0/+2
| | | | | | | | | | | | - Used by Animal Cross: New Horizons v1.6.0 update, minimal stub gets this update working.
* | | common/bit_cast: Add function matching std::bit_cast without constexprReinUsesLisp2020-11-202-0/+23
| | | | | | | | | | | | | | | | | | | | | | | | Add a std::bit_cast-like function archiving the same runtime results as the standard function, without compile time support. This allows us to use bit_cast while we wait for compiler support, it can be trivially replaced in the future.
* | | virtual_buffer: Do nothing on resize() calls with same sizesLioncash2020-11-191-1/+6
|/ / | | | | | | | | Prevents us from churning memory by freeing and reallocating a memory block that would have already been adequate as is.
* | virtual_buffer: Add compile-time type-safety guarantees with VirtualBufferLioncash2020-11-181-0/+6
| | | | | | | | | | | | | | | | | | VirtualBuffer makes use of VirtualAlloc (on Windows) and mmap() (on other platforms). Neither of these ensure that non-trivial objects are properly constructed in the allocated memory. To prevent potential undefined behavior occurring due to that, we can add a static assert to loudly complain about cases where that is done.
* | page_table: Allow page tables to be movedLioncash2020-11-184-9/+30
| | | | | | | | | | | | | | | | Makes page tables and virtual buffers able to be moved, but not copied, making the interface more flexible. Previously, with the destructor specified, but no move assignment or constructor specified, they wouldn't be implicitly generated.
* | page_table: Add missing doxygen parameters to Resize()Lioncash2020-11-181-0/+2
| | | | | | | | Resolves two -Wdocumentation warnings.
* | page_table: Remove unnecessary header inclusionsLioncash2020-11-181-4/+0
| | | | | | | | Prevents indirect inclusions for these headers.
* | common/fiber: Move all member variables into impl classLioncash2020-11-072-89/+86
| | | | | | | | | | | | Hides all of the implementation details for users of the class. This has the benefit of reducing includes and also making the fiber classes movable again.
* | General: Fix clang buildLioncash2020-11-052-2/+10
| | | | | | | | Allows building on clang to work again
* | common: Enable warnings as errorsLioncash2020-11-029-31/+49
| | | | | | | | Cleans up common so that we can enable warnings as errors.
* | Merge pull request #4868 from lioncash/discard-errorbunnei2020-10-302-5/+12
|\ \ | | | | | | General: Make ignoring a discarded return value an error
| * | General: Make ignoring a discarded return value an errorLioncash2020-10-302-5/+12
| | | | | | | | | | | | | | | | | | | | | Allows our CI to catch more potential bugs. This also removes the [[nodiscard]] attribute of IOFile's Open member function. There are cases where a file may want to be opened, but have the status of it checked at a later time.
* | | common/stream: Be explicit with copy and move operatorsLioncash2020-10-301-3/+9
|/ /
* | common/fiber: Take shared_ptr<Fiber> by copy in YieldToReinUsesLisp2020-10-282-3/+3
| | | | | | | | | | YieldTo does not intend to modify the passed shared_ptrs. Pass it by copy to keep a reference count while this function executes.
* | video_core: NVDEC Implementationameerj2020-10-273-0/+99
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit aims to implement the NVDEC (Nvidia Decoder) functionality, with video frame decoding being handled by the FFmpeg library. The process begins with Ioctl commands being sent to the NVDEC and VIC (Video Image Composer) emulated devices. These allocate the necessary GPU buffers for the frame data, along with providing information on the incoming video data. A Submit command then signals the GPU to process and decode the frame data. To decode the frame, the respective codec's header must be manually composed from the information provided by NVDEC, then sent with the raw frame data to the ffmpeg library. Currently, H264 and VP9 are supported, with VP9 having some minor artifacting issues related mainly to the reference frame composition in its uncompressed header. Async GPU is not properly implemented at the moment. Co-Authored-By: David <25727384+ogniK5377@users.noreply.github.com>
* | core: Fix clang build pt.3Lioncash2020-10-221-2/+2
| | | | | | | | Should finally resolve building with clang.
* | Revert "core: Fix clang build"bunnei2020-10-217-22/+13
| |
* | Merge pull request #4796 from lioncash/clangLC2020-10-217-13/+22
|\ \ | | | | | | core: Fix clang build
| * | core: Fix clang buildLioncash2020-10-187-13/+22
| | | | | | | | | | | | | | | | | | | | | Recent changes to the build system that made more warnings be flagged as errors caused building via clang to break. Fixes #4795
* | | input_common/CMakeLists: Make some warnings errorsLioncash2020-10-162-11/+68
|/ / | | | | | | | | Makes the input_common code warnings consistent with the rest of the codebase.
* | core/CMakeLists: Make some warnings errorsLioncash2020-10-131-5/+5
| | | | | | | | | | | | | | | | | | Makes our error coverage a little more consistent across the board by applying it to Linux side of things as well. This also makes it more consistent with the warning settings in other libraries in the project. This also updates httplib to 0.7.9, as there are several warning cleanups made that allow us to enable several warnings as errors.
* | Merge pull request #4731 from lat9nq/mingw-zstd-fixbunnei2020-10-081-1/+6
|\ \ | | | | | | common: Use system zstd on Linux
| * | CMakeLists: use system zstd on Linuxlat9nq2020-09-291-1/+6
| | | | | | | | | | | | | | | From what I understand, this tells CMake to use the system, not conan, version of zstd. Required to build on the coming MinGW Docker container.
| * | CMakeLists: fix for finding zstd on linux-mingwlat9nq2020-09-291-1/+1
| | |
* | | common/wall_clock: Add virtual destructorsReinUsesLisp2020-09-303-2/+4
|/ / | | | | | | | | | | | | | | From -fsanitize=address, this code wasn't calling the proper destructor. Adding virtual destructors for each inherited class and the base class fixes this bug. While we are at it, mark the functions as final.
* | Merge pull request #4611 from lioncash/xbyak2bunnei2020-09-041-16/+16
|\ \ | | | | | | externals: Update Xbyak to 5.96
| * | externals: Update Xbyak to 5.96Lioncash2020-08-301-16/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | I made a request on the Xbyak issue tracker to allow some constructors to be constexpr in order to avoid static constructors from needing to execute for some of our register constants. This request was implemented, so this updates Xbyak so that we can make use of it.
* | | Merge pull request #4578 from lioncash/xorbunnei2020-09-031-4/+10
|\ \ \ | | | | | | | | common_funcs: Add missing XOR operators to DECLARE_ENUM_FLAG_OPERATORS
| * | | common_funcs: Add missing XOR operators to DECLARE_ENUM_FLAG_OPERATORSLioncash2020-08-241-4/+10
| | |/ | |/| | | | | | | | | | Ensures that the full set of bitwise operators are available for types that make use of this macro.
* | | input_common/motion_input: Make use of Common::PI constantMorph2020-09-021-1/+1
| | | | | | | | | | | | Also amend the copyright notice to yuzu's instead of Dolphin's, which was mistakenly copy-pasted from another file.
* | | Merge pull request #4570 from german77/motionInputbunnei2020-09-021-0/+30
|\ \ \ | | | | | | | | input_common: Add a basic class for motion devices
| * | | Implement a basic class for motion devicesgerman2020-08-281-0/+30
| | |/ | |/|
* | | Merge pull request #4588 from ReinUsesLisp/tsan-eventbunnei2020-09-011-4/+5
|\ \ \ | | | | | | | | common/thread: Fix data race in is_set
| * | | common/thread: Fix data race in is_setReinUsesLisp2020-08-261-4/+5
| | | | | | | | | | | | | | | | | | | | As report by tsan, Event::Set can write is_set while WaitFor and friends are reading from it. To address this issue, make is_set an atomic.
* | | | Merge pull request #4461 from comex/thread-namesLC2020-08-311-0/+12
|\ \ \ \ | |_|/ / |/| | | Fix thread naming on Linux, which limits names to 15 bytes.
| * | | Fix thread naming on Linux, which limits names to 15 bytes.comex2020-08-061-0/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - In `SetCurrentThreadName`, when on Linux, truncate to 15 bytes, as (at least on glibc) `pthread_set_name_np` will otherwise return `ERANGE` and do nothing. - Also, add logging in case `pthread_set_name_np` returns an error anyway. This is Linux-specific, as the Apple and BSD versions of `pthread_set_name_np return `void`. - Change the name for CPU threads in multi-core mode from "yuzu:CoreCPUThread_N" (19 bytes) to "yuzu:CPUCore_N" (14 bytes) so it fits into the Linux limit. Some other thread names are also cut off, but I didn't bother addressing them as you can guess them from the truncated versions. For a CPU thread, truncation means you can't see which core it is!
* | | | Merge pull request #4530 from Morph1984/mjolnir-p1bunnei2020-08-271-1/+1
|\ \ \ \ | | | | | | | | | | Project Mjölnir: Part 1 - Input Rewrite
| * | | | Project Mjölnir: Part 1Morph2020-08-261-1/+1
| | |/ / | |/| | | | | | | | | | | | | | Co-authored-by: James Rowe <jroweboy@gmail.com> Co-authored-by: Its-Rei <kupfel@gmail.com>
* | | | Merge pull request #4577 from lioncash/assertsbunnei2020-08-271-3/+4
|\ \ \ \ | |/ / / |/| | | common/assert: Make use of C++ attribute syntax
| * | | common/assert: Make use of C++ attribute syntaxLioncash2020-08-241-3/+4
| | |/ | |/| | | | | | | Normalizes the syntax used for attributes
* | | Merge pull request #4548 from lioncash/colorbunnei2020-08-251-2/+2
|\ \ \ | |/ / |/| | common/color: Migrate code over to the Common namespace
| * | common/color: Migrate code over to the Common namespaceLioncash2020-08-181-2/+2
| | | | | | | | | | | | | | | No external code makes use of this header, so we can freely change the namespace.
* | | web_service: Move web_result.h into web_serviceLioncash2020-08-232-26/+0
| | | | | | | | | | | | | | | | | | | | | This is the only place it's actively used. It's also more appropriate for web-related structures to be within the web service target. Especially given this one doesn't rely on anything in the common library.
* | | Merge pull request #4546 from lioncash/telemetrybunnei2020-08-202-4/+4
|\ \ \ | | | | | | | | common/telemetry: Migrate namespace into the Common namespace
| * | | common/telemetry: Migrate namespace into the Common namespaceLioncash2020-08-182-4/+4
| |/ / | | | | | | | | | | | | Migrates the Telemetry namespace into the Common namespace to make the code consistent with the rest of our common code.
* | | Merge pull request #4547 from lioncash/header-conceptbunnei2020-08-201-2/+2
|\ \ \ | | | | | | | | common/concepts: Move <type_traits> include out of the Common namespace
| * | | common/concepts: Move <type_traits> include out of the Common namespaceLioncash2020-08-181-2/+2
| |/ / | | | | | | | | | This is a compiler/linker error waiting to happen.
* | | Revert "common/time_zone: Simplify GetOsTimeZoneOffset()"bunnei2020-08-201-5/+9
| | |
* | | Merge pull request #4539 from lioncash/discbunnei2020-08-192-3/+3
|\ \ \ | |/ / |/| | common: Silence two discarded result warnings
| * | common: Silence two discarded result warningsLioncash2020-08-162-3/+3
| | | | | | | | | | | | | | | | | | | | | These are intentionally discarded internally, since the rest of the public API allows querying success. We want all non-internal uses of these functions to be explicitly checked, so we can signify that we intentionally want to discard the return values here.
* | | Merge pull request #4535 from lioncash/fileutilbunnei2020-08-183-41/+49
|\ \ \ | | | | | | | | common/fileutil: Convert namespace to Common::FS
| * | | common/fileutil: Convert namespace to Common::FSLioncash2020-08-163-41/+49
| |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Migrates a remaining common file over to the Common namespace, making it consistent with the rest of common files. This also allows for high-traffic FS related code to alias the filesystem function namespace as namespace FS = Common::FS; for more concise typing.
* / / common/time_zone: Simplify GetOsTimeZoneOffset()Lioncash2020-08-161-9/+5
|/ / | | | | | | | | | | | | We can simplify this function down into a single line with the use of fmt. A benefit with the fmt approach is that the fmt variant of localtime is thread-safe as well, making GetOsTimeZoneOffset() thread-safe as well.
* | common/compression: Roll back std::span changesLioncash2020-08-154-37/+43
| | | | | | | | Seems like all compilers don't support std::span yet.
* | common: Make use of [[nodiscard]] where applicableLioncash2020-08-1534-358/+343
| | | | | | | | | | | | Now that clang-format makes [[nodiscard]] attributes format sensibly, we can apply them to several functions within the common library to allow the compiler to complain about any misuses of the functions.
* | Merge pull request #4416 from lioncash/spanbunnei2020-08-154-28/+23
|\ \ | | | | | | lz4_compression/zstd_compression: Make use of std::span in interfaces
| * | lz4_compression: Make use of std::span in interfacesLioncash2020-07-252-17/+14
| | | | | | | | | | | | Allows compressing the data and size parameters into one.
| * | zstd_compression: Make use of std::span in interfacesLioncash2020-07-252-11/+9
| | | | | | | | | | | | Allows condensing the data and size parameters into a single argument.
* | | Merge pull request #4511 from lioncash/build2LC2020-08-133-4/+3
|\ \ \ | | | | | | | | General: Tidy up clang-format warnings part 2
| * | | General: Tidy up clang-format warnings part 2Lioncash2020-08-133-4/+3
| | | |
* | | | Merge pull request #4493 from jbeich/dragonflybunnei2020-08-111-9/+0
|\ \ \ \ | |/ / / |/| | | common/virtual_buffer: drop unused includes
| * | | common/virtual_buffer: drop unused includesJan Beich2020-08-051-9/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | On DragonFly and NetBSD build fails with src/common/virtual_buffer.cpp src/common/virtual_buffer.cpp:16:10: fatal error: sys/sysinfo.h: No such file or directory #include <sys/sysinfo.h> ^~~~~~~~~~~~~~~
* | | | General: Tidy up clang-format warningsLioncash2020-08-091-1/+1
| | | |
* | | | common/concepts: Rename IsBaseOf to DerivedFromLioncash2020-08-071-4/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This makes it more inline with its currently unavailable standardized analogue std::derived_from. While we're at it, we can also make the template match the requirements of the standardized variant as well.
* | | | Merge pull request #4483 from lioncash/constexpr-hexbunnei2020-08-072-40/+23
|\ \ \ \ | |_|_|/ |/| | | partition_data_manager: Make data arrays constexpr
| * | | partition_data_manager: Make data arrays constexprLioncash2020-08-062-40/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously the constructor for all of these would run at program startup, consuming time before the application can enter main(). This is also particularly dangerous, given the logging system wouldn't have been initialized properly yet, yet the program would use the logs to signify an error. To rectify this, we can replace the literals with constexpr functions that perform the conversion at compile-time, completely eliminating the runtime cost of initializing these arrays.
* | | | Merge pull request #4477 from lioncash/log-desigbunnei2020-08-062-21/+15
|\ \ \ \ | |_|/ / |/| | | logging/backend: Make use of designated initializers
| * | | logging/backend: Make use of designated initializersLioncash2020-08-032-21/+15
| |/ / | | | | | | | | | Same behavior, less code.
* | | Merge pull request #4444 from lioncash/volatilebunnei2020-08-052-21/+26
|\ \ \ | |/ / |/| | common/atomic_ops: Don't cast away volatile from pointers
| * | common/atomic_ops: Don't cast away volatile from pointersLioncash2020-07-282-21/+26
| | | | | | | | | | | | Preserves the volatility of the pointers being casted.
* | | ipc: Allow all trivially copyable objects to be passed directly into WriteBuffer (#4465)David2020-08-032-0/+33
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * ipc: Allow all trivially copyable objects to be passed directly into WriteBuffer With the support of C++20, we can use concepts to deduce if a type is an STL container or not. * More agressive concept for stl containers * Add -fconcepts * Move to common namespace * Add Common::IsBaseOf
* | | Merge pull request #4263 from lat9nq/fix-screencaps-2David2020-08-033-0/+3
|\ \ \ | |/ / |/| | screenshots: Option to save screenshots immediately in a specified directory + Linux workaround
| * | common: Add a screenshots directorylat9nq2020-07-213-0/+3
| |/ | | | | | | Adds a screenshots directory as a path managed by FileUtil.
* | Merge pull request #4415 from lioncash/maybebunnei2020-07-261-1/+1
|\ \ | | | | | | virtual_buffer: Mark size parameter of FreeMemoryPages() as [[maybe_unused]]
| * | virtual_buffer: Mark size parameter of FreeMemoryPages() as [[maybe_unused]]Lioncash2020-07-251-1/+1
| |/ | | | | | | | | This isn't used on Windows, but is used on non-Windows operating systems.
* / common/string_util: Remove unimplemented function prototype (#4414)LC2020-07-251-12/+0
|/ | | | This function was relocated to log.h as a constexpr function, so this can be removed.
* alignment: explicitly include <new> after 723edb4c0659Jan Beich2020-07-191-0/+1
| | | | | | | | | | In file included from src/core/hle/kernel/memory/page_table.cpp:5: src/./common/alignment.h:67:68: error: no member named 'align_val_t' in namespace 'std' return static_cast<T*>(::operator new (n * sizeof(T), std::align_val_t{Align})); ~~~~~^ src/./common/alignment.h:71:51: error: no member named 'align_val_t' in namespace 'std' ::operator delete (p, n * sizeof(T), std::align_val_t{Align}); ~~~~~^
* alignment: Simplify AlignmentAllocator implementationLioncash2020-07-171-43/+4
| | | | | With C++20, much of the allocator interface has been simplified, so we can make the same adjustments.
* common/swap: Make use of std::endianLioncash2020-07-141-42/+4
| | | | Allows removing a bunch of defines in favor of a two liner.
* common/alignment: Fix compilation errors (#4303)Tobias2020-07-121-1/+3
|
* Revert "Port citra-emu/citra#5441: "Common: remove a mod from AlignUp""bunnei2020-07-121-3/+1
|
* Common: remove a mod from AlignUp (#5441)Marshall Mohror2020-07-111-1/+3
| | | | In cases where the size is not a known constant when inlining, AlignUp<std::size_t> currently generates two 64-bit div instructions. This generates one div and a cmov which is significantly cheaper.
* cmake: Fix libfmt linking errorsDavid Marcec2020-07-101-5/+1
|
* cmake: fix fmt linking when foundJohn Galt2020-07-091-1/+5
| | | | | | | This is a new attempt at #4206 that shouldn't break windows builds. If someone else could test on windows, it would be much appreciated. Previously, the build bot passed but the actual builds failed.
* Revert "cmake: fix fmt linking"bunnei2020-07-031-1/+1
|
* Merge pull request #4206 from RealJohnGalt/linkfixbunnei2020-07-031-1/+1
|\ | | | | cmake: fix fmt linking
| * cmake: fix fmt linkingJohn Galt2020-06-291-1/+1
| | | | | | | | | | | | | | | | | | On gcc/ld, and clang/lld, fmt::v6 symbols are excluded, so linking fails. This fixes the issue. Note: This was included in the FindBoost changes I shared with BlinkHawk, however only they were merged. I'm not sure if it was missed, or if there was an issue with this part of the change.
* | common: switch to nullptr for sysctl's empty new valueJan Beich2020-07-011-4/+4
| |
* | common: add sysconf() fallbackJan Beich2020-06-301-3/+16
|/ | | | | | src/common/memory_detect.cpp:15:10: fatal error: 'sys/sysinfo.h' file not found #include <sys/sysinfo.h> ^~~~~~~~~~~~~~~
* Core/Common: Address Feedback.Fernando Sahmkow2020-06-284-12/+13
|
* Common/Kernel: Corrections and small bug fixing.Fernando Sahmkow2020-06-271-6/+1
|
* Common/NativeClockx86: Reduce native clock accuracy further.Fernando Sahmkow2020-06-271-1/+1
|
* Common/AtomicOps: Correct GCC Intrinsic argument ordering.Fernando Sahmkow2020-06-271-5/+5
|
* Clang Format.Fernando Sahmkow2020-06-273-23/+23
|
* General: Tune the priority of main emulation threads so they have higher priority than less important helper threads.Fernando Sahmkow2020-06-272-0/+55
|
* X64 Clock: Reduce accuracy to be less or equal to guest accuracy.Fernando Sahmkow2020-06-272-1/+7
|
* ARM/Memory: Correct Exclusive Monitor and Implement Exclusive Memory Writes.Fernando Sahmkow2020-06-273-0/+89
|
* HostTiming: Pause the hardware clock on pause.Fernando Sahmkow2020-06-274-0/+15
|
* General: Recover Prometheus project from harddrive failure Fernando Sahmkow2020-06-271-0/+6
| | | | | | | This commit: Implements CPU Interrupts, Replaces Cycle Timing for Host Timing, Reworks the Kernel's Scheduler, Introduce Idle State and Suspended State, Recreates the bootmanager, Initializes Multicore system.
* Merge pull request #3396 from FernandoS27/prometheus-1David2020-06-2714-3/+758
|\ | | | | Implement SpinLocks, Fibers and a Host Timer
| * Common: Fix non-conan buildFernando Sahmkow2020-06-261-1/+2
| |
| * Common/Fiber: Address Feedback and Correct Memory leaks.Fernando Sahmkow2020-06-182-34/+41
| |
| * Common/Fiber: Implement Rewind on Boost Context.Fernando Sahmkow2020-06-182-2/+39
| |
| * Common/uint128: Correct MSVC Compilation in old versions.Fernando Sahmkow2020-06-181-0/+4
| |
| * Common/Fiber: Document fiber interexchange.Fernando Sahmkow2020-06-181-1/+4
| |
| * Common/Fiber: Implement Rewinding.Fernando Sahmkow2020-06-182-2/+38
| |
| * Common/Fiber: Additional corrections to f_context.Fernando Sahmkow2020-06-181-4/+4
| |
| * Common/Fiber: Correct f_context based Fibers.Fernando Sahmkow2020-06-181-6/+8
| |
| * Core/HostTiming: Allow events to be advanced manually.Fernando Sahmkow2020-06-182-5/+6
| |
| * Common/Tests: Address FeedbackFernando Sahmkow2020-06-183-8/+8
| |
| * Common: Make MinGW build use Windows Fibers instead of fcontext_tFernando Sahmkow2020-06-182-4/+4
| |
| * Common/Tests: Clang Format.Fernando Sahmkow2020-06-184-18/+21
| |
| * Common: Correct fcontext fibers.Fernando Sahmkow2020-06-181-5/+4
| |
| * Common: Refactor & Document Wall clock.Fernando Sahmkow2020-06-185-49/+49
| |
| * Common: Implement WallClock Interface and implement a native clock for x64Fernando Sahmkow2020-06-187-0/+348
| |
| * Tests: Add base tests to host timingFernando Sahmkow2020-06-181-2/+2
| |
| * Common: Polish Fiber class, add comments, asserts and more tests.Fernando Sahmkow2020-06-184-24/+53
| |
| * Tests: Add tests for fibers and refactor/fix Fiber classFernando Sahmkow2020-06-182-19/+32
| |
| * Common: Implement a basic Fiber class.Fernando Sahmkow2020-06-183-0/+204
| |
| * Common: Implement a basic SpinLock classFernando Sahmkow2020-06-183-0/+68
| |
* | common/telemetry: Add AVX512 to telemetryMorph2020-06-201-0/+1
| |
* | common/cpu_detect: Add AVX512 detectionMorph2020-06-202-0/+6
|/
* Merge pull request #4086 from MerryMage/abibunnei2020-06-171-66/+29
|\ | | | | xbyak_abi: Cleanup
| * xbyak_abi: Prefer returning a struct to using out parameters in ABI_CalculateFrameSizeMerryMage2020-06-151-17/+19
| |
| * xbyak_abi: Register indexes should be unsignedMerryMage2020-06-151-11/+12
| |
| * xbyak_abi: Remove *GPS variants of stack manipulation functionsMerryMage2020-06-151-36/+0
| |
| * xbyak_abi: Fix ABI_PushRegistersAndAdjustStackMerryMage2020-06-151-6/+2
| | | | | | | | Pushing GPRs twice.
* | gl_arb_decompiler: Implement an assembly shader decompilerReinUsesLisp2020-06-121-0/+2
|/ | | | | | Emit code compatible with NV_gpu_program5. This should emit code compatible with Fermi, but it wasn't tested on that architecture. Pascal has some issues not present on Turing GPUs.
* Add xbyak externalDavid Marcec2020-05-303-1/+316
|
* Fix macOS code and change "Swapfile" to "Swap"Morph2020-05-271-2/+5
|
* main: Log host system memory parametersMorph2020-05-173-0/+81
| | | | Logs both physical memory and swapfile sizes, this is useful for support.
* time_zone: Use std::chrono::seconds for strong typing.bunnei2020-05-132-3/+4
|
* common: Add module to get the current time zone.bunnei2020-05-113-0/+68
|
* Replace externals with Conan (#3735)James Rowe2020-05-081-2/+2
| | | | | | | | | | | | | | | | | | | | | * Remove git submodules that will be loaded through conan * Move custom Find modules to their own folder * Use conan for downloading missing external dependencies * CI: Change the yuzu source folder user to the user that the containers run on * Attempt to remove dirty mingw build hack * Install conan on the msvc build * Only set release build type when using not using multi config generator * Re-add qt bundled to workaround an issue with conan qt not downloading prebuilt binaries * Add workaround for submodules that use legacy CMAKE variables * Re-add USE_BUNDLED_QT on the msvc build bot
* acc: Return a unique value per account for GetAccountIdDavid Marcec2020-04-291-0/+5
|
* Fix -Werror=conversion error.Markus Wick2020-04-241-1/+1
|
* Merge pull request #3630 from benru/open-windows-network-filesbunnei2020-04-181-1/+8
|\ | | | | common/file_util: Allow access to files on network shares
| * common/file_util: Allow access to files on network sharesBen Russell2020-04-091-1/+8
| | | | | | | | | | | | | | | | On Windows, network shares use paths like \\server\share\file which were being broken by FileUtil::SanitizePath() removing double slashes. Changed the code in SanitizePath to permit a double-backslash if it occurs at the start of a filepath (on Windows only).
* | Merge pull request #3672 from lioncash/nullFernando Sahmkow2020-04-172-9/+33
|\ \ | | | | | | file_util: Early-exit in WriteArray and ReadArray if specified lengths are zero
| * | file_util: Early-exit in WriteArray and ReadArray if specified lengths are zeroLioncash2020-04-152-9/+33
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It's undefined behavior to pass a null pointer to std::fread and std::fwrite, even if the length passed in is zero, so we must perform the precondition checking ourselves. A common case where this can occur is when passing in the data of an empty std::vector and size, as an empty vector will typically have a null internal buffer. While we're at it, we can move the implementation out of line and add debug checks against passing in nullptr to std::fread and std::fwrite.
* | | common: page_table: Update to use VirtualBuffer and simplify.bunnei2020-04-172-53/+18
| | |
* | | common: Add VirtualBuffer class, to abstract memory virtualization.bunnei2020-04-173-0/+112
| | |
* | | common: scope_exit: Implement mechanism for canceling a scope exit.bunnei2020-04-171-1/+8
| | |
* | | common: alignment: Add a helper function for generic alignment checking.bunnei2020-04-171-0/+7
| | |
* | | common: common_funcs: Add a macro for defining enum flag operators.bunnei2020-04-171-0/+32
|/ /
* | Merge pull request #3594 from ReinUsesLisp/vk-instancebunnei2020-04-113-0/+183
|\ \ | |/ |/| yuzu: Drop SDL2 and Qt frontend Vulkan requirements
| * common/dynamic_library: Import and adapt helper from DolphinReinUsesLisp2020-04-073-0/+183
| |
* | common: Port some changes from dolphin (#5127)Vitor K2020-04-012-15/+16
|/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * IOFile: Make the move constructor and move assignment operator noexcept Certain parts of the standard library try to determine whether or not a transfer operation should either be a copy or a move. The prevalent notion of move constructors/assignment operators is that they should not throw, they simply move an already existing resource somewhere else. This is typically done with 'std::move_if_noexcept'. Like the name says, if a type's move constructor is noexcept, then the functions retrieves an r-value reference (for move semantics), or an l-value (for copy semantics) if it is not noexcept. As IOFile deletes the copy constructor and copy assignment operators, using IOFile with certain parts of the standard library can fail in unexcepted ways (especially when used with various container implementations). This prevents that. * fix various instances of -1 being assigned to unsigned types * do not assign in conditional statements * File/IOFile: Check _tfopen_s properly * common/file_util.cpp: address review comments Co-authored-by: Lioncash <mathew1800@gmail.com> Co-authored-by: Shawn Hoffman <godisgovernment@gmail.com> Co-authored-by: Sepalani <sepalani@hotmail.fr>
* Merge pull request #3508 from FernandoS27/page-tablebunnei2020-03-142-3/+24
|\ | | | | PageTable: move backing addresses to a children class as the CPU page table does not need them.
| * PageTable: move backing addresses to a children class as the CPU page table does not need them.Fernando Sahmkow2020-03-142-3/+24
| | | | | | | | | | | | This PR aims to reduce the memory usage in the CPU page table by moving GPU specific parameters into a child class. This saves 1Gb of Memory for most games.
* | shader/transform_feedback: Add host API friendly TFB builderReinUsesLisp2020-03-131-0/+2
| |
* | video_core: Rename "const buffer locker" to "registry"ReinUsesLisp2020-03-091-2/+2
| |
* | gl_shader_cache: Rework shader cache and remove post-specializationsReinUsesLisp2020-03-091-2/+0
|/ | | | | Instead of pre-specializing shaders and then post-specializing them, drop the later and only "specialize" the shader while decoding it.
* common/math_util: Support float type rectanglesReinUsesLisp2020-02-281-2/+14
|
* Merge pull request #3326 from FearlessTobi/port-5039bunnei2020-01-254-36/+23
|\ | | | | Port citra-emu/citra#5039: "common/logging: don't use regex for path trimming"
| * common/logging: don't use regex for path trimmingBreadFish642020-01-234-36/+23
| |
* | Address second part of review commentsFearlessTobi2020-01-231-1/+1
| |
* | Input: UDP Client to provide motion and touch controlsfearlessTobi2020-01-231-0/+9
|/ | | | | | | | An implementation of the cemuhook motion/touch protocol, this adds the ability for users to connect several different devices to citra to send direct motion and touch data to citra. Co-Authored-By: jroweboy <jroweboy@gmail.com>
* Remove unused CPU Vendor string and telemtry fieldJames Rowe2020-01-183-114/+0
| | | | The information is duplicated in the brand string and the telemetry field is unused
* Fix git version in scm_rev.cppJames Rowe2020-01-161-0/+5
|
* common: SPSCQueue: Notify after incrementing queue size.bunnei2019-12-171-2/+9
|
* fix clang-format and lambda captureWeiyi Wang2019-11-231-1/+2
|
* unfold UNREACHABLE implementation for dumb compilersWeiyi Wang2019-11-231-2/+2
| | | We relies on UNREACHABLE's noreturn attribute to eliminate parent's "no return value" warning. However, this was wrapped in a `if(!false)` block, which compilers may not unfold to recognize the noreturn nature.
* common/logging: Silence no return value warningsReinUsesLisp2019-11-151-2/+6
|
* common_funcs: Remove semicolons from INSERT_PADDING_* macrosLioncash2019-11-141-4/+6
| | | | | Makes code that uses the macros consistent by requiring the lines to be terminated with a semicolon.
* common/hash: Remove unused HashableStructLioncash2019-11-131-35/+0
| | | | | This is unused, so it can be removed. There's better ways of ensuring zeroed out padding bits, like using zero-initialization, anyhow.
* common_funcs: silence sign-conversion warnings in MakeMagic()Lioncash2019-11-131-1/+1
| | | | | We can trivially resolve these by casting the characters to unsigned values and then shifting the bits.
* ci: Populate build repository from Azure environmentZach Hilman2019-11-061-11/+2
|
* common_func: Use std::array for INSERT_PADDING_* macros.bunnei2019-11-042-12/+17
| | | | - Zero initialization here is useful for determinism.
* common/bit_field: Remove FORCE_INLINE calls Tobias2019-11-031-2/+2
| | | | See bunneis comment here https://github.com/citra-emu/citra/pull/4629#discussion_r258533167. They were supposed to be removed by him, but he missed them.
* Merge pull request #2971 from FernandoS27/new-scheduler-v2David2019-10-281-0/+7
|\ | | | | Kernel: Implement a New Thread Scheduler V2
| * Kernel Scheduler: Make sure the global scheduler shutdowns correctly.Fernando Sahmkow2019-10-151-0/+7
| |
* | Shader_IR: Address Feedback.Fernando Sahmkow2019-10-261-1/+1
| |
* | VideoCore: Unify const buffer accessing along engines and provide ConstBufferLocker class to shaders.Fernando Sahmkow2019-10-252-2/+15
| |
* | common/algorithm: Add description comment indicating intended algorithmsLioncash2019-10-151-0/+5
| | | | | | | | | | Makes it explicit that the header is intended for iterator-based algorithms that can ideally operate on any type.
* | common: Rename binary_find.h to algorithm.hLioncash2019-10-152-1/+2
|/ | | | | | Makes the header more general for other potential algorithms in the future. While we're at it, include a missing <functional> include to satisfy the use of std::less.
* alignment: Resolve allocator construction issues on debugLioncash2019-10-071-0/+5
| | | | | | | | | | | This was related to the source allocator being passed into the constructor potentially having a different type than allocator being constructed. We simply need to provide a constructor to handle this case. This resolves issues related to the allocator causing debug builds on MSVC to fail.
* alignment: Specify trait definitions within the allocatorLioncash2019-10-071-0/+5
| | | | | Allows containers and other data structures to consider optimizations based off of them. We satisfy all of these requirements anyways.
* Merge pull request #2942 from ReinUsesLisp/clang-warningsbunnei2019-10-061-1/+2
|\ | | | | Silence miscellaneous warnings
| * common/file_util: Silence -WswitchReinUsesLisp2019-10-051-1/+2
| |
* | Merge pull request #2943 from DarkLordZach/azure-titlebars-v2bunnei2019-10-063-0/+21
|\ \ | | | | | | ci: Add custom titlebars for mainline and patreon
| * | common: Add additional SCM revision fieldsZach Hilman2019-10-053-0/+21
| |/
* | Shader_Ir: Refactor Decompilation process and allow multiple decompilation modes.Fernando Sahmkow2019-10-051-0/+2
| |
* | shader_ir: Corrections to outward movements and misc stuffsFernando Sahmkow2019-10-051-0/+4
|/
* cmake: Add SCM detection for AzureZach Hilman2019-09-221-0/+3
|
* log: Add logging class for Cheat EngineZach Hilman2019-09-222-0/+2
| | | This is better than just using something like Common.Filesystem or Common.Memory
* shader_ir: Implement VOTEReinUsesLisp2019-08-211-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Implement VOTE using Nvidia's intrinsics. Documentation about these can be found here https://developer.nvidia.com/reading-between-threads-shader-intrinsics Instead of using portable ARB instructions I opted to use Nvidia intrinsics because these are the closest we have to how Tegra X1 hardware renders. To stub VOTE on non-Nvidia drivers (including nouveau) this commit simulates a GPU with a warp size of one, returning what is meaningful for the instruction being emulated: * anyThreadNV(value) -> value * allThreadsNV(value) -> value * allThreadsEqualNV(value) -> true ballotARB, also known as "uint64_t(activeThreadsNV())", emits VOTE.ANY Rd, PT, PT; on nouveau's compiler. This doesn't match exactly to Nvidia's code VOTE.ALL Rd, PT, PT; Which is emulated with activeThreadsNV() by this commit. In theory this shouldn't really matter since .ANY, .ALL and .EQ affect the predicates (set to PT on those cases) and not the registers.
* Common/Alignment: Add noexcept where required.Fernando Sahmkow2019-07-201-5/+5
|
* Kernel: Address FeedbackFernando Sahmkow2019-07-191-3/+2
|
* Common: Correct alignment allocator to work on C++14 or higher.Fernando Sahmkow2019-07-191-37/+19
|
* VM_Manager: Align allocated memory to 256bytesFernando Sahmkow2019-07-191-0/+79
| | | | | | This commit ensures that all backing memory allocated for the Guest CPU is aligned to 256 bytes. This due to how gpu memory works and the heavy constraints it has in the alignment of physical memory.
* shader_ir: Implement a new shader scannerFernando Sahmkow2019-07-091-0/+2
|
* texture_cache: Address FeedbackFernando Sahmkow2019-07-053-10/+22
|
* common/alignment: Address feedbackReinUsesLisp2019-06-241-2/+3
|
* shader: Decode SUST and implement backing image functionalityReinUsesLisp2019-06-211-0/+1
|
* texture_cache: Optimize GetMipBlockHeight and GetMipBlockDepthFernando Sahmkow2019-06-211-0/+44
|
* video_core: Use un-shifted block sizes to avoid integer divisionsReinUsesLisp2019-06-211-0/+5
| | | | | | | | | | | | Instead of storing all block width, height and depths in their shifted form: block_width = 1U << block_shift; Store them like they are provided by the emulated hardware (their block_shift form). This way we can avoid doing the costly Common::AlignUp operation to align texture sizes and drop CPU integer divisions with bitwise logic (defined in Common::AlignBits).
* Reduce amount of size calculations.Fernando Sahmkow2019-06-211-0/+11
|
* common/hex_util: Reserve std::string memory ahead of timeLioncash2019-06-121-0/+5
| | | | | | | | Avoids potentially performing multiple reallocations (depending on the size of the input data) by reserving the necessary amount of memory ahead of time. This is trivially doable, so there's no harm in it.
* common/hex_util: Combine HexVectorToString() and HexArrayToString()Lioncash2019-06-122-11/+7
| | | | | | These can be generified together by using a concept type to designate them. This also has the benefit of not making copies of potentially very large arrays.
* cmake: Add missing shader hash file entriesReinUsesLisp2019-06-071-0/+3
|
* common/math_util: Provide a template deduction guide for Common::RectangleLioncash2019-05-311-0/+3
| | | | | | | | | | | | | | Allows for things such as: auto rect = Common::Rectangle{0, 0, 0, 0}; as opposed to being required to explicitly write out the underlying type, such as: auto rect = Common::Rectangle<int>{0, 0, 0, 0}; The only requirement for the deduction is that all constructor arguments be the same type.
* Merge pull request #1931 from DarkLordZach/mii-database-1bunnei2019-05-303-0/+83
|\ | | | | mii: Implement MiiManager backend and several mii service commands
| * mii: Implement Delete and Destroy fileZach Hilman2019-04-251-5/+6
| |
| * mii_manager: Cleanup and optimizationZach Hilman2019-04-252-3/+5
| |
| * common: Extract UUID to its own classZach Hilman2019-04-253-0/+80
| | | | | | Since the Mii database uses UUIDs very similar to the Accounts database, it makes no sense to not share code between them.
* | common/file_util: Remove unnecessary return at end of void StripTailDirSlashes()Lioncash2019-05-231-6/+8
| | | | | | | | While we're at it, also invert the conditional into a guard clause.
* | common/file_util: Make GetCurrentDir() return a std::optionalLioncash2019-05-232-3/+4
| | | | | | | | | | | | | | | | | | | | | | nullptr was being returned in the error case, which, at a glance may seem perfectly OK... until you realize that std::string has the invariant that it may not be constructed from a null pointer. This means that if this error case was ever hit, then the application would most likely crash from a thrown exception in std::string's constructor. Instead, we can change the function to return an optional value, indicating if a failure occurred.
* | common/file_util: Remove duplicated documentation commentsLioncash2019-05-231-25/+0
| | | | | | | | | | These are already present within the header, so they don't need to be repeated in the cpp file.
* | common/file_util: Make ReadFileToString and WriteStringToFile consistentLioncash2019-05-232-5/+5
| | | | | | | | | | | | | | | | | | | | | | Makes the parameter ordering consistent, and also makes the filename parameter a std::string. A std::string would be constructed anyways with the previous code, as IOFile's only constructor with a filepath is one taking a std::string. We can also make WriteStringToFile's string parameter utilize a std::string_view for the string, making use of our previous changes to IOFile.
* | common/file_util: Remove unnecessary c_str() callsLioncash2019-05-231-2/+2
| | | | | | | | | | | | The file stream open functions have supported std::string overloads since C++11, so we don't need to use c_str() here. Same behavior, less code.
* | common/file_util: Make IOFile's WriteString take a std::string_viewLioncash2019-05-231-2/+2
| | | | | | | | | | | | We don't need to force the usage of a std::string here, and can instead use a std::string_view, which allows writing out other forms of strings (e.g. C-style strings) without any unnecessary heap allocations.
* | common/zstd_compression: Remove #pragma once directive from source fileLioncash2019-05-041-2/+0
|/ | | | | Introduced in 72477731ed20c56a4d6f18a22f43224fab667cef. This is only necessary within header files.
* common/{lz4_compression, zstd_compression}: Add missing header guardsLioncash2019-04-152-0/+4
| | | | These two files were missing the #pragma once directive.
* Merge pull request #2391 from lioncash/scopebunnei2019-04-131-1/+1
|\ | | | | common/scope_exit: Replace std::move with std::forward in ScopeExit()
| * common/scope_exit: Replace std::move with std::forward in ScopeExit()Lioncash2019-04-121-1/+1
| | | | | | | | | | | | The template type here is actually a forwarding reference, not an rvalue reference in this case, so it's more appropriate to use std::forward to preserve the value category of the type being moved.
* | common/swap: Improve codegen of the default swap fallbacksLioncash2019-04-121-3/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Uses arithmetic that can be identified more trivially by compilers for optimizations. e.g. Rather than shifting the halves of the value and then swapping and combining them, we can swap them in place. e.g. for the original swap32 code on x86-64, clang 8.0 would generate: mov ecx, edi rol cx, 8 shl ecx, 16 shr edi, 16 rol di, 8 movzx eax, di or eax, ecx ret while GCC 8.3 would generate the ideal: mov eax, edi bswap eax ret now both generate the same optimal output. MSVC used to generate the following with the old code: mov eax, ecx rol cx, 8 shr eax, 16 rol ax, 8 movzx ecx, cx movzx eax, ax shl ecx, 16 or eax, ecx ret 0 Now MSVC also generates a similar, but equally optimal result as clang/GCC: bswap ecx mov eax, ecx ret 0 ==== In the swap64 case, for the original code, clang 8.0 would generate: mov eax, edi bswap eax shl rax, 32 shr rdi, 32 bswap edi or rax, rdi ret (almost there, but still missing the mark) while, again, GCC 8.3 would generate the more ideal: mov rax, rdi bswap rax ret now clang also generates the optimal sequence for this fallback as well. This is a case where MSVC unfortunately falls short, despite the new code, this one still generates a doozy of an output. mov r8, rcx mov r9, rcx mov rax, 71776119061217280 mov rdx, r8 and r9, rax and edx, 65280 mov rax, rcx shr rax, 16 or r9, rax mov rax, rcx shr r9, 16 mov rcx, 280375465082880 and rax, rcx mov rcx, 1095216660480 or r9, rax mov rax, r8 and rax, rcx shr r9, 16 or r9, rax mov rcx, r8 mov rax, r8 shr r9, 8 shl rax, 16 and ecx, 16711680 or rdx, rax mov eax, -16777216 and rax, r8 shl rdx, 16 or rdx, rcx shl rdx, 16 or rax, rdx shl rax, 8 or rax, r9 ret 0 which is pretty unfortunate.
* | common/swap: Mark byte swapping free functions with [[nodiscard]] and noexceptLioncash2019-04-121-11/+11
| | | | | | | | | | | | | | | | Allows the compiler to inform when the result of a swap function is being ignored (which is 100% a bug in all usage scenarios). We also mark them noexcept to allow other functions using them to be able to be marked as noexcept and play nicely with things that potentially inspect "nothrowability".
* | common/swap: Simplify swap function ifdefsLioncash2019-04-121-48/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Including every OS' own built-in byte swapping functions is kind of undesirable, since it adds yet another build path to ensure compilation succeeds on. Given we only support clang, GCC, and MSVC for the time being, we can utilize their built-in functions directly instead of going through the OS's API functions. This shrinks the overall code down to just if (msvc) use msvc's functions else if (clang or gcc) use clang/gcc's builtins else use the slow path
* | common/swap: Remove 32-bit ARM pathLioncash2019-04-121-13/+0
|/ | | | | We don't plan to support host 32-bit ARM execution environments, so this is essentially dead code.
* Merge pull request #2300 from FernandoS27/null-shaderbunnei2019-04-071-0/+18
|\ | | | | shader_cache: Permit a Null Shader in case of a bad host_ptr.
| * Permit a Null Shader in case of a bad host_ptr.Fernando Sahmkow2019-04-071-0/+18
| |
* | Merge pull request #2098 from FreddyFunk/disk-cache-zstdbunnei2019-04-073-1/+98
|\ \ | | | | | | gl_shader_disk_cache: Use Zstandard for compression
| * | common/zstd_compression: simplify decompression interfaceunknown2019-03-292-10/+9
| | |
| * | common/zstd_compression: Add Zstandard wrapperunknown2019-03-293-0/+98
| | |
| * | common: Link libzstd_staticunknown2019-03-291-1/+1
| | |
* | | common/multi_level_queue: Silence truncation warning in iterator operator++Lioncash2019-04-051-1/+1
| | |
* | | common/bit_util: Make CountLeading/CountTrailing functions have the same return typesLioncash2019-04-051-8/+8
| | | | | | | | | | | | | | | | | | Makes the return type consistently uniform (like the intrinsics we're wrapping). This also conveniently silences a truncation warning within the kernel multi_level_queue.
* | | common/lz4_compression: Remove #pragma once directive from the cpp fileLioncash2019-04-041-2/+0
| | | | | | | | | | | | | | | | | | | | | Introduced within 798d76f4c7018174e58702fb06a042dc8c84f0be, this only really has an effect within header files. Silences a -Wpragma-once-outside-header warning with clang.
* | | Merge pull request #2093 from FreddyFunk/disk-cache-better-compressionbunnei2019-04-043-0/+136
|\| | | | | | | | Better LZ4 compression utilization for the disk based shader cache and the yuzu build system
| * | Addressed feedbackunknown2019-03-295-81/+135
| | |
| * | gl_shader_disk_cache: Use better compression for transferable and precompiled shader disk chache filesunknown2019-03-292-8/+24
| | |
| * | data_compression: Move LZ4 compression from video_core/gl_shader_disk_cache to common/data_compressionunknown2019-03-293-0/+66
| | |
* | | general: Use deducation guides for std::lock_guard and std::unique_lockLioncash2019-04-014-14/+14
| | | | | | | | | | | | | | | | | | | | | Since C++17, the introduction of deduction guides for locking facilities means that we no longer need to hardcode the mutex type into the locks themselves, making it easier to switch mutex types, should it ever be necessary in the future.
* | | Merge pull request #2303 from lioncash/threadbunnei2019-03-312-41/+0
|\ \ \ | |/ / |/| | common/thread: Remove unused functions
| * | common/thread: Remove unused functionsLioncash2019-03-292-41/+0
| |/ | | | | | | | | | | | | | | | | | | Many of these functions are carried over from Dolphin (where they aren't used anymore). Given these have no use (and we really shouldn't be screwing around with OS-specific thread scheduler handling from the emulator, these can be removed. The function for setting the thread name is left, however, since it can have debugging utility usages.
* | Fixes and corrections on formatting.Fernando Sahmkow2019-03-272-5/+10
| |
* | Fixes to multilevelqueue's iterator.Fernando Sahmkow2019-03-271-1/+5
| |
* | Use MultiLevelQueue instead of old ThreadQueueListFernando Sahmkow2019-03-271-12/+10
| |
* | Implement intrinsics CountTrailingZeroes and test it.Fernando Sahmkow2019-03-271-12/+33
| |
* | Implement a MultiLevelQueueFernando Sahmkow2019-03-273-0/+349
|/
* Merge pull request #2256 from bunnei/gpu-vmmbunnei2019-03-223-5/+10
|\ | | | | gpu: Rewrite MemoryManager based on the VMManager implementation.
| * gpu: Rewrite virtual memory manager using PageTable.bunnei2019-03-212-1/+7
| |
| * gpu: Move GPUVAddr definition to common_types.bunnei2019-03-211-4/+3
| |
* | common/bit_util: Fix bad merge duplicating the copy constructorLioncash2019-03-211-2/+0
| | | | | | | | | | Introduced as a result of #2090, we already define the copy constructor further down below, so this isn't needed.
* | Merge pull request #2090 from FearlessTobi/port-4599bunnei2019-03-212-38/+150
|\ \ | | | | | | Port citra-emu/citra#4244 and citra-emu/citra#4599: Changes to BitField
| * | Make bitfield assignment operator publicfearlessTobi2019-02-131-6/+2
| | | | | | | | | | | | | | | | | | This change needs to be made to get the code compiling again. It was suggested after a conversation with Lioncash. The conversation can be seen here: https://user-images.githubusercontent.com/20753089/45064197-b6107800-b0b2-11e8-9db8-f696299fb86a.PNG
| * | common/bitfield: make it endianness-awareWeiyi Wang2019-02-061-3/+9
| | |
| * | common/swap: remove default value for swap type internal storageWeiyi Wang2019-02-061-1/+1
| | | | | | | | | | | | This is compromise for swap type being used in union. A union has deleted default constructor if it has at least one variant member with non-trivial default constructor, and no variant member of T has a default member initializer. In the use case of Bitfield, all variant members will be the swap type on endianness mismatch, which would all have non-trivial default constructor if default value is specified, and non of them can have member initializer
| * | common/swap: use template and tag for LE/BE specificationWeiyi Wang2019-02-061-39/+91
| | | | | | | | | | | | The tag can be useful for other type-generic templates like BitFields to forward the endianness specification
| * | common/swap: add swap template for enumWeiyi Wang2019-02-061-0/+52
| | |
* | | common/uint128: Add missing header guardLioncash2019-03-211-0/+2
| | |
* | | common/uint128: Add missing top-file source textLioncash2019-03-212-0/+7
| |/ |/|
* | common/CMakeLists: Amend boost dependencyLioncash2019-03-211-1/+1
| | | | | | | | | | | | | | When #2247 was created, thread_queue_list.h was the only user of boost-related code, however #2252 moved the page table struct into common, which makes use of Boost.ICL, so we need to add the dependency to the common library's link interface again.
* | Merge pull request #2247 from lioncash/includebunnei2019-03-212-4/+4
|\ \ | | | | | | common/thread_queue_list: Remove unnecessary dependency on boost
| * | common/thread_queue_list: Remove unnecessary dependency on boostLioncash2019-03-162-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | We really don't need to pull in several headers of boost related machinery just to perform the erase-remove idiom (particularly with C++20 around the corner, which adds universal container std::erase and std::erase_if, which we can just use instead). With this, we don't need to link in anything boost-related into common.
* | | core: Move PageTable struct into Common.bunnei2019-03-175-0/+171
| | |
* | | Merge pull request #2129 from FernandoS27/cntpctbunnei2019-03-173-0/+57
|\ \ \ | |/ / |/| | Correct CNTPCT from using CPU Cycles to using Clock Cycles
| * | Corrections, documenting and fixes.Fernando Sahmkow2019-02-162-9/+11
| | |
| * | Use u128 on Clock Cycles calculation.Fernando Sahmkow2019-02-162-21/+26
| | |
| * | Implement 128 bits Unsigned Integer Multiplication and Division.Fernando Sahmkow2019-02-163-0/+50
| | |
* | | Merge pull request #2147 from ReinUsesLisp/texture-cleanbunnei2019-03-101-0/+1
|\ \ \ | | | | | | | | shader_ir: Remove "extras" from the MetaTexture
| * | | shader/decode: Split memory and texture instructions decodingReinUsesLisp2019-02-261-0/+1
| | | |
* | | | common/bit_field: Make BitField trivially copyableLioncash2019-03-071-9/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This makes the class much more flexible and doesn't make performing copies with classes that contain a bitfield member a pain. Given BitField instances are only intended to be used within unions, the fact the full storage value would be copied isn't a big concern (only sizeof(union_type) would be copied anyways). While we're at it, provide defaulted move constructors for consistency.
* | | | logging/backend: Make time_origin a class variable instead of a local staticLioncash2019-03-021-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Moves local global state into the Impl class itself and initializes it at the creation of the instance instead of in the function. This makes it nicer for weakly-ordered architectures, given the CreateEntry() class won't need to have atomic loads executed for each individual call to the CreateEntry class.
* | | | logging/backend: Move CreateEntry into the Impl classLioncash2019-03-022-29/+26
| | | | | | | | | | | | | | | | | | | | This function is only ever used within this source file and makes it easier to remove static state in the following change.
* | | | common/math_util: Move contents into the Common namespaceLioncash2019-02-271-2/+2
| | | | | | | | | | | | | | | | | | | | These types are within the common library, so they should be within the Common namespace.
* | | | common/vector_math: Move Vec[x] types into the Common namespaceLioncash2019-02-273-25/+25
| | | | | | | | | | | | | | | | | | | | These types are within the common library, so they should be using the Common namespace.
* | | | common/quaternion: Move Quaternion into the Common namespaceLioncash2019-02-271-2/+2
|/ / / | | | | | | | | | | | | Quaternion is within the common library, so it should be using the Common namespace.
* | | Remove GCC version checkstgsm2019-02-241-3/+3
| | | | | | | | | | | | Citra can't be compiled using GCC <7 because of required C++17 support, so these version checks don't need to exist anymore.
* | | Adressed review commentsB3n302019-02-152-7/+9
| | |
* | | threadsafe_queue: Add WaitIfEmpty and use it in loggingB3n302019-02-153-14/+26
|/ /
* | Merge pull request #2113 from ReinUsesLisp/vulkan-basebunnei2019-02-142-0/+2
|\ \ | | | | | | vulkan: Add dependencies and device abstraction
| * | logging: Add Vulkan backend logging class typeReinUsesLisp2019-02-122-0/+2
| | |
* | | threadsafe_queue: Use std::size_t for representing sizeLioncash2019-02-131-7/+6
| | | | | | | | | | | | | | | | | | Makes it consistent with the regular standard containers in terms of size representation. This also gets rid of dependence on our own type aliases, removing the need for an include.
* | | threadsafe_queue: Remove NeedSize template parameterLioncash2019-02-131-13/+11
|/ / | | | | | | | | | | The necessity of this parameter is dubious at best, and in 2019 probably offers completely negligible savings as opposed to just leaving this enabled. This removes it and simplifies the overall interface.
* | cmake: Fix title bar issueReinUsesLisp2019-02-071-1/+14
| |
* | cmake: Use CMAKE_COMMAND instead of "cmake"Frederic L2019-02-071-1/+1
| | | | | | Co-Authored-By: ReinUsesLisp <reinuseslisp@airmail.cc>
* | gl_shader_disk_cache: Invalidate shader cache changes with CMake hashReinUsesLisp2019-02-073-39/+56
| |
* | file_util: Add shader directoryReinUsesLisp2019-02-073-0/+3
|/
* Merge pull request #1928 from lioncash/capsbunnei2018-12-272-0/+62
|\ | | | | kernel: Handle kernel capability descriptors
| * common: Add basic bit manipulation utility function to CommonLioncash2018-12-212-0/+62
| |
* | common/quaternion: Ensure that w is always initializedLioncash2018-12-211-1/+1
|/ | | | | Previously xyz was always being zero initialized due to its constructor, but w wasn't. Ensures that we always have a deterministic initial state.
* Merge pull request #1732 from DarkLordZach/yield-typesbunnei2018-12-151-0/+16
|\ | | | | svc: Implement yield types 0 and -1
| * scheduler: Add explanations for YieldWith and WithoutLoadBalancingZach Hilman2018-11-221-2/+2
| |
| * svc: Implement yield types 0 and -1Zach Hilman2018-11-191-0/+16
| |
* | Backport review comment from citra-emu/citra#4418Tobias2018-12-071-2/+2
| | | | | | | | Original reason: As Windows multi-byte character codec is unspecified while we always assume std::string uses UTF-8 in our code base, this can output gibberish when the string contains non-ASCII characters. ::OutputDebugStringW combined with Common::UTF8ToUTF16W is preferred here.
* | Merge pull request #1773 from lioncash/threadbunnei2018-11-232-41/+14
|\ \ | | | | | | common/thread: Minor cleanup
| * | common/thread: Drop Hungarian notation on SetCurrentThreadName's parameterLioncash2018-11-221-7/+7
| | | | | | | | | | | | This is inconsistent with our coding style.
| * | common/thread: Make Barrier's 'count' member non-constLioncash2018-11-221-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | While admirable as a means to ensure immutability, this has the unfortunate downside of making the class non-movable. std::move cannot actually perform a move operation if the provided operand has const data members (std::move acts as an operation to "slide" resources out of an object instance). Given Barrier contains move-only types such as std::mutex, this can lead to confusing error messages if an object ever contained a Barrier instance and said object was attempted to be moved.
| * | common/thread: Initialize class member variables where applicableLioncash2018-11-221-6/+4
| | | | | | | | | | | | Simplifies the constructor interfaces for Barrier and Event classes.
| * | common/thread: Group non-member functions togetherLioncash2018-11-221-3/+2
| | | | | | | | | | | | | | | Keeps the non-member interface in one spot instead of split into two places, making it nicer to locate functions.
| * | common/thread: Remove SleepCurrentThread()Lioncash2018-11-222-12/+0
| | | | | | | | | | | | | | | | | | | | | This is also unused and superceded by standard functionality. The standard library provides std::this_thread::sleep_for(), which provides a much more flexible interface, as different time units can be used with it.
| * | common/thread: Remove unused CurrentThreadId()Lioncash2018-11-222-12/+0
| | | | | | | | | | | | | | | | | | This is an old function that's no longer necessary. C++11 introduced proper threading support to the language and a thread ID can be retrieved via std::this_thread::get_id() if it's ever needed.
* | | common: Remove bit_set.hLioncash2018-11-222-245/+0
|/ / | | | | | | | | | | | | This is an analog of BitSet from Dolphin that was introduced to allow iterating over a set of bits. Given it's currently unused, and given that std::bitset exists, we can remove this. If it's ever needed in the future it can be brought back.
* | Merge pull request #1758 from lioncash/rectbunnei2018-11-211-11/+5
|\ \ | | | | | | common/math_util: Minor cleanup
| * | common/math_util: Simplify std::make_signed usages to std::make_signed_tLioncash2018-11-211-2/+2
| | | | | | | | | | | | Gets rid of the need to use typename to access the ::type alias.
| * | common/math_util: Make Rectangle's constructors constexprLioncash2018-11-211-2/+2
| | | | | | | | | | | | | | | Allows objects that contain rectangle instances to be constexpr constructible as well.
| * | common/math_util: Remove unnecessary static from PILioncash2018-11-211-1/+1
| | | | | | | | | | | | const/constexpr variables have internal linkage by default.
| * | common/math_util: Remove unused IntervalsIntersect() functionLioncash2018-11-211-6/+0
| | | | | | | | | | | | | | | This hasn't been used since the project started, so we may as well get rid of it to keep it from bit rotting.
* | | common: Remove dependency on xbyakLioncash2018-11-213-274/+0
|/ / | | | | | | | | | | | | Xbyak is currently entirely unused. Rather than carting it along, remove it and get rid of a dependency. If it's ever needed in the future, then it can be re-added (and likely be more up to date at that point in time).
* | common/assert: Add UNIMPLEMENTED_IF and UNIMPLEMENTED_IF_MSG for conditional assertionsLioncash2018-11-211-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently, there's no way to specify if an assertion should conditionally occur due to unimplemented behavior. This is useful when something is only partially implemented (e.g. due to ongoing RE work). In particular, this would be useful within the graphics code. The rationale behind this is it allows a dev to disable unimplemented feature assertions (which can occur in an unrelated work area), while still enabling regular assertions, which act as behavior guards for conditions or states which must not occur. Previously, the only way a dev could temporarily disable asserts, was to disable the regular assertion macros, which has the downside of also disabling, well, the regular assertions which hold more sanitizing value, as opposed to unimplemented feature assertions.
* | common/assert: Make the UNIMPLEMENTED macro properly assertLioncash2018-11-201-1/+1
| | | | | | | | | | | | | | | | Currently, this was only performing a logging call, which doesn't actually invoke any assertion behavior. This is unlike UNIMPLEMENTED_MSG, which *does* assert. This makes the expected behavior uniform across both macros.
* | am: Deglobalize software keyboard appletZach Hilman2018-11-182-4/+4
| |
* | string_util: Implement buffer to UTF-16 string helper functionZach Hilman2018-11-182-0/+17
|/ | | Needed as most all software keyboard functions use fixed-length UTF16 string buffers.
* Common/Bitfield: store value as unsigned typeWeiyi Wang2018-11-161-9/+10
| | | | Storing signed type causes the following behaviour: extractValue can do overflow/negative left shift. Now it only relies on two implementation-defined behaviours (which are almost always defined as we want): unsigned->signed conversion and signed right shift
* string_util: Remove ArrayToString()Lioncash2018-11-142-21/+0
| | | | | | | | An old function from Dolphin. This is also unused, and pretty inflexible when it comes to printing out different data types (for example, one might not want to print out an array of u8s but a different type instead. Given we use fmt, there's no need to keep this implementation of the function around.
* string_util: Remove TryParse()Lioncash2018-11-142-54/+3
| | | | | | This is an unused hold-over from Dolphin that was primarily used to parse values out of the .ini files. Given we already have libraries that do this for us, we don't need to keep this around.
* string_util: Remove ThousandSeparate()Lioncash2018-11-131-14/+0
| | | | | This is currently unused and doesn't really provide much value to keep around either.
* Merge pull request #1441 from CarlKenner/DebuggerLogbunnei2018-11-052-2/+23
|\ | | | | logging: Add DebuggerBackend for logging to Visual Studio
| * logging: Add DebuggerBackend for logging to Visual StudioCarl Kenner2018-10-072-2/+23
| |
* | compatdb: Use a seperate endpoint for testcase submissionfearlessTobi2018-10-281-0/+4
| |
* | logging/backend: Add missing services to the log filtersLioncash2018-10-242-0/+5
| | | | | | | | Just a few overlooked services.
* | common: Remove memory_util.cpp/.hLioncash2018-10-233-200/+0
| | | | | | | | | | | | | | | | Everything from here is completely unused and also written with the notion of supporting 32-bit architecture variants in mind. Given the Switch itself is on a 64-bit architecture, we won't be supporting 32-bit architectures. If we need specific allocation functions in the future, it's likely more worthwhile to new functions for that purpose.
* | only redefine 64 bit file operation for MSVCWeiyi Wang2018-10-231-5/+8
| | | | | | | | MinGW provides POSIX functions
* | service: Add skeleton for psm serviceZach Hilman2018-10-211-0/+1
| | | | | | | | Seems to be the power controller. Listed in switchbrew under the category PTM services.
* | common: Add function for checking word alignment to alignment.hLioncash2018-10-181-0/+6
| | | | | | | | | | This will be used in a following change to svcArbitrateLock() and svcArbitrateUnlock()
* | common: Move Is4KBAligned() to alignment.hLioncash2018-10-181-0/+6
| | | | | | | | | | Aligning on 4KB pages isn't a Switch-specific thing, so this can be moved to common so it can be used with other things as well.
* | web_backend: Make Client use the PImpl idiomLioncash2018-10-111-0/+1
| | | | | | | | | | | | Like with TelemetryJson, we can make the implementation details private and avoid the need to expose httplib to external libraries that need to use the Client class.
* | Merge pull request #1424 from DarkLordZach/ips-witchbunnei2018-10-082-0/+24
|\ \ | | | | | | ips_layer: Add support for IPSwitch executable patches
| * | ips_layer: Deduplicate resource usageZach Hilman2018-10-042-2/+2
| | |
| * | hex_util: Add HexVectorToString and HexStringToVectorZach Hilman2018-10-042-0/+24
| | | | | | | | | | | | Converts between bytes and strings when the size is not known at compile time.
* | | Merge pull request #1453 from FearlessTobi/port-4311bunnei2018-10-071-1/+1
|\ \ \ | | | | | | | | Port citra-emu/citra#4311: "Remove "#" in the version number"
| * | | Remove "#" in the version numberfearlessTobi2018-10-061-1/+1
| | |/ | |/| | | | | | | So that people can stop using it in issue/pr comments and randomly link some other issue/pr unintentionally.
* / | citra_qt/configuration: misc input tab improvementszhupengfei2018-10-062-1/+19
|/ / | | | | | | | | | | | | | | * Added a context menu on the buttons including Clear & Restore Default * Allow clearing (unsetting) inputs. Added a Clear All button * Allow restoring a single input to default (instead of all)
* | Merge pull request #1332 from FearlessTobi/port-web-backendbunnei2018-10-064-0/+108
|\ \ | | | | | | Port web_service from Citra
| * | Review comments - part 5fearlessTobi2018-10-021-0/+1
| | |
| * | Address a bunch of review commentsfearlessTobi2018-10-021-1/+1
| | |
| * | Port web_service from CitrafearlessTobi2018-10-024-0/+107
| | |
* | | Merge pull request #1442 from lioncash/formatbunnei2018-10-051-1/+1
|\ \ \ | |_|/ |/| | text_formatter: Avoid unnecessary string temporary creation in PrintMessage()
| * | text_formatter: Avoid unnecessary string temporary creation in PrintMessage()Lioncash2018-10-051-1/+1
| |/ | | | | | | | | | | | | | | | | operator+ for std::string creates an entirely new string, which is kind of unnecessary here if we just want to append a null terminator to the existing one. Reduces the total amount of potential allocations that need to be done in the logging path.
* | string_util: unify UTF8<->UTF16 conversion to codecvtWeiyi Wang2018-10-021-109/+6
| |
* | string_util: remove TString conversion for windowsWeiyi Wang2018-10-022-19/+1
| | | | | | | | First of all they are foundamentally broken. As our convention is that std::string is always UTF-8, these functions assume that the multi-byte character version of TString (std::string) from windows is also in UTF-8, which is almost always wrong. We are not going to build multi-byte character build, and even if we do, this dirty work should be handled by frontend framework early.
* | string_util: remove ShiftJIS/CP1252 conversion functionWeiyi Wang2018-10-022-22/+0
|/ | | | We always use unicode internally. Any dirty work of conversion with other codec should be handled by frontend framework (Qt). Further more, ShiftJIS/CP1252 are not special (they are not code set used by 3ds, or any guest/host dependencies we have), so there is no reason to specifically include them
* Merge pull request #1365 from DarkLordZach/lfsbunnei2018-09-253-0/+6
|\ | | | | file_sys: Add support for LayeredFS mods
| * common_paths: Add Load and Dump dirsZach Hilman2018-09-223-0/+6
| |
* | Stubbed IRS (#1349)David2018-09-242-0/+2
| | | | | | | | | | | | | | | | | | | | * Stubbed IRS Currently we have no ideal way of implementing IRS. For the time being we should have the functions stubbed until we come up with a way to emulate IRS properly. * Added IRS to logging backend * Forward declared shared memory for irs
* | common/thread: remove YieldCPU()Weiyi Wang2018-09-221-8/+0
|/ | | | simply use the standard library yield()
* ring_buffer: Use std::atomic_size_t in a static assertLioncash2018-09-191-1/+1
| | | | Avoids the need to repeat "std::" twice
* ring_buffer: Use std::hardware_destructive_interference_size to determine alignment size for avoiding false sharingLioncash2018-09-191-2/+10
| | | | | | | | | | | | | | | | | | | | | | | | MSVC 19.11 (A.K.A. VS 15.3)'s C++ standard library implements P0154R1 (http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0154r1.html) which defines two new constants within the <new> header, std::hardware_destructive_interference_size and std::hardware_constructive_interference_size. std::hardware_destructive_interference_size defines the minimum recommended offset between two concurrently-accessed objects to avoid performance degradation due to contention introduced by the implementation (with the lower-bound being at least alignof(max_align_t)). In other words, the minimum offset between objects necessary to avoid false-sharing. std::hardware_constructive_interference_size on the other hand defines the maximum recommended size of contiguous memory occupied by two objects accessed wth temporal locality by concurrent threads (also defined to be at least alignof(max_align_t)). In other words the maximum size to promote true-sharing. So we can simply use this facility to determine the ideal alignment size. Unfortunately, only MSVC supports this right now, so we need to enclose it within an ifdef for the time being.
* Port #4182 from Citra: "Prefix all size_t with std::"fearlessTobi2018-09-1523-135/+140
|
* common: Implement a ring bufferMerryMage2018-09-082-0/+112
|
* Better Title Bar DisplayCaptV0rt3x2018-09-073-5/+25
|
* common/logging: Amend documentation commentsLioncash2018-09-042-6/+6
| | | | | | | Multi-line doc comments still need the '<' after the ///, otherwise it's treated as a regular comment and makes the original doc comment broken in viewers, IDEs, etc. While we're at it, also fix some typos in the comments.
* common/logging/filter: Replace C-style case with C++ static_castLioncash2018-09-041-1/+1
|
* common/logging/filter: Make constructor explicitLioncash2018-09-041-1/+1
| | | | Implicit conversions aren't desirable here.
* Merge pull request #1170 from lioncash/retbunnei2018-08-281-1/+1
|\ | | | | file_util: Correct return value in early exit of ReadFileToString()
| * file_util: Correct return value in early exit of ReadFileToString()Lioncash2018-08-241-1/+1
| | | | | | | | | | While still essentially being zero, we should be returning a numeric value here, not a boolean typed value.
* | hex_util: Replace logic_errors with LOG_CRITICALZach Hilman2018-08-231-5/+17
|/ | | | Makes it so malformed hex strings do not crash the entire program.
* logging/text_formatter: Use empty braces for initializing CONSOLE_SCREEN_BUFFER_INFO instanceLioncash2018-08-211-1/+1
| | | | | | | The previous form of initializing done here is a C-ism, an empty set of braces is sufficient for initializing (and doesn't potentially cause missing brace warnings, given the first member of the struct is a COORD struct).
* bit_field: Convert ToBool() into explicit operator boolLioncash2018-08-211-2/+1
| | | | Gets rid of a TODO that is long overdue.
* Merge pull request #1064 from lioncash/telemetrybunnei2018-08-212-0/+77
|\ | | | | common/telemetry: Migrate core-independent info gathering to common
| * common/telemetry: Migrate core-independent info gathering to commonLioncash2018-08-152-0/+77
| | | | | | | | | | | | | | | | | | | | | | | | Previously core itself was the library containing the code to gather common information (build info, CPU info, and OS info), however all of this isn't core-dependent and can be moved to the common code and use the common interfaces. We can then just call those functions from the core instead. This will allow replacing our CPU detection with Xbyak's which has better detection facilities than ours. It also keeps more architecture-dependent code in common instead of core.
* | common: Namespace hex_util.h/.cppLioncash2018-08-162-0/+8
| | | | | | | | | | It's in the common code, so it should be under the Common namespace like everything else.
* | Merge pull request #1005 from DarkLordZach/registered-fmtbunnei2018-08-165-0/+74
|\ \ | | | | | | file_sys: Add support for registration format
| * | file_sys: Comply to style guidelinesZach Hilman2018-08-121-0/+2
| | |
| * | file_util: Add getter for NAND registration directoryZach Hilman2018-08-122-0/+8
| | |
| * | common: Move hex string processing to separate fileZach Hilman2018-08-123-0/+64
| | |
* | | Merge pull request #1063 from lioncash/inlinebunnei2018-08-152-15/+11
|\ \ \ | | | | | | | | common/xbyak_abi: Mark defined functions in header as inline
| * | | common/xbyak_abi: Mark defined functions in header as inlineLioncash2018-08-151-7/+7
| | | | | | | | | | | | | | | | | | | | Avoids potential One Definition Rule violations when these are used in the future.
| * | | common/xbyak: Use nested namespace specifiers where applicableLioncash2018-08-152-8/+4
| | |/ | |/|
* | | Merge pull request #1054 from zhaowenlan1779/misc-fixupbunnei2018-08-151-1/+1
|\ \ \ | | | | | | | | common/misc: use windows.h
| * | | common/misc: use windows.hZhu PengFei2018-08-131-1/+1
| | | | | | | | | | | | linux-mingw does not really like this.
* | | | common: Remove unused old breakpoint source filesLioncash2018-08-153-141/+0
| |/ / |/| | | | | | | | | | | | | | | | | These currently aren't used and contain commented out source code that corresponds to Dolphin's JIT. Given our CPU code is organized quite differently, we shouldn't be keeping this around (at the moment it just adds to compile times marginally).
* | | logging/backend: Use const reference to refer to log filterLioncash2018-08-141-2/+3
| | | | | | | | | | | | | | | | | | The filter is returned via const reference, so this was making a pointless copy of the entire filter every time a message was being pushed into the logger instance.
* | | thread_queue_list: Make contains() and get_first() const member functionsLioncash2018-08-121-4/+4
| | | | | | | | | | | | These don't directly modify the contained data.
* | | thread_queue_list: Convert typedef to a type aliasLioncash2018-08-121-1/+1
| |/ |/|
* | Merge pull request #989 from lioncash/logbunnei2018-08-102-0/+16
|\ \ | | | | | | common/logging: Add missing service log categories
| * | common/logging: Add missing service log categoriesLioncash2018-08-082-0/+16
| | | | | | | | | | | | These weren't added when the services were introduced.
* | | Merge pull request #897 from DarkLordZach/vfs-accuracy-2bunnei2018-08-102-5/+19
|\ \ \ | | | | | | | | vfs: Add VfsFilesystem and fix RealVfs* implementations
| * | | file_util: Use enum instead of bool for specifing path behaviorZach Hilman2018-08-092-6/+9
| | | |
| * | | file_util: Add platform-specific slash option to SanitizePathZach Hilman2018-08-092-5/+16
| |/ /
* | | Merge pull request #988 from lioncash/colorbunnei2018-08-091-19/+31
|\ \ \ | | | | | | | | common/color: Minor cleanup
| * | | common/color: Remove unnecessary const qualifiers on return typesLioncash2018-08-081-7/+7
| | | | | | | | | | | | | | | | These are just superfluous and not necessesary
| * | | common/color: Get rid of undefined behaviorLioncash2018-08-081-12/+24
| |/ / | | | | | | | | | | | | Gets rid of type punning via reinterpret_cast within functions. Instead, we use memcpy to transfer the contents across types.
* / / vector_math: Use variable template version of is_signed in Vec classesLioncash2018-08-081-3/+3
|/ / | | | | | | Same behavior, less code
* | Merge pull request #966 from lioncash/modernizebunnei2018-08-085-11/+11
|\ \ | | | | | | common: Convert type traits templates over to variable template versions where applicable
| * | common: Convert type traits templates over to variable template versions where applicableLioncash2018-08-085-11/+11
| | | | | | | | | | | | Uses the C++17 inline variable variants
* | | Merge pull request #968 from lioncash/vecbunnei2018-08-081-180/+182
|\ \ \ | | | | | | | | vector_math: Minor cleanups
| * | | vector_math: Remove unimplemented function prototypesLioncash2018-08-081-23/+0
| | | |
| * | | vector_math: Make functions constexpr where applicableLioncash2018-08-081-154/+179
| | | |
| * | | vector_math: Convert typedefs to type aliasesLioncash2018-08-081-3/+3
| |/ /
* / / file_util: Avoid sign-conversions in WriteArray() and ReadArray()Lioncash2018-08-071-4/+8
|/ / | | | | | | Prevents compiler warnings.
* / service: Add usb servicesLioncash2018-08-072-0/+2
|/ | | | Adds basic skeleton for the usb services based off the information provided by Switch Brew.
* service: Add arp servicesLioncash2018-08-052-0/+2
| | | | | Adds the basic skeleton of the arp services based off the information provided by Switch Brew.
* Merge pull request #849 from DarkLordZach/xcibunnei2018-08-045-0/+20
|\ | | | | XCI and Encrypted NCA Support
| * Allow key loading from %YUZU_DIR%/keys in addition to ~/.switchZach Hilman2018-08-013-0/+3
| |
| * Use SHGetKnownFolderPath instead of SHGetFolderPathAZach Hilman2018-08-011-3/+4
| |
| * Extract mbedtls to cpp fileZach Hilman2018-08-011-1/+1
| |
| * Remove files that are not usedZach Hilman2018-08-014-0/+16
| |
* | Merge pull request #898 from lioncash/migbunnei2018-08-032-0/+2
|\ \ | | | | | | service: Add migration services
| * | service: Add migration servicesLioncash2018-08-022-0/+2
| | | | | | | | | | | | | | | Adds the basic skeleton for the mig:usr service based off information provided by Switch Brew.
* | | Merge pull request #900 from lioncash/initbunnei2018-08-031-5/+5
|\ \ \ | | | | | | | | math_util: Always initialize members of Rectangle
| * | | math_util: Always initialize members of RectangleLioncash2018-08-021-5/+5
| |/ / | | | | | | | | | Prevents potentially using the members uninitialized.
* | | logging/log: Remove incorrect description in PCV doc commentLioncash2018-08-021-1/+1
| | | | | | | | | | | | PCV isn't the parental control service.
* | | service: Add psc servicesLioncash2018-08-022-0/+2
|/ / | | | | | | | | Adds the basic skeleton for the psc services based off the information provided by Switch Brew.
* | Merge pull request #888 from lioncash/capsbunnei2018-08-022-0/+2
|\ \ | | | | | | service: Add capture services
| * | service: Add capture servicesLioncash2018-08-012-0/+2
| |/ | | | | | | | | Adds the basic skeleton for the capture services based off information provided by Switch Brew.
* / service: Add bpc and pcv servicesLioncash2018-08-012-0/+4
|/ | | | | Adds the basic skeleton for the remaining pcv-related services based off information on Switch Brew.
* Merge pull request #864 from FearlessTobi/port-3973bunnei2018-07-311-2/+30
|\ | | | | Port #3973 from Citra: "Remove polymorphism issue"
| * remove polymorphism issueB3n302018-07-291-2/+30
| |
* | Merge pull request #875 from lioncash/fgmbunnei2018-07-312-0/+2
|\ \ | | | | | | service: Add fgm services
| * | service: Add fgm servicesLioncash2018-07-312-0/+2
| | | | | | | | | | | | | | | Adds the basic skeleton for the fgm services based off the information provided by Switch Brew.
* | | service: Add the pcie serviceLioncash2018-07-312-0/+2
|/ / | | | | | | | | Adds the basic skeleton of the pcie service based off information on Switch Brew.
* | Port #3758 from Citra (#852): Add missing std::string import in text_formatterTobias2018-07-311-0/+1
| |
* | Merge pull request #861 from FearlessTobi/port-3972bunnei2018-07-302-81/+31
|\ \ | | | | | | Port #3972 from Citra: "common/timer: use std::chrono, avoid platform-dependent code"
| * | Port #3972 from Citra: "common/timer: use std::chrono, avoid platform-dependent code"zhupengfei2018-07-292-81/+31
| |/
* | Merge pull request #862 from FearlessTobi/port-3997bunnei2018-07-301-3/+5
|\ \ | | | | | | Port #3997 from Citra: "common/string_utils: replace boost::transform with std counterpart"
| * | common/string_utils: replace boost::transform with std counterpartzhupengfei2018-07-291-3/+5
| |/ | | | | | | Note: according to cppreference it is necessary to convert char to unsigned char when using std::tolower and std::toupper, otherwise the behaviour would be undefined.
* | Merge pull request #865 from FearlessTobi/port-3732bunnei2018-07-302-4/+2
|\ \ | | | | | | Port #3732 from Citra: "common: Fix compilation on ARM"
| * | Port #3732 from Citra: "common: Fix compilation on ARM"Cameron Cawley2018-07-292-4/+2
| |/
* | Merge pull request #857 from lioncash/wlanbunnei2018-07-302-0/+2
|\ \ | | | | | | service: Add wlan services
| * | service: Add wlan servicesLioncash2018-07-292-0/+2
| |/ | | | | | | | | Adds the basic skeleton for the wlan services based off the information on Switch Brew.
* / service: Add btm servicesLioncash2018-07-292-0/+2
|/ | | | | Adds the skeleton for the btm services based off the information on Switch Brew.
* Merge pull request #847 from lioncash/ncmbunnei2018-07-282-0/+2
|\ | | | | service: Add ncm services
| * service: Add ncm servicesLioncash2018-07-272-0/+2
| | | | | | | | | | Adds the basic skeleton for the ncm services based off information on Switch Brew.
* | Merge pull request #846 from lioncash/miibunnei2018-07-282-0/+2
|\ \ | |/ |/| service: Add mii services
| * service: Add mii servicesLioncash2018-07-272-0/+2
| | | | | | | | | | Adds the skeleton for the mii services based off information provided by Switch Brew
* | Merge pull request #845 from lioncash/nfcbunnei2018-07-272-0/+2
|\ \ | | | | | | service: Add nfc services
| * | service: Add nfc servicesLioncash2018-07-272-0/+2
| |/ | | | | | | | | Adds the skeleton of the nfc service based off the information provided on Switch Brew.
* / service/lbl: Implement EnableVrMode, DisableVrMode and GetVrModeLioncash2018-07-272-0/+2
|/ | | | | Implements these functions according to the information available on Switch Brew.
* service: Add ldn servicesLioncash2018-07-262-0/+2
| | | | Adds ldn services based off information provided by Switch Brew.
* VFS Regression and Accuracy Fixes (#776)Zach Hilman2018-07-242-1/+13
| | | | | | | | | | | | | | | | * Regression and Mode Fixes * Review Fixes * string_view correction * Add operator& for FileSys::Mode * Return std::string from SanitizePath * Farming Simulator Fix * Use != With mode operator&
* string_util: Get rid of separate resize() in CPToUTF16(), UTF16ToUTF8(), CodeToUTF8() and UTF8ToUTF16()Lioncash2018-07-221-20/+22
| | | | | | | | There's no need to perform the resize separately here, since the constructor allows presizing the buffer. Also move the empty string check before the construction of the string to make the early out more straightforward.
* string_util: Use emplace_back() in SplitString() instead of push_back()Lioncash2018-07-221-2/+3
| | | | | | | | | | | | | This is equivalent to doing: push_back(std::string("")); which is likely not to cause issues, assuming a decent std::string implementation with small-string optimizations implemented in its design, however it's still a little unnecessary to copy that buffer regardless. Instead, we can use emplace_back() to directly construct the empty string within the std::vector instance, eliminating any possible overhead from the copy.
* string_util: Remove unnecessary std::string instance in TabsToSpaces()Lioncash2018-07-222-8/+7
| | | | | | We can just use the variant of std::string's replace() function that can replace an occurrence with N copies of the same character, eliminating the need to allocate a std::string containing a buffer of spaces.
* Merge pull request #768 from lioncash/string-viewbunnei2018-07-222-40/+55
|\ | | | | file_util, vfs: Use std::string_view where applicable
| * file_util, vfs: Use std::string_view where applicableLioncash2018-07-222-40/+55
| | | | | | | | | | Avoids unnecessary construction of std::string instances where applicable.
* | Merge pull request #765 from lioncash/filebunnei2018-07-221-24/+14
|\ \ | |/ |/| file_util: Remove goto usages from Copy()
| * file_util: Remove goto usages from Copy()Lioncash2018-07-221-24/+14
| | | | | | | | | | | | We can just leverage std::unique_ptr to automatically close these for us in error cases instead of jumping to the end of the function to call fclose on them.
* | file_util: Use a u64 to represent number of entriesLioncash2018-07-222-13/+13
| | | | | | | | | | This avoids a truncating cast on size. I doubt we'd ever traverse a directory this large, however we also shouldn't truncate sizes away.
* | file_util: std::move FST entries in ScanDirectoryTree()Lioncash2018-07-221-1/+1
|/ | | | Avoids unnecessary copies when building up the FST entries.
* Merge pull request #759 from lioncash/redundantbunnei2018-07-221-2/+1
|\ | | | | file_util: Remove redundant duplicate return in GetPathWithoutTop()
| * file_util: Remove explicit type from std::min() in GetPathWithoutTop()Lioncash2018-07-211-1/+1
| | | | | | | | | | Given both operands are the same type, there won't be an issue with overload selection that requires making this explicit.
| * file_util: Remove redundant duplicate return in GetPathWithoutTop()Lioncash2018-07-211-1/+0
| |
* | Merge pull request #758 from lioncash/syncbunnei2018-07-222-86/+0
|\ \ | | | | | | common: Remove synchronized_wrapper.h
| * | common: Remove synchronized_wrapper.hLioncash2018-07-212-86/+0
| |/ | | | | | | This is entirely unused in the codebase.
* / file_util: Use an enum class for GetUserPath()Lioncash2018-07-213-50/+51
|/ | | | | | | | | | | | | Instead of using an unsigned int as a parameter and expecting a user to always pass in the correct values, we can just convert the enum into an enum class and use that type as the parameter type instead, which makes the interface more type safe. We also get rid of the bookkeeping "NUM_" element in the enum by just using an unordered map. This function is generally low-frequency in terms of calls (and I'd hope so, considering otherwise would mean we're slamming the disk with IO all the time) so I'd consider this acceptable in this case.
* Merge pull request #743 from lioncash/viewbunnei2018-07-214-57/+56
|\ | | | | logging: Use std::string_view where applicable
| * logging/filter: Use std::string_view in ParseFilterString()Lioncash2018-07-202-41/+40
| | | | | | | | | | | | | | | | Allows avoiding constructing std::string instances, since this only reads an arbitrary sequence of characters. We can also make ParseFilterRule() internal, since it doesn't depend on any private instance state of Filter
| * logging/backend: Add missing standard includesLioncash2018-07-202-4/+3
| | | | | | | | | | A few inclusions were being satisfied indirectly. To prevent breakages in the future, include these directly.
| * logging/backend: Use std::string_view in RemoveBackend() and GetBackend()Lioncash2018-07-202-12/+13
| | | | | | | | | | | | These can just use a view to a string since its only comparing against two names in both cases for matches. This avoids constructing std::string instances where they aren't necessary.
* | param_package: Take std::string by value in string-based Set() functionLioncash2018-07-202-4/+6
| | | | | | | | | | Allows avoiding string copies by letting the strings be moved into the function calls.
* | param_package: Use std::unordered_map's insert_or_assign instead of map indexingLioncash2018-07-201-3/+3
| | | | | | | | | | | | | | | | | | | | | | This avoids a redundant std::string construction if a key doesn't exist in the map already. e.g. data[key] requires constructing a new default instance of the value in the map (but this is wasteful, since we're already setting something into the map over top of it).
* | param_package: Get rid of file-static std::string constructionLioncash2018-07-201-3/+4
|/ | | | Avoids potential dynamic allocation occuring during program launch
* Merge pull request #711 from lioncash/swapbunnei2018-07-191-50/+50
|\ | | | | common/swap: Minor changes
| * common/swap: Remove unnecessary const on return value of swap()Lioncash2018-07-191-1/+1
| |
| * common/swap: Use static_cast where applicableLioncash2018-07-191-16/+16
| |
| * common/swap: Use using aliases where applicableLioncash2018-07-191-33/+33
| |
* | Merge pull request #710 from lioncash/unusedbunnei2018-07-191-38/+0
|\ \ | | | | | | common/common_funcs: Remove unused rotation functions
| * | common/common_funcs: Remove unused rotation functionsLioncash2018-07-191-38/+0
| |/ | | | | | | | | | | | | These are unused and essentially don't provide much benefit either. If we ever need rotation functions, these can be introduced in a way that they don't sit in a common_* header and require a bunch of ifdefing to simply be available
* | Merge pull request #709 from lioncash/thread-localbunnei2018-07-192-12/+8
|\ \ | | | | | | common/misc: Deduplicate code in GetLastErrorMsg()
| * | common/misc: Deduplicate code in GetLastErrorMsg()Lioncash2018-07-192-12/+8
| |/ | | | | | | | | | | | | Android and macOS have supported thread_local for quite a while, but most importantly is that we don't even really need it. Instead of using a thread-local buffer, we can just return a non-static buffer as a std::string, avoiding the need for that quality entirely.
* | Merge pull request #705 from lioncash/string-refbunnei2018-07-192-2/+2
|\ \ | | | | | | file_util: return string by const reference for GetExeDirectory()
| * | file_util: return string by const reference for GetExeDirectory()Lioncash2018-07-192-2/+2
| |/ | | | | | | | | This disallows modifying the internal string buffer (which shouldn't be modified anyhow).
* / string_util: Remove AsciiToHex()Lioncash2018-07-192-15/+0
|/ | | | Easy TODO
* Merge pull request #686 from lioncash/fmtbunnei2018-07-191-1/+1
|\ | | | | externals: update fmt to version 5.1.0
| * externals: update fmt to version 5.1.0Lioncash2018-07-181-1/+1
| | | | | | | | Previously, we were on 4.1.0, which was a major version behind.
* | Virtual Filesystem 2: Electric Boogaloo (#676)Zach Hilman2018-07-192-57/+116
|/ | | | | | | | | | * Virtual Filesystem * Fix delete bug and documentate * Review fixes + other stuff * Fix puyo regression
* telemetry: Remove unnecessary Field constructorLioncash2018-07-181-4/+1
| | | | | We can just take the value parameter by value which allows both moving into it, and copies at the same time, depending on the calling code.
* telemetry: Make operator== and operator!= const member functions of FieldLioncash2018-07-181-2/+2
| | | | | | | These operators don't modify internal class state, so they can be made const member functions. While we're at it, drop the unnecessary inline keywords. Member functions that are defined in the class declaration are already inline by default.
* telemetry: Default copy/move constructors and assignment operatorsLioncash2018-07-181-14/+4
| | | | | | This provides the equivalent behavior, but without as much boilerplate. While we're at it, explicitly default the move constructor, since we have a move-assignment operator defined.
* Merge pull request #664 from jroweboy/logging-stuffbunnei2018-07-153-4/+17
|\ | | | | Minor logging improvements
| * Logging: Dump all logs in the queue on close in debug modeJames Rowe2018-07-153-1/+12
| |
| * Logging: Don't lock the queue for the duration of the writeJames Rowe2018-07-141-3/+5
| |
* | More improvements to GDBStub (#653)Hedges2018-07-131-1/+1
|/ | | | | | | | | | | * More improvements to GDBStub - Debugging of threads should work correctly with source and assembly level stepping and modifying registers and memory, meaning threads and callstacks are fully clickable in VS. - List of modules is available to the client, with assumption that .nro and .nso are backed up by an .elf with symbols, while deconstructed ROMs keep N names. - Initial support for floating point registers. * Tidy up as requested in PR feedback * Tidy up as requested in PR feedback
* Merge pull request #633 from FearlessTobi/port-definesbunnei2018-07-103-7/+7
|\ | | | | Port #3579 from Citra: Clean up architecture-specific defines
| * Port #3579 from CitrafearlessTobi2018-07-073-7/+7
| |
* | Merge pull request #635 from FearlessTobi/port-crashfixbunnei2018-07-101-1/+1
|\ \ | | | | | | Port #3474 from Citra: Do not crash on unimplemented code in debug build
| * | Port #3474 from CitrafearlessTobi2018-07-071-1/+1
| |/
* / Revert "Virtual Filesystem (#597)"bunnei2018-07-082-99/+57
|/ | | | This reverts commit 77c684c1140f6bf3fb7d4560d06d2efb1a2ee5e2.
* Merge pull request #630 from FearlessTobi/remove-citra-referencesbunnei2018-07-062-2/+2
|\ | | | | Remove some references to Citra
| * Remove some references to CitrafearlessTobi2018-07-062-2/+2
| |
* | Virtual Filesystem (#597)Zach Hilman2018-07-062-57/+99
|/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Add VfsFile and VfsDirectory classes * Finish abstract Vfs classes * Implement RealVfsFile (computer fs backend) * Finish RealVfsFile and RealVfsDirectory * Finished OffsetVfsFile * More changes * Fix import paths * Major refactor * Remove double const * Use experimental/filesystem or filesystem depending on compiler * Port partition_filesystem * More changes * More Overhaul * FSP_SRV fixes * Fixes and testing * Try to get filesystem to compile * Filesystem on linux * Remove std::filesystem and document/test * Compile fixes * Missing include * Bug fixes * Fixes * Rename v_file and v_dir * clang-format fix * Rename NGLOG_* to LOG_* * Most review changes * Fix TODO * Guess 'main' to be Directory by filename
* Fix build and address review feedbackbunnei2018-07-031-4/+4
|
* Add configurable logging backendsJames Rowe2018-07-035-18/+257
|
* Update clang formatJames Rowe2018-07-033-14/+11
|
* Rename logging macro back to LOG_*James Rowe2018-07-037-70/+70
|
* Common/string_util: add StringFromBuffer functionmailwl2018-06-072-0/+6
| | | | convert input buffer (std::vector<u8>) to string, stripping zero chars
* Service/MM: add service and stub some functionsmailwl2018-06-052-0/+2
|
* Service/BCAT: add module and servicesmailwl2018-05-282-0/+2
|
* vector_math: Ensure members are always initializedLioncash2018-05-021-9/+9
| | | | Ensures that values are always in a well-defined state.
* Merge pull request #424 from lioncash/stringbunnei2018-04-304-91/+9
|\ | | | | string_util: Remove StringFromFormat() and related functions
| * string_util: Remove StringFromFormat() and related functionsLioncash2018-04-304-91/+9
| | | | | | | | Given we utilize fmt, we don't need to provide our own functions for formatting anymore
* | file_util: Make move constructor/assignment operator and related functions noexceptLioncash2018-04-302-6/+6
| | | | | | | | | | | | | | Without this, it's possible to get compilation failures in the (rare) scenario where a container is used to store a bunch of live IOFile instances, as they may be using std::move_if_noexcept under the hood. Given these definitely don't throw exceptions this is also not incorrect to add either.
* | file_util: Add static assertions to ReadBytes() and WriteBytes()Lioncash2018-04-301-2/+6
|/ | | | | | Ensure that the actual types being passed in are trivially copyable. The internal call to ReadArray() and WriteArray() will always succeed, since they're passed a pointer to char* which is always trivially copyable.
* file_util: Remove compiler version checks around is_trivially_copyable()Lioncash2018-04-281-8/+0
| | | | | | The minimum clang/GCC versions we support already support this. We can also remove is_standard_layout(), as fread and fwrite only require the type to be trivially copyable.
* log: Remove old logging macros and functionsLioncash2018-04-272-54/+1
| | | | Now that the old macros are no longer used, we can remove all functionality related to them.
* general: Convert assertion macros over to be fmt-compatibleLioncash2018-04-272-5/+6
|
* Merge pull request #380 from ogniK5377/service-implbunnei2018-04-272-0/+2
|\ | | | | Implemented some useful interfaces needed for games.
| * Switched to NGLOG_WARNINGDavid Marcec2018-04-271-1/+1
| |
| * Merge branch 'master' of https://github.com/yuzu-emu/yuzu into service-implDavid Marcec2018-04-263-792/+0
| |\
| * | Added PREPO to logging backend, Removed comments from SaveReportWithUserDavid Marcec2018-04-261-0/+1
| | |
| * | GetIUserInterface->CreateUserInterface, Added todos and stub logs. Playreport->PlayReport.David Marcec2018-04-231-0/+1
| | |
* | | common: Move logging macros over to new fmt-capable macros where applicableLioncash2018-04-274-67/+67
| |/ |/|
* | common: Remove chunk_file.h and linear_disk_cache.hLioncash2018-04-263-792/+0
|/ | | | These are unused (and given chunk_file references Dolphin's >SVN< I doubt they were going to be used).
* Merge pull request #367 from lioncash/clampbunnei2018-04-201-5/+0
|\ | | | | math_util: Remove the Clamp() function
| * math_util: Remove the Clamp() functionLioncash2018-04-201-5/+0
| | | | | | | | | | C++17 adds clamp() to the standard library, so we can remove ours in favor of it.
* | Merge pull request #361 from lioncash/commonbunnei2018-04-201-18/+12
|\ \ | | | | | | common_types: Minor changes
| * | common_types: Convert typedefs to using aliasesLioncash2018-04-201-12/+12
| | | | | | | | | | | | May as well while we're making changes to this file.
| * | common_types: Remove unnecessary check for whether or not__func__ is definedLioncash2018-04-201-6/+0
| |/ | | | | | | VS has supported this for quite a while.
* | Merge pull request #364 from lioncash/thread-localbunnei2018-04-201-19/+0
|\ \ | | | | | | common/thread: Remove unnecessary feature checking for thread_local
| * | common/thread: Remove unnecessary feature checking for thread_localLioncash2018-04-201-19/+0
| |/ | | | | | | Every compiler we require already supports it.
* | Merge pull request #362 from lioncash/snprintfbunnei2018-04-201-5/+0
|\ \ | | | | | | common_funcs: Remove check for VS versions that we don't even support
| * | common_funcs: Remove check for VS versions that we don't even supportLioncash2018-04-201-5/+0
| |/ | | | | | | | | We don't support any VS versions that don't already have snprintf in the standard library implementation.
* | Merge pull request #363 from lioncash/array-sizebunnei2018-04-201-2/+0
|\ \ | | | | | | common_funcs: Remove ARRAY_SIZE macro
| * | common_funcs: Remove ARRAY_SIZE macroLioncash2018-04-201-2/+0
| |/ | | | | | | C++17 has non-member size() which we can just call where necessary.
* | Merge pull request #366 from lioncash/vecbunnei2018-04-201-30/+0
|\ \ | | | | | | vector_math: Remove AsArray() and Write() functions from Vec[2,3,4]
| * | vector_math: Remove AsArray() and Write() functions from Vec[2,3,4]Lioncash2018-04-201-30/+0
| |/ | | | | | | These are all unused and the Write() ones should arguably not even be in the interface. There are better ways to provide this if we ever need it (like iterators).
* / common: Remove code_block.hLioncash2018-04-202-86/+0
|/ | | | | We use dynarmic, so this is unued. Anything else we need will likely use Xbyak, so this header isn't necessary any more.
* bit_field: Remove is_pod check, add is_trivially_copyable_v.bunnei2018-04-181-6/+1
|
* common: Port cityhash code from Citra.bunnei2018-04-145-147/+502
|
* bit_field: Make all methods constexpr.bunnei2018-04-141-5/+5
|
* Update fmtlib to fix msvc warningsJames Rowe2018-04-062-5/+8
| | | | | | Additionally, when updating fmtlib, there was a change in fmtlib broke how the old logging macro was overloaded, so this works around that by just naming the fmtlib macro impl something different
* logging: Change FmtLogMessage to use variadic template instead of FMT_VARIADICDaniel Lim Wee Soong2018-04-032-5/+11
| | | | Due to premature merging of #262 I think the build may be failing right now. Should merge this ASAP to fix it.
* Merge pull request #262 from daniellimws/fmtlib-macrosbunnei2018-04-0310-67/+111
|\ | | | | Logging: Add fmtlib-based macros
| * Remove dependency chronoDaniel Lim Wee Soong2018-03-221-1/+0
| | | | | | | | | | | | Earlier chrono was included but after some code changed it was no longer needed Forgot to remove it so I'm removing it now
| * Logging: Create logging macros based on fmtlibDaniel Lim Wee Soong2018-03-2210-67/+112
| | | | | | | | | | | | | | | | | | Add a new set of logging macros based on fmtlib Similar but not exactly the same as https://github.com/citra-emu/citra/pull/3533 Citra currently uses a different version of fmt, which does not support FMT_VARIADIC so make_args is used instead. On the other hand, yuzu uses fmt 4.1.0 which doesn't have make_args yet so FMT_VARIADIC is used.
* | Merge pull request #276 from N00byKing/acctoyuzubunnei2018-04-031-1/+1
|\ \ | | | | | | Change Telemetry Names to yuzu and remove links to citra
| * | telemetry.h: Reword comment from citra to yuzuN00byKing2018-03-271-1/+1
| | |
* | | common: fix swap functions on Bitrig and OpenBSDDaniel Lim Wee Soong2018-04-021-1/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | swap{16,32,64} are defined as macros on the two, but client code tries to invoke them as Common::swap{16,32,64}, which naturally doesn't work. This hack redefines the macros as inline functions in the Common namespace: the bodies of the functions are the same as the original macros, but relying on OS-specific implementation details like this is of course brittle.
* | | service: Add NFP module interface.bunnei2018-03-302-0/+2
|/ / | | | | | | | | | | service: Initialize NFP service. Log: Add NFP service as a log subtype.
* | log.h: Change comment from citra to yuzuN00byKing2018-03-261-1/+1
| |
* | file_util.h: Update Comment from citra to yuzuN00byKing2018-03-261-1/+1
| |
* | cpu_detect.cpp: Change comment from citra to yuzuN00byKing2018-03-261-1/+1
| |
* | Service/SSL: add ssl servicemailwl2018-03-232-0/+2
| |
* | Service/spl: add module and servicesmailwl2018-03-222-0/+2
| |
* | CMake: Set EMU_ARCH_BITS in CMakeLists.txtN00byKing2018-03-212-35/+0
| |
* | Service: add fatal:u, fatal:p servicesmailwl2018-03-202-0/+2
|/
* Merge pull request #206 from mailwl/aoc-listaddoncontentbunnei2018-02-202-0/+2
|\ | | | | Service/AOC: stub ListAddOnContent function
| * Service/AOC: stub ListAddOnContent functionmailwl2018-02-202-0/+2
| |
* | logging: Add category for Friend service.bunnei2018-02-192-0/+2
|/
* log: Add logging category for NS services.bunnei2018-02-152-0/+2
|
* logger: Add Time service logging category.bunnei2018-02-052-0/+2
|
* logger: Add SET service logging category.bunnei2018-02-052-15/+11
|
* logger: Add PCTL service logging category.bunnei2018-02-052-0/+2
|
* logger: Add LM service logging category.bunnei2018-02-052-0/+2
|
* logger: Add APM service logging category.bunnei2018-02-052-0/+2
|
* logger: Add NIFM service logging category.bunnei2018-02-052-0/+2
|
* logger: Add VI service logging category.bunnei2018-02-052-0/+2
|
* logger: Add AM service logging category.bunnei2018-02-042-0/+2
|
* logger: Add "account" service logging category.bunnei2018-02-042-0/+2
|
* audout:u OpenAudioOut and IAudioOut (#138)st4rk2018-01-252-0/+2
| | | | | | | | | | | | | | | | | | | | | | * Updated the audout:u and IAudioOut, now it might work with RetroArch without trigger an assert, however it's not the ideal implementation * Updated the audout:u and IAudioOut, now it might work with RetroArch without trigger an assert, however it's not the ideal implementation * audout:u OpenAudioOut implementation and IAudioOut cmd 1,2,3,4,5 implementation * using an enum for audio_out_state as well as changing its initialize to member initializer list * Minor fixes, added Service_Audio for LOG_*, changed PcmFormat enum to EnumClass * Minor fixes, added Service_Audio for LOG_*, changed PcmFormat enum to EnumClass * added missing Audio loggin subclass, minor fixes, clang comment breakline * Solving backend logging conflict * minor fix * Fixed duplicated Service NVDRV in backend.cpp, my bad
* logging: add missing NVDRV subclass to macro listRozlette2018-01-241-0/+1
|
* Added nvmemp, Added /dev/nvhost-ctrl, SetClientPID now stores pid (#114)David2018-01-211-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | * Added nvmemp, Added /dev/nvhost-ctrl, SetClientPID now stores pid * used clang-format-3.9 instead * lowercase pid * Moved nvmemp handlers to cpp * Removed unnecessary logging for NvOsGetConfigU32. Cleaned up log and changed to LOG_DEBUG * using std::arrays instead of c arrays * nvhost get config now uses std::array completely * added pid logging back * updated cmakelist * missing includes * added array, removed memcpy * clang-format6.0
* Fix spelling error in CMakeListsMatthew Brener2018-01-211-1/+1
| | | Minor spelling error of its --> it's
* Format: Run the new clang format on everythingJames Rowe2018-01-2119-43/+87
|
* Merge pull request #84 from lioncash/cmakebunnei2018-01-181-63/+57
|\ | | | | CMakeLists: Derive the source directory grouping from targets themselves
| * CMakeLists: Derive the source directory grouping from targets themselvesLioncash2018-01-181-63/+57
| | | | | | | | | | Removes the need to store to separate SRC and HEADER variables, and then construct the target in most cases.
* | telemetry: Silence initialization order warningsLioncash2018-01-181-2/+2
|/
* loggin: Add IPC logging category.bunnei2018-01-172-1/+3
|
* Minor cleanupMerryMage2018-01-141-1/+1
|
* Removing unused settings and yuzu rebrandingJames Rowe2018-01-131-5/+1
|
* fix macos buildMerryMage2018-01-091-1/+1
|
* CoreTiming: Reworked CoreTiming (cherry-picked from Citra #3119)B3n302018-01-092-0/+123
| | | | * CoreTiming: New CoreTiming; Add Test for CoreTiming
* logging: Rename category "Core_ARM11" to "Core_ARM".bunnei2017-10-232-2/+2
|
* core: Refactor MakeMagic usage and remove dead code.bunnei2017-10-151-0/+8
|
* hle: Initial implementation of NX service framework and IPC.bunnei2017-10-152-2/+2
|
* hle: Remove a large amount of 3ds-specific service code.bunnei2017-10-102-42/+0
|
* Merge remote-tracking branch 'upstream/master' into nxbunnei2017-10-107-18/+27
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | # Conflicts: # src/core/CMakeLists.txt # src/core/arm/dynarmic/arm_dynarmic.cpp # src/core/arm/dyncom/arm_dyncom.cpp # src/core/hle/kernel/process.cpp # src/core/hle/kernel/thread.cpp # src/core/hle/kernel/thread.h # src/core/hle/kernel/vm_manager.cpp # src/core/loader/3dsx.cpp # src/core/loader/elf.cpp # src/core/loader/ncch.cpp # src/core/memory.cpp # src/core/memory.h # src/core/memory_setup.h
| * Fixed type conversion ambiguityHuw Pascoe2017-09-303-11/+5
| |
| * Disable unary operator- on Math::Vec2/Vec3/Vec4 for unsigned types.Subv2017-09-271-4/+8
| | | | | | | | | | It is unlikely we will ever use this without first doing a Cast to a signed type. Fixes 9 "unary minus operator applied to unsigned type, result still unsigned" warnings on MSVC2017.3
| * Merge pull request #2822 from wwylele/sw_lighting-2Weiyi Wang2017-08-092-4/+8
| |\ | | | | | | Implement fragment lighting in the sw renderer (take 2)
| | * vector_math: remove dead template parameterwwylele2017-07-111-1/+1
| | |
| | * vector_math: remove broken SFINAE stuffwwylele2017-07-111-3/+2
| | | | | | | | | | | | this was originally added to eliminate warnings on MSVC, but it doesn't work for custom types.
| | * SwRasterizer: Flip the vertex quaternions before clipping (if necessary).Subv2017-07-111-1/+1
| | |
| | * SwRasterizer: Corrected the light LUT lookups.Subv2017-07-111-0/+5
| | |
| * | common: Add build timestamp to scm_rev.bunnei2017-08-042-0/+3
| | |
* | | arm: Use 64-bit addressing in a bunch of places.bunnei2017-09-301-2/+2
|/ /
* / logging: Add WebService as a log cateogry.bunnei2017-07-102-1/+3
|/
* Implement basic virtual Room support based on enet (#2803)B3n302017-07-072-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Added support for network with ENet lib, connecting is possible, but data can't be sent, yet. * fixup! Added support for network with ENet lib, * fixup! CLang * fixup! Added support for network with ENet lib, * fixup! Added support for network with ENet lib, * fixup! Clang format * More fixups! * Moved ENetHost* and ENetPeer* into pimpl classes * fixup! Moved ENetHost* and ENetPeer* into pimpl classes * fixup! Clang again * fixup! Moved ENetHost* and ENetPeer* into pimpl classes * fixup! Moved ENetHost* and ENetPeer* into pimpl classes * fixup! Moved ENetHost* and ENetPeer* into pimpl classes
* Remove unnecessary WIN32_LEAN_AND_MEAN macro definitionKloen2017-06-301-1/+0
|
* Remove unused import in break_points.cpp (#2763)Kloen Lansfiel2017-06-091-1/+0
|
* CMake: Create INTERFACE targets for microprofile and nihstroYuri Kunde Schlesner2017-05-281-1/+1
|
* CMake: Use IMPORTED target for BoostYuri Kunde Schlesner2017-05-281-0/+1
|
* CMake: Correct inter-module dependencies and library visibilityYuri Kunde Schlesner2017-05-281-1/+1
| | | | | | | | | | Modules didn't correctly define their dependencies before, which relied on the frontends implicitly including every module for linking to succeed. Also changed every target_link_libraries call to specify visibility of dependencies to avoid leaking definitions to dependents when not necessary.
* Common: Fix some out-of-style includesYuri Kunde Schlesner2017-05-283-5/+5
|
* Move framebuffer_layout from Common to CoreYuri Kunde Schlesner2017-05-283-214/+0
| | | | | | This removes a dependency inversion between core and common. It's also the proper place for the file since it makes screen layout decisions specific to the 3DS.
* Merge pull request #2716 from yuriks/decentralized-resultbunnei2017-05-261-23/+42
|\ | | | | Decentralize ResultCode
| * Common: Clean up meta-template logic in BitFieldYuri Kunde Schlesner2017-05-251-3/+3
| |
| * Make BitField and ResultCode constexpr-initializableYuri Kunde Schlesner2017-05-251-23/+42
| |
* | Merge pull request #2697 from wwylele/proctexYuri Kunde Schlesner2017-05-251-0/+10
|\ \ | | | | | | Implemented Procedural Texture (Texture Unit 3)
| * | pica/swrasterizer: implement procedural texturewwylele2017-05-201-0/+10
| |/
* / common: Add a generic interface for logging telemetry fields.bunnei2017-05-253-0/+238
|/
* Remove unused symbols codeYuri Kunde Schlesner2017-05-083-78/+0
|
* Merge pull request #2512 from SonofUgly/custom-layoutbunnei2017-03-222-0/+27
|\ | | | | Add custom layout settings.
| * Add custom layout settings.SonofUgly2017-02-232-0/+27
| |
* | Merge pull request #2497 from wwylele/input-2bunnei2017-03-175-0/+164
|\ \ | | | | | | Refactor input emulation & add SDL gamepad support
| * | Input: add device and factory templatewwylele2017-03-012-0/+2
| | |
| * | Common: add ParamPackagewwylele2017-03-013-0/+162
| | |
* | | Merge pull request #2618 from wwylele/log-less-filenamebunnei2017-03-171-9/+9
|\ \ \ | | | | | | | | Reduce host file name and path logging
| * | | file_util: Log when using local user directorywwylele2017-03-111-0/+2
| | | |
| * | | file_util: lower logging level for harmless caseswwylele2017-03-081-9/+7
| |/ /
* / / common/cpu_detect: Add missing include and fix namespace scopeYuri Kunde Schlesner2017-03-131-5/+7
|/ /
* | Merge pull request #2587 from yuriks/status-barYuri Kunde Schlesner2017-02-274-204/+25
|\ \ | | | | | | Replace built-in Profiler with indicators in status bar
| * | Remove built-in (non-Microprofile) profilerYuri Kunde Schlesner2017-02-273-186/+0
| | |
| * | SynchronizedWrapper: Add Lock convenience methodYuri Kunde Schlesner2017-02-271-18/+25
| | |
* | | Merge pull request #2569 from wwylele/wrap-unwrapbunnei2017-02-253-0/+3
|\ \ \ | | | | | | | | APT: implemented Wrap and Unwrap
| * | | HW: add AES engine & implement AES-CCMwwylele2017-02-213-0/+3
| | | |
* | | | Gui: Change title bar to include build nameJames Rowe2017-02-233-0/+26
| |/ / |/| | | | | | | | | | | Nightly builds now have "Citra Nightly" in the titlebar Bleeding edge builds now have "Citra Bleeding Edge" in the titlebar
* | | applied the change suggested by @wwylelenoah the goodra2017-02-141-0/+1
| | |
* | | added http service enum to the log.h filenoah the goodra2017-02-141-0/+1
|/ /
* | Merge pull request #2476 from yuriks/shader-refactor3Yuri Kunde Schlesner2017-02-041-14/+19
|\ \ | | | | | | Oh No! More shader changes!
| * | Common: Optimize BitSet iteratorYuri Kunde Schlesner2017-01-301-14/+19
| |/
* | Common/x64: remove legacy emitter and abi (#2504)Weiyi Wang2017-01-315-4201/+1
| | | | | | These are not used any more since we moved shader JIT to xbyak.
* | file_util: Fixed implicit type conversion warning (#2503)noah the goodra2017-01-311-2/+2
|/
* common: add <cstddef> to hash.hKloen2017-01-281-0/+1
|
* common: switch ComputeHash64 len param to size_t instead of int, fix warning on MSVC on dsp_dsp.cppKloen2017-01-282-6/+6
|
* Merge pull request #1951 from wwylele/motion-sensorbunnei2017-01-075-0/+76
|\ | | | | Emulate motion sensor in frontend
| * Common: add Quaternionwwylele2016-12-262-0/+45
| |
| * vector math: add implementation of Length and Normalizewwylele2016-12-261-0/+19
| |
| * MathUtil: add PI constantwwylele2016-12-261-0/+2
| |
| * Common::Event: add WaitUntilwwylele2016-12-261-0/+10
| |
* | Service/NFC: stub GetTagInRangeEventmailwl2016-12-302-0/+2
|/ | | | Fix Fatal Error in Mini-Mario & Friends - amiibo Challenge
* Merge pull request #2369 from MerryMage/core-frontendbunnei2016-12-235-646/+0
|\ | | | | core: Move emu_window and key_map into core
| * core: Move emu_window and key_map into coreMerryMage2016-12-235-646/+0
| | | | | | | | * Removes circular dependences (common should not depend on core)
* | file_util: fix missing sysdata pathwwylele2016-12-231-3/+1
|/
* Merge pull request #2343 from bunnei/core-cleanupbunnei2016-12-223-87/+3
|\ | | | | Core: Top-level consolidate & misc cleanup
| * file_util: Remove unused paths.bunnei2016-12-223-87/+3
| |
* | Merge pull request #2285 from mailwl/csnd-formatbunnei2016-12-222-0/+2
|\ \ | |/ |/| csnd:SND: Reformat source code
| * csnd:SND reformat source codemailwl2016-12-122-0/+2
| |
* | Fixed GPLv2 license text in the start.Vamsi Krishna2016-12-181-1/+1
| |
* | Merge pull request #2316 from endrift/macos-gccbunnei2016-12-161-0/+11
|\ \ | | | | | | Common: Fix gcc build on macOS
| * | Common: Fix gcc build on macOSJeffrey Pfau2016-12-131-0/+11
| |/
* / VideoCore: Convert x64 shader JIT to use Xbyak for assemblyYuri Kunde Schlesner2016-12-153-1/+234
|/
* Support mingw cross-compileJannik Vogel2016-12-055-5/+6
|
* Merge pull request #2228 from freiro/winver_fixYuri Kunde Schlesner2016-12-011-3/+0
|\ | | | | Move WINVER definition to cmake and a bit of cleanup
| * WINVER definition moved to CMake and cleanupfreiro2016-11-301-3/+0
| |
* | Set client SDK version to Service APIsmailwl2016-11-301-3/+2
|/
* Build: Fixed a few warnings.Subv2016-11-291-4/+4
|
* Merge pull request #2168 from mailwl/micSebastian Valle2016-11-272-0/+2
|\ | | | | MIC_U: Stub service funcions
| * MIC_U: Stub service funcionsmailwl2016-11-252-0/+2
| |
* | Move to AppData/Roaming/Citra/freiro2016-11-261-1/+1
| |
* | Removed /user/ from pathfreiro2016-11-261-2/+1
| |
* | Switch to AppData/Roamingfreiro2016-11-242-4/+4
| |
* | Return by value and other fixesfreiro2016-11-192-14/+8
| |
* | Win32 move default user folder location to AppDatafreiro2016-11-192-0/+24
|/
* Merge pull request #2172 from jroweboy/fix-mingwbunnei2016-11-161-2/+3
|\ | | | | Fix mingw compilation support
| * Add mingw compile supportJames Rowe2016-11-141-2/+3
| |
* | Round the rectangle size to prevent float to int casting issuesJames Rowe2016-11-123-8/+9
| | | | | | | | And other minor style changes
* | Add default hotkey to swap primary screens.James Rowe2016-11-054-7/+10
| | | | | | | | Also minor style changes
* | Rework frame layouts to use a max rectangle instead of hardcoded calculationsJames Rowe2016-11-052-250/+100
| |
* | LargeFrameLayout + SwappedSonofUgly2016-11-051-50/+36
| | | | | | Make small screen stay at 1x, and large screen maintain its aspect ratio.
* | Support additional screen layouts.James Rowe2016-11-055-73/+382
|/ | | | | Allows users to choose a single screen layout or a large screen layout. Adds a configuration option to change the prominent screen.
* common: use system bswap* functions on more BSDsJan Beich2016-10-281-2/+5
|
* common: use system CPUID routine on DragonFly as wellJan Beich2016-10-281-2/+2
|
* common: some FreeBSD headers are incomplete to avoid namespace pollutionJan Beich2016-10-281-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | In file included from src/common/x64/cpu_detect.cpp:16: /usr/include/machine/cpufunc.h:66:17: error: unknown type name 'u_int' static __inline u_int ^ /usr/include/machine/cpufunc.h:67:6: error: unknown type name 'u_int' bsfl(u_int mask) ^ /usr/include/machine/cpufunc.h:69:2: error: unknown type name 'u_int' u_int result; ^ /usr/include/machine/cpufunc.h:75:17: error: unknown type name 'u_long'; did you mean 'long'? static __inline u_long ^ /usr/include/machine/cpufunc.h:76:6: error: unknown type name 'u_long'; did you mean 'long'? bsfq(u_long mask) ^ /usr/include/machine/cpufunc.h:78:2: error: use of undeclared identifier 'u_long'; did you mean 'long'? u_long result; ^ [...]
* common: convert to standard stat()/fstat() interfacesAnthony J. Bentley2016-10-281-15/+10
| | | | | | | | | | | | | Most modern Unix environments use 64-bit off_t by default: OpenBSD, FreeBSD, OS X, and Linux libc implementations such as Musl. glibc is the lone exception; it can default to 32 bits but this is configurable by setting _FILE_OFFSET_BITS. Avoiding the stat64()/fstat64() interfaces is desirable because they are nonstandard and not implemented on many systems (including OpenBSD and FreeBSD), and using 64 bits for stat()/fstat() is either the default or trivial to set up.
* common: stat64 is non-standard, hide on a random UnixJan Beich2016-10-281-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | src/common/file_util.cpp:79:19: error: variable has incomplete type 'struct stat64' struct stat64 file_info; ^ src/common/file_util.cpp:79:12: note: forward declaration of 'stat64' struct stat64 file_info; ^ src/common/file_util.cpp:99:19: error: variable has incomplete type 'struct stat64' struct stat64 file_info; ^ src/common/file_util.cpp:99:12: note: forward declaration of 'stat64' struct stat64 file_info; ^ src/common/file_util.cpp:342:19: error: variable has incomplete type 'struct stat64' struct stat64 buf; ^ src/common/file_util.cpp:342:12: note: forward declaration of 'stat64' struct stat64 buf; ^ src/common/file_util.cpp:359:19: error: variable has incomplete type 'struct stat64' struct stat64 buf; ^ src/common/file_util.cpp:359:12: note: forward declaration of 'stat64' struct stat64 buf; ^ 4 errors generated.
* common: only FreeBSD has thread affinity compatible with LinuxJan Beich2016-10-281-1/+5
| | | | | | | | | | | src/common/thread.cpp:90:5: error: unknown type name 'cpu_set_t'; did you mean 'cpuset_t'? cpu_set_t cpu_set; ^~~~~~~~~ cpuset_t /usr/include/sys/_cpuset.h:48:24: note: 'cpuset_t' declared here typedef struct _cpuset cpuset_t; ^ 1 error generated.
* common: define routines to set thread name on more BSDsJan Beich2016-10-281-2/+4
| | | | | | | src/common/thread.cpp:123:5: error: use of undeclared identifier 'pthread_setname_np' pthread_setname_np(pthread_self(), szThreadName); ^ 1 error generated.
* Fix typosRicardo de Almeida Gonzaga2016-10-202-2/+2
|
* Merge pull request #2024 from JamePeng/update-boss-codebunnei2016-10-082-0/+2
|\ | | | | Update the stub code of BOSS
| * Update the stub code of BOSSJamePeng2016-10-022-0/+2
| |
* | Common: Remove dangerous Vec[234] array constructorsYuri Kunde Schlesner2016-09-301-3/+0
|/ | | | | They're not currently used, and it's easy to accidentally pass a single pointer argument to them, causing an out-of-bounds read.
* Remove special rules for Windows.h and library includesYuri Kunde Schlesner2016-09-213-1/+3
|
* Use negative priorities to avoid special-casing the self-includeYuri Kunde Schlesner2016-09-2110-11/+11
|
* Remove empty newlines in #include blocks.Emmanuel Gil Peyrot2016-09-2132-54/+13
| | | | | | | This makes clang-format useful on those. Also add a bunch of forgotten transitive includes, which otherwise prevented compilation.
* Manually tweak source formatting and then re-run clang-formatYuri Kunde Schlesner2016-09-1915-61/+32
|
* Sources: Run clang-format on everything.Emmanuel Gil Peyrot2016-09-1851-3389/+4172
|
* microprofile: Double buffer size to 16MB.bunnei2016-09-151-1/+1
|
* Common: readdir_r() is deprecated, switch to readdir().Emmanuel Gil Peyrot2016-09-131-6/+2
|
* Protection against a resize of size 0Alexandre LittleWhite Laurent2016-07-231-4/+3
|
* Remove superfluous std::move in return std::move(local_var)scurest2016-06-251-1/+1
|
* Fix recursive scanning of directoriesYuri Kunde Schlesner2016-06-192-17/+12
| | | | | | ForeachDirectoryEntry didn't actually do anything with the `recursive` parameter, and the corresponding callback parameter was shadowing the actual recursion counters in the user functions.
* Merge pull request #1789 from wwylele/input-refactorbunnei2016-06-114-23/+232
|\ | | | | Refactor input mapping & implement circle pad modifier
| * fixup! fixup! Refactor input systemwwylele2016-05-152-7/+7
| |
| * fixup! Refactor input systemwwylele2016-05-152-20/+24
| |
| * implement circle pad modifierwwylele2016-05-152-4/+22
| |
| * Refactor input subsystemwwylele2016-05-154-23/+210
| |
* | Merge pull request #1751 from linkmauve/no-recursive-readdirbunnei2016-05-312-24/+36
|\ \ | | | | | | Make recursive FileUtil functions take a maximum recursion
| * | Common: Make recursive FileUtil functions take a maximum recursionEmmanuel Gil Peyrot2016-05-212-24/+36
| |/ | | | | | | | | | | | | | | | | | | Fixes #1115. Also improves the performances of DiskArchive’s directory implementation a lot, simply by not going through the entire tree instead of just listing the first level files. Thanks to JayRoxFox for rebasing this on current master!
* / common_funcs: Provide rotr and rotl for MSVCMerryMage2016-05-271-12/+18
|/
* swap: Get rid of pointer casting for swapping structsLioncash2016-05-091-5/+5
| | | | These shouldn't haphazardly convert types
* swap: Get rid of undefined behavior in swapf and swapdLioncash2016-05-091-14/+18
| | | | This isn't well-defined in C++.
* swap: Remove unused methodsLioncash2016-05-091-28/+0
| | | | | | | Also gets rid of pointer data variants as this prevents the use of the regular swapping routines as unary predicates in std lib functions. They also cast to stricter alignment types, which is undefined behavior.
* Merge pull request #1736 from MerryMage/sdl2-sinkbunnei2016-05-072-1/+3
|\ | | | | AudioCore: SDL2 Sink
| * AudioCore: SDL2 SinkMerryMage2016-05-072-1/+3
| |
* | VideoCore: Run include-what-you-use and fix most includes.Emmanuel Gil Peyrot2016-04-306-5/+14
|/
* Common: Remove section measurement from profiler (#1731)Yuri Kunde Schlesner2016-04-295-259/+6
| | | | This has been entirely superseded by MicroProfile. The rest of the code can go when a simpler frametime/FPS meter is added to the GUI.
* Make Citra build with MICROPROFILE_ENABLED set to 0 (#1709)Henrik Rydgård2016-04-291-0/+4
| | | | | | | | | | | | * Make Citra build with MICROPROFILE_ENABLED set to 0 * Buildfix with microprofile kept on * moc did not like a dialog to conditionally exist. * Cleanup * Fix end of line
* assert: Allow UNREACHABLE_MSG to have just one argumentSam Spilsbury2016-04-241-1/+1
|
* Merge pull request #1576 from smspillaz/fix-build-errors-03272016bunnei2016-04-241-0/+2
|\ | | | | Fix various build errors encountered on Clang 3.9 on OS X
| * assert: Add _MSG variations for UNREACHABLE and UNIMPLEMENTEDSam Spilsbury2016-04-231-0/+2
| |
* | Protect use of std::is_trivially_copyable to compile with GCC 4.9LittleWhite2016-04-231-0/+4
|/
* Merge pull request #1672 from wwylele/win-driver-fixbunnei2016-04-191-3/+12
|\ | | | | Fix driver root identification on Windows
| * fix driver root identification on Windowswwylele2016-04-151-3/+12
| |
* | Merge pull request #1666 from MerryMage/barrierbunnei2016-04-151-24/+22
|\ \ | | | | | | Thread: Correct Common::Barrier implementation
| * | Thread: Make Barrier reusableMerryMage2016-04-141-5/+5
| | |
| * | common/thread: Correct code styleMerryMage2016-04-141-21/+19
| |/
* | Merge pull request #1665 from lioncash/filebunnei2016-04-142-47/+22
|\ \ | | | | | | IOFile: Minor API changes
| * | file_util: In-class initialize data membersLioncash2016-04-142-6/+4
| | |
| * | file_util: const qualify IOFile's Tell and GetSize functionsLioncash2016-04-142-8/+8
| | |
| * | file_util: Don't expose IOFile internals through the APILioncash2016-04-142-30/+4
| | |
| * | file_util: Check for is_trivially_copyableLioncash2016-04-141-3/+5
| | | | | | | | | | | | Also applies the template checks to ReadArray as well.
| * | file_util: Make IOFile data members privateLioncash2016-04-141-0/+1
| |/
* | emitter: Add CALL that can be fixed up.bunnei2016-04-142-0/+13
| |
* | emitter: Support arbitrary FixupBranch targets.bunnei2016-04-142-0/+17
|/
* FileUtil: Missing #include, Add const to IOFile methodsMerryMage2016-04-121-6/+7
|
* cecd:u: stub GetCecStateAbbreviated (#1648)mailwl2016-04-081-1/+1
|
* Merge pull request #1435 from mailwl/frd_ubunnei2016-04-062-0/+2
|\ | | | | frd:u: Initial stub some functions
| * frd:u: Initial stub some functionsmailwl2016-03-272-0/+2
| |
* | Merge pull request #1643 from MerryMage/make_uniqueMathew Maidment2016-04-062-18/+0
|\ \ | | | | | | Common: Remove Common::make_unique, use std::make_unique
| * | Common: Remove Common::make_unique, use std::make_uniqueMerryMage2016-04-052-18/+0
| | |
* | | Merge pull request #1620 from LFsWang/pathbunnei2016-04-053-26/+43
|\ \ \ | | | | | | | | Fix filename&path encode problem on Windows
| * | | remove debug codeLFsWang2016-03-311-1/+1
| | | |
| * | | fix unicode url problem on windowsLFsWang2016-03-311-6/+18
| | | |
| * | | Fix encode problem On WindowsLFsWang2016-03-313-21/+26
| | |/ | |/|
* | | Merge pull request #1616 from exhalatio/dlp_dummybunnei2016-04-032-0/+2
|\ \ \ | | | | | | | | Dummy implementation dlp:SRVR Service.
| * | | Dummy implementation dlp:SRVR Service.exhalatio2016-04-022-0/+2
| | |/ | |/|
* | | cecd:u: stub GetCecInfoEventHandle, GetChangeStateEventHandlemailwl2016-03-312-0/+2
| |/ |/|
* | remove unnecessary constwwylele2016-03-261-2/+2
| |
* | implement accel and gyro backendwwylele2016-03-221-0/+48
|/
* vector_math: Add missing member in Vec4's SetZero functionLioncash2016-03-181-1/+4
|
* Reorganize the ndm service path for dummy implement functionJamePeng2016-03-142-0/+2
| | | | | | SuspendDaemons , ResumeDaemons , OverrideDefaultDaemons The NDM file move to /core/hle/service/ndm/ now!
* Merge pull request #1509 from lioncash/noncopybunnei2016-03-131-3/+3
|\ | | | | common: Minor changes to NonCopyable
| * common_types: Make NonCopyable constructor constexprLioncash2016-03-131-1/+1
| |
| * common_types: Specify const in deleted copy constructor/assignment operatorLioncash2016-03-131-2/+2
| |
* | PICA: Align vertex attributesJannik Vogel2016-03-132-0/+23
|/
* Merge pull request #1476 from lioncash/emitbunnei2016-03-101-59/+54
|\ | | | | emitter: constexpr/misc changes
| * emitter: templatize ImmPtrLioncash2016-03-091-2/+6
| |
| * emitter: constexpr-ify helper functionsLioncash2016-03-091-19/+17
| |
| * emitter: Get rid of CanDoOpWithLioncash2016-03-091-7/+0
| | | | | | | | | | This was removed in Dolphin as there were no particular uses for it. I'm sure the same will apply to citra.
| * emitter: constexpr-ify OpArgLioncash2016-03-091-30/+30
| |
| * emitter: friend class OpArg with XEmitterLioncash2016-03-091-3/+4
| |
| * emitter: Remove unimplemented prototypeLioncash2016-03-091-1/+0
| |
* | Common: Get rid of alignment macrosLioncash2016-03-091-9/+1
|/ | | | | The gl rasterizer already uses alignas, so we may as well move everything over.
* Merge pull request #1297 from Subv/savesbunnei2016-03-011-1/+1
|\ | | | | DiskDirectory: Initialize the directory member with valid info.
| * DiskDirectory: Initialize the directory member with valid info.Subv2016-01-161-1/+1
| |
* | Merge pull request #1427 from MerryMage/emit-lbitYuri Kunde Schlesner2016-02-281-2/+2
|\ \ | | | | | | x64 Emitter: Fix L bit in VEX prefix
| * | x64 Emitter: Fix L bit in VEX prefixMerryMage2016-02-271-2/+2
| | |
* | | Initial implementation ir:usermailwl2016-02-262-0/+2
|/ /
* | AudioCore: Skeleton ImplementationMerryMage2016-02-213-1/+5
| | | | | | | | | | | | | | | | | | This commit: * Adds a new subproject, audio_core. * Defines structures that exist in DSP shared memory. * Hooks up various other parts of the emulator into audio core. This sets the foundation for a later HLE DSP implementation.
* | BitField: Make trivially copyable and remove assignment operatorMerryMage2016-02-122-26/+22
| |
* | backend: defaulted move constructor/assignmentLioncash2016-02-051-18/+2
| |
* | color: Make trivial helpers constexprLioncash2016-01-281-8/+8
| |
* | key_map: Use std::tie for comparisonsLioncash2016-01-251-7/+7
|/
* Add missing return values in ForeachDirectoryEntryLFsWang2015-12-231-4/+14
| | | | | ForeachDirectoryEntry is changed by #1256 ,but return value at last line was missing.
* Merge pull request #1252 from Subv/cambunnei2015-12-042-0/+2
|\ | | | | Services/Cam: Added new log type and camera enums from 3dbrew.
| * Services/Cam: Added new log type and camera enums from 3dbrew.Subv2015-11-232-0/+2
| | | | | | | | | | Followup to #1102 Original author @mailwl
* | Refactor ScanDirectoryTreeAndCallback to separate errors and retvalsarchshift2015-11-272-50/+53
|/ | | | | | | | | ScanDirectoryTreeAndCallback, before this change, coupled error/return codes and actual return values (number of entries found). This caused confusion and difficulty interpreting the precise way the function worked. Supersedes, and closes #1255.
* fix failure on gcc and clangwwylele2015-11-121-3/+3
|
* disable unary minus when the type is not signedwwylele2015-11-121-0/+4
| | | | silent warning C4146 on msvc
* Implement gdbstubpolaris-2015-10-042-0/+2
|
* Merge pull request #1176 from lioncash/vs2015-code-junking-daybunnei2015-10-031-11/+0
|\ | | | | Obligatory "Throw out workarounds VS2013 once limited us to" PR
| * bit_field: Re-enable code on MSVCLioncash2015-10-011-11/+0
| |
* | Merge pull request #1095 from archshift/game-listbunnei2015-10-022-103/+83
|\ \ | | | | | | Initial implementation of a game list
| * | Split up FileUtil::ScanDirectoryTree to be able to use callbacks for custom behaviorarchshift2015-10-012-103/+83
| | | | | | | | | | | | | | | Converted FileUtil::ScanDirectoryTree and FileUtil::DeleteDirRecursively to use the new ScanDirectoryTreeAndCallback function internally.
* | | symbols: Replace an insert call with emplaceLioncash2015-09-301-1/+1
| | |
* | | symbols: Get rid of initial underscores in variable namesLioncash2015-09-302-20/+20
| | |
* | | symbols: Directly initialize TSymbol membersLioncash2015-09-301-8/+3
| | |
* | | symbols: Simplify GetSymbolLioncash2015-09-301-8/+5
| |/ |/|
* | hash: Get rid of unused functionsLioncash2015-09-161-16/+0
| |
* | general: Silence some warnings when using clangLioncash2015-09-161-2/+2
|/
* memory_util: Remove unnecessary assignment in FreeMemoryPagesLioncash2015-09-121-3/+0
|
* memory_util: Remove commented out printf statementsLioncash2015-09-121-10/+0
|
* general: Replace 0 literals with nullptr where applicableLioncash2015-09-122-6/+6
|
* synchronized_wrapper: Add missing return in SynchronizedRef move assignment operatorLioncash2015-09-121-0/+1
|
* Merge pull request #1144 from lioncash/removebunnei2015-09-114-176/+0
|\ | | | | common: Get rid of debug_interface.h
| * common: Get rid of debug_interface.hLioncash2015-09-114-176/+0
| | | | | | | | | | | | This is technically unused. Also removes TMemChecks because it relies on this. Whenever memory breakpoints are implemented for real, it should be designed to match the codebase debugging mechanisms.
* | common: Get rid of a cast in swap.hLioncash2015-09-111-2/+2
|/
* x64: Proper stack alignment in shader JIT function callsaroulin2015-09-013-424/+90
| | | | | Import Dolphin stack handling and register saving routines Also removes the x86 parts from abi files
* Common: Import BitSet from Dolphinaroulin2015-09-012-0/+190
|
* Common: Fix MicroProfile compilation in MSVC2015Yuri Kunde Schlesner2015-08-281-0/+5
|
* Integrate the MicroProfile profiling libraryYuri Kunde Schlesner2015-08-254-0/+51
| | | | | This brings goodies such as a configurable user interface and multi-threaded timeline view.
* x64-emitter: add RCPSS SSE instructionaroulin2015-08-232-0/+2
|
* Merge pull request #1058 from lioncash/ptrLioncash2015-08-232-4/+27
|\ | | | | emitter: Remove pointer casts
| * emitter: Remove pointer castsLioncash2015-08-212-4/+27
| | | | | | | | This should also technically silence quite a few ubsan warnings.
* | Merge pull request #1025 from yuriks/heap-managementYuri Kunde Schlesner2015-08-221-8/+7
|\ \ | |/ |/| Kernel: Correct(er) handling of Heap and Linear Heap allocations
| * VMManager: Make LogLayout log level configurable as a parameterYuri Kunde Schlesner2015-08-161-8/+7
| |
* | emitter: Remove unnecessary definesLioncash2015-08-201-5/+1
| |
* | emitter: Remove unnecessary else keywordsLioncash2015-08-201-7/+7
| |
* | emitter: Remove unused codeLioncash2015-08-202-44/+0
| |
* | emitter: Remove unimplemented JMP prototypeLioncash2015-08-201-1/+0
| |
* | emitter: Pass OpArg by reference where possibleLioncash2015-08-202-763/+763
| |
* | emitter: Remove unnecessary inline specifiersLioncash2015-08-201-33/+33
| | | | | | | | Functions implemented in a class definition are already implicitly inline.
* | Merge pull request #1035 from darkf/mingw-fixbunnei2015-08-202-4/+10
|\ \ | | | | | | Fix building under MinGW
| * | Fix building under MinGWdarkf2015-08-182-4/+10
| |/
* / videocore: Added RG8 texture supportPatrick Martin2015-08-161-0/+18
|/
* Merge pull request #1031 from bbarenblat/masterYuri Kunde Schlesner2015-08-161-1/+2
|\ | | | | Handle invalid `Log::Class`
| * Handle invalid `Log::Class`Benjamin Barenblat2015-08-151-1/+2
| | | | | | | | | | | | Add a case of `Log::Class::Count` to the switch statement that dispatches on `Log::Class`. The case simply calls the `UNREACHABLE` macro.
* | Rename ARCHITECTURE_X64 definition to ARCHITECTURE_x86_64.bunnei2015-08-168-14/+14
| |
* | Common: Cleanup CPU capability detection code.bunnei2015-08-164-198/+141
| |
* | Common: Move cpu_detect to x64 directory.bunnei2015-08-164-5/+5
| |
* | x64: Refactor to remove fake interfaces and general cleanups.bunnei2015-08-1610-516/+26
| |
* | Common: Added MurmurHash3 hash function for general-purpose use.bunnei2015-08-155-2/+158
| |
* | Common: Ported over boilerplate x86 JIT code from Dolphin/PPSSPP.bunnei2015-08-159-4/+4380
| |
* | Common: Ported over Dolphin's code for x86 CPU capability detection.bunnei2015-08-154-17/+273
|/
* Stop defining GCC always_inline attributes as __forceinlinearchshift2015-08-122-7/+8
| | | | | __forceinline is a MSVC extension, which may confuse some people working on the codebase. Furthermore, the C++ standard dictates that all names which contain adjacent underscores are reserved.
* Merge pull request #1018 from bbarenblat/masterbunnei2015-08-052-1/+8
|\ | | | | Handle invalid `Log::Level::Count`
| * Use UNREACHABLE macro for impossible cases in previous commitBenjamin Barenblat2015-08-032-4/+3
| | | | | | | | Use the UNREACHABLE macro instead of `ASSERT(false, ...);`.
| * Handle invalid `Log::Level::Count`Benjamin Barenblat2015-08-022-1/+9
| | | | | | | | | | | | Add a case of `Log::Level::Count` to all switch statements that dispatch on `Log::Level`. The case simply asserts `false` and notes the invalid log level.
* | Common: Work around bug in MSVC2015 standard libraryYuri Kunde Schlesner2015-08-031-0/+14
|/ | | | | | The char16_t/char32_t implementations aren't present in the library and cause linker errors. This is a known issue that wasn't fixed in VS2015 RTM.
* Common : Fix Conversion Warningszawata2015-07-191-1/+1
|
* Common: Remove the unused and commented GetThemeDir prototype from FileUtil.Emmanuel Gil Peyrot2015-07-181-3/+0
|
* Pica: Implement stencil testing.Tony Wasserka2015-07-131-1/+26
|
* FileUtil: Add a WriteObject method for writing a single, POD-type object.Tony Wasserka2015-07-131-0/+10
|
* don´t define snprintf on Visual Studio 2015Apology112015-07-121-2/+4
| | | Visual Studio 2015 defines this in stdio now
* Merge pull request #914 from yuriks/bitfield-maskYuri Kunde Schlesner2015-07-121-2/+2
|\ | | | | Common: Fix mask generation in BitField
| * Common: Remove redundant masking in BitFieldYuri Kunde Schlesner2015-07-101-1/+1
| | | | | | | | | | For the signed case, the shifts already remove the rest of the value, so ANDing by the mask is redundant.
| * Common: Fix mask generation in BitFieldYuri Kunde Schlesner2015-07-101-1/+1
| | | | | | | | Fixes #913
* | Common: Remove thunk.hLioncash2015-07-112-43/+0
| | | | | | | | This isn't used, and there's no implementations of the member functions.
* | Merge pull request #876 from linkmauve/include-cleanupsYuri Kunde Schlesner2015-07-1126-236/+86
|\ \ | |/ |/| Cleanup includes, mostly in common
| * Core: Cleanup file_sys includes.Emmanuel Gil Peyrot2015-06-281-0/+1
| |
| * Core: Cleanup core includes.Emmanuel Gil Peyrot2015-06-281-1/+2
| |
| * CitraQt: Cleanup includes.Emmanuel Gil Peyrot2015-06-282-1/+1
| |
| * Common: Cleanup emu_window includes.Emmanuel Gil Peyrot2015-06-282-3/+15
| |
| * Common: Remove unused ROUND_UP_POW2 macro.Emmanuel Gil Peyrot2015-06-281-7/+0
| |
| * Common: Cleanup key_map includes.Emmanuel Gil Peyrot2015-06-281-0/+1
| |
| * Common: Cleanup memory and misc includes.Emmanuel Gil Peyrot2015-06-287-22/+18
| |
| * Common: Cleanup profiler includes.Emmanuel Gil Peyrot2015-06-284-7/+10
| |
| * Common: Cleanup thread includes.Emmanuel Gil Peyrot2015-06-282-18/+15
| |
| * Common: Fix string_util includes.Emmanuel Gil Peyrot2015-06-282-3/+9
| |
| * Common: Fix FileUtil includes, and everything relying on those.Emmanuel Gil Peyrot2015-06-283-7/+14
| |
| * Common: Remove now-unused EMU_PLATFORM define, fixes issue #373.Emmanuel Gil Peyrot2015-06-271-30/+0
| |
| * Common: Remove unused SSE version checking and a GCC macro.Emmanuel Gil Peyrot2015-06-271-25/+0
| |
| * Common: Remove unused fifo_queue.h.Emmanuel Gil Peyrot2015-06-272-112/+0
| |
* | Common: Remove unused type unions breaking aliasing rules in horrible ways.Emmanuel Gil Peyrot2015-06-281-26/+0
|/
* Merge pull request #855 from purpasmart96/service_rearrangmentbunnei2015-06-212-2/+4
|\ | | | | Services: Continue separation of services into their own folders
| * Services: Continue separation of services into their own folderspurpasmart962015-06-122-2/+4
| |
* | Render-to-texture flush, interval math fixtfarley2015-06-091-1/+1
|/
* Move video_core/color.h to common/color.harchshift2015-05-302-0/+215
|
* Move video_core/math.h to common/vector_math.harchshift2015-05-302-0/+641
| | | | The file only contained vector manipulation code, and such widely-useable code doesn't belong in video_core.
* Remove every trailing whitespace from the project (but externals).Emmanuel Gil Peyrot2015-05-293-3/+3
|
* OpenGL renderertfarley2015-05-231-0/+4
|
* Service::Y2R: Support for grayscale decoding of specific formatsYuri Kunde Schlesner2015-05-222-0/+2
| | | | | | | | | | | | Implements unrotated planar YUV 4:2:0 -> RGB24 conversions in Y2R. Currently only the Y (luma) channel is used, so the results don't contain color. This will be added in a later PR at some point. This is enough to get all currently know Moflex videos to decode. (Some don't display on-screen due to seemingly unrelated reasons.) Thanks to @archshift for doing the initial implementation which I cleaned up and then fixed the 8x8 block mode.
* Merge pull request #758 from yuriks/sync-loggingYuri Kunde Schlesner2015-05-1610-381/+35
|\ | | | | Common: Remove async logging
| * Remove unused concurrent_ring_buffer.hYuri Kunde Schlesner2015-05-162-164/+0
| |
| * Common: Use the log system to print assert messagesYuri Kunde Schlesner2015-05-121-7/+3
| |
| * Common: Remove async loggingYuri Kunde Schlesner2015-05-127-210/+32
| | | | | | | | | | | | | | | | | | | | | | It provided a large increase in complexity of the logging system while having a negligible performance impact: the usage patterns of the ring buffer meant that each log contended with the logging thread, causing it to effectively act as a synchronous extra buffering. Also removed some broken code related to filtering of subclasses which was broken since it was introduced. (Which means no one ever used that feature anyway, since, 8 months later, no one ever complained.)
* | Common: Remove unused cruft from math_util, and remove a duplicated Rect class in common_types.Emmanuel Gil Peyrot2015-05-144-409/+3
|/
* Common: Remove the BIT macroYuri Kunde Schlesner2015-05-091-2/+0
| | | | | | | When the macro was introduced in 326ec51261299e48de97592631c02523da9c8118 it wasn't noticed that it conflicted in name with a heavily used macro inside of dyncom. This causes some compiler warnings. Since it's only lightly used, it was opted to simply remove the new macro.
* Common: Add BIT macroYuri Kunde Schlesner2015-05-091-0/+2
|
* Common: Add StringFromFixedZeroTerminatedBufferYuri Kunde Schlesner2015-05-082-0/+14
|
* Merge pull request #725 from yuriks/remove-common-crapYuri Kunde Schlesner2015-05-085-1009/+0
|\ | | | | Remove unused hash and mem_arena from common
| * Common: Remove mem_arena.cpp/hYuri Kunde Schlesner2015-05-083-466/+0
| | | | | | | | | | | | It is superfluous for Citra. (It's only really necessary if you're doing JIT. We were using it but not taking any advantage from it.) This should make 32-bit builds work again.
| * Common: Remove hash.cpp/hYuri Kunde Schlesner2015-05-073-543/+0
| | | | | | | | Currently unused and the code quality is pretty questionable.
* | Merge pull request #723 from lioncash/commonstrbunnei2015-05-082-127/+0
|\ \ | | | | | | string_util: Get rid of UriDecode/UriEncode
| * | string_util: Get rid of UriDecode/UriEncodeLioncash2015-05-072-127/+0
| | |
* | | Profiler: Fix off-by-one error when computing average.Yuri Kunde Schlesner2015-05-081-2/+1
| |/ |/|
* | Common: Add proper macros to test for architecture pointer sizeYuri Kunde Schlesner2015-05-075-17/+11
|/ | | | | | | The old system of just defining macros available in some other platform was susceptible to silently using the wrong code if you forgot to include a particular header. This fixes a crash on non-Windows platforms introduced by e1fbac3ca13d37d2625c11d30cfdece4327b446b.
* Common: Remove common.hYuri Kunde Schlesner2015-05-0729-56/+43
|
* Common: Move alignment macros to common_funcs.hYuri Kunde Schlesner2015-05-072-21/+21
|
* Common: Move SSE detection ifdefs to platform.hYuri Kunde Schlesner2015-05-073-16/+21
|
* Common: Remove more unused compatibility definesYuri Kunde Schlesner2015-05-071-45/+0
|
* Common: Move IO-specific compatibility macros to file_util.cppYuri Kunde Schlesner2015-05-072-26/+26
|
* Common: Remove many unnecessary cross-platform compatibility macrosYuri Kunde Schlesner2015-05-075-88/+10
|
* Clean-up includesYuri Kunde Schlesner2015-05-071-0/+1
|
* Move typedefs from kernel.h to more appropriate placesYuri Kunde Schlesner2015-05-071-0/+5
|
* Common: Move NonCopyable to common_types.hYuri Kunde Schlesner2015-05-072-10/+10
|
* Common: Use C++11 deleted functions for NonCopyableYuri Kunde Schlesner2015-05-071-8/+6
|
* Common: Remove unused enumsYuri Kunde Schlesner2015-05-071-17/+0
|
* EmuWindow: Clip mouse input coordinates to emulated screen dimensions.Zaneo2015-05-022-6/+21
| | | | | | | If the mouse position for a mouse move/drag would take it outside the emulated screen dimensions, clip the coordinates to the emulated screen dimensions. Qt and GLFW will report negative coordinates for mouse positions to the left, or above citra window. Added restriction to mouse coordinates passed to touchmoved by Qt/GLFW to be greater or equal to zero.
* Common: thread.h cleanupsYuri Kunde Schlesner2015-04-161-65/+16
| | | | | The helper classes are rendered obsolete by C++11 lambdas. Also made formatting conform to our code style.
* Thread: Implement priority boost for starved threads.bunnei2015-04-101-0/+18
| | | | | | SVC: Return correct error code on invalid CreateThread processor ID. SVC: Assert when creating a thread with an invalid userland priority.
* Merge pull request #641 from purpasmart96/service_stubsbunnei2015-04-042-0/+4
|\ | | | | Services: Stubs and minor changes
| * Services: Stubs and minor changespurpasmart962015-04-032-0/+4
| |
* | disassembler: Get rid of a const_castLioncash2015-03-302-4/+4
|/
* Common: Fix logic for setting EMU_DATA_DIR.Emmanuel Gil Peyrot2015-03-161-6/+5
|
* Common: Make a #else more apparent.Emmanuel Gil Peyrot2015-03-161-5/+1
|
* EmuWindow: Fixed a reference to a temporary variableSubv2015-03-141-1/+1
| | | | in GetTouchState()
* Merge pull request #642 from bunnei/touchpadbunnei2015-03-122-19/+101
|\ | | | | Touchpad support
| * HID: Complete refactor of pad/touch input to fix threading issues.bunnei2015-03-112-68/+63
| |
| * EmuWindow: Made pad/touch functions non-static.bunnei2015-03-102-11/+6
| |
| * EmuWindow: Added infrastructure code to enable touchpad support.bunnei2015-03-102-1/+93
| |
* | Merge pull request #629 from archshift/lcdfbbunnei2015-03-102-0/+2
|\ \ | |/ |/| Implement SetLcdForceBlack and add implementation for color filling in the GPU code
| * Added LCD registers, and implementation for color filling in OGL code.archshift2015-03-092-0/+2
| |
* | Merge pull request #634 from linkmauve/logging-performancesbunnei2015-03-095-7/+17
|\ \ | | | | | | Apply the logging filter before sending the message to the queue
| * | Logging: check for filter before sending to the queue, to skip all heavy formatting on the other thread.Emmanuel Gil Peyrot2015-03-065-7/+17
| | |
* | | Merge pull request #584 from yuriks/outline-assertsbunnei2015-03-091-6/+25
|\ \ \ | | | | | | | | Asserts: Use lambdas to keep assertion code away from the main code path
| * | | Asserts: Use lambdas to keep assertion code away from the main code pathYuri Kunde Schlesner2015-02-181-6/+25
| | | |
* | | | Fixed EmuWindow typo (fixes OSX build)bunnei2015-03-082-2/+2
| | | |
* | | | Merge pull request #636 from bunnei/refactor-screen-winbunnei2015-03-082-7/+75
|\ \ \ \ | | | | | | | | | | Set framebuffer layout from EmuWindow.
| * | | | Set framebuffer layout from EmuWindow.bunnei2015-03-072-7/+75
| | |_|/ | |/| |
* | | | Merge pull request #538 from yuriks/perf-statTony Wasserka2015-03-076-0/+534
|\ \ \ \ | |_|_|/ |/| | | Add profiling infrastructure and widget
| * | | Profiler: Implement QPCClock to get better precision on Win32Yuri Kunde Schlesner2015-03-022-1/+42
| | | | | | | | | | | | | | | | | | | | | | | | MSVC 2013 (at least) doesn't use QueryPerformanceCounter to implement std::chrono::high_resolution_clock, so it has bad precision. Manually implementing our own clock type using it works around this for now.
| * | | Add profiling infrastructure and widgetYuri Kunde Schlesner2015-03-026-0/+493
| |/ /
* / / Removed swap code redundancy and moved common swap code to swap.harchshift2015-03-063-127/+97
|/ /
* | Common: Switch to the XDG Base Directory Specification for directory selection.Emmanuel Gil Peyrot2015-02-252-10/+69
| | | | | | | | This allows for easily movable and independent configuration and data directories, using standardized paths.
* | Merge pull request #581 from archshift/tfebunnei2015-02-233-2/+2
|\ \ | | | | | | Added information reporting from ThrowFatalError
| * | Added information reporting from ThrowFatalErrorarchshift2015-02-223-2/+2
| | | | | | | | | | | | This was RE'd from the errdisp applet.
* | | Common: Change names containing “Dolphin” or “PPSSPP” to something more generic.Emmanuel Gil Peyrot2015-02-202-8/+8
| | |
* | | Misc cleanup of common and related functionsarchshift2015-02-203-79/+28
| | |
* | | Remove duplication of INSERT_PADDING_WORDS between pica.h and gpu.harchshift2015-02-202-3/+3
| | |
* | | Remove "super lame/broken" file_search compilation unit that was leftover from Dolphinarchshift2015-02-193-128/+0
| | |
* | | Remove redundant utf8 compilation unit that was leftover from Dolphinarchshift2015-02-193-528/+0
| | |
* | | Remove useless extended_trace compilation unit that was leftover from Dolphinarchshift2015-02-193-480/+0
| | |
* | | Remove the useless msg_handler compilation unit that was left over from Dolphinarchshift2015-02-197-178/+11
|/ /
* | Merge pull request #570 from purpasmart96/config_membunnei2015-02-181-0/+7
|\ \ | |/ |/| ConfigMem: Clean up the Config memory to be more like the shared page
| * ConfigMem: Clean up the Config memory to be more like the shared page and movedpurpasmart962015-02-171-0/+7
| | | | | | | | the helper macro for padding to common_funcs.h
* | Merge pull request #529 from Subv/masterbunnei2015-02-141-3/+3
|\ \ | |/ |/| Build: Fixed some warnings
| * Build: Fixed some warningsSubv2015-02-121-3/+3
| |
* | backend: Add logging subentry for ldrLioncash2015-02-131-0/+1
|/ | | | Fixes an assertion upon executing citra in debug mode.
* Asserts: break/crash program, fit to style guide; log.h->assert.harchshift2015-02-1115-105/+73
| | | | | | | Involves making asserts use printf instead of the log functions (log functions are asynchronous and, as such, the log won't be printed in time) As such, the log type argument was removed (printf obviously can't use it, and it's made obsolete by the file and line printing) Also removed some GEKKO cruft.
* Merge pull request #526 from purpasmart96/citra_stubsbunnei2015-02-111-0/+1
|\ | | | | Services: Stub some functions
| * Services: Stub some functionspurpasmart962015-02-081-0/+1
| |
* | Fix a wrong file name in a commentchinhodado2015-02-071-1/+1
|/
* Common: Fix SCOPE_EXIT to actually create unique identifiers.Yuri Kunde Schlesner2015-01-302-1/+7
|
* Added HID_SPVR service and split HID_U implementation into service/hid/hid.xxxarchshift2015-01-213-10/+10
|
* Logging: Log all called service functions (under trace). Compile out all trace logs under release for performance.archshift2015-01-103-24/+8
|
* Merge pull request #431 from yuriks/thread-queue-cleanupbunnei2015-01-071-144/+74
|\ | | | | Common: Clean up ThreadQueueList
| * Common: Clean up ThreadQueueListYuri Kunde Schlesner2015-01-071-144/+74
| | | | | | | | | | | | | | | | Replace all the C-style complicated buffer management with a std::deque. In addition to making the code easier to understand it also adds support for non-POD IdTypes. Also clean the rest of the code to follow our code style.
* | Merge pull request #425 from Subv/coretimingbunnei2015-01-072-0/+2
|\ \ | |/ |/| Ported the CoreTiming namespace from PPSSPP
| * CoreTiming: Ported the CoreTiming namespace from PPSSPPSubv2015-01-072-0/+2
| | | | | | | | | | | | Implemented the required calls to make it work. CoreTiming: Added a new logging class Core_Timing.
* | Merge pull request #421 from linkmauve/remove-dead-platformsbunnei2015-01-075-101/+2
|\ \ | | | | | | Remove dead platform #ifdefs to make the code more readable.
| * | Common: Remove dead platform #ifdefs to make the code more readable.Emmanuel Gil Peyrot2015-01-065-101/+2
| | | | | | | | | | | | | | | | | | Symbian, Xbox, Blackberry and iOS got removed. FreeBSD and Android kept due to them potentially being able to run Citra in the future. The iOS specific part also got removed from PPSSPP in order to fix a bug there.
* | | Merge pull request #376 from Subv/arc_reorderbunnei2015-01-073-32/+20
|\ \ \ | |/ / |/| | Archives: Change the folder layout of some archives.
| * | Archives: Changed the way paths are built for the archives.Subv2015-01-043-20/+4
| | | | | | | | | | | | Each archive now takes a mount point of either NAND or SDMC, and builds its own directory structure there, trying to simulate an HLE-friendly hardware layout
| * | SaveDataCheck: Move the files to nand/titleSubv2015-01-041-1/+1
| | | | | | | | | | | | under /nand/title/high/low/content/00000000.app.romfs
| * | Archives: Change the folder layout of some archives.Subv2015-01-033-20/+24
| |/ | | | | | | This is to better represent the hardware layout, they are still aren't quite accurate, but this better and will help a bit when implementing the other archives like NAND-RO and NAND-RW
* | Common: Use std::abs instead of abs, using abs with cmath fails on some systems.Emmanuel Gil Peyrot2015-01-051-2/+3
| |
* | Common: Remove the unused x86-specific 128-bit float type.Emmanuel Gil Peyrot2015-01-051-11/+0
|/
* Archives: Reduced duplicate code in RomFS and SaveCheck.Subv2015-01-033-0/+4
| | | | Fixed a few warnings and cleaned up the code
* SOC_U: Preliminary implementation of sockets.Subv2014-12-312-0/+2
| | | | | | | | | | | | | Stubbed CreateMemoryBlock Using Berkeley sockets, and Winsock2.2 on Windows. So far ftpony creates the socket and accepts incoming connections SOC_U: Renamed functions to maintain consistency Also prevents possible scope errors / conflicts with the actual Berkeley socket functions SOCU: Close all the opened sockets when cleaning up SOCU
* Merge pull request #369 from darkf/mingw_bunnei2014-12-317-21/+38
|\ | | | | Fix MinGW build (2)
| * Fix MSVC-related #defines and add CMakeLists commentdarkf2014-12-305-10/+10
| |
| * Fix merge conflictsdarkf2014-12-3059-1092/+1296
| |\
| * | Fix MinGW builddarkf2014-11-297-21/+34
| | |
* | | Archives: Implemented ExtSaveData and SharedExtSaveDataSubv2014-12-303-0/+4
| |/ |/| | | | | | | | | | | | | They will be stored in /extsavedata/SDMC and /extsavedata/NAND respectively. Also redirect some APT_A functions to their APT_U equivalents. Implemented the gamecoin.dat file in SharedExtSaveData in the PTM module. Implemented formatting the savegame. Retake a previous savegame if it exists instead of reporting them as not formatted every time a game is loaded.
* | Merge pull request #322 from chinhodado/masterbunnei2014-12-221-0/+6
|\ \ | | | | | | More warning cleanups
| * | More warning cleanupsChin2014-12-211-0/+6
| | |
* | | Merge pull request #291 from purpasmart96/licensebunnei2014-12-2146-74/+74
|\ \ \ | |/ / |/| | License change
| * | License changepurpasmart962014-12-2146-74/+74
| | |
* | | BitField: Add an explicit Assign method.Tony Wasserka2014-12-201-1/+5
| | | | | | | | | | | | This is useful when doing crazy stuff like inheriting from BitField.
* | | Common: Add a clone of std::make_uniqueYuri Kunde Schlesner2014-12-202-0/+17
|/ /
* | SaveData: Implemented the SystemSaveData archive.Subv2014-12-183-0/+4
| | | | | | | | It will be stored in the /syssavedata folder. This archive is user by various Services and possibly games via the FS:U service.
* | Filesystem/Archives: Implemented the SaveData archiveSubv2014-12-183-0/+4
| | | | | | | | | | | | | | | | | | | | The savedata for each game is stored in /savedata/<ProgramID> for NCCH files. ELF files and 3DSX files use the folder 0 because they have no ID information Got rid of the code duplication in File and Directory Files that deal with the host machine's file system now live in DiskFile, similarly for directories and DiskDirectory and archives with DiskArchive. FS_U: Use the correct error code when a file wasn't found
* | Restore the original console color after logging a message.Yuri Kunde Schlesner2014-12-142-13/+25
| | | | | | | | Fixes #277
* | Remove old logging systemYuri Kunde Schlesner2014-12-136-850/+2
| |
* | Add configurable per-class log filteringYuri Kunde Schlesner2014-12-135-3/+205
| |
* | Convert old logging calls to new logging macrosYuri Kunde Schlesner2014-12-138-71/+94
| |
* | Implement text path trimming for shorter paths.Yuri Kunde Schlesner2014-12-133-1/+53
| |
* | Re-add coloring to the console logging output.Yuri Kunde Schlesner2014-12-131-0/+50
| |
* | New logging systemYuri Kunde Schlesner2014-12-1311-66/+716
| |
* | Add SCOPE_EXIT macro to conveniently execute cleanup actionsYuri Kunde Schlesner2014-12-132-0/+38
| |
* | Added missing include in common_funcs.hYuri Kunde Schlesner2014-12-131-0/+1
| |
* | Remove redundant include from common_funcs.hYuri Kunde Schlesner2014-12-131-2/+0
| |
* | Merge pull request #267 from bunnei/apt-shared-fontbunnei2014-12-133-26/+6
|\ \ | | | | | | APT shared font loading
| * | APT_U: Added GetSharedFont service function.bunnei2014-12-131-0/+3
| | |
| * | Common: Add "sysdata" to GetUserPath and cleanup.bunnei2014-12-123-26/+3
| | |
* | | Merge pull request #261 from neobrain/boostTony Wasserka2014-12-121-3/+3
|\ \ \ | |/ / |/| | Add Boost as a submodule and add some minor cleanups using Boost.Range
| * | StringUtil: Perform some minimal cleanup.Tony Wasserka2014-12-071-3/+3
| | |
* | | Explicitly specify LE strings to iconv, fixes paths in Steel Diverarchshift2014-12-101-2/+2
| | |
* | | Remove unused NDMA moduleYuri Kunde Schlesner2014-12-092-2/+0
| | |
* | | Some code cleanup.Tony Wasserka2014-12-091-0/+2
| | |
* | | Fix some headers to include their dependencies properly.Tony Wasserka2014-12-092-0/+7
|/ /
* / Change NULLs to nullptrs.Rohit Nirmal2014-12-0317-92/+92
|/
* Remove unused includes to common/thread.hEmmanuel Gil Peyrot2014-11-251-1/+0
|
* Remove tabs in all files except in skyeye imports and in generated GL codeEmmanuel Gil Peyrot2014-11-193-100/+100
|
* Remove trailing spaces in every file but the ones imported from SkyEye, AOSP or generatedEmmanuel Gil Peyrot2014-11-1923-160/+160
|
* Merge pull request #165 from neobrain/viewport-scalingbunnei2014-11-194-38/+101
|\ | | | | Stretch emulation output to render window and be display density independent
| * EmuWindow: Add some explicit documentation and set proper minimal client area size.Tony Wasserka2014-11-181-2/+4
| |
| * EmuWindow: Add a TODO.Tony Wasserka2014-11-181-0/+1
| | | | | | | | | | | | Implementing this function currently is not critical, as we don't perform any configuration changes, yet. However, the interface is a good starting point for adding this functionality.
| * MathUtil: Make Rectangle work with unsigned types.Tony Wasserka2014-11-181-4/+5
| |
| * EmuWindow: Better document the purpose of OnMinimalClientAreaChangeRequest.Tony Wasserka2014-11-181-0/+7
| |
| * EmuWindow: Remove window title getters/setters.Tony Wasserka2014-11-181-16/+1
| | | | | | | | | | The window title is none of the emulation core's business. The GUI code is free to put whatever it wants there. Providing properly thread-safe window title getters and setters is a mess anyway.
| * EmuWindow: Add documentation.Tony Wasserka2014-11-181-18/+57
| |
| * EmuWindow: Add support for specifying minimal client area sizes.Tony Wasserka2014-11-181-8/+26
| |
| * Fixup EmuWindow interface and implementations thereof.Tony Wasserka2014-11-181-28/+33
| |
| * Viewport scaling and display density independenceKevin Hartman2014-11-181-2/+5
| | | | | | | | | | The view is scaled to be as large as possible, without changing the aspect, within the bounds of the window. On "retina" displays, or other displays where window units != pixels, the view should no longer draw incorrectly.
| * Add a GUI logging channel.Tony Wasserka2014-11-182-0/+2
| | | | | | | | Replace asserts with _dbg_assert_.
* | Remove extraneous semicolonsLioncash2014-11-182-2/+2
|/
* emu_window: Fix initializer list order.Lioncash2014-11-171-2/+2
| | | | Gets rid of a warning on OSX.
* Use std::u16string for conversion between UTF-8 and UTF-16, FS:USER functionsarchshift2014-11-132-51/+115
|
* Renamed souce files of services to match port namesGareth Poole2014-10-291-1/+1
|
* Add `override` keyword through the code.Yuri Kunde Schlesner2014-10-262-3/+3
| | | | This was automated using `clang-modernize`.
* Fix compile errors in ClangYuri Kunde Schlesner2014-10-261-1/+0
|
* Merge pull request #150 from lioncash/typoTony Wasserka2014-10-251-1/+1
|\ | | | | bit_field: Fix a typo in the sample usage.
| * bit_field: Fix a typo in the sample usage.Lioncash2014-10-251-1/+1
| |
* | Removed uses of raw c-string manipulation functions.archshift2014-10-244-21/+10
|/
* Merge pull request #133 from archshift/sdmc-enabledbunnei2014-10-241-2/+4
|\ | | | | Use config files to store whether SDMC is enabled or not, auto-create SDMC dir.
| * Common: Return from CreateFullPath early if the directory creation failsarchshift2014-10-231-2/+4
| |
* | Use std sized types instead of platform specific typedefsYuri Kunde Schlesner2014-10-232-32/+12
|/
* Merge pull request #108 from archshift/configbunnei2014-10-086-69/+73
|\ | | | | Configuration files
| * Added configuration file system.archshift2014-10-086-69/+73
| | | | | | | | Uses QSettings on citra-qt, and inih on citra-cli.
* | Common: Add a helper function to generate a 8.3 filename from a long one.Emmanuel Gil Peyrot2014-10-062-0/+53
| | | | | | | | Core: Fix the SDMC Directory implementation to make blargSnes work.
* | Fix warnings in core and commonLioncash2014-09-283-15/+5
|/
* Merge pull request #118 from lioncash/chunk-filebunnei2014-09-231-244/+0
|\ | | | | chunk_file: General cleanup
| * chunk_file: General cleanupLioncash2014-09-221-244/+0
| | | | | | | | | | - Remove unnecessary ifdefs - Remove commented out code. Can be retrieved later if needed.
* | Use the citra user path for the sdmc directoryarchshift2014-09-213-0/+4
|/
* Common: Rename the File namespace to FileUtil, to match the filename and prevent collisions.Emmanuel Gil Peyrot2014-09-174-25/+25
|
* Common: Return the number of items read/written in IOFile’s methods instead of a boolean.Emmanuel Gil Peyrot2014-09-171-8/+20
|
* Added support for multiple input device types for KeyMap and connected Qt.Kevin Hartman2014-09-125-40/+61
|
* Initial HID PAD work, with GLFW only.Kevin Hartman2014-09-124-0/+77
|
* Merge pull request #99 from archshift/ext-checkbunnei2014-09-1112-40/+44
|\ | | | | loader.cpp: improved file extension checking, made Upper/LowerStr useful, moved string_util into Common namespace
| * Moved common_types::Rect from common to Common namespacearchshift2014-09-091-1/+1
| |
| * Added string_util to common, small changes in loader.cpparchshift2014-09-0911-32/+39
| |
| * loader.cpp: improved file extension checking, made Upper/LowerStr usefularchshift2014-09-092-12/+9
| | | | | | | | Instead of forcibly taking the last 4 characters, it now finds the last extension separator (the period) and takes a substr of its location.
* | Merge pull request #103 from archshift/prunebunnei2014-09-1110-34/+3
|\ \ | | | | | | Prune redundant includes
| * | common: Prune all redundant includesarchshift2014-09-0910-34/+3
| |/
* | Merge pull request #104 from archshift/removalbunnei2014-09-102-71/+0
|\ \ | | | | | | Removed fixed_size_queue.h
| * | Removed fixed_size_queue.harchshift2014-09-092-71/+0
| |/ | | | | | | It's unused and doesn't look like it compiles anyway :/
* | Merge pull request #101 from lioncash/inf-loopbunnei2014-09-101-3/+8
|\ \ | | | | | | Common: Fix a potential infinite loop in StringUtil's ReplaceAll
| * | Common: Fix a potential infinite loop in StringUtil's ReplaceAllLioncash2014-09-081-3/+8
| |/
* / Common: Remove HAVE_CXX11_SYNTAX define from Common.hLioncash2014-09-081-6/+0
|/
* Removed common/std_xyz, instead using the std headerarchshift2014-09-077-856/+6
|
* Removed common/atomic, instead using std::atomicarchshift2014-09-034-198/+0
|
* Remove hand-crafted Visual Studio solution.Yuri Kunde Schlesner2014-09-014-453/+0
|
* Avoid LOGGING redefinition warnings.Yuri Kunde Schlesner2014-09-011-0/+2
|
* CMake cleanupYuri Kunde Schlesner2014-09-011-7/+16
| | | | | | | | Several cleanups to the buildsystem: - Do better factoring of common libs between platforms. - Add support to building on Windows. - Remove Qt4 support. - Re-sort file lists and add missing headers.
* Merge pull request #58 from lioncash/clampbunnei2014-08-211-0/+7
|\ | | | | Common: Add a clamp function to math_utils.h
| * Common: Add a clamp function to math_utils.hLioncash2014-08-191-0/+7
| |
* | Common: Get rid of an unnecessary forward declaration in symbols.hLioncash2014-08-181-2/+0
|/
* Common: Don't return a reference to a string when calling GetName in symbols.cppLioncash2014-08-182-2/+2
| | | | Returning a copy of the string is what was likely meant to be done.
* Merge pull request #52 from lioncash/memorybunnei2014-08-181-5/+8
|\ | | | | Common: Correctly set ptr to null if mmap fails in memory_util
| * Common: Correctly set ptr to null if mmap fails in memory_utilLioncash2014-08-171-5/+8
| | | | | | | | On POSIX systems mmap will return MAP_FAILED ((void*)-1) instead of a null pointer.
* | Merge pull request #48 from linkmauve/masterbunnei2014-08-181-24/+23
|\ \ | | | | | | Replace insecure temporary file creation with devshm.
| * | mem_arena: Replace insecure temporary file creation with devshm, importing Dolphin’s code.Emmanuel Gil Peyrot2014-08-161-24/+23
| |/
* | Common: Move remaining C header includes over to their C++ equivalentLioncash2014-08-178-21/+20
| |
* | Common: Move header guards over to pragma onceLioncash2014-08-1733-146/+41
|/ | | | Also replaced C headers with the C++ equivalent ones
* Simplified if-tree in extended_trace.cpparchshift2014-08-121-13/+9
|
* Merge pull request #41 from archshift/itrbunnei2014-08-122-78/+67
|\ | | | | Changed iterators to use auto, many of which using range-based loops
| * break_points.cpp: return directly from conditionalsarchshift2014-08-121-6/+2
| |
| * break_points: cleaned up, added `find_if`sarchshift2014-08-122-59/+51
| |
| * Changed iterators to use auto, some of which using range-based loopsarchshift2014-08-121-27/+28
| |
* | Remove the fancy RegisterSet class introduced in 4c2bff61e.Tony Wasserka2014-08-123-165/+0
|/ | | | | While it was some nice and fancy template usage, it ultimately had many practical issues regarding length of involved expressions under regular usage as well as common code completion tools not being able to handle the structures. Instead, we now use a more conventional approach which is a lot more clean to use.
* Use pthread_set_name_np() on OpenBSD.Anthony J. Bentley2014-08-081-1/+3
|
* RegisterSet: Simplify code by using structs for register definition instead of unions.Tony Wasserka2014-07-231-6/+8
|
* [build] Search for the git binary in the default msysgit install dirYuri Kunde Schlesner2014-07-191-1/+8
| | | | | | | | | The Git for Windows installer doesn't add the Git binaries to the path by default. (Due to risk of conflicts with built-in windows commands.) Unless you have configured your system specially this causes the scm_rev_gen.js script to fail to find Git. Added more paths to the script so that it searches in the default msysgit installation directory, eliminating the need to set the PATH for most environments.
* BitField: Cast enum values to proper integer type.Tony Wasserka2014-07-161-1/+1
|
* BitField: Add a static_assert.Tony Wasserka2014-07-161-0/+1
| | | | Being able to store BitField within unions requires BitField to be of standard layout, which in turn is only given if the underlying type is also has standard layout.
* BitField: Delete copy assignment to prevent obscure bugs.Tony Wasserka2014-07-161-0/+16
| | | | Cf. https://github.com/dolphin-emu/dolphin/pull/483
* BitField: Add an explicit evaluation method.Tony Wasserka2014-07-161-0/+5
| | | | Sometimes it can be beneficial to use this in places where an explicit cast needs to happen otherwise. By using the evaluation method, it's not necessary anymore to explicitly write the underlying type in this case.
* Merge branch 'threading' of https://github.com/bunnei/citrabunnei2014-06-144-43/+48
|\ | | | | | | | | | | Conflicts: src/core/hle/function_wrappers.h src/core/hle/service/gsp.cpp
| * log: updated MAX_LOGLEVEL to use correct log level enum typebunnei2014-06-013-5/+5
| |
| * log: updated GenericLog __attribute__ for newly added parameterbunnei2014-06-011-1/+1
| |
| * log: fixed to not print twice, enabled coloring, added OS print logging as its own typebunnei2014-05-304-37/+42
| |
* | Removed definition of MAX_PATH, this is already defined in common_paths.h.bunnei2014-06-121-2/+0
| |
* | Preprocessor: #if's out OSX-specific GL changes on other platformsarchshift2014-06-121-1/+1
| |
* | Common: Removed duplicate "LONG" and "MAX_PATH" definitions.bunnei2014-06-121-2/+0
| |
* | Pica: Use some template magic to define register structures efficiently.Tony Wasserka2014-06-123-3/+166
| |
* | Rename LCD to GPU.Tony Wasserka2014-06-122-2/+2
| |
* | Merge branch 'threading'bunnei2014-05-236-3/+228
|\|
| * added MIN, MAX, and CLAMP macros to common_funcsbunnei2014-05-171-0/+5
| |
| * added ThreadQueueList class to common (taken from PPSSPP)bunnei2014-05-163-0/+218
| |
| * added kernel logger to commonbunnei2014-05-102-3/+5
| |
* | common_types: Changed BasicRect back to Rect, in the common namespacearchshift2014-05-201-4/+6
| | | | | | | | Only Rect is in the namespace for now; the rest of common should be added in the future
* | Improved clarity and whitespacearchshift2014-05-201-0/+1
| | | | | | | | Changed QGL version to 3,2 in order to be less restrictive, yet it should still change up to 4,1 on OSX on Qt5.
* | CMakeLists: rename HEADS, improved commentsarchshift2014-05-201-2/+2
| | | | | | | | Changes for clarity of comments, removed redundant compiler flags.
* | Updated cmakelistsarchshift2014-05-171-0/+1
| |
* | Merge remote-tracking branch 'upstream/master' into issue-7-fixarchshift2014-05-175-5/+179
|\|
| * removed incorrect dolphin copyright linebunnei2014-05-081-1/+0
| |
| * fixed include of common in bit_field.hbunnei2014-05-081-1/+1
| |
| * logger fix for linuxbunnei2014-05-082-3/+3
| |
| * added GSP to loggersbunnei2014-05-082-2/+2
| |
| * added BitField to commonbunnei2014-05-083-0/+175
| |
| * - added better SVC loggingbunnei2014-05-062-5/+5
| | | | | | | | - added stubs for GetResourceLimit and GetResourceLimitCurrentValues SVCs
* | Support for C++11 on OSXarchshift2014-05-011-2/+2
| |
* | Fixed indentsarchshift2014-05-011-1/+1
| |
* | Some more experimentationarchshift2014-04-301-3/+3
| |
* | IT'S ALIVE!archshift2014-04-291-1/+39
| |
* | Fix complaints about functions that could not be foundarchshift2014-04-281-1/+1
| |
* | Problematic class with no current implementationarchshift2014-04-281-2/+2
| |
* | Rect to BasicRectarchshift2014-04-281-4/+4
| | | | | | | | Somewhere along the line an OSX header had already taken the name Rect.
* | add missing bswap functionsbunnei2014-04-281-0/+44
|/
* fix for issue Linux build #9, not sure why this is broken but its unused code I'm just getting rid of itbunnei2014-04-281-13/+0
|
* Merge branch 'hle-interface-updates'bunnei2014-04-281-5/+0
|\
| * removed DISALLOW_COPY_AND_ASSIGN in favor of NonCopyable classbunnei2014-04-281-5/+0
| |
* | Resolved undefined Common::g_scm_branch error.Thomas Edvalson2014-04-251-1/+1
|/
* made qt window title consistentbunnei2014-04-241-1/+1
|
* fixes to scm_rev generation to make it conistent with windows buildbunnei2014-04-242-5/+5
|
* updated windows scm_rev code to use new styleShizZy2014-04-245-66/+53
|
* added scm rev generation on Linux/cmakebunnei2014-04-246-51/+37
|
* fixes to build on linuxbunnei2014-04-232-14/+14
|
* removed duplicate rotl/rotr functionsShizZy2014-04-231-26/+0
|
* updated CMakeLists for missing filesShizZy2014-04-231-0/+1
|
* Merge branch 'hle-interface'bunnei2014-04-184-5/+27
|\
| * added NDMA hardware interfacebunnei2014-04-182-2/+2
| |
| * added helper functions for upper/lowercase stringsbunnei2014-04-152-0/+22
| |
| * added logger for generic HLEbunnei2014-04-112-3/+3
| |
* | Add symbols mapMathieu Vaillancourt2014-04-134-0/+100
|/
* removed scm_rev.h from version controlbunnei2014-04-111-4/+0
|
* added missing const to GetWindowTitlebunnei2014-04-111-1/+1
|
* updated CMakeListsbunnei2014-04-101-16/+17
|
* - removed deprecated version.hbunnei2014-04-094-72/+52
| | | | | - cleaned up window title - cleaned up emu_window_glfw/emu_window
* fixed scm_rev_genbunnei2014-04-092-5/+5
|
* fixed project includes to use new directory structurebunnei2014-04-0944-211/+201
|
* got rid of 'src' folders in each sub-projectbunnei2014-04-0954-0/+0
|
* added "citra" instead of "emu" to title barbunnei2014-04-071-1/+1
|
* added logger option specifically for the rendererbunnei2014-04-062-2/+2
|
* added missing includes to common_types.hbunnei2014-04-051-0/+3
|
* Updated common_types.h to use Gekko's version w/ Rect and some useful unionsbunnei2014-04-051-30/+102
|
* added DISALLOW_COPY_AND_ASSIGN macrobunnei2014-04-051-0/+5
|
* added LCD loggerbunnei2014-04-052-2/+2
|
* added a HW option to loggingbunnei2014-04-052-48/+48
|
* convert tabs to spacesbunnei2014-04-0247-5298/+5298
|
* grabbed ppsspp's MemArenabunnei2014-04-012-221/+428
|
* added TIME logger for core timingShizZy2013-10-022-2/+2
|
* renamed GC_ALIGNED* macros to MEMORY_ALIGNED*ShizZy2013-10-021-12/+12
|
* upgraded proj files to vs 2013ShizZy2013-09-272-2/+16
|
* renamed from citrus to citraShizZy2013-09-264-5/+5
|
* moved file_sys back to coreShizZy2013-09-265-973/+0
|
* removed <windows.h> include from common.h and added it only where neededShizZy2013-09-242-5/+1
|
* moved file_sys to commonShizZy2013-09-245-0/+973
|
* added localtime_r for use on windowsShizZy2013-09-241-0/+8
|
* added utf8 to common module, utils for dealing with utf8ShizZy2013-09-244-0/+534
|
* updated to chunk_file module from ppssppShizZy2013-09-201-133/+623
|
* added a module for loading bootable binariesShizZy2013-09-202-4/+4
|
* added swap types to commonShizZy2013-09-194-0/+549
|
* removed CORE and LOADER from LogTypesShizZy2013-09-191-2/+0
|
* added CORE and LOADER to LogTypesShizZy2013-09-191-0/+2
|
* changed log CPU from PPC to ARM11ShizZy2013-09-182-2/+3
|
* added default windows includeShizZy2013-09-181-0/+4
|
* added file platform.hShizZy2013-09-164-0/+137
|
* renamed project to 'citrus'ShizZy2013-09-143-3/+3
|
* added scm_rev_gen project to automatically create a header with the git revision on buildShizZy2013-09-134-3/+162
|
* cleaned up VS project filesShizZy2013-09-091-11/+9
|
* fixed some code warningsShizZy2013-09-091-1/+1
|
* removed unneeded dolphin paths code, fixed linker problems with common.libShizZy2013-09-093-132/+118
|
* re-enabled GetLastErrorMsgShizZy2013-09-091-19/+23
|
* updated common pathsShizZy2013-09-082-4/+7
|
* start of 3DS memory mapShizZy2013-09-063-12/+3
|
* various fixes to be able to build projectShizZy2013-09-051-17/+13
|
* added emu_window.h to define interface to drawing to a windowShizZy2013-09-053-0/+108
|
* updated CMakeLists.txt file for new common filesShizZy2013-09-051-9/+16
|
* replaced common code with dolphin commonShizZy2013-09-0551-107/+8640
|
* deleted gekko's common filesShizZy2013-09-0428-4543/+0
|
* adding initial project layoutShizZy2013-08-3031-0/+4777