Commit Graph

19994 Commits

Author SHA1 Message Date
Lioncash 0d9c723df4 engines: Remove unnecessary casts
In a few cases we have some casts that can be trivially removed.
2022-11-29 08:38:46 -05:00
liamwhite fa8bf5fb43 Merge pull request #9340 from lioncash/nvdrv
nvdrv: Simplify builder declarations
2022-11-29 08:27:13 -05:00
liamwhite 1f7c0310e2 Merge pull request #9347 from lioncash/vcast
video_core/surface: Eliminate casts in GetFormatType()
2022-11-29 08:26:39 -05:00
liamwhite 049c6ca248 Merge pull request #9346 from lioncash/vtable
producer_listener: Add virtual destructor to IProducerListener
2022-11-29 08:26:32 -05:00
liamwhite 6197033d88 Merge pull request #9345 from lioncash/fence
consumer_base: Pass std::shared_ptr by const reference
2022-11-29 08:26:25 -05:00
liamwhite 9e9e28c281 Merge pull request #9343 from lioncash/bounds
syncpoint_manager: Reduce redundant bounds checks
2022-11-29 08:26:16 -05:00
lat9nq 868c5ca1cb CMake: Directly link to SDL2-static when appropriate
Trying to be lazy and alias SDL2 to SDL2-static causes issues in later
versions of CMake. Just use the same condition to tell which one to use.
2022-11-28 23:21:14 -05:00
Morph 7ba644dc5d service: nifm: Update stubs for Submit/GetRequestState/GetResult 2022-11-28 22:58:10 -05:00
Lioncash 789c33dc48 video_core/surface: Eliminate casts in GetFormatType()
We can just compare directly and get rid of verbose casting.
2022-11-28 20:25:44 -05:00
Liam acc4a150ef video_core: add null backend 2022-11-28 19:49:09 -05:00
Lioncash ccec899cd8 producer_listener: Add virtual destructor to IProducerListener
Several member variables are shared_ptr's to this base class. Even
though producer listeners are still unimplemented, this ensures we
always have consistent deletion behavior once this ends up being used
polymorphically.
2022-11-28 19:39:13 -05:00
ameerj 76a58e741a configure_input_player: Fix profile saving when using handheld controller type 2022-11-28 19:22:18 -05:00
ameerj 736a034af8 config: Custom profile detection fixes
Also only reads/writes applicable configs for the custom profiles.
2022-11-28 19:22:18 -05:00
ameerj 8a1c99d57b configure_input_per_game: Allow configuring all 8 players 2022-11-28 19:22:18 -05:00
Lioncash 93f287c79b buffer_item_consumer: Pass fence by const-ref in ReleaseBuffer()
This isn't directly modified.

Also allows rvalues to be used with it.
2022-11-28 19:16:20 -05:00
Lioncash 7d9d432ff4 buffer_queue_consumer: std::move std::shared_ptr in Connect()
Avoids an unnecessary reference count increment and decrement
2022-11-28 19:12:26 -05:00
Lioncash f5def4b9c5 consumer_base: Pass shared_ptr by const reference
Avoids churning atomic reference count increments and decrements.
2022-11-28 19:09:44 -05:00
Lioncash bde42f6767 consumer_base: Remove redundant virtual
override already serves this purpose
2022-11-28 19:06:34 -05:00
Lioncash eb1bdc5ed4 syncpoint_manager: Mark IsSyncpointAllocated() as const
This doesn't modify class state at all.
2022-11-28 16:08:21 -05:00
Lioncash 8409b91f2e syncpoint_manager: Reduce number of bounds checks
The only time we need to check bounds is on the first access.
2022-11-28 16:06:01 -05:00
Morph 2c5073f375 Merge pull request #9339 from lioncash/cacheheader
common/cache_management: Amend header includes
2022-11-28 13:12:20 -05:00
Morph 65b9694ec7 Merge pull request #9338 from lioncash/properties
input_common/helpers: Mark analog property structs members as static constexpr
2022-11-28 13:12:14 -05:00
Morph ca79f2ed10 Merge pull request #9337 from lioncash/pbr
common/input: Add helper functions for constructing input and output devices
2022-11-28 13:12:08 -05:00
Lioncash e621ee9ec6 nvdrv: Simplify builder declarations
We can just use auto here. If one of these ever happens to not be
derived from nvdevice, then this will cause a compilation error.

