Commit Graph

18235 Commits

Author SHA1 Message Date
ameerj 8c907c620d glsl: Add boolean reference workaround 2021-12-29 19:03:50 -05:00
ameerj b84d429c2e glsl_context_get_set: Add alternative cbuf type for broken drivers
some drivers have a bug bitwise converting floating point cbuf values to uint variables. This adds a workaround for these drivers to make all cbufs uint and convert to floating point as needed.
2021-12-29 19:03:50 -05:00
ameerj 9f34be5a61 emit_glsl_integer: Use negation work around 2021-12-29 19:03:50 -05:00
ameerj 14ac0c2923 shader: Add integer attribute get optimization pass
Works around an nvidia driver bug, where casting the integer attributes to float and back to an integer always returned 0.
2021-12-29 19:03:49 -05:00
bunnei 279c7bcc1a
Merge pull request #7618 from goldenx86/patch-4
Increase boost requirement to 1.78.0
2021-12-28 16:25:37 -08:00
Matías Locatti c7235e67ef
Empty spaces 2021-12-28 18:50:51 -03:00
Matías Locatti 840d5520d2
Changes to avoid warnings in SSE4.2 optimized SPIR-V 2021-12-28 17:35:55 -03:00
Feng Chen 1eec9590c3 Remove invalid assertion statement 2021-12-28 18:51:11 +08:00
Feng Chen e18bf4b062 Remove invalid header include 2021-12-28 18:51:11 +08:00
Feng Chen 88e1e7f14b Implement few type in bufferqueue query method 2021-12-28 18:51:03 +08:00
bunnei 091463a429 core: hle: kernel: Updated implementation of svcSetHeapSize.
- Updates our svcSetHeapSize with latest HOS, furthermore allowing heap size to properly be extended/shrunk.
- Validated with tests https://github.com/Atmosphere-NX/Atmosphere/blob/master/tests/TestSvc/source/test_set_heap_size.cpp.
2021-12-28 01:25:20 -08:00
bunnei f67605e6aa
Merge pull request #7622 from ameerj/vk-rescale-invalid-ptr
vk_texture_cache: Fix invalidated pointer access
2021-12-28 00:46:37 -08:00
bunnei 9a0648ff0a
Merge pull request #7621 from bunnei/set-mem-perm
core: hle: kernel: Implement SetMemoryPermission.
2021-12-27 23:33:11 -08:00
bunnei c9e4acc4e2
Merge pull request #7630 from ameerj/glasm-get-int
emit_glasm_context_get_set: Fix GetAttribute return value type.
2021-12-27 16:35:11 -08:00
bunnei 292dfac25e
Merge pull request #7620 from bunnei/kernel-thread-x18
core: hle: kernel: KThread: X18 should be a cryptographically random number.
2021-12-25 00:42:54 -08:00
ameerj 37addf7a94 emit_glasm_context_get_set: Fix GetAttribute return value type.
GetAttribute expects an F32 result type at the IR level, this fixes the return value of attributes which were not returning an F32
2021-12-24 20:45:07 -05:00
ameerj 640fc1418b emit_glsl_floating_point: Fix FPNeg on newer Nvidia drivers 2021-12-24 20:03:54 -05:00
ameerj f9e0681d59 vk_texture_cache: Use 3D scale helpers for MSAA texture scaling on Intel Windows drivers
Fixes a crash when scaling MSAA textures in titles such as Sonic Colors Ultimate.
2021-12-23 22:35:19 -05:00
ameerj cbc0f0a66e blit_image: Remove unused function 2021-12-23 21:06:32 -05:00
ameerj 481b210c0d vk_texture_cache: Fix invalidated pointer access
The vulkan ImageView held a reference to its source image for rescale status checking. This pointer is sometimes invalidated when the texture cache slot_images container is resized.
To avoid an invalid pointer dereference, the ImageView now holds a reference to the container itself.
2021-12-23 20:55:48 -05:00
bunnei 4e7a6639d2 core: hle: kernel: Implement SetMemoryPermission.
- Not seen in any games yet, but validated with kernel tests.
2021-12-23 01:10:36 -08:00
bunnei a0c7d93b84 core: hle: kernel: KThread: X18 should be a cryptographically random number.
- This was added with firmware 11.0.0 (https://switchbrew.org/wiki/11.0.0).
    - X18 is OR'd by kernel with 1, to make sure it is odd.
2021-12-23 00:03:39 -08:00
bunnei 516325eba8
Merge pull request #7614 from liushuyu/fix-linux-inhibit
main: Fix wake lock (prevent sleep) in Flatpak
2021-12-22 16:53:54 -08:00
Fernando S b85f5b1332
Merge pull request #7616 from bunnei/fix-get-idle-ticks
hle: kernel: svc: GetInfo: Fix error checking with IdleTickCount.
2021-12-22 17:39:17 +01:00
Fernando S 648c7b4ed6
Merge pull request #7375 from vonchenplus/convert_legacy
Convert all legacy attributes to generic attributes
2021-12-22 17:36:05 +01:00
liushuyu 14fc1bec17
main: reword inhibit reason 2021-12-22 02:33:01 -07:00
liushuyu fa7abafa5f main: fix wake lock in Flatpak ...
... by using the XDP system
2021-12-22 02:27:09 -07:00
bunnei 36df305b13
Merge pull request #7599 from FernandoS27/primrestart-vulkan
Vulkan: Fix Primitive Restart and implement Logical Operations
2021-12-22 00:19:23 -08:00
bunnei f1eff447bb
Merge pull request #7602 from jbeich/freebsd-vaapi
build: enable VA-API on FreeBSD
2021-12-21 22:46:49 -08:00
bunnei 49e3c073a5 hle: kernel: svc: GetInfo: Fix error checking with IdleTickCount.
- Enforce tha the supplied handle is invalid, not valid.
- This gets Witcher 3 booting.
2021-12-21 22:41:23 -08:00
bunnei 6991d447d4
Merge pull request #7604 from ameerj/fullscreen-render-window
main: Make separate render window fullscreen toggle on the monitor it resides in
2021-12-21 18:05:11 -08:00
bunnei b30a1d49ff
Merge pull request #7608 from Tatsh/scm-ver-override
Allow overriding SCM version info
2021-12-21 16:07:27 -08:00
bunnei 5e24f7ed31
Merge pull request #7481 from german77/gyro-bias
service/hid: Improve console motion accuracy
2021-12-21 00:13:54 -08:00
Andrew Udvare caf38725ae
Allow overriding SCM version info
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.
2021-12-20 19:13:07 -05:00
bunnei ee6d40d414
Merge pull request #7597 from bunnei/remove-global-lock
core: hle: Remove global HLE lock.
2021-12-20 14:24:50 -08:00
ameerj 3074b2eb93 main: Refactor to reduce code duplication in ShowFullscreen() 2021-12-19 02:09:37 -05:00
ameerj 39bb6851e4 main: Make render window borderless fullscreen toggle on the monitor it resides in
Toggling borderless fullscreen on the separate render window made it fullscreen on the monitor which the main yuzu window resided in.

This change allows the render window to go fullscreen on the monitor it resides in, independent of the main window location.
2021-12-19 02:08:48 -05:00
ameerj 55650c5b75 kernel: Manually destroy the current process during shut down
Avoids a memory leak.
2021-12-19 01:38:25 -05:00
Jan Beich e57b13ad94 video_core/codecs: re-enable VAAPI/VDPAU on BSDs after 72aa418b0b 2021-12-18 20:57:30 +00:00
Morph 8e33cf1c2b
Merge pull request #7593 from german77/brrr_test
core/hid: Cancel any vibration after the test
2021-12-18 15:53:15 -05:00
Morph 6fb212784e
Merge pull request #7600 from bunnei/fix-kip-loading
core: loader: kip: Minimal changes to fix KIP loading.
2021-12-18 15:50:25 -05:00
bunnei 2030522d86
Merge pull request #7587 from liushuyu/fix-linux-decoding
[Patch v2] externals/ffmpeg: refactor ffmpeg searching and handling in cmake
2021-12-18 02:33:07 -08:00
bunnei 212b497d5c
Merge pull request #7302 from VPeruS/check-deadlock
[input_common] Fixed thread hang
2021-12-17 23:43:19 -08:00
bunnei 7feac8ba46 core: loader: kip: Minimal changes to fix KIP loading.
- Allows us to boot KIP (kernal apps), useful for testing the kernel.
2021-12-17 23:08:51 -08:00
vonchenplus 4908a07c20 Address format clang 2021-12-18 14:27:07 +08:00
Fernando Sahmkow 6c00151d17 Vulkan: Fix the checks for primitive restart extension. 2021-12-18 07:17:08 +01:00
Fernando S 04b4f3b051
Merge pull request #7399 from ameerj/art-refactor
video_core: Refactoring post A.R.T. merge
2021-12-18 07:09:58 +01:00
vonchenplus 6ebc972c2b Remove spirv handle legacy related code 2021-12-18 14:08:50 +08:00
vonchenplus 94652e122d Remove glsl handle legacy related code 2021-12-18 14:03:40 +08:00
Feng Chen e49184e606
Merge branch 'yuzu-emu:master' into convert_legacy 2021-12-18 13:57:14 +08:00
Fernando Sahmkow 14d2c77f91 Vulkan: implement Logical Operations. 2021-12-18 06:52:28 +01:00
Fernando Sahmkow 6430fc29a9 Vulkan: Implement VK_EXT_primitive_topology_list_restart 2021-12-18 05:47:48 +01:00
bunnei 77d06d5df0
Merge pull request #7570 from ameerj/favorites-expanded
game_list: Add persistent setting for the favorites row expanded state
2021-12-17 16:09:05 -08:00
bunnei c73841500a core: hle: Remove global HLE lock.
- This was added early on as a hack to protect against some concurrency issues.
- It's not clear that this serves any purpose anymore, and if it does, individual components should be fixed rather than using a global recursive mutex.
2021-12-17 16:05:51 -08:00
vperus 11f4bf8a9a [input_common] Move variable declaration closer to usage
MSVC supplied with VS2022 generates "warning C4189: 'CALIBRATION_THRESHOLD':
local variable is initialized but not referenced" which is treated as an
error.

Circumvent it by moving constexpr variable directly into body of lambda function.
2021-12-17 20:51:47 +02:00
Narr the Reg c82e6dc810 core/hid: Cancel any vibration after the test 2021-12-16 13:35:15 -06:00
bunnei e242f16986
Merge pull request #7532 from goldenx86/patch-3
Update video core popup
2021-12-15 22:32:27 -08:00
Matías Locatti 333ccf23f8
Suggestions from CrusadingNinja 2021-12-16 02:57:45 -03:00
Matías Locatti 1cdddd17d2
Changed link 2021-12-16 02:40:30 -03:00
bunnei 7cf74abbf5
Merge pull request #7551 from vonchenplus/fix_blit_image_view_mismatching
Fix blit image/view not compatible
2021-12-15 21:39:53 -08:00
liushuyu 3f765ea9a4 video_core/codecs: (re-spin) refactor ffmpeg searching and handling 2021-12-15 20:57:01 -07:00
bunnei b3fc36d989
Merge pull request #7588 from Wunkolo/gibibibi-bytes
yuzu/main: Fix host memory byte units. GB to GiB
2021-12-15 12:04:37 -08:00
bunnei 2f32133ad5
Revert "video_core/codecs: refactor ffmpeg searching and handling in cmake" 2021-12-15 00:02:53 -08:00
Wunkolo 44b3abdfc0 yuzu/main: Fix host memory byte units. GB to GiB
I have `134850146304` bytes of ram and Yuzu was saying that I had `125.59 GB`
of ram. But `125.59` is actually the amount of gi**bi**bytes I have. In
gi**ga**bytes I would have `134.9`.

Additionally, I changed the `1024 / 1024 / 1024` here into the `_GiB`
user-literals that I added a while ago(#6519).

https://www.wolframalpha.com/input/?i=134850146304+bytes
2021-12-14 23:57:33 -08:00
bunnei 156215d1fa
Merge pull request #7565 from liushuyu/fix-linux-decoding
video_core/codecs: refactor ffmpeg searching and handling in cmake
2021-12-14 22:27:13 -08:00
Mai M 019ae82c94
Merge pull request #7558 from Morph1984/unused-cpu-family-model
common/cpu_detect: Remove CPU family and model
2021-12-14 23:43:16 -05:00
Mai M 822259a3f2
Merge pull request #7549 from Morph1984/astc-8x5
maxwell_to_vk: Add ASTC_2D_8X5_UNORM
2021-12-14 23:42:44 -05:00
Mai M f0ed11e318
Merge pull request #7579 from Morph1984/swkbd-oob-array-access
qt_software_keyboard: Fix out of bounds array access
2021-12-14 23:42:07 -05:00
Narr the Reg 6aac5d4c27 core/hid: Fix faulty analog triggers 2021-12-14 19:49:44 -06:00
Narr the Reg 5e732e7aec
Merge pull request #7581 from lioncash/input-iface
common/input: Avoid numerous large copies of CallbackStatus
2021-12-14 19:10:39 -06:00
Narr the Reg ac0c5be7c0
Merge pull request #7577 from v1993/patch-2
input/SDL: Update SDL hints
2021-12-14 10:12:17 -06:00
Valeri 7f965172c5
input/SDL: Update SDL hints
SDL_HINT_JOYSTICK_HIDAPI_SWITCH_HOME_LED is no longer needed thanks to new default in SDL 2.0.18.
SDL_HINT_JOYSTICK_HIDAPI_XBOX is reported to cause conflicts with native driver Xbox driver on Linux, and Xbox controllers don't benefit from hidapi anyways.
2021-12-14 15:02:03 +03:00
liushuyu dd72e4dce4
CI: fix CI on Linux 2021-12-13 22:31:19 -07:00
liushuyu a2d73eaa10 video_core/codecs: skip decoders that use hw frames ...
... this would resolve some edge-cases where multiple devices are
present and ffmpeg is unable to auto-supply the hw surfaces
2021-12-13 22:29:19 -07:00
Lioncash e05d2a70b2 common/input: Avoid numerous large copies of CallbackStatus
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.
2021-12-13 21:22:02 -05:00
Morph 4af413623b common/cpu_detect: Remove CPU family and model
We currently do not make use of these fields, remove them for now.
2021-12-13 20:45:18 -05:00
Lioncash 54eafbaf17 common/input: Remove unnecessary returns
Given these return void, these can be omitted.
2021-12-13 20:43:12 -05:00
Lioncash 5e7e38ac72 input_poller: Add missing override specifiers 2021-12-13 20:41:17 -05:00
Lioncash 6497fbfa96 input_mapping: Amend specification of parameters
param tags are supposed to specify the parameter name without any
quoting.

Silences several -Wdocumentation warnings.
2021-12-13 20:31:59 -05:00
Lioncash 7783c0aaef input_poller: Remove several unnecessary @param tags
Silences quite a bit of -Wdocumentation warnings, given the @param tag
is only intended to be used to identify function parameters, not what it
contains.
2021-12-13 20:28:30 -05:00
bunnei ad45963b45
Merge pull request #7575 from lioncash/input
input_engine: Minor object churn cleanup
2021-12-13 16:50:54 -08:00
Morph 96579e515a qt_software_keyboard: Fix out of bounds array access
We were unconditionally accessing the keyboard_buttons array, even if the bottom_osk_index was for the numberpad, leading to an out of bounds array access. Fix this by accessing the proper array for the current button when the index is for the numberpad.
2021-12-13 19:04:07 -05:00
Lioncash 54ca48e8b7 tas_input: Avoid minor copies in Read/WriteCommandButtons()
We don't need to copy the whole pair
2021-12-13 11:45:19 -05:00
Lioncash 734fb180bb tas_input: Remove unnecessary semicolon
Resolves a -Wextra-semi warning
2021-12-13 11:45:19 -05:00
Lioncash ddda6ae776 tas_input: Execute clear() even if empty
clear() when empty is simply a no-op, so we can get rid of the check
here and let the stdlib do it for us.
2021-12-13 11:45:18 -05:00
Lioncash db9320e754 tas_input: Remove unnecessary includes
Gets rid of indirect includes and includes only what the interface
needs.
2021-12-13 11:45:18 -05:00
Lioncash 26ef76213c tas_input: std::move strings into vector
While we're in the same area, we can also avoid performing std::stoi in
a loop when it only needs to be performed once.
2021-12-13 11:45:15 -05:00
Lioncash a515ede2af tas_input: Use istringstream over stringstream
This is only using the input facilities, so we don't need to use the
fully-fleged stringstream.
2021-12-13 10:57:53 -05:00
Lioncash 6be730bdcd tas_input: Use u8string_view instead of u8string
Same behavior, but without the potential for extra allocations.
2021-12-13 10:54:43 -05:00
Lioncash 37a8e2a67e tas_input: Remove unused std::smatch variable
This also means we can get rid of the dependency on <regex>
2021-12-13 10:50:24 -05:00
Lioncash d52ad96ce3 tas_input: Amend -Wdocumentation warnings
Parameters shouldn't have the colon by their name.
2021-12-13 10:49:11 -05:00
Lioncash c126b0718c tas_input: Make TasAxes enum an enum class
Prevents these values from potentially clashing with anything in other
headers.
2021-12-13 10:41:32 -05:00
Lioncash e4de1783e1 input_engine: Fix typo in TriggerOnAxisChange() parameter name 2021-12-13 10:21:37 -05:00
Lioncash a9d39b6895 input_engine: Simplify PreSet* family of functions
We can make use of try_emplace() to insert values only if they don't
already exist.
2021-12-13 10:18:04 -05:00
Lioncash 4d4a234476 input_engine: Avoid redundant map lookups
We can use iterators to avoid looking up into maps twice in the getter
functions.

At the same time we can also avoid copying the ControllerData structs,
since they're 264 bytes in size.
2021-12-13 09:57:51 -05:00
Lioncash e51b852aee input_engine: Remove left-over namespace qualifiers
These types are part of the InputCommon namespace.
2021-12-13 09:57:51 -05:00
Lioncash e826e6715a input_engine: Iterate by reference rather than by value where applicable
Avoids creating copies of several object instances (some of which being
over 100 bytes in size).
2021-12-13 09:57:51 -05:00
Lioncash 755822ceec input_engine: Take BasicMotion by const reference with SetMotion() and TriggerOnMotionChange()
Copies the BasicMotion instance once instead of twice.
2021-12-13 09:57:39 -05:00
Lioncash a92dbec962 input_engine: std::move InputIdentifier in SetCallback()
Allows avoiding std::function allocations.
2021-12-13 09:23:23 -05:00
Lioncash 985599e485 input_engine: Pass LedStatus by const reference
Avoids copies where reasonably applicable
2021-12-13 09:20:58 -05:00