Commit Graph

15381 Commits (94d77d0e397b7e0b7770dfb0b6b014f498eeff8f)

Author SHA1 Message Date
ReinUsesLisp 70353649d7 fixed_pipeline_cache: Use dirty flags to lazily update key
Use dirty flags to avoid building pipeline key from scratch on each draw
call. This saves a bit of unnecesary work on each draw call.
2021-02-13 17:44:47 +07:00
ameerj c7325c6a4c gl_texture_cache: Lazily create non-sRGB texture views for sRGB formats
This creates non-sRGB texture views for sRGB texture formats to allow for interfacing with these views in compute shaders using imageLoad and imageStore.

Co-Authored-By: Rodrigo Locatti <reinuseslisp@airmail.cc>
2021-02-13 13:27:50 +07:00
ameerj b675c44e49 rebase, fix name shadowing, more const 2021-02-13 13:07:56 +07:00
ameerj 3c37d66c28 Address PR feedback
Co-Authored-By: LC <712067+lioncash@users.noreply.github.com>
2021-02-13 13:07:56 +07:00
ameerj 09722cb4a7 streamline cdma_pusher/command_classes 2021-02-13 13:07:56 +07:00
ameerj 77564f987c streamline cdma_pusher/command_classes 2021-02-13 13:07:53 +07:00
ameerj ac265a72ce nvdec cleanup 2021-02-13 13:07:31 +07:00
Morph 83227ad981
Merge pull request #5919 from ReinUsesLisp/stream-buffer-tragic
gl_stream_buffer/vk_staging_buffer_pool: Fix size check
2021-02-13 21:25:45 +07:00
ReinUsesLisp dd9caf9aa0 vk_master_semaphore: Mark gpu_tick atomic operations with relaxed order 2021-02-13 05:57:28 +07:00
ReinUsesLisp 6171566296 vk_staging_buffer_pool: Inline tick tests
Load the current tick to a local variable, moving it out of an atomic
and allowing us to compare the value without going through a pointer
each time. This should make the loop more optimizable.
2021-02-13 05:14:11 +07:00
ReinUsesLisp 682d82faf3 gl_stream_buffer/vk_staging_buffer_pool: Fix size check
Fix a tragic off-by-one condition that causes Vulkan's stream buffer to
think it's always full, using fallback memory. The OpenGL was also
affected by this bug to a lesser extent.
2021-02-13 05:11:48 +07:00
LC 710aa22f7c
Merge pull request #5915 from lat9nq/screenshots-dir-fix
yuzu: Create screenshot path before capture
2021-02-13 02:56:23 +07:00
LC 6f1ad6aa9f
Merge pull request #5916 from ameerj/maxwell-gl-unused
maxwell_to_gl: Remove unused code
2021-02-13 02:55:59 +07:00
ReinUsesLisp 757fd1e917 vulkan_device: Require VK_EXT_robustness2
We are already using robustness2 features without requiring it
explicitly, causing potential crashes on drivers without the extension.
Requiring this at boot allows better diagnostics for it and formalizes
our usage on the extension.
2021-02-13 03:31:50 +07:00
ReinUsesLisp 13becdf18a config: Make high GPU accuracy the default
This is a better default for most games, yielding better performance and
less graphical issues.
2021-02-13 02:38:05 +07:00
ReinUsesLisp 5b35b01070 video_core: Fix clang build issues 2021-02-13 02:26:47 +07:00
ReinUsesLisp 025fe458ae vk_staging_buffer_pool: Fix softlock when stream buffer overflows
There was still a code path that could wait on a timeline semaphore tick
that would never be signalled.

While we are at it, make use of more STL algorithms.
2021-02-13 02:18:38 +07:00
ReinUsesLisp 3a2eefb16c vk_buffer_cache: Add support for null index buffers
Games can bind a null index buffer (size=0) where all indices are
evaluated as zero. VK_EXT_robustness2 doesn't support this and all
drivers segfault when a null index buffer is passed to
vkCmdBindIndexBuffer.

