Commit Graph

20137 Commits (ac00ead7d40142d6113c57cde365a55894a0d270)

Author SHA1 Message Date
Liam e532b74e11 audio_core: remove explicitly defaulted and implicitly deleted constructors 2022-12-10 13:05:15 +07:00
Liam 985ed1e160 memory: remove DEBUG_ASSERT pointer test 2022-12-10 13:02:38 +07:00
liamwhite f6e705737a
Merge pull request #9412 from Saalvage/fix/trace-log-compilation
Fix compilation error
2022-12-09 17:03:19 +07:00
Salvage c586ac9be2
Remove the lock entirely as per PR discussion
Correctly unlock mutex before its destruction

As per https://en.cppreference.com/w/cpp/thread/mutex/~mutex destroying a locked mutex is undefined behavior and MSVC++ decides to throw in this case

Swap out unique for scoped lock and readd comment
2022-12-09 16:39:59 +07:00
Salvage 0e265db873
Fix compilation error 2022-12-09 14:49:15 +07:00
Liam 5b837157bd video_core: Integrate SMAA
Co-authored-by: goldenx86 <goldenx86@users.noreply.github.com>
Co-authored-by: BreadFish64 <breadfish64@users.noreply.github.com>
2022-12-08 17:17:45 +07:00
FengChen 37014e9127 video_core: Add vertex_array_instance_* sbubbed called warning 2022-12-08 23:19:31 +07:00
FengChen 1e64b5e2ec video_core: The draw manager manages whether Clear is required. 2022-12-08 23:10:52 +07:00
FengChen 15d63c3d3d video_core: Adjust topology update logic 2022-12-08 22:40:28 +07:00
Fernando S 41461514d6
Merge pull request #9401 from vonchenplus/draw_manager
video_core: Implement maxwell3d draw manager and split draw logic
2022-12-08 12:41:39 +07:00
Feng Chen bf0b957c05 video_core: Implement maxwell3d draw manager and split draw logic 2022-12-08 10:12:19 +07:00
Morph bfdd512787
Merge pull request #9365 from liamwhite/val
vulkan_common: quiet some validation errors
2022-12-06 21:08:14 +07:00
Liam 9704acb982 general: improve handling of system startup failure 2022-12-06 16:13:42 +07:00
merry e1f5f4bdea
Merge pull request #9370 from liamwhite/break-unmapped
core: add option to break on unmapped access
2022-12-06 20:20:20 +07:00
Fernando S 08d4e7c7af
Merge pull request #9393 from liamwhite/more-vulkan
vulkan_common: further initialization tweaks
2022-12-06 17:45:08 +07:00
liamwhite 4b7e73e0a6
Merge pull request #9392 from lioncash/reporter
reporter: Eliminate undefined behavior in SaveErrorReport
2022-12-06 11:27:00 +07:00
liamwhite d8534ea140
Merge pull request #9390 from lioncash/keyboard
applets: Extract callback types into aliases
2022-12-06 11:26:53 +07:00
liamwhite bbdb6d391e
Merge pull request #9389 from lioncash/emumove
emulated_console/emulated_controller: std::move ParamPackage instances where applicable
2022-12-06 11:26:46 +07:00
liamwhite a86af1b776
Merge pull request #9386 from lioncash/init
kernel: Ensure relevant class members are always initialized on construction
2022-12-06 11:26:38 +07:00
liamwhite a225ba4cda
Merge pull request #9391 from abouvier/cmake-sdl
cmake: use sdl2 imported target
2022-12-06 09:58:48 +07:00
liamwhite e86e144a7c
Merge pull request #9387 from abouvier/cmake-libusb
cmake: prefer system libusb
2022-12-06 09:58:37 +07:00
Lioncash dba84458be configure_graphics: Make SPIRV backend string translatable
The parenthetical needs to be translatable, like with GLASM
2022-12-06 00:13:07 +07:00
Alexandre Bouvier f385175aa2 cmake: prefer system libusb 2022-12-06 05:30:40 +07:00
liamwhite 04779b3d2a
Merge pull request #9369 from german77/mifare
service: nfc: Implement mifare service
2022-12-05 22:17:32 +07:00
liamwhite 90145c424d
Merge pull request #9360 from Kelebek1/R-E-S-P-E-C-T
Respect render mode override
2022-12-05 22:17:22 +07:00
Liam 7e7a23363a vulkan_common: further initialization tweaks 2022-12-05 22:06:35 +07:00
Lioncash eadc1ae1e7 reporter: Pass by const reference where applicable
Same behavior, but without memory churn.
2022-12-05 21:48:42 +07:00
Lioncash e7f9f58fa4 reporter: Eliminate undefined behavior in SaveErrorReport
The optionals are unconditionally dereferenced when setting the custom
error text, and in a few cases this function is called using the default
value of the optionals.

