Commit Graph

23773 Commits

Author SHA1 Message Date
Jonathan Toomim 88c8042932 input_common: Redesign mouse->stick panning for better responsiveness
Previously, the mouse processing code had some issues that reduced mouse    |
control quality. No matter how you configured it or how you used the mouse,
it was impossible to be able to make both fine inputs and maximum inputs to
the control stick with the same configuration, as inputs were clamped to the
range, and *outputs* were multiplied by the sensitivity setting. It was also
impossible to make brief inputs, as two built-in exponential moving average
filters in the mouse driver caused any mouse inputs, no matter how brief, to
continue to produce stick outputs for several hundred milliseconds before
dissipating.

This commit is an attempt to address those issues. With this commit, an
entirely different model of processing inputs is used. Instead of applying
the sesnsitivity to the stick output, this commit applies the sensitivity at
the beginning of processing to the mouse input. Next, inputs from the mouse
are accumulated into a buffer variable. When the stick is updated, stick
output is clamped to the range of the stick, and that value is subtracted
from the input buffer. Any *excess* motion still remaining in the buffer gets
decayed exponentially (similar to one of the exponential moving averages
before). This gives a good compromise between responsiveness (brief mouse
movement causes a brief stick response) and inertia (large mouse movement
which exceeds the stick's instantaneous dynamic range causes stick movement
that persists for a short time afterwards, mimicking inertia). Finally, to
improve the linearity of the response, the stick motion is square-rooted to
amplify small movements.

