summaryrefslogtreecommitdiff
path: root/src/common (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Merge pull request #6863 from spholz/fix-lan-playGravatar Fernando S2021-08-161-1/+2
|\ | | | | Fix LAN Play
| * Merge branch 'yuzu-emu:master' into fix-lan-playGravatar spholz2021-08-122-28/+164
| |\
| * | configuration: add option to select network interfaceGravatar spholz2021-08-121-1/+2
| | | | | | | | | | | | This commit renames the "Services" tab to "Network" and adds a combobox that allows the user to select the network interface that yuzu should use. This new setting is now used to get the local IP address in Network::GetHostIPv4Address. This prevents yuzu from selecting the wrong network interface and thus using the wrong IP address. The return type of Network::GetHostIPv4Adress has also been changed.
* | | threadsafe_queue: Fix deadlockGravatar yzct123452021-08-131-6/+4
| |/ |/| | | | | | | This fixes a lost wakeup in SPSCQueue. If the reader is in just the right position, the writer's notification will be lost and this will be a problem if the writer then does something to wait on the reader. This was discovered to affect my upcoming stacktrace PR. I don't think any performance decrease will be noticeable because an uncontended mutex is smart enough to skip the syscall. This PR might also resolve some rare deadlocks but I don't know of any examples.
* | settings: Fix MSVC issuesGravatar lat9nq2021-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-settingsGravatar bunnei2021-08-101-26/+136
|\ \ | | | | | | settings: Implement settings ranges
| * | settings: Use std::clamp where possibleGravatar lat9nq2021-07-311-39/+9
| | | | | | | | | | | | | | | | | | Addresses PR review Co-authored-by: PixelyIon <pixelyion@protonmail.com>
| * | settings: Remove unnecessary std::move usagesGravatar lat9nq2021-07-301-12/+12
| | | | | | | | | | | | | | | | | | Addresses review feedback. Co-authored-by: Mai M. <mathew1800@gmail.com>
| * | settings: Fix function virtualizationGravatar lat9nq2021-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 rangesGravatar lat9nq2021-07-301-18/+152
| | | | | | | | | | | | | | | Clamps the setting's values against the specified minimum and maximum values.
* | | Merge pull request #6827 from Morph1984/uuid-hashGravatar bunnei2021-08-071-0/+11
|\ \ \ | |_|/ |/| | common: uuid: Add hash function for UUID
| * | common: uuid: Add hash function for UUIDGravatar Morph2021-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-assertGravatar bunnei2021-08-051-2/+6
|\ \ \ | |/ / |/| | assert: Avoid empty macros
| * | assert: Verify formattingGravatar yzct123452021-08-051-2/+6
| | |
| * | assert: Avoid empty macrosGravatar yzct123452021-08-051-2/+2
| | |
* | | Merge pull request #6813 from Morph1984/hex-string-to-uuidGravatar bunnei2021-08-052-0/+73
|\ \ \ | |/ / |/| | common: uuid: Add hex string to UUID constructor
| * | common: uuid: Add hex string to UUID constructorGravatar Morph2021-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 AsArrayGravatar Morph2021-08-041-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-statisticsGravatar bunnei2021-07-301-0/+1
|\ \ | |/ |/| renderer_vulkan: Add setting to log pipeline statistics
| * renderer_vulkan: Add setting to log pipeline statisticsGravatar ReinUsesLisp2021-07-271-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/uuidGravatar bunnei2021-07-291-1/+1
|\ \ | | | | | | common: uuid: Return a lower-case hex string in Format
| * | common: uuid: Return a lower-case hex string in FormatGravatar Morph2021-07-261-1/+1
| | |
* | | Merge pull request #6758 from jbeich/fastmemGravatar bunnei2021-07-281-2/+7
|\ \ \ | | | | | | | | host_memory: enable fastmem on FreeBSD
| * | | host_memory: Add workaround for FreeBSD 12Gravatar Jan 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 FreeBSDGravatar Jan 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-enumGravatar bunnei2021-07-281-3/+8
|\ \ \ | | | | | | | | general: Implement FullscreenMode enumeration
| * \ \ Merge branch 'master' into fullscreen-enumGravatar lat9nq2021-07-257-70/+24
| |\ \ \ | | | |/ | | |/|
| * | | general: Implement FullscreenMode enumerationGravatar lat9nq2021-07-231-3/+8
| | | | | | | | | | | | | | | | | | | | Prevents us from using an unclear 0 or 1 to describe the fullscreen mode.
* | | | common: fs: fs_util: Add BufferToUTF8StringGravatar Morph2021-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-renameGravatar bunnei2021-07-262-6/+6
|\ \ \ | | | | | | | | general: Rename "Frame Limit" references to "Speed Limit"
| * | | general: Rename "Frame Limit" references to "Speed Limit"Gravatar ameerj2021-07-232-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-capGravatar bunnei2021-07-251-0/+1
|\ \ \ | |_|/ |/| | config, nvflinger: Add FPS cap setting
| * | config, nvflinger: Add FPS cap settingGravatar ameerj2021-07-231-0/+1
| |/ | | | | | | Allows finer tuning of the FPS limit.
* | Merge pull request #6585 from ameerj/hadesGravatar bunnei2021-07-257-69/+23
|\ \ | | | | | | Shader Decompiler Rewrite
| * | cmake: Remove shader cache versionGravatar ReinUsesLisp2021-07-222-11/+1
| | |
| * | general: Add setting shader_backendGravatar lat9nq2021-07-222-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 loggingGravatar ReinUsesLisp2021-07-222-0/+8
| | |
| * | shader: Add shader loop safety check settingsGravatar lat9nq2021-07-221-0/+3
| | | | | | | | | | | | Also add a setting for enable Nsight Aftermath.
| * | shader_recompiler,video_core: Cleanup some GCC and Clang errorsGravatar lat9nq2021-07-221-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 managementGravatar ReinUsesLisp2021-07-221-55/+1
| | |
| * | thread_worker: Fix compile time errorGravatar ameerj2021-07-221-1/+1
| |/ | | | | | | state is unused in the branch where with_state is false
* / common: Publically link to pthreadsGravatar lat9nq2021-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 elementGravatar Chloe Marcec2021-07-211-3/+2
| | | | We can now update this for C++20
* input_common: Fix mouse panning behaivourGravatar german772021-07-161-1/+1
|
* Merge pull request #6579 from ameerj/float-settingsGravatar bunnei2021-07-152-6/+6
|\ | | | | settings: Eliminate usage of float-point setting values
| * configure_input: Use u8 for mouse sensitivityGravatar ameerj2021-07-081-1/+1
| |
| * configure_graphics: Use u8 for bg_color valuesGravatar ameerj2021-07-081-3/+3
| |
| * configure_audio: Use u8 for volume valueGravatar ameerj2021-07-082-2/+2
| |
* | Merge pull request #6576 from ameerj/unlock-fps-settingGravatar Morph2021-07-111-1/+1
|\ \ | | | | | | settings: Disable FPS unlimit setting between title launches
| * | settings: Disable FPS unlimit setting between title launchesGravatar ameerj2021-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.