This means we'd be dereferencing uninitialized storage.

Since they're used unconditionally, we can use value_or to set a default
when storage is uninitialized.
2022-12-05 21:31:34 +07:00
Alexandre Bouvier e6ae720c33 cmake: use sdl2 imported target 2022-12-06 01:26:30 +07:00
Lioncash fedd857054 applets/controller: Use aliases for callbacks 2022-12-05 19:06:04 +07:00
Lioncash d8da9a2afd applets/error: Use aliases for callbacks 2022-12-05 19:06:04 +07:00
Lioncash 2b40cdf04f applets/mii_edit: Use aliases for callbacks 2022-12-05 19:06:04 +07:00
Lioncash a84676c2aa applets/profile_select: Use aliases for callbacks
Deduplicates callback definitions and situates it in one place.
2022-12-05 19:06:04 +07:00
Lioncash e26c86a6e7 applets/web_browser: Use aliases for callbacks
Deduplicates a lot of long callback declarations
2022-12-05 19:06:04 +07:00
Lioncash 9bbb77637e applets/software_keyboard: Use aliases for callbacks
Deduplicates really long std::function declarations to make the
interface nicer to read.
2022-12-05 19:06:01 +07:00
Lioncash e4a16f50ef emulated_controller: Remove unused parameter in GetMappedDevices()
This isn't used, so it can be removed to make the function a little
nicer.
2022-12-05 18:27:18 +07:00
Lioncash 87543b9dea emulated_controller: Use std::move() in GetMappedDevices()
Avoids churning allocations in a loop.
2022-12-05 18:27:15 +07:00
Lioncash 7bf4b45349 emulated_console: Amend cast in SetTouch()
id is an int value, not a u32.
2022-12-05 18:15:23 +07:00
Lioncash 4255e30722 emulated_console: std::move() ParamPackages and callbacks where applicable 2022-12-05 18:15:19 +07:00
Lioncash efa8711bf3 kernel/k_shared_memory: Ensure device_memory is always initialized 2022-12-05 15:27:57 +07:00
Lioncash c3fd211b43 kernel/k_memory_block: Ensure members are always initialized 2022-12-05 15:27:47 +07:00
Lioncash dcca650599 kernel/physical_core: Ensure is_interrupted is always initialized 2022-12-05 15:19:37 +07:00
Lioncash dddc9bb8f1 kernel/thread: Ensure stack_top and argument are always initialized 2022-12-05 15:19:36 +07:00
Lioncash 4769d798f9 kernel/kernel: Ensure shutdown threads are always initialized 2022-12-05 15:19:36 +07:00
liamwhite 3b19f741bd
Merge pull request #6833 from abouvier/unbundle
cmake: prefer system libraries
2022-12-05 12:26:09 +07:00
Fernando Sahmkow 6352c5dc31 Vulkan: Implement Alpha coverage 2022-12-05 12:33:12 +07:00
Narr the Reg 752236caad input_common: Allow mifare files 2022-12-04 20:02:48 +07:00
Mai a52d0b82a6
Merge pull request #9381 from liamwhite/uninit
service_thread: fix uninitialized memory usage
2022-12-04 22:30:16 +07:00
Liam cec3a3cd5a service_thread: fix uninitialized memory usage 2022-12-04 16:02:24 +07:00
liamwhite 3b9db85646
Merge pull request #9232 from bunnei/audio-default-thread
hle: service: audio: Use default service thread.
2022-12-04 15:31:40 +07:00
liamwhite 522e7c5663
Merge pull request #9273 from ameerj/per-game-profile
Configuration: Add per-game input profiles
2022-12-04 13:38:01 +07:00
liamwhite ec547824f1
Merge pull request #9372 from liamwhite/vk12
vulkan_common: promote extension usages to core when possible
2022-12-04 12:14:06 +07:00
Alexandre Bouvier 8e17b5469f cmake: prefer system libraries 2022-12-04 17:09:25 +07:00
Liam 0cbfdf7ecb yuzu-cmd: link SDL2 correctly 2022-12-04 10:59:58 +07:00
Liam 157981cac5 vulkan_common: add feature test for shaderDrawParameters 2022-12-04 10:55:13 +07:00
Liam 18831e0933 vulkan_common: clean up extension usage 2022-12-04 10:55:13 +07:00
Liam ea56d8f388 vulkan_common: correct usage of timeline semaphore fallbacks 2022-12-04 10:55:13 +07:00
Liam f23f875dd8 vulkan_common: ensure all mandatory features are tested in feature report 2022-12-04 10:55:13 +07:00
Liam 06a67d2bbd vulkan_common: unsuffix 16-bit storage feature test structure 2022-12-04 10:55:13 +07:00
Liam bbc1809951 vulkan_common: unsuffix timeline semaphore feature test structure 2022-12-04 10:55:13 +07:00
Liam a9633ba8b2 vulkan_common: add logicOp to feature report 2022-12-04 10:55:13 +07:00
Liam 7fc6514be1 vulkan_common: promote host query reset usage to core 2022-12-04 10:55:13 +07:00
Liam e44a804ec7 vulkan_common: promote descriptor update template usage to core 2022-12-04 10:55:13 +07:00
Liam a948ab3e48 vulkan_common: promote timeline semaphore usage to core 2022-12-04 10:55:13 +07:00
liamwhite 02b10a6e4d
Merge pull request #9374 from liamwhite/externals
externals: update dynarmic, SDL2
2022-12-04 10:44:12 +07:00
Liam 6d2c597371 externals: update dynarmic, SDL2 2022-12-04 10:12:26 +07:00
bunnei f77cc6c412
Merge pull request #9344 from liamwhite/null
video_core: add null backend
2022-12-03 11:23:25 +07:00
liamwhite 75e16547f8
Merge pull request #9300 from ameerj/pch
CMake: Use precompiled headers to improve compile times
2022-12-03 14:10:06 +07:00
liamwhite 22aff09b33
Merge pull request #9289 from liamwhite/fruit-company
general: fix compile for Apple Clang
2022-12-03 12:09:21 +07:00
liamwhite ac0721a4bc
Merge pull request #9353 from vonchenplus/draw_indexed
video_core: Fine tuning the index drawing judgment logic
2022-12-03 10:43:34 +07:00
Matías Locatti c043ba8467
Merge pull request #9303 from liamwhite/new-vulkan-init
Vulkan: update initialization
2022-12-02 18:32:54 +07:00
Matías Locatti 9a5d8b356a
Merge pull request #9363 from liamwhite/gs
shader_recompiler: add gl_Layer translation GS for older hardware
2022-12-02 16:08:12 +07:00
Liam 6072b22a0b core: add option to break on unmapped access 2022-12-02 08:25:45 +07:00
liamwhite d8bd52c6f1
Merge pull request #9348 from Morph1984/when-the-network-is-down
service: nifm: Update stubs for Submit/GetRequestState/GetResult
2022-12-01 22:14:43 +07:00
Narr the Reg a4725bcb73 service: nfc: Implement mifare service 2022-12-01 20:43:59 +07:00
Liam 3ef006b5ab shader_recompiler: add gl_Layer translation GS for older hardware 2022-12-01 09:51:27 +07:00
Feng Chen cb5400b34d video_core: Fine tuning the index drawing judgment logic 2022-12-01 19:14:58 +07:00
Liam be05cb640c vulkan_common: quiet some validation errors 2022-11-30 19:18:05 +07:00
ameerj 5b5612c1cc CMake: Consolidate common PCH headers 2022-11-30 18:30:30 +07:00
ameerj 3c39c0ac3e string_util: Fix Mingw compile error
Co-Authored-By: liamwhite <9658600+liamwhite@users.noreply.github.com>
2022-11-30 18:26:26 +07:00
Fernando S 4e89979c87
Merge pull request #9320 from yuzu-emu/fix-audio-suspend
AudioCore: Take suspend lock when stalling the running process.
2022-11-30 16:41:32 +07:00
bunnei 8fd4e44014 audio_core: sink_stream: Hold the suspend lock when process is stalled.
- Prevents us from clashing with other callers trying to un/stall.
2022-11-29 20:32:06 +07:00
ameerj 51358d2b5e CMake: Disable PCH on MSVC + Buildcache configs 2022-11-29 23:01:32 +07:00
Kelebek1 a78372110c Respect render mode override 2022-11-30 01:43:36 +07:00
Morph 49219b8a86
Merge pull request #9349 from lat9nq/cmake-322
CMakeLists: Bump minimum required CMake version to 3.22
2022-11-29 19:41:47 +07:00
ameerj 37bc5118ea CMake: Use precompiled headers 2022-11-29 18:50:49 +07:00
ameerj cae6c13ffb value.h: remove recursive include 2022-11-29 18:50:49 +07:00
liamwhite d6b63239ae
Merge pull request #9308 from lat9nq/from-scratch
startup_checks: Use Windows flow for *nix
2022-11-29 18:45:39 +07:00
liamwhite cafca891ea
Merge pull request #9322 from german77/pump_events
input_common: Pump SDL events from main thread
2022-11-29 18:45:25 +07:00
liamwhite c845d8a9e8
Merge pull request #9352 from lioncash/vidcast
engines: Remove unnecessary casts
2022-11-29 18:45:16 +07:00
Lioncash b6d93b2c77 host1x/syncpoint_manager: Eliminate unnecessary std::function construction
We can just pass the function object through, and if it's a valid
function, then it will automatically be converted.
2022-11-29 08:58:50 +07:00
Lioncash c4af7b3f5c host1x/syncpoint_manager: Pass DeregisterAction() handle as const-ref
The handle is only compared against and not modified in any way, so we
can pass it by const reference.