This commit changes the semantics of the sensitivity option. It's no longer
a percent, and "100(%)" no longer means anything special, so the input
configuration UI has been changed to allow values up to 10,000 instead of
being limited to 100. The changes to the filtration also affect the
sensitivity. There are some magic constants in the code to try to keep the
sensitivity about the same with a given value, but it's not exact, and users
are encouraged to play around with it again on the new code.
2023-05-23 02:49:18 -07:00
Narr the Reg e8a025b4f8 Merge pull request #10386 from german77/high
input_common: Map motion with relative values not absolute ones
2023-05-22 13:13:50 -06:00
liamwhite f82efe9f65 Merge pull request #10392 from danilaml/update-cubeb-again
externals: update cubeb (again)
2023-05-21 00:24:12 -04:00
Danila Malyutin e5c2ec223a externals: update cubeb 2023-05-21 03:02:26 +04:00
german77 dbcdb3523b input_common: Map motion with relative values not absolute ones 2023-05-19 21:19:29 -06:00
bunnei 1e398e6c36 Merge pull request #10344 from german77/pro-amiibo
input_common: Fix pro controller amiibo support
2023-05-18 18:10:38 -07:00
Danila Malyutin 55d740fffa externals: update cubeb (#10362) 2023-05-19 00:24:45 +02:00
Mai f6c5507873 Merge pull request #10377 from liamwhite/constexpr
renderer_vulkan: remove wrong constexpr
2023-05-18 18:04:07 -04:00
Liam de7c92d7c4 renderer_vulkan: remove wrong constexpr 2023-05-18 18:01:01 -04:00
Matías Locatti f35c14fb73 Merge pull request #10365 from lat9nq/anv_push_descriptor
vulkan_device: Disable VK_KHR_push_descriptor on ANV
2023-05-18 01:38:24 -03:00
lat9nq c1a8a508bc vulkan_device: Disable VK_KHR_push_descriptor on ANV
Mesa commit ff91c5ca42bc80aa411cb3fd8f550aa6fdd16bdc breaks
VK_KHR_push_descriptor usage on ANV drivers 22.3.0, so disable it
and allow games to boot.
2023-05-17 22:19:57 -04:00
bunnei 9d4a2de72b Merge pull request #10262 from liamwhite/depth-clamp
vulkan_common: disable depth clamp dynamic state for older radv
2023-05-17 12:19:03 -07:00
Narr the Reg 5693434b8a input_common: Fix pro controller amiibo support 2023-05-16 18:37:22 -06:00
liamwhite 47c5c37bed Merge pull request #10217 from Kelebek1/clear_value
Use the rendertarget format of the correct RT rather than the first valid
2023-05-16 10:06:30 -04:00
liamwhite a540d248f3 Merge pull request #10107 from grimkor/allow-fully-customised-hotkeys
Allow fully customised controller hotkeys
2023-05-16 10:06:15 -04:00
liamwhite bbb6b58aa4 Merge pull request #10181 from lat9nq/intel-compute-toggle
configure_graphics: Add option to enable compute pipelines for Intel proprietary
2023-05-15 12:05:24 -04:00
liamwhite 736a31e4ff Merge pull request #10234 from Kelebek1/clouds_depth
Fix Tears of the Kingdom flickering clouds and depths geometry.
2023-05-15 12:03:31 -04:00
liamwhite 6060685609 Merge pull request #10249 from FernandoS27/sorry-i-am-late
Buffer Cache: Clear sync code.
2023-05-15 12:03:25 -04:00
liamwhite 5b85925469 Merge pull request #10254 from danilaml/fix-h264-decode
Fix missing pic_order_present_flag in h264 header
2023-05-15 12:03:14 -04:00
liamwhite 033aa264cf Merge pull request #10265 from german77/amiibo-lag
input_common: Make amiibo scanning less demanding
2023-05-15 12:03:08 -04:00
liamwhite 9087fe10e9 Merge pull request #10294 from german77/vibration_span
service: hid: Use span instead of vector reference
2023-05-15 12:03:00 -04:00
german77 6e54615b16 service: hid: Use span instead of vector reference 2023-05-14 18:07:04 -06:00
Fernando Sahmkow c4bfbc6d25 Buffer Cache: Clear sync code. 2023-05-15 01:50:21 +02:00
liamwhite e9069dfe76 Merge pull request #10288 from liamwhite/vram-limits
vulkan_device: reserve extra memory to prevent swaps
2023-05-14 17:02:15 -04:00
Liam 2be751100b vulkan_device: reserve extra memory to prevent swaps 2023-05-14 16:49:59 -04:00
german77 ac531aa15f input_common: Make amiibo scanning less demanding 2023-05-14 09:04:37 -06:00
bunnei 29c7176f55 Merge pull request #10286 from liamwhite/compatible-bits
vulkan_common: fix incompatible property flags
2023-05-14 01:23:29 -07:00
Liam 122435e080 vulkan_common: fix incompatible property flags 2023-05-14 01:13:11 -04:00
Liam 856838f7ce vulkan_common: disable depth clamp dynamic state for older radv 2023-05-13 00:37:17 -04:00
Fernando S 9c739f1506 Merge pull request #10244 from liamwhite/lower-upper
time: implement ContinuousAdjustmentTimePoint
2023-05-13 03:51:05 +02:00
Fernando S 075d73f076 Merge pull request #10243 from Kelebek1/red_dot
Correctly track render target index in the framebuffer for image aspects
2023-05-13 03:50:31 +02:00
bunnei 021e503cc8 Merge pull request #10237 from liamwhite/cache-storage
fs: stub cache storage
2023-05-12 16:42:17 -07:00
bunnei 1805de0301 Merge pull request #10236 from liamwhite/thats-not-an-ibinder
nvnflinger: fix Parcel serialization
2023-05-12 16:07:35 -07:00
Danila Malyutin 9367769fe7 Fix missing pic_order_present_flag in h264 header
Fixes #9635
2023-05-12 22:30:59 +04:00
Liam a22c5a3880 time: implement ContinuousAdjustmentTimePoint 2023-05-11 21:05:27 -04:00
Kelebek1 cd0ded7771 Correctly track RT indexes for image aspect lookup during clears 2023-05-12 01:40:21 +01:00
Liam 351079a4ba fs: adjust future save path 2023-05-11 17:30:30 -04:00
Liam 62bcb99ba8 am: stub CreateCacheStorage 2023-05-11 17:26:02 -04:00
Liam 13e4ceb990 fs: stub cache storage and fix params alignment 2023-05-11 17:23:28 -04:00
Liam bb94beed15 nvnflinger: fix Parcel serialization 2023-05-11 17:09:19 -04:00
Liam 6e10a0c130 nvnflinger: fix producer slot fence init 2023-05-11 17:08:14 -04:00
Kelebek1 e42b4a16b6 Fix Tears of the Kingdom flickering clouds and depths. 2023-05-11 19:25:24 +01:00
liamwhite 182221b9ff Merge pull request #10132 from Kelebek1/fermi_blit2
Allow Fermi blit accelerate to work without images in cache
2023-05-11 10:45:59 -04:00
liamwhite 2643ea80df Merge pull request #10216 from Kelebek1/buffer_cache_region_checks
Swap order of checking/setting region modifications in the buffer_cache
2023-05-11 10:45:47 -04:00
liamwhite f94186d3c3 Merge pull request #10222 from liamwhite/q
renderer_vulkan: separate guest and host compute descriptor queues
2023-05-11 10:45:36 -04:00
Kelebek1 bf08bc3c0f Allow Fermi blit accelerate to add src/dst to the cache if they don't exist already. Use ScratchBuffers in the software blit path. 2023-05-11 06:42:38 +01:00
Fernando S 871e7cacf6 Merge pull request #10224 from yuzu-emu/readme-update
Update README.md to remove Skyline license exception.
2023-05-11 05:51:32 +02:00
bunnei 2fe922aae5 Update README.md to remove Skyline license exception. 2023-05-10 15:52:30 -07:00
grimkor ceb65c259a Allow fully customisable controller hotkeys 2023-05-10 19:28:11 +01:00
Liam 67fd1df762 renderer_vulkan: separate guest and host compute descriptor queues 2023-05-10 13:46:48 -04:00