Workaround this by creating a 4 byte buffer and filling it with zeroes.
If it's read out of bounds, robustness takes care of returning zeroes as
indices.
2021-02-13 02:18:38 +07:00
ReinUsesLisp 0b8b961442 buffer_cache: Add extra bytes to guest SSBOs
Bind extra bytes beyond the guest API's bound range.
This is due to some games like Astral Chain operating out of bounds.
Binding the whole map range would be technically correct, but games
have large maps that make this approach unaffordable for now.
2021-02-13 02:18:38 +07:00
ReinUsesLisp 93a69b6cc8 Merge branch 'bytes-to-map-end' into new-bufcache-wip 2021-02-13 02:18:35 +07:00
ReinUsesLisp 7402442442 vk_staging_buffer_pool: Get a staging buffer instead of waiting
Avoids waiting idle while the GPU finishes to do work, and fixes an
issue where we'd wait forever if a single command buffer (logic tick)
all the data.
2021-02-13 02:18:05 +07:00
ReinUsesLisp 75fd3f95a3 yuzu/config: Disable assembly shaders by default
Due to BindBufferRangeNV limitations and poor quality code emission from
our side, assembly shaders are currently slower than GLSL. Their build
time and feature advantages are still relevant, but they are outweighted
by their runtime performance.
2021-02-13 02:18:05 +07:00
ReinUsesLisp 0b631f22fc renderer_opengl: Remove interop
Remove unused interop code from the OpenGL backend.
2021-02-13 02:18:04 +07:00
ReinUsesLisp 3da87d3f12 gl_buffer_cache: Drop interop based parameter buffer workarounds
Sacrify runtime performance to avoid generating kernel exceptions on
Windows due to our abusive aliasing of interop buffer objects.
2021-02-13 02:17:24 +07:00
ReinUsesLisp 2b95c137ff buffer_cache: Heuristically detect stream buffers
Detect when a memory region has been joined several times and increase
the size of the created buffer on those instances. The buffer is assumed
to be a "stream buffer", increasing its size should stop us from
constantly recreating it and fragmenting memory.
2021-02-13 02:17:24 +07:00
ReinUsesLisp ec9354d6d9 buffer_cache: Split CreateBuffer in separate functions
Allow adding functionality to each function without making CreateBuffer
more complex.
2021-02-13 02:17:24 +07:00
ReinUsesLisp a02b4e1df6 buffer_cache: Skip cache on small uploads on Vulkan
Ports from OpenGL the optimization to skip small 3D uniform buffer
uploads. This will take advantage of the previously introduced stream
buffer.

Fixes instances where the staging buffer offset was being ignored.
2021-02-13 02:17:24 +07:00
ReinUsesLisp 35df1d1864 vk_staging_buffer_pool: Add stream buffer for small uploads
This uses a ring buffer similar to OpenGL's stream buffer for small
uploads. This stops us from allocating several small buffers, reducing
memory fragmentation and cache locality.

It uses dedicated allocations when possible.
2021-02-13 02:17:24 +07:00
ReinUsesLisp 8fd518ec40 vulkan_device: Enable robustBufferAccess
Fix regression on Pascal on Animal Crossing: New Horizons, fixing a
validation error.
2021-02-13 02:17:23 +07:00
ReinUsesLisp 82c2601555 video_core: Reimplement the buffer cache
Reimplement the buffer cache using cached bindings and page level
granularity for modification tracking. This also drops the usage of
shared pointers and virtual functions from the cache.

- Bindings are cached, allowing to skip work when the game changes few
  bits between draws.
- OpenGL Assembly shaders no longer copy when a region has been modified
  from the GPU to emulate constant buffers, instead GL_EXT_memory_object
  is used to alias sub-buffers within the same allocation.
- OpenGL Assembly shaders stream constant buffer data using
  glProgramBufferParametersIuivNV, from NV_parameter_buffer_object. In
  theory this should save one hash table resolve inside the driver
  compared to glBufferSubData.
- A new OpenGL stream buffer is implemented based on fences for drivers
  that are not Nvidia's proprietary, due to their low performance on
  partial glBufferSubData calls synchronized with 3D rendering (that
  some games use a lot).
- Most optimizations are shared between APIs now, allowing Vulkan to
  cache more bindings than before, skipping unnecesarry work.