We can also move the devices into the collection to get rid of an
unnecessary atomic reference count increment and decrement.
2022-11-28 10:43:48 -05:00
Lioncash 7c051067f6 common/cache_management: Amend header includes
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.
2022-11-28 10:19:53 -05:00
Lioncash 23e85d2d85 input_common/helpers: Mark analog property structs members as static constexpr
These are const with no dependency on any other data members, so we can
make these static constexpr to reduce the overall object size.
2022-11-28 10:10:37 -05:00
Lioncash a9892677ed core/hid/emulated_controller: Use ranges version of transform
Makes the transform calls much nicer to read.
2022-11-28 10:00:42 -05:00
Lioncash 0862aabdc6 common/input: Add helpers functions for creating input and output devices
Avoids the redundancy of needing to explictly specify the common
namespace and the type.
2022-11-28 10:00:37 -05:00
Lioncash c005d24e1e common/input: Pass ParamPackage by const reference in CreateDevice
This was previously being passed by value, which was unnecessary and
created more allocations than necessary.
2022-11-28 09:11:58 -05:00
Lioncash 72cfd9cb9b yuzu/main: Merge variable declaration into ifdef
This is only used in the non-Windows path.
2022-11-28 08:40:41 -05:00
liamwhite 755e1e93c7 Merge pull request #9325 from german77/default_by_default
yuzu-cmd: Fix default config value
2022-11-28 08:14:32 -05:00
german77 3075c5ec5c yuzu-cmd: Fix default config value 2022-11-27 20:43:34 -06:00
liamwhite 48b545354a Merge pull request #8829 from Docteh/qt6_0002
CMake: rework for Qt6 support
2022-11-27 17:56:22 -05:00
liamwhite d31bb0b36b Merge pull request #9317 from german77/input-crash
yuzu-cmd: Fix input callback crash on close
2022-11-27 15:39:24 -05:00
Liam 0a077cb467 Vulkan: update initialization
Co-authored-by: bylaws <bylaws@users.noreply.github.com>
2022-11-27 14:58:28 -05:00
liamwhite 7daf70feec Merge pull request #9323 from german77/intructions
yuzu-cmd: Update configuration file description
2022-11-27 12:54:01 -05:00
german77 cddbfe5e67 input_common: Pump sdl events from main thread 2022-11-27 11:09:40 -06:00
german77 23d7d8b9df yuzu-cmd: Fix input callback crash on close 2022-11-27 10:53:22 -06:00
bunnei 0e8043fc24 Merge pull request #9276 from goldenx86/fsrSlider
FSR Sharpening Slider
2022-11-27 00:13:15 -08:00
Valeri e9fb4a65b9 crypto: use user-provided keys whenever possible
Solves an issue where autogenerated title keys would take precedence over those provided by user.
2022-11-27 05:08:25 +03:00
german77 8e2afd4e42 yuzu-cmd: Update configuration file description 2022-11-26 19:48:22 -06:00
bunnei 94ee753735 core: Use atomic instead of a lock to protect is_paused.
- This allows us to call IsPaused() elsewhere if we are holding the suspend lock.
2022-11-26 13:46:38 -08:00
Matías Locatti 71055c8e90 Oops 2022-11-26 17:39:43 -03:00
Matías Locatti 492fabc9b2 Replace GLSL as the default OpenGL shader backend
GLASM is not very compatible with the latest games, and too many people have the special superpower to break their Vulkan support.
2022-11-26 17:27:04 -03:00
liamwhite 0f9aee1f8a Merge pull request #9288 from vonchenplus/deferred_draw
video_core: Fine tune maxwell drawing trigger mechanism
2022-11-26 09:35:45 -05:00
liamwhite 8ee07be628 Merge pull request #9307 from Morph1984/not-used-correctly
maxwell_to_vk: Fix format usage bits and add R16_SINT
2022-11-26 09:08:55 -05:00
Matías Locatti b4211c8a46 Sharpness instead of Sharpening 2022-11-26 02:14:10 -03:00
lat9nq cedec65403 configure_graphics: Implement custom FSR Sharpening setting 2022-11-25 22:42:54 -05:00
lat9nq 1c5379fef9 settings: Reset FSR sharpening global state with the others 2022-11-25 22:42:24 -05:00
liamwhite ad0cb5a8bc Merge pull request #9297 from Kelebek1/sink_oob
[audio_core] Fix an OoB with sample sinking
2022-11-25 12:53:29 -05:00
bunnei 0465fd322a Merge pull request #9304 from liamwhite/menu-roll
Qt: assign menuRole properties for actions
2022-11-25 00:38:50 -08:00
bunnei d62f8bbcc4 Merge pull request #9305 from lioncash/request
hle_ipc: Add helper function for determining element counts
2022-11-25 00:38:17 -08:00
liamwhite ac7ceced88 Merge pull request #9194 from FernandoS27/yfc-fermi2d
YFC - Fermi2D: Rework blit engine and add a software blitter.
2022-11-24 21:48:41 -05:00
Fernando Sahmkow 984c30bc52 Fermi2D: Cleanup and address feedback. 2022-11-24 21:00:48 +01:00
Fernando Sahmkow b3708b0a5b GPU: Fix buffer cache issue, engine upload not inlining memory in multiline and pessismistic invalidation. 2022-11-24 20:57:16 +01:00
Fernando Sahmkow a87ff9181b GPU: Implement additional render target formats. 2022-11-24 20:35:44 +01:00
Fernando Sahmkow e3b3fcb1fc MaxwellDMA: Implement BlockLinear to BlockLinear copies. 2022-11-24 20:35:44 +01:00
Fernando Sahmkow 41b3ddbbae Fermi2D: Implement Bilinear software filtering and address feedback. 2022-11-24 20:35:44 +01:00
Fernando Sahmkow f4291e4576 Fermi2D: Rework blit engine and add a software blitter. 2022-11-24 20:35:44 +01:00
Kyle Kienapfel 84063074a5 CMake: rework for Qt6 support
This PR rearranges things in the CMake system to make compiling with Qt6 possible