This also allows us to mark the respective parameters for
DeregisterGuestAction() and DeregisterHostAction() as const references
as well.
2022-11-29 08:55:33 +07:00
Lioncash 96ffc174aa maxwell_3d: Mark shifted value as unsigned
Otherwise this is technically creating a signed int result that gets
converted. Just a consistency change.

While we're in the area, we can mark Samples() as const.
2022-11-29 08:39:33 +07:00
Lioncash d7ec031419 engines: Remove unnecessary casts
In a few cases we have some casts that can be trivially removed.
2022-11-29 08:38:46 +07:00
liamwhite 55a3cbfa0d
Merge pull request #9340 from lioncash/nvdrv
nvdrv: Simplify builder declarations
2022-11-29 08:27:13 +07:00
liamwhite 55b546a110
Merge pull request #9347 from lioncash/vcast
video_core/surface: Eliminate casts in GetFormatType()
2022-11-29 08:26:39 +07:00
liamwhite 6b8ab9ed8f
Merge pull request #9346 from lioncash/vtable
producer_listener: Add virtual destructor to IProducerListener
2022-11-29 08:26:32 +07:00
liamwhite a7f1fa7bfc
Merge pull request #9345 from lioncash/fence
consumer_base: Pass std::shared_ptr by const reference
2022-11-29 08:26:25 +07:00
liamwhite b6373c5ea5
Merge pull request #9343 from lioncash/bounds
syncpoint_manager: Reduce redundant bounds checks
2022-11-29 08:26:16 +07:00
lat9nq 0941ae0b61 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 +07:00
Morph 00fdffec58 service: nifm: Update stubs for Submit/GetRequestState/GetResult 2022-11-28 22:58:10 +07:00
Lioncash a9efea8ae9 video_core/surface: Eliminate casts in GetFormatType()
We can just compare directly and get rid of verbose casting.
2022-11-28 20:25:44 +07:00
Liam 89dd7dc180 video_core: add null backend 2022-11-28 19:49:09 +07:00
Lioncash 25dda06f49 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 +07:00
ameerj 4cbbf590e3 configure_input_player: Fix profile saving when using handheld controller type 2022-11-28 19:22:18 +07:00
ameerj 3de05726eb config: Custom profile detection fixes
Also only reads/writes applicable configs for the custom profiles.
2022-11-28 19:22:18 +07:00
ameerj b1b20ad84a configure_input_per_game: Allow configuring all 8 players 2022-11-28 19:22:18 +07:00
Lioncash ae74f46e78 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 +07:00
Lioncash 3020f72b0c buffer_queue_consumer: std::move std::shared_ptr in Connect()
Avoids an unnecessary reference count increment and decrement
2022-11-28 19:12:26 +07:00
Lioncash c0c4f6dfa6 consumer_base: Pass shared_ptr by const reference
Avoids churning atomic reference count increments and decrements.
2022-11-28 19:09:44 +07:00
Lioncash 260a495a23 consumer_base: Remove redundant virtual
override already serves this purpose
2022-11-28 19:06:34 +07:00
Lioncash 7a329ae56c syncpoint_manager: Mark IsSyncpointAllocated() as const
This doesn't modify class state at all.
2022-11-28 16:08:21 +07:00
Lioncash d0883027d6 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 +07:00
Morph bbb963a31a
Merge pull request #9339 from lioncash/cacheheader
common/cache_management: Amend header includes
2022-11-28 13:12:20 +07:00
Morph 51abe35e05
Merge pull request #9338 from lioncash/properties
input_common/helpers: Mark analog property structs members as static constexpr
2022-11-28 13:12:14 +07:00
Morph 64ff79f919
Merge pull request #9337 from lioncash/pbr
common/input: Add helper functions for constructing input and output devices
2022-11-28 13:12:08 +07:00
Lioncash ad787b20ca 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 +07:00
Lioncash c2c9b44749 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 +07:00
Lioncash 8265c167d3 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 +07:00
Lioncash 780ae92265 core/hid/emulated_controller: Use ranges version of transform
Makes the transform calls much nicer to read.
2022-11-28 10:00:42 +07:00
Lioncash 2ec7d0b5fd 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 +07:00
Lioncash 7f42432f42 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 +07:00
Lioncash e96f55b6e2 yuzu/main: Merge variable declaration into ifdef
This is only used in the non-Windows path.
2022-11-28 08:40:41 +07:00
liamwhite 6291eec700
Merge pull request #9325 from german77/default_by_default
yuzu-cmd: Fix default config value
2022-11-28 08:14:32 +07:00
german77 aaada241dc yuzu-cmd: Fix default config value 2022-11-27 20:43:34 +07:00
liamwhite 6b64557ad6
Merge pull request #8829 from Docteh/qt6_0002
CMake: rework for Qt6 support
2022-11-27 17:56:22 +07:00
liamwhite a2fde04da9
Merge pull request #9317 from german77/input-crash
yuzu-cmd: Fix input callback crash on close
2022-11-27 15:39:24 +07:00
Liam 2956a33463 Vulkan: update initialization
Co-authored-by: bylaws <bylaws@users.noreply.github.com>
2022-11-27 14:58:28 +07:00
liamwhite 71f2b4ba8f
Merge pull request #9323 from german77/intructions
yuzu-cmd: Update configuration file description
2022-11-27 12:54:01 +07:00
german77 7d8095d944 input_common: Pump sdl events from main thread 2022-11-27 11:09:40 +07:00
german77 a67e776af9 yuzu-cmd: Fix input callback crash on close 2022-11-27 10:53:22 +07:00
bunnei 3ab8d9ac7c
Merge pull request #9276 from goldenx86/fsrSlider
FSR Sharpening Slider
2022-11-27 00:13:15 +07:00
Valeri 278c0e6e8d
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 +07:00
german77 4a46da6fb5 yuzu-cmd: Update configuration file description 2022-11-26 19:48:22 +07:00
bunnei 8f6245be9a 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 +07:00
Matías Locatti 701ca96827
Oops 2022-11-26 17:39:43 +07:00
Matías Locatti 26211ac339
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 +07:00
liamwhite 3e53d8138c
Merge pull request #9288 from vonchenplus/deferred_draw
video_core: Fine tune maxwell drawing trigger mechanism
2022-11-26 09:35:45 +07:00
liamwhite ddca512f3f
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 +07:00
Matías Locatti 972bd6cb54
Sharpness instead of Sharpening 2022-11-26 02:14:10 +07:00
lat9nq 19a640286c configure_graphics: Implement custom FSR Sharpening setting 2022-11-25 22:42:54 +07:00
lat9nq b670c350e4 settings: Reset FSR sharpening global state with the others 2022-11-25 22:42:24 +07:00
liamwhite e16d1b85f1
Merge pull request #9297 from Kelebek1/sink_oob
[audio_core] Fix an OoB with sample sinking
2022-11-25 12:53:29 +07:00
bunnei e8cbc3b4c5
Merge pull request #9304 from liamwhite/menu-roll
Qt: assign menuRole properties for actions
2022-11-25 00:38:50 +07:00
bunnei 64965cc658
Merge pull request #9305 from lioncash/request
hle_ipc: Add helper function for determining element counts
2022-11-25 00:38:17 +07:00
liamwhite 20b62dbd30
Merge pull request #9194 from FernandoS27/yfc-fermi2d
YFC - Fermi2D: Rework blit engine and add a software blitter.
2022-11-24 21:48:41 +07:00
Fernando Sahmkow 826e0785bf Fermi2D: Cleanup and address feedback. 2022-11-24 21:00:48 +07:00
Fernando Sahmkow 3b582d5fb2 GPU: Fix buffer cache issue, engine upload not inlining memory in multiline and pessismistic invalidation. 2022-11-24 20:57:16 +07:00
Fernando Sahmkow 7356ab1de6 GPU: Implement additional render target formats. 2022-11-24 20:35:44 +07:00
Fernando Sahmkow daf2ef8f1c MaxwellDMA: Implement BlockLinear to BlockLinear copies. 2022-11-24 20:35:44 +07:00