This commit adds the necessary infrastructure to use Vulkan object from
OpenGL. Overall, it improves performance and fixes some bugs present on
the old cache. There are still some edge cases hit by some games that
harm performance on some vendors, this are planned to be fixed in later
commits.
2021-02-13 02:17:22 +07:00
ReinUsesLisp a39d9c5194 vulkan_common: Expose interop and headless devices 2021-02-13 02:16:21 +07:00
ReinUsesLisp 47d5ec6cfc vulkan_common: Make interop extensions mandatory 2021-02-13 02:16:21 +07:00
ReinUsesLisp 40ed0cb920 vulkan_device: Enable robust buffers 2021-02-13 02:16:21 +07:00
ReinUsesLisp 1a987054c5 vulkan_device: Use designated initializers for features 2021-02-13 02:16:21 +07:00
ReinUsesLisp 79afdeaf08 vulkan_wrapper: Add memory barrier pipeline barrier helper 2021-02-13 02:16:21 +07:00
ReinUsesLisp 004a8d6a7a vulkan_device: Fix formatting of constants 2021-02-13 02:16:21 +07:00
ReinUsesLisp 16f97ded21 vulkan_wrapper: Add interop functions 2021-02-13 02:16:21 +07:00
ReinUsesLisp 9735c34f5d vulkan_instance: Initialize Vulkan instance in a separate thread
Workaround an issue on Nvidia where creating a Vulkan instance from an
active OpenGL thread disables threaded optimization on the driver.
This optimization is important to have good performance on Nvidia
OpenGL.
2021-02-13 02:16:21 +07:00
ReinUsesLisp dde19e7d75 vulkan_wrapper: Pull Windows symbols 2021-02-13 02:16:21 +07:00
ReinUsesLisp 75ccd9959c gpu: Report renderer errors with exceptions
Instead of using a two step initialization to report errors, initialize
the GPU renderer and rasterizer on the constructor and report errors
through std::runtime_error.
2021-02-13 02:16:19 +07:00
ReinUsesLisp 19156292a3 tests/buffer_base: Add cached CPU writes tests
Ensure the behavior of the previous commit in tests.
2021-02-13 02:15:29 +07:00
ReinUsesLisp 9d8ca6cc4a buffer_base: Add support for cached CPU writes
Some games usually write memory pages currently used by the GPU, causing
rendering issues (e.g. flashing geometry and shadows on Link's
Awakening). To workaround this issue, Guest CPU writes are delayed until
the command buffer finishes processing, but the pages are updated
immediately.

The overall behavior is:
- CPU writes are cached until they are flushed, they update the page
  state, but don't change the modification state. Cached writes stop
  pages from being flushed, in case games have meaningful data in it.
- Command processing writes (e.g. push constants) update the page state
  and are marked to the command processor as dirty. They don't remove
  the state of cached writes.