1. Camera API has changed in Qt6, so the camera feature is disabled
2. A previous fix involving QLocale is now version gated.
3. QRegExp replaced with QRegularExpression, see #5343
4. Qt6_LOCATION option added to specify a location to search for Qt6
  (see examples below)
5. windeployqt is used to copy Qt6 files into the build directory on Windows

Notes for Arch Linux
Arch install happened to have qt6-base qt6-declarative qt6-translations installed

mkdir build && cd build
cmake .. -GNinja -DYUZU_USE_BUNDLED_VCPKG=ON -DYUZU_TESTS=OFF -DENABLE_QT6=YES -DYUZU_USE_BUNDLED_QT=NO

Windows (MSVC)
Qt wants users to download precompiled libraries via an online installer,
it is worth noting that the GPL/LGPL takes precendence over any ...

In the Qt Maintenance tool, under a version, such as 6.3.1
Select "MSVC 2019 64-bit"
Under Additional Libraries Qt Multimedia may be of use for Camera support

For the Web Applet I had to select the following:
PDF Positioning WebChannel WebEngine

mkdir build && cd build
cmake -G "Visual Studio 16 2019" -DQt6_LOCATION=C:/Qt/6.4.0/msvc2019_64/ \
-DENABLE_COMPATIBILITY_LIST_DOWNLOAD=YES -DYUZU_USE_BUNDLED_QT=NO \
-DENABLE_QT_TRANSLATION=YES -DENABLE_QT6=YES ..