2021-02-13 02:15:29 +07:00
ameerj 069afcc633 maxwell_to_gl: Remove unused code
Removes unused declarations in maxwell_to_gl.h
2021-02-12 23:01:09 +07:00
Chloe Marcec 7ad63ea542 revert to std::sin and std::cos 2021-02-12 18:48:10 +07:00
Chloe Marcec d28b942458 address issues 2021-02-12 18:48:10 +07:00
Chloe Marcec 4a7fd91857 audren: Implement I3dl2Reverb
Most notable fix is the voices in Fire Emblem Three Houses
2021-02-12 18:48:10 +07:00
ameerj ec9b6641b1 kernel: More accurately reserve and release resources 2021-02-12 19:05:24 +07:00
ameerj 5fa6b15215 kernel: KScopedReservation implementation
This implements KScopedReservation, allowing resource limit reservations to be more HW accurate, and release upon failure without requiring too many conditionals.
2021-02-12 18:57:34 +07:00
Chloe 37939482fb
kernel: Unify result codes (#5890)
* kernel: Unify result codes

Drop the usage of ERR_NAME convention in kernel for ResultName. Removed seperation between svc_results.h & errors.h as we mainly include both most of the time anyways.

* oops

* rename errors to svc_results
2021-02-12 15:43:01 +07:00
lat9nq dcc0617cc2 yuzu: Create screenshot path before capture
Allows screenshots in cases where the screenshots path doesn't already
exist.
2021-02-12 17:26:01 +07:00
bunnei a0379c2db5
Merge pull request #5902 from lioncash/core-warn
core: Silence various warnings on Clang 12
2021-02-11 18:57:23 +07:00
bunnei e53b6ecc76
Merge pull request #5869 from german77/mousePanning
input_common: Add mouse panning
2021-02-11 09:58:23 +07:00
Morph 886043a6d2 software_keyboard: Implement Finalize request command 2021-02-10 21:42:49 +07:00
bunnei 3e6e0d8f13
Merge pull request #5893 from lioncash/input
configure_input_player_widget: Minor cleanup
2021-02-10 10:55:59 +07:00
LC dee133ab3d
Merge pull request #5904 from lat9nq/common-sized-dealloc
common: Add -fsized-deallocation as a Clang flag
2021-02-09 23:45:52 +07:00
LC 3c22ce035b
Merge pull request #5905 from lat9nq/core-sized-dealloc
core: Add -fsized-dealloction as a Clang flag
2021-02-09 23:45:36 +07:00
lat9nq 0e004269a9 configure_input_player_widget: Silence unused variable warnings
Prevents clang 11 from throwing an error since these variables are
unused.
2021-02-09 22:09:23 +07:00
lat9nq a58086ae0d common: Add -fsized-deallocation as a Clang flag
Prevents an operator delete error when compiling with Clang 11.
2021-02-09 21:28:33 +07:00
lat9nq 68f718943e core: Add -fsized-dealloction as a Clang flag
Prevents a operator delete error when compiling with Clang 11.
2021-02-09 21:27:12 +07:00
Ameer J 70db238f80
Merge pull request #5901 from lioncash/input-warn
udp: Silence warnings on Clang 12
2021-02-09 20:19:56 +07:00
bunnei 245d60bfff
Merge pull request #5900 from lioncash/unused-func
video_core: Remove unused functions and variables
2021-02-09 15:29:10 +07:00
Lioncash 0cd40fb523 bsd: Remove usage of optional emplace() with no arguments
Clang 12 currently falls over in the face of this.
2021-02-09 17:50:29 +07:00
Lioncash 1dab8acf5f am/controller: Remove [[fallthrough]] from unreachable path
Prevents warnings on clang 12. This path is reachable on other
variations of the build that disable the unreachable macro.
2021-02-09 17:44:14 +07:00
Lioncash d64ba58759 nfp: Correct uninitialized size being used within GetTagInfo()
We were previously the name of the object being initialized within its
own initializer, which results in uninitialized data being read.
2021-02-09 17:42:02 +07:00
Lioncash a352f34462 udp: Silence unused member variable warnings
Simply mark them as unused for now.
2021-02-09 17:38:45 +07:00
Lioncash cda24b8eb1 udp/client: Define ClientData constructor/destructor in cpp file
Prevents compilation errors on clang 12 due to incomplete types within a
unique_ptr member.
2021-02-09 17:36:32 +07:00
Lioncash 10636d2494 gl_rasterizer: Remove unused variables
Resolves warnings on clang 12
2021-02-09 17:31:37 +07:00
Lioncash 783dc9e112 texture_cache/util: Remove unused functions
Silences a few warnings on clang 12.
2021-02-09 17:30:20 +07:00
Lioncash 864762cac9 configure_input_player_widget: Reduce duplication of array accessors where applicable
Reduces the amount of code to read in expressions a little bit by
separating constituents out a little.
2021-02-09 13:15:05 +07:00
Lioncash 5c7c212f61 configure_input_player_widget: Avoid nontrivial copies where applicable
Previously a function was copying an array of 20 std::string instances
by value.
2021-02-09 13:15:03 +07:00
german bcd4e4f650 Use GC image 2021-02-09 08:12:21 +07:00
Jatoxo 2e32ab4e0b
Settings: Add depth to Joysticks on Pro Controller preview (#5894)
* Add some depth to ProJoysticks

* address comments

* clang

* address nits

* fix wrong inner_offset when offset.x was 0
2021-02-08 21:06:37 +07:00
Ameer J 26669d9e13
Merge pull request #5880 from lat9nq/ffmpeg-external
cmake: FFmpeg linking rework
2021-02-08 21:13:10 +07:00
bunnei 1b730827dd
Merge pull request #5892 from german77/backup
olsc: Stub GetSaveDataBackupSetting
2021-02-08 17:48:52 +07:00
bunnei 7666c0994c
Merge pull request #5868 from german77/HandheldFix
Prevent over scheduling audio events and add motion update unschedule event
2021-02-08 11:33:53 +07:00
Morph ff58ad2050 string_util: Remove MSVC workaround for converting between UTF8/UTF16
This has been fixed as of Visual Studio 2019 Version 16.2
2021-02-08 02:56:07 +07:00
german a994a40467 hid: Implement GC controller 2021-02-07 22:59:46 +07:00
bunnei 0896089092
Merge pull request #5339 from german77/interactive
Settings: Make settings controller image change with controller input
2021-02-07 20:53:46 +07:00
german 3f9eb56972 olsc: Stub GetSaveDataBackupSetting 2021-02-07 22:32:13 +07:00
german 52b79ac009 Add mouse panning 2021-02-07 20:31:58 +07:00
Chloe d0a760a34a
Merge pull request #5872 from lioncash/svc-error
svc: Provide more detailed error logs for svc functions
2021-02-08 12:27:36 +07:00
Rodrigo Locatti 4c82c08897
Merge pull request #5888 from Morph1984/ogl-4.6
renderer_opengl: Update OpenGL backend version requirement to 4.6
2021-02-07 21:44:49 +07:00
LC 148fb12bf3
Merge pull request #5889 from ogniK5377/morton-remove
video_core: Delete morton
2021-02-07 18:48:28 +07:00
Chloe Marcec c5f109bc50 video_core: Delete morton
moron.h & morton.cpp are not used anywhere and are just empty files
2021-02-08 10:20:21 +07:00
Morph 6e5cc977ad renderer_opengl: Update OpenGL backend version requirement to 4.6 2021-02-07 16:32:35 +07:00
bunnei 230e71b255
Merge pull request #5887 from ogniK5377/lm-fix
lm: Fix ReadLeb128
2021-02-07 10:25:56 +07:00
Morph 458be11f93
Merge pull request #5878 from aleasto/master
pl_u: Fix read out of bounds
2021-02-07 22:20:47 +07:00
Chloe Marcec 9d5a56a40b lm: Fix ReadLeb128
Fixes assertion on Bloodstained Ritual of the Night.

We would over read sometimes, this is fixed by checking if the top bit is set in the first iteration. We also lock the loop off to be only the max size of the type we can fit. Finally we changed an incorrect print of "DEBUG" to "TRACE" to reflect the proper log severity
2021-02-07 23:52:56 +07:00
german 8893b766c3 Add GC controller animation 2021-02-07 00:15:24 +07:00
bunnei 4a01812ebe
Merge pull request #5885 from MerryMage/ring_buffer-granularity
ring_buffer: Remove granularity template argument
2021-02-06 13:18:41 +07:00
bunnei 9078f4a9c7
Merge pull request #5871 from lioncash/address-arb
k_address_arbiter: Minor cleanup
2021-02-06 13:05:19 +07:00
MerryMage 8d00265998 ring_buffer: Remove granularity template argument
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
2021-02-06 19:16:00 +07:00
Alessandro Astone 32d9a83f8e pl_u: Fix read out of bounds 2021-02-06 18:44:01 +07:00
german 160341fcf8 Refresh debug controller settings 2021-02-06 09:43:42 +07:00
german d6a0975e5d Refresh controller only when necessary 2021-02-06 09:43:42 +07:00
german c9597af39d Add SL SR vectors, change dual joycon view, add missing raw data from keyboard/mouse 2021-02-06 09:43:42 +07:00
german a7f9983563 Add controller window and single joycon top view 2021-02-06 09:43:42 +07:00
german ea1f656d7e Replace text with vectors 2021-02-06 09:43:42 +07:00
german 481cd86722 Make settings controller image change with controller input 2021-02-06 09:43:41 +07:00
bunnei 61bf850f3d
Merge pull request #5326 from german77/hidUpdate1
HID: Update the HID service to match more closely to switchbrew part 1
2021-02-06 02:40:11 +07:00
Lioncash 40ab2b9348 k_address_arbiter: Unfold R_UNLESS macros
Allows for more descriptive error messages and also doesn't hide
control-path exit returns from the reader.
2021-02-06 04:08:27 +07:00
Lioncash b8fc74d74d k_address_arbiter: Remove unnecessary usages of std::addressof
This is a useful function in a generic context or with types that
overload unary operator&. However, primitives and pointers will never do
this, so we can opt for a more straightforward syntax.
2021-02-06 04:06:33 +07:00
Lioncash 7b9c58880f k_address_arbiter: Remove dead code
This code is never used, so we can remove it. It's in version control,
so it can always be brought back when needed.
2021-02-06 04:06:33 +07:00
Lioncash 75a60a6e22 svc: Provide more detailed error logs for svc functions
Allows SVC calls to have much more informative information during error
cases. This also doesn't hide control flow returns from the reader.
2021-02-06 02:03:40 +07:00
bunnei 1498a7c9a8
Merge pull request #5862 from bunnei/kevent
Kernel Rework: Refactor KEvent/KReadableEvent/KWritableEvent
2021-02-05 23:00:43 +07:00
bunnei 3a804752cb
Merge pull request #5875 from lioncash/identifier
k_priority_queue: Minor cleanup
2021-02-05 17:02:13 +07:00
bunnei ea4f62615e hle: kernel: Drop R_UNLESS_NOLOG in favor of expanded if-statement. 2021-02-05 14:03:36 +07:00
bunnei 546af64340 hle: kernel: KAddressArbiter: Remove noisy error log. 2021-02-05 14:03:36 +07:00
bunnei eba3c59a61 hle: kernel: svc: Cleanup KEvent/KReadableEvent/KWritableEvent SVCs. 2021-02-05 14:03:36 +07:00
bunnei 18175c71ed common: scope_exit: Add a cancellable ScopeExit macro. 2021-02-05 14:03:36 +07:00
bunnei ff3c7c068b hle: kernel: Reimplement KReadableEvent and KWritableEvent. 2021-02-05 14:03:32 +07:00
bunnei 6bf80dfee0 hle: kernel: Implement KEvent. 2021-02-05 14:00:36 +07:00
bunnei e9446d232f hle: kernel: KAddressArbiter: Use R_UNLESS_NOLOG where applicable. 2021-02-05 14:00:36 +07:00
bunnei 4577dcd5f9 common: common_funcs: Add R_UNLESS_NOLOG for scenarios that should not log. 2021-02-05 14:00:36 +07:00
bunnei 3f942c01f0 hle: kernel: Rename WritableEvent to KWritableEvent. 2021-02-05 14:00:36 +07:00
bunnei e86a7e3691 hle: kernel: Rename ReadableEvent to KReadableEvent. 2021-02-05 14:00:36 +07:00
bunnei b0727c90c5
Merge pull request #5867 from Morph1984/am-GetHealthWarningDisappearedSystemEvent
IApplicationFunctions: Implement GetHealthWarningDisappearedSystemEvent
2021-02-05 13:49:49 +07:00
lat9nq b7e6eca8b2 Address reviewer comments 2021-02-05 16:46:03 +07:00
lat9nq 1d19eac415 CMake: Port citra-emu/citra FindFFmpeg.cmake
Also renames related CMake variables to match both the Find*FFmpeg* and
variables defined within the file. Fixes odd errors produced by the old
FindFFmpeg.

Citra's FindFFmpeg is slightly modified here: adds Citra's copyright at
the beginning, renames FFmpeg_INCLUDES to FFmpeg_INCLUDE_DIR, disables a
few components in _FFmpeg_ALL_COMPONENTS, and adds the missing avutil
component to the comment above.
2021-02-05 15:39:19 +07:00
lat9nq 47401016bf CMake: Implement YUZU_USE_BUNDLED_FFMPEG
For Linux, instructs CMake to use the FFmpeg submodule in externals.
This is HEAVILY based on our usage of the late Unicorn.  Minimal change
to MSVC as it uses the yuzu-emu/ext-windows-bin. MinGW now targets the
same ext-windows-bin libraries as MSVC for FFmpeg. Adds FFMPEG_LIBRARIES
to WIN32 and simplifies video_core/CMakeLists.txt a bit.
2021-02-05 14:49:51 +07:00
bunnei 741dc13c5a
Merge pull request #5865 from lat9nq/conditionally-quiet
video_core: host_shaders: Don't pass --quiet to glslangValidator if unavailable
2021-02-04 17:07:17 +07:00
bunnei 00cb631b2f
Merge pull request #5876 from lioncash/truncation
k_affinity_mask: Avoid implicit truncation to bool
2021-02-04 14:44:11 +07:00
Lioncash 756365386a k_affinity_mask: Avoid implicit truncation to bool
This can cause compiler warnings. Instead, we can explicitly add a
boolean expression around it to naturally turn the result into a bool.
2021-02-04 15:35:46 +07:00
Lioncash b944edc85d k_priority_queue: Unfold several declval usages
Given these are only used as function existence checks, we can simplify
some usages of declval, given they aren't particularly useful here.

Reduces a few template instantiations, which at most reduces compile
times a tiny bit.
2021-02-04 15:18:58 +07:00
Lioncash 31e6e58101 k_priority_queue: Simplify affinity mask type alias
We can make use of the _t variants of the templates to cut down on a
little bit of verbosity.
2021-02-04 14:57:41 +07:00
Lioncash 53aec1fe2d k_priority_queue: Resolved reserved identifier
An identifier containing a starting underscore followed by a capital
letter is reserved by the standard. It's trivial to avoid this by moving
the underscore to the end of the identifier.

While the likelihood of clashing here being minimal, we can turn a
"should not break" scenario into a definitive "will not break" one, so
why not?.
2021-02-04 14:55:08 +07:00
Morph 806e2d7900 key_manager: Create the keys directory if it does not exist 2021-02-04 06:05:50 +07:00
bunnei b331bb5210
Merge pull request #5870 from german77/hanheldfix2
config: Always update handheld config
2021-02-03 19:02:59 +07:00
german 8019b2b9b5 Add footer types and address comments 2021-02-03 20:17:08 +07:00
german 9a9e81f2e9 Fix npad struct to match switchbrew 2021-02-03 20:17:08 +07:00
german f30ef98761 Adds missing controller types and properties 2021-02-03 20:17:08 +07:00
bunnei cde532cc52
Merge pull request #5863 from ogniK5377/disable-reverb
audren: Disable reverb for the time being
2021-02-03 18:05:54 +07:00
german c1b81f776c Always update handheld config 2021-02-03 17:48:04 +07:00
bunnei b0c9752663
Merge pull request #5848 from ogniK5377/k-resourcelimit
kernel: Rewrite resource limit to be more accurate
2021-02-03 14:53:25 +07:00
Chloe Marcec 2c6e940493 Simplify limitableresource names 2021-02-03 12:55:16 +07:00
bunnei 48d040fded
Merge pull request #5842 from german77/userfix
acc: Fix error when second user is selected
2021-02-02 15:43:51 +07:00
bunnei e5a76d728f
Merge pull request #5841 from german77/username
Avoid overwriting username
2021-02-02 15:04:09 +07:00
german 7784b1da6d Prevent over scheduling audio events and terminate properly the motion update event 2021-02-02 10:17:10 +07:00
Morph 13b08376b7 IApplicationFunctions: Implement GetHealthWarningDisappearedSystemEvent 2021-02-02 10:47:38 +07:00
Morph 9137f3ec68 settings: Log the cache, config, and mod load directories 2021-02-02 04:01:05 +07:00
lat9nq fc43eac82a video_core: host_shaders: Don't pass --quiet to glslangValidator if unavailable
Prevents CMake from calling `glslangValidator` with `--quiet` when it is
not available, i.e. on older downstream versions from Ubuntu.
2021-02-01 23:39:54 +07:00
bunnei d4ebc9a120
Merge pull request #5861 from german77/HandheldFix
hid: Only update motion for npad and prevent over scheduling events
2021-02-01 18:46:26 +07:00
Chloe Marcec 64c3582705 Compile error 2021-02-02 13:23:34 +07:00
Chloe Marcec 9e4b2d60bc Address issues 2021-02-02 13:23:00 +07:00
MerryMage 821fc4a7b6 arm_dynarmic_32: Print out CPSR.T on exception 2021-02-01 18:35:33 +07:00
bunnei f317b0d354
Merge pull request #5859 from Morph1984/nifm
nifm: Stub GetCurrentNetworkProfile and GetCurrentIpConfigInfo
2021-01-31 21:31:14 +07:00
Ameer J f614d7d887
Merge pull request #5856 from Morph1984/nifm-fix-getappletinfo-stub
nifm: Fix GetAppletInfo stub
2021-01-31 23:33:11 +07:00
Chloe Marcec 9fc7f60b94 audren: Disable reverb for the time being
As this is causing issues in a few games, it's best to have it disabled until it's completely implemented
2021-02-01 14:41:58 +07:00
bunnei 67d08f14af
Merge pull request #5858 from Morph1984/IsGamePlayRecordingSupported-stub
am/IApplicationFunctions: Stub IsGamePlayRecordingSupported
2021-01-31 18:04:04 +07:00
german 2489547dc5 Only update motion for npad and prevent over scheduling events 2021-01-31 18:52:38 +07:00
bunnei 1498ece290
Merge pull request #5860 from Morph1984/prepo-transmission-stub
prepo: Stub RequestImmediateTransmission and GetTransmissionStatus
2021-01-31 12:26:00 +07:00
Morph f7dc77e03a
Merge pull request #5846 from ameerj/analog-join
analog_from_button: Fix update_thread.join exception
2021-01-31 23:06:06 +07:00
Morph 8c7d89e6c7 nifm: Stub GetCurrentIpConfigInfo
- Used by Lets Sing 12
2021-01-31 07:36:37 +07:00
Morph 7d9465d47a prepo: Stub GetTransmissionStatus 2021-01-31 07:07:11 +07:00
Morph 2394807b42 prepo: Stub RequestImmediateTransmission
- Used by Animal Crossing: New Horizons
2021-01-31 07:04:35 +07:00
Morph 4bf1cf1f81 nifm: Stub GetCurrentNetworkProfile
- Used by Minecraft Bedrock Edition
- Used by Bloons TD 5
2021-01-31 06:56:29 +07:00
Morph 70a2065828 nifm: Add several structs 2021-01-31 06:56:29 +07:00
Morph 9f6b35e61f am/IApplicationFunctions: Stub IsGamePlayRecordingSupported
Used by RetroArch
2021-01-31 03:11:03 +07:00
Morph ded094a340 bsd: Fix EventFd stub 2021-01-31 02:57:56 +07:00
bunnei 1cc009a996
Merge pull request #5855 from Morph1984/bsd-fix-getsockopt-stub
bsd: Fix GetSockOpt stub
2021-01-30 23:21:21 +07:00
Morph 9914db8daa nifm: Fix GetAppletInfo stub 2021-01-31 02:19:36 +07:00
Morph 94f660d1cb
Merge pull request #5851 from ameerj/pop-inv-stub
am: Stub TryPopFromFriendInvitationStorageChannel
2021-01-31 14:18:40 +07:00
Morph 6cc769065d bsd: Fix GetSockOpt stub 2021-01-31 01:08:56 +07:00
ameerj ad146eca60 bsd: Stub EventFd
Used by Family Feud
2021-01-30 21:47:32 +07:00
ameerj 99dcf7da21 am: Stub TryPopFromFriendInvitationStorageChannel
Used by Family Feud
2021-01-30 21:43:55 +07:00
Chloe Marcec ee333e063d fix compile error 2021-01-30 21:51:22 +07:00
Chloe Marcec 56742c6222 cleanup commenting 2021-01-30 21:20:35 +07:00
Chloe Marcec 7791cfd960 Drop m_ from lock 2021-01-30 21:19:49 +07:00
Chloe Marcec 3bf62c7a8a Move to GetGlobalTimeNs, fix GetTotalPhysicalMemoryAvailable 2021-01-30 21:03:10 +07:00
Chloe Marcec 3be1a565f8 kernel: Rewrite resource limit to be more accurate
Matches closer to hardware
2021-01-30 20:40:49 +07:00
bunnei a4526c4e1a
Merge pull request #5779 from bunnei/kthread-rewrite
Rewrite KThread to be more accurate
2021-01-29 23:06:40 +07:00
bunnei 5861bacafd
Merge pull request #5795 from ReinUsesLisp/bytes-to-map-end
video_core/memory_manager: Add BytesToMapEnd
2021-01-29 22:56:29 +07:00
Morph f67cfebada
Merge pull request #5838 from german77/prepostub
prepo: Stub GetSystemSessionId
2021-01-30 14:19:59 +07:00
german 9150b8972e Stub GetSystemSessionId 2021-01-29 18:41:28 +07:00
bunnei 650734cc3e
Merge pull request #5805 from german77/HandheldFix
Fix connect and disconnect controller events
2021-01-29 16:39:01 +07:00
ameerj ef8b3623f5 analog_from_button: Fix update_thread.join exception
This commit aims to address an exception that occurs when trying to join the Analog object's update_thread.

By using an atomic bool for the status of the update thread, we ensure its value is consistent across the threads accessing it.
2021-01-29 18:41:22 +07:00
bunnei b786568c5a
Merge pull request #5809 from ogniK5377/FlushAudioOutBuffers
audout: FlushAudioOutBuffers
2021-01-28 21:54:46 +07:00
bunnei 543e212554 hle: kernel: KLightLock: Fix several bugs. 2021-01-28 21:53:21 +07:00
bunnei 8d1afcb90f common: common_funcs: Change R_UNLESS to LOG_ERROR. 2021-01-28 21:51:16 +07:00
bunnei c8fe8247ee arm: dynarmic: Reintroduce JIT checks on SaveContext/LoadContext. 2021-01-28 21:50:39 +07:00
bunnei e24c6dab93 hle: kernel: KThread: Release thread resource on thread exit. 2021-01-28 21:49:47 +07:00
bunnei 10738839ad yuzu: debugger: Ignore HLE threads. 2021-01-28 21:42:27 +07:00
bunnei 3856564727 hle: kernel: process: Add state lock. 2021-01-28 21:42:26 +07:00
bunnei ff46ef7ea3 hle: kernel: threading: Fix bug with host thread naming. 2021-01-28 21:42:26 +07:00
bunnei 6ee8340a6b hle: kernel: k_scheduler_lock: Cleanup. 2021-01-28 21:42:26 +07:00
bunnei 055194d2ab core: arm: Remove unnecessary JIT checks. 2021-01-28 21:42:26 +07:00
bunnei 091e9e8c41 common: common_funcs: Log error on R_UNLESS. 2021-01-28 21:42:26 +07:00
bunnei 6e953f7f02 hle: kernel: Allocate a dummy KThread for each host thread, and use it for scheduling. 2021-01-28 21:42:26 +07:00
bunnei 37f74d8741 hle: kernel: k_scheduler: Use atomics for current_thread, etc. 2021-01-28 21:42:26 +07:00
bunnei f6b10fad63 hle: kernel: k_scheduler: Fix for single core mode. 2021-01-28 21:42:26 +07:00
bunnei 0a1449e04b kernel: Fix build errors. 2021-01-28 21:42:26 +07:00
bunnei 89a5ae92bd core: cpu_manager: Remove unused variable. 2021-01-28 21:42:26 +07:00
bunnei ca78f77827 hle: kernel: KScheduler: Introduce thread context_guard. 2021-01-28 21:42:26 +07:00
bunnei cdd14b03e5 hle: kernel: Recode implementation of KThread to be more accurate. 2021-01-28 21:42:26 +07:00
bunnei 1470338458 kernel: svc_types: Add ThreadActivity. 2021-01-28 21:42:26 +07:00
bunnei 1772ebeb1e kernel: KSchedulerPriorityQueue: Lowest priority should be LowestThreadPriority. 2021-01-28 21:42:26 +07:00
bunnei 1f99f5473c kernel: k_light_lock: Simplify EmuThreadHandle implementation. 2021-01-28 21:42:26 +07:00
bunnei c0f5830323 hle: kernel: TimeManager: Simplify to not rely on previous EmuThreadHandle implementation. 2021-01-28 21:42:26 +07:00
bunnei bb966d3e33 common: common_funcs: Add useful kernel macro R_SUCCEED_IF. 2021-01-28 21:42:26 +07:00
bunnei ff186b2498 core: hle: kernel: object: Implement Finalize() virtual method. 2021-01-28 21:42:26 +07:00