Some numbers for reference (msvc2019_64)
Qt5 (slimmed down) 508 MB
Qt5.15.2 all in    929 MB
Qt6.3.1           1.71 GB
Qt6.3.2           1.73 GB
Qt6.4.0-beta3     1.83 GB
Qt6.4.0           1.67 GB
2022-11-24 06:28:42 -08:00
Matías Locatti 8e19421f84 FSR Sharpening Slider part 1 - only a global slider 2022-11-24 04:22:13 -05:00
lat9nq 350ea4888b startup_checks: Use fmt::print, fix exec error handling
Uses fmt::print opposed to std::fprintf for error printing.

Call exit instead of returning to caller to prevent a like issue the
previous commit was trying to solve.

Removes unneeded comment.

Co-authored-by: liamwhite <liamwhite@users.noreply.github.com>
Co-authored-by: Lioncash <mathew1800@gmail.com>
2022-11-23 21:59:24 -05:00
lat9nq b9046e89de startup_checks: Use Windows flow for *nix
Spawns a child using fork and exec as opposed to fork alone. Workaround
for the macos file manager complaining about not supporting fork without
exec.

Control flow for *nix is now roughly the same as for Windows.
2022-11-23 21:35:47 -05:00
Morph 79d76606f2 maxwell_to_vk: Add R16_SINT
This was somehow missed when the format was added to GL
2022-11-23 21:30:58 -05:00
Morph 44ef6e38cb maxwell_to_vk: Fix format usage bits
- VK_FORMAT_B8G8R8A8_UNORM supports the STORAGE_IMAGE_BIT
- VK_FORMAT_R4G4B4A4_UNORM_PACK16 does not support the COLOR_ATTACHMENT_BIT
2022-11-23 21:29:43 -05:00
Lioncash 8c35c8c4a6 service: Make use of buffer element count helpers 2022-11-23 13:43:20 -05:00
Lioncash ff19204dc6 hle_ipc: Add helper functions for getting number of buffer elements 2022-11-23 13:15:19 -05:00
Lioncash ce329764a2 hle_ipc: Mark relevant member functions as [[nodiscard]]
Will allow the compiler to complain about cases where ignoring the
return value would be a bug.
2022-11-23 13:08:52 -05:00
Liam fa845b681b Qt: assign menuRole properties for actions 2022-11-23 12:41:56 -05:00
Liam 5a712bb51a general: fix compile for Apple Clang 2022-11-22 22:22:28 -05:00
liamwhite 1cc95c4d53 Merge pull request #9299 from lioncash/cast
k_handle_table: Remove cast to void* in GetObjectForIpc
2022-11-22 17:47:53 -05:00
Lioncash 71d5db9354 k_handle_table: Remove cast to void* in GetObjectForIpc
This was used to get around the KProcess class being incomplete. We can
just move this to the cpp file and eliminate the cast entirely, letting
the compiler do its work.
2022-11-22 13:58:42 -05:00
bunnei 8484ed0cf6 Merge pull request #9219 from german77/nfc_impl
service: nfc: Implement NFC IUser service
2022-11-22 10:28:38 -08:00
Kelebek1 59c4dc2f32 Use the maximum input index for samples buffer span size, not just the input count 2022-11-22 15:32:11 +00:00
FengChen 607a965c57 video_core: Optimize maxwell drawing trigger mechanism 2022-11-22 17:53:26 +08:00
Morph e1a681378e qt_amiibo_settings: Use WebClient only if ENABLE_WEB_SERVICE is enabled
Resolves compilation errors when ENABLE_WEB_SERVICE is disabled in CMake configuration
2022-11-21 15:22:17 -05:00
ameerj 19ca666e9f Configuration: Add per-game input profiles 2022-11-20 14:06:31 -05:00
Morph 8c78a8f003 Merge pull request #9279 from liamwhite/this-would-have-never-happened-in-rust
dmnt:cht: fix copy-paste error
2022-11-20 13:30:35 -05:00
liamwhite cebe63ee08 Merge pull request #9216 from vonchenplus/reimp_inline_index_buffer
video_core: Reimplement inline index buffer binding
2022-11-20 12:08:08 -05:00
Narr the Reg 06d54056d6 Merge branch 'master' into nfc_impl 2022-11-20 09:31:20 -06:00
Liam 9c69743686 dmnt:cht: fix copy-paste error 2022-11-20 10:14:22 -05:00
bunnei 914f824b1f Merge pull request #9238 from german77/cabinet_applet
service: am: Implement cabinet applet
2022-11-20 00:48:39 -08:00
Morph 2d185b2c44 Merge pull request #9249 from goldenx86/available-vram
Add available Vulkan VRAM to log files
2022-11-20 00:21:29 -05:00
bunnei 66235689d2 Merge pull request #9254 from FernandoS27/auto-cpu-fix
Dynarmic: Remove inaccurate NaN from Auto CPU settings.
2022-11-19 12:52:41 -08:00
liamwhite e118cc09bd Merge pull request #9191 from german77/touching_souls
core: hid: Implement true multitouch support
2022-11-19 13:21:01 -05:00
Fernando S ea0dcb71d5 Merge pull request #9260 from liamwhite/youre-in-big-trouble-now
spirv_emit_context: add missing flat decoration
2022-11-19 16:40:14 +01:00
Narr the Reg 5c134b62bd service: nfc: Implement nfc user 2022-11-19 08:51:59 -06:00
german77 1cf625b6c6 service: hid: Only overclock npad controllers 2022-11-19 08:44:42 -06:00
Narr the Reg 8e0e45dcb9 core: hid: Implement true multitouch support 2022-11-19 08:44:33 -06:00
bunnei 09a93caeb8 Merge pull request #9252 from liamwhite/radv-superiority
maxwell3d: HLE multi-layer clear macro
2022-11-19 01:46:48 -08:00
Liam 4b905e9680 spirv_emit_context: add missing flat decoration 2022-11-18 22:05:28 -05:00
liamwhite d96606b091 Merge pull request #9253 from vonchenplus/attr_layer
shader: Implement miss attribute layer
2022-11-18 22:04:18 -05:00
bunnei a6b1bc0ded Merge pull request #9234 from liamwhite/data-cash-money
kernel: implement data cache management operations
2022-11-18 13:18:36 -08:00
Kyle Kienapfel 11903d9b88 qt: Add Qt version to LogRuntimes 2022-11-17 19:14:14 -08:00
Kyle Kienapfel 6269560358 Qt6: Disable IR Sensor when compiling with Qt6
Gating the IR Sensor code behind a macro like so
`#if (QT_VERSION < QT_VERSION_CHECK(6, 0, 0)) && YUZU_USE_QT_MULTIMEDIA`

The YUZU_USE_QT_MULTIMEDIA flag is implemented in later commit

Also the locale fix in src/yuzu/main.cpp is now gated against Qt6,
as it causes compilation error
2022-11-17 19:14:14 -08:00
bunnei ca033e8d94 Merge pull request #9244 from liamwhite/lost-wakeup
nvnflinger: fix lost wakeup
2022-11-17 17:15:47 -08:00
Morph ab4c53a3e6 Merge pull request #9229 from Docteh/achy_breaky_heart
Add break for default cases
2022-11-17 19:20:18 -05:00
liamwhite 5ec3607731 Merge pull request #9228 from HidroSaphire/patch-1
Add break statement in default case
2022-11-17 18:53:59 -05:00
Fernando Sahmkow ee4b6380b9 Dynarmic: Remove inaccurate NaN from Auto CPU settings. 2022-11-17 16:59:41 +01:00
FengChen 12f2ab01bb shader: Implement miss attribute layer 2022-11-17 22:45:14 +08:00