Commit Graph

14736 Commits

Author SHA1 Message Date
Lioncash 2827ce5194 game_list: Eliminate redundant argument copies
Several functions can be taken by const reference to avoid copies
2020-09-23 11:20:12 -04:00
Lioncash cc4e8c247d control_flow: emplace elements in place within TryQuery()
Places data structures where they'll eventually be moved to to avoid
needing to even move them in the first place.
2020-09-22 22:54:36 -04:00
Lioncash 13df9625be control_flow: Make use of std::move in InsertBranch()
Avoids unnecessary atomic increments and decrements.
2020-09-22 22:48:09 -04:00
Lioncash e457001dce General: Make use of std::nullopt where applicable
Allows some implementations to avoid completely zeroing out the internal
buffer of the optional, and instead only set the validity byte within
the structure.

This also makes it consistent how we return empty optionals.
2020-09-22 17:32:33 -04:00
Lioncash 485eec243d ips_layer: Eliminate a redundant copy in Parse()
Prevents unnecessary copying of the line being parsed.
2020-09-22 16:38:45 -04:00
bunnei 292693b696 Merge pull request #4675 from Morph1984/fix-boot-multicontent
submission_package: Account for multi-content NSPs
2020-09-21 16:36:46 -07:00
Morph 152b529a00 acc: Stub LoadOpenContext
This is used in multiple games such as:
- Clubhouse Games: 51 Worldwide Classics
- Grandia HD Collection
- XCOM 2 Collection
- Baldur's Gate 1/2
- Dr Kawashima's Brain Training
- Super Mario 3D All-Stars
2020-09-21 01:01:02 -04:00
Rodrigo Locatti 24d77012ce Merge pull request #4692 from ReinUsesLisp/remove-vsync
renderer_opengl: Remove emulated mailbox presentation
2020-09-21 00:21:32 +00:00
bunnei 24b421b14c Merge pull request #4683 from Morph1984/NpadHandheldActivationMode-impl
hid: Implement Get/SetNpadHandheldActivationMode
2020-09-20 12:39:20 -07:00
ReinUsesLisp f4dbeb72d7 renderer_opengl: Remove emulated mailbox presentation
Emulated mailbox presentation was causing performance issues on
Nvidia's OpenGL driver. Remove it.
2020-09-20 16:29:41 -03:00
bunnei 1a3f019bad Merge pull request #4643 from FearlessTobi/decrease-pad-update-interval
Test: Decrease pad_update_ns
2020-09-19 00:39:50 -07:00
ReinUsesLisp 22fb70406f vk_query_cache: Hack counter destructor to avoid reserving queries
This is a hack to destroy all HostCounter instances before the base
class destructor is called. The query cache should be redesigned to have
a proper ownership model instead of using shared pointers.

For now, destroy the host counter hierarchy from the derived class
destructor.
2020-09-19 01:47:29 -03:00
ReinUsesLisp 7c747f9bea renderer_vulkan: Make unconditional use of VK_KHR_timeline_semaphore
This reworks how host<->device synchronization works on the Vulkan
backend. Instead of "protecting" resources with a fence and signalling
these as free when the fence is known to be signalled by the host GPU,
use timeline semaphores.

Vulkan timeline semaphores allow use to work on a subset of D3D12
fences. As far as we are concerned, timeline semaphores are a value set
by the host or the device that can be waited by either of them.

Taking advantange of this, we can have a monolithically increasing
atomic value for each submission to the graphics queue. Instead of
protecting resources with a fence, we simply store the current logical
tick (the atomic value stored in CPU memory). When we want to know if a
resource is free, it can be compared to the current GPU tick.

This greatly simplifies resource management code and the free status of
resources should have less false negatives.

To workaround bugs in validation layers, when these are attached there's
a thread waiting for timeline semaphores.
2020-09-19 01:46:37 -03:00
german 9f70da1a9b Add automap feature for GC adapter 2020-09-18 16:51:16 -05:00
Lioncash e486fc26a8 fermi_2d: Make use of designated initializers
Same behavior, less repetition. We can also ensure all members of Config
are initialized.
2020-09-18 13:55:21 -04:00
Morph 505ce79b9d hid: Implement Get/SetNpadHandheldActivationMode
- Used in Clubhouse Games: 51 Worldwide Classics
2020-09-18 10:10:30 -04:00
Morph a769682977 configure_input_player: Fixes motion mapping using ConfigureButtonClick 2020-09-18 03:56:31 -04:00
bunnei cfa3badd54 Merge pull request #4647 from Morph1984/readd-context-menu
configure_input_player: Re-add "Clear" context menu option
2020-09-17 22:59:13 -07:00
Morph 5435e0ee39 am: Stub GetPreviousProgramIndex
- Used in Super Mario 3D All-Stars
2020-09-17 22:03:02 -04:00
Morph 8be3c010bb configure_input_player: Re-add "Clear" context menu option
The context menu was removed in Mjölnir Part 1 as part of the input rewrite as we were unaware of it's usage statistics.
However, as this was the only way to clear the inputs of individual buttons, this PR will re-add it back in.
2020-09-17 21:57:06 -04:00
Morph 0b72422a10 submission_package: Account for multi-content NSPs
Previously we assumed a submission package can only contain one Program NCA with a single TitleID.
However, Super Mario 3D All-Stars contains four Program NCAs, each with their unique TitleIDs.
This accounts for the existence of multi-content games such as this one.
- Fixes booting Super Mario 3D All-Stars from the games list.
2020-09-17 20:44:51 -04:00
Rodrigo Locatti 2ca7e7160a Merge pull request #4670 from lioncash/initializer
arm_dynarmic_cp15: Initialize member variables
2020-09-17 21:20:53 +00:00
Rodrigo Locatti c1fdda9ff9 Merge pull request #4665 from lioncash/sm-kernel
service/sm: Eliminate dependency on the global system instance
2020-09-17 21:20:39 +00:00
Rodrigo Locatti 3a962913c7 Merge pull request #4666 from lioncash/unused-func
service: Remove unused funcation
2020-09-17 21:19:48 +00:00
Rodrigo Locatti 70b922675e Merge pull request #4671 from lioncash/nfp-copy
command_generator/nfp: Eliminate unnecessary copies
2020-09-17 21:19:12 +00:00
Rodrigo Locatti 3f649be2b0 Merge pull request #4672 from lioncash/narrowing
decoder/texture: Eliminate narrowing conversion in GetTldCode()
2020-09-17 21:17:54 +00:00
Rodrigo Locatti ede7edd764 Merge pull request #4673 from lioncash/fallthrough
decode/image: Eliminate switch fallthrough in DecodeImage()
2020-09-17 21:17:16 +00:00
bunnei 9a2553c952 Merge pull request #4594 from german77/MotionHID
hid/configuration: Implement motion controls to HID
2020-09-17 12:39:01 -07:00
Lioncash 888cca3dfc decode/image: Eliminate switch fallthrough in DecodeImage()
Fortunately this didn't result in any issues, given the block that code
was falling through to would immediately break.
2020-09-17 15:12:18 -04:00
Lioncash 8f587c15ac decoder/texture: Eliminate narrowing conversion in GetTldCode()
The assignment was previously truncating a u64 value to a bool.
2020-09-17 15:04:17 -04:00
Lioncash 6632af0301 audio_core/command_generator: Use const references where applicable
In a lot of cases, we can make use of const references rather than
non-const references.

While we're in the area we can silence some truncation and sign
conversion warnings.
2020-09-17 13:52:55 -04:00
Lioncash d0b648ecf8 audio_core/command_generator: Avoid an unnecessary copy in GenerateFinalMixCommand() 2020-09-17 13:45:24 -04:00
Lioncash 45a608088c nfp: Eliminate two unnecessary copies
GetAmiiboBuffer() returns by const reference, so we can use a reference
instead of taking the returned buffer by value.
2020-09-17 13:35:55 -04:00
Lioncash 4d0fa3544f arm_dynarmic_cp15: Initialize member variables
Ensures that the member variables are always initialized to a
deterministic value on creation.
2020-09-17 13:03:49 -04:00
Lioncash 43a09c9bfc control_metadata: Resolve typo in Portuguese language name
This isn't used anywhere, so this is a trivial fix.
2020-09-17 11:45:30 -04:00
Lioncash 341c612474 service: Remove unused funcation
This is now completely unused, so it can be removed.
2020-09-17 11:03:26 -04:00
Lioncash e4747039da service/sm: Slightly more efficient string name validation
We can check the end of the string first for null-termination, rather
than the beginning of the string.
2020-09-17 10:54:12 -04:00
Lioncash 95e8dff0d7 service/sm: Eliminate dependency on the global system instance 2020-09-17 10:43:54 -04:00
bunnei bf6614c189 Merge pull request #4653 from ReinUsesLisp/gc-warns
gc_adapter: Disable MSVC nonstandard extension warning on libusb.h
2020-09-16 22:33:58 -07:00
bunnei 78267273ec Merge pull request #4663 from ReinUsesLisp/wswitch
video_core: Enforce -Werror=switch
2020-09-16 20:43:23 -07:00
Lioncash 7824da5961 file_sys/romfs_factory: Eliminate usage of the global system accessor 2020-09-16 19:15:19 -04:00
Lioncash e45b727db5 file_sys/bis_factory: Eliminate usage of the global system accessor 2020-09-16 18:16:04 -04:00
Lioncash 279b79c880 loader/nso: Remove unnecessary [[maybe_unused]] 2020-09-16 18:09:01 -04:00
ReinUsesLisp ee7e70cfbc video_core: Enforce -Werror=switch
This forces us to fix all -Wswitch warnings in video_core.
2020-09-16 17:48:01 -03:00
Lioncash bcb796ee92 core/loader: Remove dependencies on the global system instance
Now all that remains is:

18 instances in file_sys code
14 instances in GDB stub code (this can be tossed wholesale)
4 instances in HLE code
2 instances in settings code.
2020-09-16 08:46:59 -04:00
Rodrigo Locatti d05ab5ec3c Merge pull request #4658 from lioncash/copy3
nca_patch: Reduce stack usage size within SearchBucketEntry()
2020-09-16 00:25:11 +00:00
Lioncash 80e57658ac nca_patch: Significantly reduce the stack usage size within SearchBucketEntry()
Previously this function was using ~16KB of stack (16528 bytes), which
was caused by the function arguments being taken by value rather than by
reference.

We can make this significantly lighter on the stack by taking them by
reference.
2020-09-15 09:10:58 -04:00
Lioncash a92c6ddd22 nca_patch: Make SearchBucketEntry() internally linked
This is only used internally and doesn't depend on any class state, so
we can make it fully internal.
2020-09-15 09:06:46 -04:00
Lioncash 15fa8f52fc cheat_engine: Convert ExtractName into a non-template function
We don't need to create two separate instantiations of the same code, we
can simply make the character template argument a regular function
parameter.
2020-09-15 03:24:44 -04:00
Lioncash 6711031e7d cheat_engine: Remove unnecessary system argument to CheatParser's Parse function
This isn't used within the function at all in any implementations, so we
can remove it entirely.
2020-09-15 03:20:40 -04:00
Lioncash 5c77fffc80 patch_manager: Resolve implicit truncations in FormatTitleVersion()
We make it explicit that we're truncating arithmetic here to resolve
compiler warnings (even if the sizes weren't u32/u64 arithmetic
generally promotes to int :<)
2020-09-14 19:19:59 -04:00
Lioncash 7abb47303e patch_manager: Make use of type aliases
We can use these to avoid typing the same type redundantly. This way, if
these ever change, only a single location needs to be modified.
2020-09-14 19:17:50 -04:00
Lioncash e8092e4099 patch_manager: Make a few functions internally linked
These functions are only used within this translation unit, so we can
make them internally linked.
2020-09-14 19:04:51 -04:00
ReinUsesLisp 67dd8466b3 gc_adapter: Disable MSVC nonstandard extension warning on libusb.h
Pragma disable zero-sized array nonstandard extension warning on MSVC.
2020-09-14 19:38:08 -03:00
Lioncash 767fcd8a81 crypto/key_manager: Remove dependency on the global system accessor
We can supply the content provider as an argument instead of hardcoding
a global accessor in the implementation.
2020-09-14 16:49:59 -04:00
Lioncash f700c48cc0 kernel: Remove all dependencies on the global system instance
With this, the kernel finally doesn't depend directly on the global
system instance anymore.
2020-09-14 14:03:13 -04:00
bunnei 35a0ff1d6f Merge pull request #4636 from lioncash/kernel-hle
service: Remove two usages of the global system accessor
2020-09-14 09:17:10 -07:00
bunnei 7b536a07f2 Merge pull request #4323 from ReinUsesLisp/no-spin
kernel/scheduler: Use std::mutex instead of spin lock
2020-09-11 23:23:53 -07:00
bunnei cbe7cdf7ca Merge pull request #4634 from lioncash/blocking
bsd: Resolve a few warnings
2020-09-11 15:17:34 -07:00
bunnei b205c01a95 Merge pull request #4310 from ogniK5377/apollo-1-prod
audio_core: Apollo Part 1, AudioRenderer refactor
2020-09-11 10:57:27 -04:00
bunnei c2ad9f6fc9 Merge pull request #4597 from Morph1984/mjolnir-p2
Project Mjölnir: Part 2 - Controller Applet
2020-09-10 19:28:23 -04:00
bunnei 0e021082fc Merge pull request #4608 from lioncash/sign3
configure_input_player: Resolve sign conversion warnings in UpdateMappingWithDefaults()
2020-09-10 13:56:16 -04:00
FearlessTobi b3d2fd39d3 Test: Decrease pad_update_ns
There have been reports of quite heavy input lag in the past.
Compared to Citra for example, our pad_update_ns value is very high.
So let's decrease it and see if it helps with this problem.
2020-09-10 16:38:53 +02:00
Rodrigo Locatti 8fcafa37a8 Merge pull request #4633 from ReinUsesLisp/gpu-init
video_core: Remove all Core::System references in renderer
2020-09-10 02:28:54 +00:00
Lioncash 054735e3fe service: Remove two usages of the global system accessor
Removes more instances of reliance on global state.
2020-09-07 03:18:45 -04:00
Lioncash 14d5340a9d gc_adapter: Make DeviceConnected() a const member function
This doesn't modify instance state, so it can be made const.
2020-09-07 02:49:13 -04:00
Lioncash b1c64e8c4f bsd: Resolve unused value within SendToImpl
Previously the address provided to SendToImpl would never be propagated
to SendTo(). This fixes that.
2020-09-07 01:06:30 -04:00
Lioncash 0bf0d9d3c3 bsd: Resolve sign comparison warnings 2020-09-07 01:06:27 -04:00
Lioncash 3467cfb357 sockets_translate: Make use of designated initializers
Same behavior, less typing.
2020-09-07 00:53:10 -04:00
Lioncash 2c196e7c6e blocking_worker: Make use of templated lambda
We can simplify this a little by explicitly specifying the typename for
the lambda function.
2020-09-07 00:47:46 -04:00
Lioncash 0d180e23f0 blocking_worker: Resolve -Wdocumentation warning 2020-09-07 00:45:53 -04:00
bunnei 16737bc8b6 Merge pull request #4606 from lioncash/constexpr
game_list_p: Mark some constants as constexpr
2020-09-06 23:19:38 -04:00
ReinUsesLisp 8efb2c5537 video_core: Remove all Core::System references in renderer
Now that the GPU is initialized when video backends are initialized,
it's no longer needed to query components once the game is running: it
can be done when yuzu is booting.

This allows us to pass components between constructors and in the
process remove all Core::System references in the video backend.
2020-09-06 05:28:48 -03:00
bunnei a6945afa54 Merge pull request #4397 from ReinUsesLisp/bsd
services: Implement most of bsd:s and GetCurrentIpAddress from nifm
2020-09-05 22:40:59 -04:00
Morph 55db7a4e0a configure_input: Hook up the motion button and checkbox
This allows toggling motion on or off, and allows access to the motion configuration.
Also changes the [waiting] text for motion buttons to Shake! as this is how motion is connected to a player.
2020-09-05 09:46:34 -04:00
german b26bc3864a Minor cleanup 2020-09-05 09:42:21 -04:00
german 82eb4be33b Add cemu hook changes related to PR #4609 2020-09-04 21:48:13 -05:00
german 17b48f8d42 Remove RealMotionDevice 2020-09-04 21:48:13 -05:00
Morph 4c09c78391 configure_input_player: Show/hide motion buttons based on the controller 2020-09-04 21:48:13 -05:00
Morph a04a7174c7 controllers/npad: Simplify motion entry assignment
Simplifies the motion assignment in the Dual Joycon entry and assigns index 1 of the motion entry (Motion 2) for the right joycon.
2020-09-04 21:48:13 -05:00
german 876e6fc255 Include HID and configuration changes related to motion 2020-09-04 21:48:03 -05:00
Morph ce1c6f2eea hid: Implement MergeSingleJoyasDualJoy
- Used in multiple games such as Super Mario Odyssey.
2020-09-04 15:38:33 -04:00
Morph 0ce52a8070 applets/controller: Resolve several compiler warnings
Resolves -Wsign-compare and -Wunused-variable
2020-09-04 12:23:26 -04:00
Morph 5c853d4dc7 Address feedback 2020-09-04 12:23:25 -04:00
Morph 0efbd23445 clang-format 2020-09-04 12:23:25 -04:00
Morph b9cde4fa6d applets/controller: Set min_players to have a minimum value of 1.
- Some games like Shipped have a minimum requirement of 0 connected players and is undesired behavior. We must require a minimum of 1 player connected regardless of what games may ask.
2020-09-04 12:23:25 -04:00
Morph 212b4a584d applets/controller: Modify heuristic to account for certain games
Now left and right joycons have the same priority (meaning both needs to be supported by the game).

Explanation of the new heuristic:
Assign left joycons to even player indices and right joycons to odd player indices.
We do this since Captain Toad Treasure Tracker expects a left joycon for Player 1 and a right Joycon for Player 2 in 2 Player Assist mode.
2020-09-04 12:23:25 -04:00
Morph c2ca06a65c main: Apply settings after applet configuration is complete. 2020-09-04 12:23:25 -04:00
Morph 3742ae763c applets/controller: Implement fallback applet for the SDL frontend
Implement the fallback applet for the SDL frontend, connecting only the minimum amount of players required.
2020-09-04 12:23:25 -04:00
Morph 38fcde96d7 applets/controller: Load configuration prior to setting up connections
This avoids unintentionally changing the states of elements while loading them in.
2020-09-04 12:23:25 -04:00
Morph afa931cb3c applets/controller: Make 8 a static constexpr value of NUM_PLAYERS
Avoids repetitive usages of the int literal '8' or calls to player_widgets.size()
2020-09-04 12:23:25 -04:00
Morph 00df69232a applets/controller: Implement "Explain Text"
"Explain Text" is additional text that is shown for each player in the controller applet.
2020-09-04 12:23:25 -04:00
Morph 4c621b9b09 Project Mjölnir: Part 2 - Controller Applet
Co-authored-by: Its-Rei <kupfel@gmail.com>
2020-09-04 12:23:25 -04:00
bunnei e5693e9c3a Merge pull request #4611 from lioncash/xbyak2
externals: Update Xbyak to 5.96
2020-09-03 20:24:27 -04:00
bunnei 9c6972fda5 Merge pull request #4583 from lioncash/trunc
gc_poller: Resolve compilation warnings on MSVC
2020-09-03 20:23:33 -04:00
bunnei c86b448089 Merge pull request #4578 from lioncash/xor
common_funcs: Add missing XOR operators to DECLARE_ENUM_FLAG_OPERATORS
2020-09-03 17:11:51 -04:00
bunnei 2af4f1ac07 Merge pull request #4590 from ReinUsesLisp/tsan-sched
hle/scheduler: Fix data race in is_context_switch_pending
2020-09-03 14:39:57 -04:00
bunnei c67bc53d3f Merge pull request #4575 from lioncash/async
async_shaders: Mark getters as const member functions
2020-09-03 11:34:30 -04:00
ReinUsesLisp 5bccefe24c file_sys/patch_manager: Add missing include
Fixes build issues
2020-09-03 04:51:49 -03:00
bunnei faea0ddc85 Merge pull request #4568 from lioncash/fsp
fsp_srv: Resolve -Wmaybe_uninitialized warning in OpenSaveDataFileSystem()
2020-09-02 23:07:03 -04:00
bunnei 40d236b401 Merge pull request #4564 from lioncash/file-include
file_sys: Replace inclusions with forward declarations where applicable
2020-09-02 23:06:38 -04:00
lat9nq ff09c0c1c9 main: Use three dots to complete the ellipsis
Fixes a typo in the UI file. An ellipsis has 3 dots.
2020-09-02 15:23:15 -04:00
Morph f3417b01e1 input_common/motion_input: Make use of Common::PI constant
Also amend the copyright notice to yuzu's instead of Dolphin's, which was mistakenly copy-pasted from another file.
2020-09-02 11:58:15 -04:00
bunnei 60e59d1d0c Merge pull request #4570 from german77/motionInput
input_common: Add a basic class for motion devices
2020-09-02 11:09:18 -04:00
bunnei 99ae6cfc68 Merge pull request #4382 from FearlessTobi/port-udp-config
yuzu: Add motion and touch configuration from Citra
2020-09-01 13:56:37 -04:00
bunnei f151cb5f71 Merge pull request #4588 from ReinUsesLisp/tsan-event
common/thread: Fix data race in is_set
2020-08-31 21:21:38 -04:00
bunnei 15cf2bfbcb Merge pull request #4589 from ReinUsesLisp/tsan-host
hle/kernel: Fix data race in GetCurrentHostThreadID
2020-08-31 21:20:49 -04:00
LC ce88bb3f00 Merge pull request #4461 from comex/thread-names
Fix thread naming on Linux, which limits names to 15 bytes.
2020-08-31 15:31:48 -04:00
ReinUsesLisp 6392fc8898 vk_device: Fix driver id check on AMD for VK_EXT_extended_dynamic_state
'driver_id' can only be known on Vulkan 1.1 after creating a logical
device. Move the driver id check to disable
VK_EXT_extended_dynamic_state after the logical device is successfully
initialized.

The Vulkan device will have the extension enabled but it will not be
used.
2020-08-30 20:22:48 -03:00
Lioncash 1233d14175 externals: Update Xbyak to 5.96
I made a request on the Xbyak issue tracker to allow some constructors
to be constexpr in order to avoid static constructors from needing to
execute for some of our register constants.

This request was implemented, so this updates Xbyak so that we can make
use of it.
2020-08-30 05:09:48 -04:00
bunnei 65fe94b685 Merge pull request #4601 from lioncash/const3
sdl_impl: Minor cleanup
2020-08-29 23:23:41 -04:00
bunnei ac1a7c7a55 Merge pull request #4605 from lioncash/copy3
bootmanager: Prevent unnecessary copies in TouchUpdateEvent()
2020-08-29 23:22:39 -04:00
FearlessTobi ee199ead59 Address second batch of reviews 2020-08-30 00:43:25 +02:00
Lioncash 9f9e02ba58 configure_input_player: Resolve sign conversion warnings in UpdateMappingWithDefaults()
Prevents sign mismatch warnings in the loop conditionals.
2020-08-29 16:43:12 -04:00
FearlessTobi 708e015ffc Reolve reorder warning 2020-08-29 22:06:47 +02:00
FearlessTobi 01dbe3a624 Address review comments and fix code compilation 2020-08-29 20:56:51 +02:00
Lioncash 428c1071f8 bootmanager: Prevent unnecessary copies in TouchUpdateEvent()
The list of points is returned by const reference, so we don't need to
make a copy of every element in the list.
2020-08-29 14:33:10 -04:00
Lioncash 55cc9b868b game_list_p: Avoid string churn in GameListItemPath data() 2020-08-29 14:30:49 -04:00
Lioncash 75f4e7d6b0 game_list_p: Mark some constants as constexpr
Consistency change with how we mark constants in the rest of the
codebase.
2020-08-29 14:23:41 -04:00
FearlessTobi 2903f0f7ce yuzu: Add motion and touch configuration 2020-08-29 18:56:34 +02:00
LC 437bc3c199 Merge pull request #4604 from lioncash/lifetime
yuzu/main: Amend lifetime issues with InputSubsystem
2020-08-29 01:33:29 -04:00
Lioncash 752b626714 yuzu/main: Amend lifetime issues with InputSubsystem
Due to the way Qt performs destruction of parent/child widgets, we need
to make the lifetime of the input subsystem shared across the main
window and the render window.
2020-08-29 00:58:11 -04:00
Morph c20b902843 yuzu/configuration: Fix index out of bounds for default_analogs 2020-08-29 00:24:47 -04:00
Lioncash 56d39caa1d sdl_impl: Reduce allocations in GetButtonMappingForDevice()
These maps can be constexpr arrays of std::pair.
2020-08-28 21:24:17 -04:00
Lioncash eb2ab15bdb sdl_impl: Make use of std::move on std::string where applicable
Avoids redundant copies.
2020-08-28 21:14:54 -04:00
Lioncash 285e3386e2 sdl_impl: Make use of insert_or_assign() where applicable
Avoids churning ParamPackage instances.
2020-08-28 21:13:26 -04:00
Lioncash 3413c8c046 sdl_impl: Prevent type truncation in BuildAnalogParamPackageForButton() default arguments
We need to add the 'f' suffix to make the right hand side a float and
not a double.
2020-08-28 21:08:08 -04:00
Lioncash 1338c58d37 sdl_impl: Simplify make_tuple call
The purpose of make_tuple is that you don't need to explicitly type out
the types of the things that comprise said tuple.

Given this just returns default values, we can simplify this a bit.
2020-08-28 21:04:18 -04:00
Lioncash 4dc59a4b64 sdl_impl: Mark FromEvent() as a const member function
This doesn't modify internal member state, so it can be marked as const.
2020-08-28 20:58:49 -04:00
LC 62b70f5226 Merge pull request #4600 from lioncash/prototype
input_common/main: Remove unimplemented prototype
2020-08-28 20:10:33 -04:00
Lioncash 0322ffa4fd input_common/main: Remove unnecessary headers 2020-08-28 19:23:19 -04:00
Lioncash 72d5a883a1 input_common/main: Remove unimplemented prototype
I forgot to remove this in the rebase when removing most of the global
variables within the input common codebase.
2020-08-28 19:11:17 -04:00
ReinUsesLisp a7ea965de5 vk_device: Blacklist AMD proprietary from VK_EXT_extended_dynamic_state
Vertex binding's <stride> is bugged on AMD's proprietary drivers when
using VK_EXT_extended_dynamic_state. Blacklist it for now while we
investigate how to report this issue to AMD.
2020-08-28 19:14:57 -03:00
bunnei fc797d39df Merge pull request #4544 from lioncash/input-sub
input_common: Eliminate most global state
2020-08-28 09:57:50 -04:00
bunnei 9fd13dd80a Merge pull request #4586 from yuzu-emu/tsan-cpu-interrupt
cpu_interrupt_handler: Make is_interrupted an atomic
2020-08-28 09:21:47 -04:00
german f327977dfa Fix orientation errors and improve drift correction 2020-08-27 17:19:21 -05:00
german dbf0608afd Address comments 2020-08-27 17:19:21 -05:00
german 0e11d1c09a Implement a basic class for motion devices 2020-08-27 17:19:21 -05:00
Lioncash affbf8e188 input_common: Eliminate most global state
Abstracts most of the input mechanisms under an InputSubsystem class
that is managed by the frontends, eliminating any static constructors
and destructors. This gets rid of global accessor functions and also
allows the frontends to have a more fine-grained control over the
lifecycle of the input subsystem.

This also makes it explicit which interfaces rely on the input subsystem
instead of making it opaque in the interface functions. All that remains
to migrate over is the factories, which can be done in a separate
change.
2020-08-27 16:11:17 -04:00
bunnei c76a188f47 Merge pull request #4530 from Morph1984/mjolnir-p1
Project Mjölnir: Part 1 - Input Rewrite
2020-08-27 14:58:44 -04:00
bunnei a8ab0af067 Merge pull request #4577 from lioncash/asserts
common/assert: Make use of C++ attribute syntax
2020-08-27 11:09:02 -04:00
bunnei ab46e0986e Merge pull request #4524 from lioncash/memory-log
shader/memory: Amend UNIMPLEMENTED_IF_MSG without a message
2020-08-27 00:16:10 -04:00
bunnei a36b8c6405 Merge pull request #4569 from ReinUsesLisp/glsl-cmake
video_core/host_shaders: Add CMake integration for string shaders
2020-08-26 22:57:39 -04:00
Morph 4ca910101f input_common/main: Add "/Mouse" to the display name 2020-08-26 22:41:51 -04:00
bunnei 8a4d19af75 Merge pull request #4555 from ReinUsesLisp/fix-primitive-topology
vk_state_tracker: Fix primitive topology
2020-08-26 22:19:52 -04:00
Lioncash ad83996932 memory_manager: Make use of [[nodiscard]] in the interface 2020-08-26 20:15:03 -04:00
Lioncash 4ccecf6fec memory_manager: Make operator+ const qualified
This doesn't modify member state, so it can be marked as const.
2020-08-26 20:11:58 -04:00
Morph 0d6a2a37d2 configure_input_player: Fix modifier scale button mapping 2020-08-26 02:32:32 -04:00
Morph bc37d84a84 configuration/input: Add support for mouse button clicks
Supports the Left, Right, Middle, Backward and Forward mouse buttons.
2020-08-26 02:32:32 -04:00
Morph 9b0f5da0c6 controllers/npad: Fix inconsistencies with controller connection statuses 2020-08-26 02:32:32 -04:00
Morph 4d6a8f3e8f controllers/npad: Fix LibNX controller connection statuses
This allows homebrew applications to be able to properly detect connected controllers.
2020-08-26 02:32:32 -04:00
Morph 9fc2eb2ee0 controllers/npad: Fix LedPattern for P1-4 2020-08-26 02:32:32 -04:00
Morph 5e4f03f663 input_common: Fix directional deadzone values
The hardware tested value is 0.5 which translates to SHRT_MAX / 2
2020-08-26 02:32:32 -04:00
Morph 24ce544120 Address feedback 2020-08-26 02:32:32 -04:00
Morph 34a209d15c Project Mjölnir: Part 1
Co-authored-by: James Rowe <jroweboy@gmail.com>
Co-authored-by: Its-Rei <kupfel@gmail.com>
2020-08-26 02:32:32 -04:00
Lioncash fa4a1718a7 gc_poller: Resolve compilation warnings on MSVC
We just need to make our intentional implicit truncations explicit.
2020-08-25 23:03:12 -04:00
ReinUsesLisp 8f050dd1d9 hle/scheduler: Fix data race in is_context_switch_pending
As reported by tsan, SelectThreads could write to
is_context_switch_pending holding a mutex while SwitchToCurrent reads it
without holding any.

It is assumed that the author didn't want an atomic here, so the code is
reordered so that whenever is_context_switch_pending is read inside
SwitchToContext, the mutex is locked.
2020-08-26 02:56:05 +00:00
ReinUsesLisp 6bf10ea8cf hle/kernel: Fix data race in GetCurrentHostThreadID
As reported by tsan, host_thread_ids could be read while
any of the RegisterHostThread variants were called.

To fix this, lock the register mutex when yuzu is running in multicore
mode and GetCurrentHostThreadID is called.
2020-08-26 02:52:50 +00:00
ReinUsesLisp d2a084b683 common/thread: Fix data race in is_set
As report by tsan, Event::Set can write is_set while WaitFor and friends
are reading from it. To address this issue, make is_set an atomic.
2020-08-26 02:50:51 +00:00
ReinUsesLisp ad0306e520 cpu_interrupt_handler: Misc style changes 2020-08-26 02:43:26 +00:00
ReinUsesLisp 7eb6cc742a cpu_interrupt_handler: Make is_interrupted an atomic
Fixes a race condition detected from tsan
2020-08-26 02:43:15 +00:00
bunnei 6d9165c252 Merge pull request #4574 from lioncash/const-fn
memory_manager: Mark IsGranularRange() as a const member function
2020-08-25 11:24:13 -04:00
bunnei e0b4361aaf Merge pull request #4563 from lioncash/rcache
registered_cache: Make use of designated initializers
2020-08-25 10:07:33 -04:00
bunnei 043fe3c02f Merge pull request #4548 from lioncash/color
common/color: Migrate code over to the Common namespace
2020-08-25 10:07:13 -04:00
M&M c6f9cad218 logging/settings: Increase maximum log size to 100 MB and add extended logging option
The extended logging option is automatically disabled on boot but can be enabled afterwards, allowing the log file to go up to 1 GB during that session.
This commit also fixes a few errors that are present in the general debug menu.
2020-08-24 21:39:56 -07:00
bunnei d196957ae2 Merge pull request #4542 from ReinUsesLisp/gpu-init-base
video_core: Initialize renderer with a GPU
2020-08-24 22:56:11 -04:00
bunnei 420c6d11be Merge pull request #4562 from lioncash/loop
cpu_manager: Make use of ranged for where applicable
2020-08-24 17:58:41 -04:00
Lioncash 50c1158d21 common_funcs: Add missing XOR operators to DECLARE_ENUM_FLAG_OPERATORS
Ensures that the full set of bitwise operators are available for types
that make use of this macro.
2020-08-24 04:42:43 -04:00
Lioncash 4861eb64aa common/assert: Make use of C++ attribute syntax
Normalizes the syntax used for attributes
2020-08-24 04:15:10 -04:00
Lioncash e95290cfaf async_shaders: Mark getters as const member functions
While we're at it, we can also mark them as nodiscard.
2020-08-24 01:15:50 -04:00
Lioncash 9a974b8cb9 memory_manager: Mark IsGranularRange() as a const member function
This doesn't modify internal member state, so it can be marked as const.
2020-08-24 00:37:57 -04:00
Lioncash 18732e9822 gl_texture_cache: Take std::string by reference in DecorateViewName()
LabelGLObject takes a string_view, so we don't need to make copies of
the std::string.
2020-08-23 23:36:33 -04:00
Lioncash d62357c8ae video_core/fence_manager: Remove unnecessary includes
Avoids pulling in unnecessary things that can cause rebuilds when they
aren't required.
2020-08-23 21:44:50 -04:00
bunnei 18cce1dc8a Merge pull request #4561 from lioncash/key-constexpr
key_manager: Make data arrays constexpr
2020-08-23 20:41:05 -04:00
ReinUsesLisp ecde168452 video_core/host_shaders: Add CMake integration for string shaders
Add the necessary CMake code to copy the contents in a string source
shader (GLSL or GLASM) to a header file then consumed by video_core
files.

This allows editting GLSL in its own files without having to maintain
them in source files.

For now, only OpenGL presentation shaders are moved, but we can add
GLASM presentation shaders and static SPIR-V generation through
glslangValidator in the future.
2020-08-23 21:37:20 -03:00
ReinUsesLisp 82f88a0203 gl_shader_util: Use std::string_view instead of star pointer
This allows us passing any type of string and hinting the length of the
string to the OpenGL driver.
2020-08-23 21:23:54 -03:00
bunnei 88cf35db7d Merge pull request #4549 from lioncash/files
vfs_real: Avoid redundant map lookups
2020-08-23 19:08:36 -04:00
bunnei 52a7dbf5eb Merge pull request #4559 from lioncash/webresult
web_service: Move web_result.h into web_service
2020-08-23 17:54:43 -04:00
Lioncash 6eeeebeb9d fsp_srv: Resolve -Wunused-but-set-variable warning
We can just log out the parameters in the meantime.
2020-08-23 17:16:32 -04:00
Lioncash da15e9f8a7 file_sys: Replace inclusions with forward declarations where applicable
Same behavior, minus unnecessary inclusions where not necessary.
2020-08-23 17:02:55 -04:00
Lioncash c26b29c2c6 fsp_srv: Resolve -Wmaybe_uninitialized warning in OpenSaveDataFileSystem()
Initialize id to a deterministic value and also mark the unreachable
cases in the switch with UNREACHABLE().
2020-08-23 16:37:57 -04:00
Lioncash 942badd1e7 registered_cache: Make use of ends_with for string suffix checking
Simplifies code.
2020-08-23 11:25:45 -04:00
Lioncash a185b6cf21 registered_cache: Make use of designated initializers
Removes the need for comments to indicate the fields being assigned.
2020-08-23 10:26:20 -04:00
bunnei 5a675f4633 Merge pull request #4560 from lioncash/convert
core_timing: Resolve sign conversion warning
2020-08-23 02:11:14 -04:00
Lioncash ebe30ea145 key_manager: Make data arrays constexpr
We can convert these maps into constexpr arrays to eliminate some
runtime static constructors.
2020-08-22 22:47:24 -04:00
Lioncash beca7a0429 cpu_manager: Make use of ranged for where applicable
We can simplify a few loops by making use of ranged for.
2020-08-22 22:43:19 -04:00
Lioncash 96214f8600 core_timing: Remove unused header 2020-08-22 22:12:37 -04:00
Lioncash aae74a55da core_timing: Move clock initializer into constructor initializer list
Same behavior, minus unnecessary zeroing out of the pointer.
2020-08-22 20:26:48 -04:00
Lioncash 41c74f4f0c core_timing: Resolve sign conversion warning
This constant is only ever assigned to downcount, which is a s64, not a
u64.
2020-08-22 20:26:45 -04:00
Lioncash 77d6d3bf4b web_service: Move web_result.h into web_service
This is the only place it's actively used. It's also more appropriate
for web-related structures to be within the web service target.
Especially given this one doesn't rely on anything in the common
library.
2020-08-22 19:29:54 -04:00
ReinUsesLisp 1c61cf29b6 video_core: Initialize renderer with a GPU
Add an extra step in GPU initialization to be able to initialize render
backends with a valid GPU instance.
2020-08-22 01:51:45 -03:00
bunnei 7401b78840 Merge pull request #4521 from lioncash/optionalcache
gl_shader_disk_cache: Make use of std::nullopt where applicable
2020-08-21 23:56:55 -04:00
bunnei 915aeb2550 Merge pull request #4541 from MerryMage/yolo
dynarmic: Add unsafe optimizations
2020-08-21 23:06:21 -04:00
bunnei 39c24d07df Merge pull request #4523 from lioncash/self-assign
macro-interpreter: Resolve -Wself-assign-field warning
2020-08-21 18:25:53 -04:00
ReinUsesLisp 39cab995e3 vk_state_tracker: Fix primitive topology
State track the current primitive topology with a regular comparison
instead of using dirty flags.

This fixes a bug in dirty flags for this particular state and it also
avoids unnecessary state changes as this property is stored in a
frequently changed bit field.
2020-08-20 23:07:30 -03:00
ReinUsesLisp 74e1e7cfca vk_device: Use Vulkan 1.0 properly
Enable the required capabilities to use Vulkan 1.0 without validation
errors and disable those that are not compatible with it.
2020-08-20 16:55:22 -03:00
ReinUsesLisp b29e2d4656 renderer_vulkan: Create a Vulkan 1.0 instance when 1.1 is not available
This commit doesn't make yuzu compatible with Vulkan 1.0 yet, it only
creates an 1.0 instance.
2020-08-20 16:55:22 -03:00
bunnei ded348b94a Merge pull request #4546 from lioncash/telemetry
common/telemetry: Migrate namespace into the Common namespace
2020-08-20 14:29:13 -04:00
bunnei bb17f99ce6 Merge pull request #4547 from lioncash/header-concept
common/concepts: Move <type_traits> include out of the Common namespace
2020-08-19 23:29:45 -04:00
bunnei 55d11a0bfd Revert "common/time_zone: Simplify GetOsTimeZoneOffset()" 2020-08-19 18:27:31 -04:00
bunnei c35a7e8b3a Merge pull request #4539 from lioncash/disc
common: Silence two discarded result warnings
2020-08-18 22:03:09 -04:00
bunnei 02b8956639 Merge pull request #4522 from lioncash/vulk-copy
vulkan/wrapper: Avoid unnecessary copy in EnumerateInstanceExtensionProperties()
2020-08-18 19:31:35 -04:00
Lioncash ecb9029c6a common/telemetry: Migrate namespace into the Common namespace
Migrates the Telemetry namespace into the Common namespace to make the
code consistent with the rest of our common code.
2020-08-18 15:08:32 -04:00
Lioncash d9fc3abc1f vfs_real: Resolve sign conversion warnings 2020-08-18 14:58:33 -04:00
Lioncash 182739ce1b vfs_real: Avoid redundant map lookups
Avoids some trivially avoidable map lookups by keeping the result of
find operations around and querying them.
2020-08-18 14:58:29 -04:00
Lioncash 475e8a40ea common/color: Migrate code over to the Common namespace
No external code makes use of this header, so we can freely change the
namespace.
2020-08-18 14:27:41 -04:00
Lioncash e478c61eeb common/concepts: Move <type_traits> include out of the Common namespace
This is a compiler/linker error waiting to happen.
2020-08-18 14:24:54 -04:00
bunnei 0e803716d2 Merge pull request #4381 from Morph1984/fix-open-folder-installed-title
main: Fix Open Save/Mod Locations for installed titles
2020-08-18 12:54:06 -04:00
bunnei d41da32b19 Merge pull request #4532 from lioncash/object-name
configuration_shared: Simplify name lookup in highlighting functions
2020-08-18 00:45:02 -04:00
bunnei ab2ebb773e Merge pull request #4535 from lioncash/fileutil
common/fileutil: Convert namespace to Common::FS
2020-08-17 22:35:30 -04:00
bunnei 02ad0482f1 Merge pull request #4537 from lioncash/tz
common/time_zone: Simplify GetOsTimeZoneOffset()
2020-08-17 14:27:02 -04:00
bunnei 6c92f886d3 Merge pull request #4540 from lioncash/tr3
configure_hotkeys: Don't translate empty strings
2020-08-17 12:24:58 -04:00
bunnei 337c9de4bd Merge pull request #4494 from lioncash/transcode
aes_util: Make use of non-template variant of Transcode
2020-08-17 03:50:35 -04:00
Rodrigo Locatti dab507e850 Merge pull request #4531 from lioncash/overload
yuzu: Make use of qOverload where applicable
2020-08-17 04:13:14 -03:00
David a705bd0ef6 Merge pull request #4443 from ameerj/vk-async-shaders
vulkan_renderer: Async shader/graphics pipeline compilation
2020-08-17 15:06:11 +10:00
bunnei 5476c87467 Merge pull request #4515 from lat9nq/pgs-menubar-config
main: Add an option to modify the currrent game's configuration
2020-08-17 01:03:39 -04:00
David b88580e35d Merge pull request #4520 from lioncash/pessimize
async_shaders: Resolve -Wpessimizing-move warning
2020-08-17 14:36:05 +10:00
ameerj 4cb6ad9eaf Remove unneeded newlines, optional Registry in shader params
Addressing feedback from Rodrigo
2020-08-16 16:33:21 -04:00
Ameer J 8374d79c4b Morph: Update worker allocation comment
Co-authored-by: Morph <39850852+Morph1984@users.noreply.github.com>
2020-08-16 12:02:22 -04:00
ameerj b467d4dbd0 move thread 1/4 count computation into allocate workers method 2020-08-16 12:02:22 -04:00
ameerj 3fa34fa7bf Address feedback, add shader compile notifier, update setting text 2020-08-16 12:02:22 -04:00
ameerj 5a2879a781 Vk Async Worker directly emplace in cache 2020-08-16 12:02:22 -04:00
ameerj f029fa19bf Address feedback. Bruteforce delete duplicates 2020-08-16 12:02:22 -04:00
ameerj 77698ae7d6 Vk Async pipeline compilation 2020-08-16 12:02:22 -04:00
David Marcec f17f347e03 Preliminary effects 2020-08-17 01:23:55 +10:00
MerryMage 1057908c3a dynarmic: Add unsafe optimizations 2020-08-16 14:15:39 +01:00
Lioncash ea46b5546b configure_hotkeys: Don't translate empty strings
There's no need to translate an empty string. This just gives
translators unnecessary work.
2020-08-16 08:13:25 -04:00
Lioncash a87209e09d common/fileutil: Convert namespace to Common::FS
Migrates a remaining common file over to the Common namespace, making it
consistent with the rest of common files.

This also allows for high-traffic FS related code to alias the
filesystem function namespace as

namespace FS = Common::FS;

for more concise typing.
2020-08-16 06:52:40 -04:00
Lioncash a67c91f9dd common: Silence two discarded result warnings
These are intentionally discarded internally, since the rest of the
public API allows querying success. We want all non-internal uses of
these functions to be explicitly checked, so we can signify that we
intentionally want to discard the return values here.
2020-08-16 06:17:33 -04:00
Lioncash 89b10968fc common/time_zone: Simplify GetOsTimeZoneOffset()
We can simplify this function down into a single line with the use of
fmt. A benefit with the fmt approach is that the fmt variant of
localtime is thread-safe as well, making GetOsTimeZoneOffset()
thread-safe as well.
2020-08-16 03:58:47 -04:00
Lioncash f9fe50958e yuzu: Resolve -Wextra-semi warnings
While we're in the same area, we can ensure GameDir member variables are
always initialized to consistent values.
2020-08-16 03:58:29 -04:00
bunnei f3ea8a3653 Merge pull request #4528 from lioncash/discard
common: Make use of [[nodiscard]] where applicable
2020-08-16 01:47:54 -04:00
bunnei e6984ce40f Merge pull request #4519 from lioncash/semi
maxwell_3d: Resolve -Wextra-semi warning
2020-08-16 00:55:15 -04:00
lat9nq 385449fb24 main: Add an option to modify the currrent game's configuration
Creates a new entry in the Emulation menu called "Configure Current Game..." that is only available if a game is currently being executed in yuzu. When selected, it opens the game properties dialog for the current game.

Thanks to @BSoDGamingYT for reminding me to do this.
2020-08-15 20:28:48 -04:00
Lioncash 0977ef7d7f common/compression: Roll back std::span changes
Seems like all compilers don't support std::span yet.
2020-08-15 17:17:56 -04:00
Lioncash 2ef7815422 common: Make use of [[nodiscard]] where applicable
Now that clang-format makes [[nodiscard]] attributes format sensibly, we
can apply them to several functions within the common library to allow
the compiler to complain about any misuses of the functions.
2020-08-15 17:17:52 -04:00
bunnei 81eae1562a Merge pull request #4526 from lioncash/core-semi
core: Resolve several -Wextra-semi warnings
2020-08-15 02:14:11 -04:00
bunnei 2f477fe630 Merge pull request #4527 from lioncash/pessimizing2
software_keyboard: Resolve a pessimizing move warning
2020-08-15 02:13:44 -04:00
bunnei a191355688 Merge pull request #4492 from lioncash/linkage
system_control: Make functions internally linked where applicable
2020-08-15 02:11:49 -04:00
bunnei 88fdc4c659 Merge pull request #4463 from lioncash/lockdiscard
kernel/scheduler: Mark SchedulerLock constructor as nodiscard
2020-08-15 01:31:23 -04:00
bunnei 352755a57a Merge pull request #4416 from lioncash/span
lz4_compression/zstd_compression: Make use of std::span in interfaces
2020-08-15 00:53:11 -04:00
bunnei d9dacef9d7 Merge pull request #4453 from ReinUsesLisp/block-to-linear
textures/decoders: Fix block linear to pitch copies
2020-08-14 19:52:12 -04:00
Lioncash f6ff8a0235 configuration_shared: Simplify name lookup in highlighting functions
We can query the given object name directly from the widget itself. This
removes any potential for forgetting to change the name if the widget
gets renamed and makes the API much simpler (just pass in the widget,
and not worry about its name).
2020-08-14 14:17:02 -04:00
Lioncash 0d29e40857 yuzu: Make use of qOverload where applicable
Eliminates a verbose function cast.
2020-08-14 14:12:55 -04:00
Lioncash b86bba9f7e time_zone_content_manager: Collapse auto and default case
Prevents a useless self-assignment from occurring.
2020-08-14 10:58:58 -04:00
David Marcec ac9d36c1dc Disable biquad filter 2020-08-14 23:20:20 +10:00
Lioncash 910dff8816 software_keyboard: Resolve a pessimizing move warning
A std::vector created in place like this is already an rvalue and
doesn't need to be moved.
2020-08-14 09:14:54 -04:00
Lioncash 0c78ed16df core: Resolve several -Wextra-semi warnings
We can amend one of the cascade macros to require semicolons in order to
compile. In other cases, we can just remove the superfluous semicolons.
2020-08-14 09:09:20 -04:00
Lioncash 7557cf39f9 shader/memory: Amend UNIMPLEMENTED_IF_MSG without a message
We need to provide a message for this variant of the macro, so we can
simply log out the type being used.
2020-08-14 08:38:37 -04:00
Lioncash dea59d837b macro-interpreter: Resolve -Wself-assign-field warning
This was assigning the field to itself, which is a no-op. The size
doesn't change between its initial assignment and this one, so this is a
safe change to make.
2020-08-14 08:26:50 -04:00
Lioncash cde4447257 vulkan/wrapper: Avoid unnecessary copy in EnumerateInstanceExtensionProperties()
Given this is implicitly creating a std::optional, we can move the
vector into it.
2020-08-14 08:23:49 -04:00
Lioncash cb79f177aa gl_shader_disk_cache: Make use of std::nullopt where applicable
Allows the compiler to avoid unnecessarily zeroing out the internal
buffer of std::optional on some implementations.
2020-08-14 08:20:44 -04:00
Lioncash a743375791 async_shaders: Resolve -Wpessimizing-move warning
Prevents pessimization of the move constructor (which thankfully didn't
actually happen in practice here, given std::thread isn't copyable).
2020-08-14 08:16:50 -04:00
Lioncash 6dd94f94e6 maxwell_3d: Resolve -Wextra-semi warning
Semicolons after a function definition aren't necessary.
2020-08-14 08:13:41 -04:00
David Marcec 2b0185e2a0 Reworked ADPCM decoder to allow better streaming 2020-08-14 21:04:28 +10:00
Lioncash f44ad07f2f emu_window: Mark Scoped constructor and Acquire() as nodiscard
Ensures that callers make use of the constructor, preventing bugs from
silently occurring.
2020-08-14 04:43:44 -04:00
Lioncash 8d7e58562f kernel/scheduler: Mark SchedulerLock constructor as nodiscard
Allows the compiler to warn about cases where the constructor is used
but then immediately discarded, which is a potential cause of
locking/unlocking bugs.
2020-08-14 04:43:44 -04:00
Rodrigo Locatti 2740be0f9d Merge pull request #4495 from lioncash/conv
cheat_engine: Resolve implicit bool->u64 conversion
2020-08-14 03:10:17 -03:00
bunnei a03ec7bdf4 Merge pull request #4514 from Morph1984/worker-alloc
gl_shader_cache: Use std::max() for determining num_workers
2020-08-13 17:06:57 -04:00
LC 77a3efb1c5 Merge pull request #4511 from lioncash/build2
General: Tidy up clang-format warnings part 2
2020-08-13 15:13:21 -04:00
Lioncash 78ddcbe3ba General: Tidy up clang-format warnings part 2 2020-08-13 14:19:08 -04:00
Morph 237d4bb1c5 gl_shader_cache: Use std::max() for determining num_workers
Does not allocate more threads than available in the host system for boot-time shader compilation and always allocates at least 1 thread if hardware_concurrency() returns 0.
2020-08-12 09:23:34 -04:00
bunnei d7958019b6 Merge pull request #4497 from lioncash/freezer-alg
freezer: Make use of std::erase_if
2020-08-11 23:07:17 -04:00
bunnei 0a7b8e1308 Merge pull request #4493 from jbeich/dragonfly
common/virtual_buffer: drop unused includes
2020-08-11 12:52:50 -04:00
bunnei 312c3a7327 Merge pull request #4502 from lioncash/build
General: Tidy up clang-format warnings
2020-08-11 11:04:05 -04:00
ReinUsesLisp 9a83f8794b textures/decoders: Fix block linear to pitch copies
There were two issues with block linear copies. First the swizzling was
wrong and this commit reimplements them.

The other issue was that these copies are generally used to download
render targets from the GPU and yuzu was not downloading them from
host GPU memory unless the extreme GPU accuracy setting was selected.
This commit enables cached memory reads for all accuracy levels.

- Fixes level thumbnails in Super Mario Maker 2.
2020-08-10 20:45:03 -03:00
bunnei 10c4fff79c Merge pull request #4496 from lioncash/ce-desig
cheat_engine: Make use of designated initializers
2020-08-10 13:53:43 -04:00
ameerj 5d4750541b Remove UI changes
This PR is now only the Analog devices handling the range value defaulting at 100%
2020-08-10 12:46:14 -04:00
ameerj ac3cdc1741 Add range slider functionality for gc adapter 2020-08-10 12:46:14 -04:00
Ameer 6afee6b0c8 undo unnecessary newlines, slider range 50-150 2020-08-10 12:46:14 -04:00
Ameer 16d15421c5 Address c++20 warning, fix inaccurate range text display when slide == 0 2020-08-10 12:46:14 -04:00
Ameer 1eb1eff48c Add range slider for analog sticks 2020-08-10 12:46:14 -04:00
bunnei 16993fc92b Merge pull request #4491 from lioncash/unused-vars
kernel: Remove unused variables
2020-08-10 12:04:30 -04:00
bunnei 51bfe3397f Merge pull request #4488 from lioncash/file
vfs_vector: Make creation of array vfs files less verbose
2020-08-09 17:19:34 -04:00
Lioncash 14874f0b67 General: Tidy up clang-format warnings 2020-08-08 20:08:44 -04:00
bunnei dc446cf34e Merge pull request #4448 from Morph1984/fix-entries
game_list_worker: Do not clear entries when > 1 gamedir is present
2020-08-07 17:11:52 -04:00
bunnei 7483e76613 Merge pull request #4457 from ogniK5377/SetScreenShotPermission
am: Unstub SetScreenShotPermission
2020-08-07 09:34:20 -04:00
bunnei d17331ebbf Merge pull request #4389 from ogniK5377/redundant-format-type
video_core: Remove redundant pixel format type
2020-08-07 09:33:58 -04:00
Lioncash 80d04c0daa common/concepts: Rename IsBaseOf to DerivedFrom
This makes it more inline with its currently unavailable standardized
analogue std::derived_from.

While we're at it, we can also make the template match the requirements
of the standardized variant as well.
2020-08-07 08:09:57 -04:00
bunnei 27636c8a7a Merge pull request #4483 from lioncash/constexpr-hex
partition_data_manager: Make data arrays constexpr
2020-08-06 23:14:14 -04:00
bunnei 556422d711 Merge pull request #4490 from lioncash/arbiter
address_arbiter/scheduler: Resolve sign conversion warnings
2020-08-06 22:28:11 -04:00
Lioncash 21229948aa freezer: Move entry finding to its own function
Cleans up the callsites in other functions.
2020-08-06 03:11:21 -04:00
Lioncash 4a54d99f0d freezer: Take address values by value
VAddr will always be 64-bit, so there's no need to take a trivial
primitive alias by reference.
2020-08-06 03:04:54 -04:00
Lioncash b67eb6746b freezer: Make use of std::erase_if
With C++20 we can simplify the erasing idiom.
2020-08-06 03:03:05 -04:00
Lioncash 304da7bfc8 cheat_engine: Resolve implicit bool->u64 conversion
We can just return zero here.
2020-08-06 02:55:47 -04:00
Lioncash 6c2392941b cheat_engine: Make use of designated initializers
Same behavior, but makes the member being assigned obvious.
2020-08-06 02:48:13 -04:00
Lioncash accf36193b partition_data_manager: Update master key hashes
Fills in some hashes that were previously unhandled.
2020-08-06 02:42:01 -04:00
Lioncash b0c3f66dc7 partition_data_manager: Make data arrays constexpr
Previously the constructor for all of these would run at program
startup, consuming time before the application can enter main().

This is also particularly dangerous, given the logging system wouldn't
have been initialized properly yet, yet the program would use the logs
to signify an error.

To rectify this, we can replace the literals with constexpr functions
that perform the conversion at compile-time, completely eliminating the
runtime cost of initializing these arrays.
2020-08-06 02:41:58 -04:00
Lioncash c4f9130264 partition_data_manager: Eliminate magic value
We can use sizeof to make it obvious at the call site where the value is
coming from.
2020-08-06 02:34:10 -04:00
Lioncash 8b8cb4da9f aes_util: Make use of non-template variant of Transcode
Same behavior, less template instantiations.
2020-08-06 02:31:19 -04:00
comex 23523e4c0a Fix thread naming on Linux, which limits names to 15 bytes.
- In `SetCurrentThreadName`, when on Linux, truncate to 15 bytes, as (at
  least on glibc) `pthread_set_name_np` will otherwise return `ERANGE` and
  do nothing.
- Also, add logging in case `pthread_set_name_np` returns an error
  anyway.  This is Linux-specific, as the Apple and BSD versions of
  `pthread_set_name_np return `void`.
- Change the name for CPU threads in multi-core mode from
  "yuzu:CoreCPUThread_N" (19 bytes) to "yuzu:CPUCore_N" (14 bytes) so it
  fits into the Linux limit.  Some other thread names are also cut off,
  but I didn't bother addressing them as you can guess them from the
  truncated versions.  For a CPU thread, truncation means you can't see
  which core it is!
2020-08-05 20:34:49 -07:00
bunnei f0be76a50a Merge pull request #4489 from lioncash/typesafe
ipc_helpers: Only allow trivially copyable objects with PushRaw() and PopRaw()
2020-08-05 23:20:23 -04:00
bunnei 7f6689983f Merge pull request #4484 from lioncash/aesutil
aes_util: Allow SetIV() to be non-allocating
2020-08-05 22:35:41 -04:00
bunnei 9e2e3dacdd Merge pull request #4477 from lioncash/log-desig
logging/backend: Make use of designated initializers
2020-08-05 22:34:12 -04:00
Jan Beich ff9473d6a0 common/virtual_buffer: drop unused includes
On DragonFly and NetBSD build fails with

src/common/virtual_buffer.cpp
src/common/virtual_buffer.cpp:16:10: fatal error: sys/sysinfo.h: No such file or directory
 #include <sys/sysinfo.h>
          ^~~~~~~~~~~~~~~
2020-08-05 21:36:35 +00:00
bunnei c6ea0b876c Merge pull request #4475 from lioncash/bqueue
buffer_queue: Make use of designated initializers/std::nullopt where applicable
2020-08-05 16:56:46 -04:00
bunnei 5c068fa60c Merge pull request #4479 from lioncash/concepts
CMakeLists: Resolve #4478
2020-08-05 16:18:08 -04:00
Lioncash 9e72b1df7d system_control: Make functions internally linked where applicable
These functions are only ever used internally as implementation details
for GenerateRandomRange(), so these can be given internal linkage.
2020-08-05 15:34:27 -04:00
Lioncash 3ea31a9922 kernel: Remove unused variables
Resolves a few compiler warnings.
2020-08-05 15:19:48 -04:00
Lioncash 353cd8dc24 scheduler: Resolve sign conversion warning 2020-08-05 15:12:29 -04:00
Lioncash 792c1666f7 address_arbiter: Resolve sign conversion warning
Makes our type conversion explicit.
2020-08-05 15:07:19 -04:00
bunnei 88efb0c4ce Merge pull request #4444 from lioncash/volatile
common/atomic_ops: Don't cast away volatile from pointers
2020-08-05 14:22:36 -04:00
Lioncash 43ef4a7305 ipc_helpers: Only allow trivially copyable objects with PushRaw() and PopRaw()
It's undefined behavior to use non-trivially copyable objects with
std::memcpy, so we can add asserts to catch usages of these at
compile-time.
2020-08-05 14:08:28 -04:00
Lioncash 42c79b8507 vfs_vector: Make creation of array vfs files less verbose
We can add a helper function to make creation of these files nicer.
While we're at it, we can eliminate an unnecessary std::array copy in
the constructor. This makes the overhead on some of these functions way
less intensive, given some arrays were quite large.

e.g. The timezone location names are 9633 bytes in size.
2020-08-05 12:37:00 -04:00
bunnei ccd9337ec7 Merge pull request #4466 from ogniK5377/loader-type-safe
loader: Make IdentifyFile typesafe
2020-08-05 12:34:25 -04:00
Morph 8890184d23 main: Fallback to loader if no control nca is found with patch manager
In some rare instances, the patch manager is not able to find a control nca, fallback to the previous method of parsing a control nca through the loader if this occurs.
2020-08-04 21:14:20 -04:00
Morph 714a04ebd8 main: Fix Open Save/Mod Locations for installed titles
Previously NAND/SDMC installed titles would open device saves when they are supposed to be user saves. This is due to the control nca not being read and thus returns 0 for both GetDefaultNormalSaveSize() and GetDeviceSaveDataSize(). Fix this by utilizing the patch manager to read the control nca.
2020-08-04 21:14:20 -04:00
Morph 07603e19b9 game_list_worker: Do not clear entries when > 1 gamedir is present
Previously the map of entries was being cleared while looping through each game directory, this resulted into all game directories except the last game dir to lose content metadata information. Fix this by clearing the entries only once.
2020-08-04 21:13:35 -04:00
bunnei 460d686bbd Merge pull request #4476 from lioncash/tz
time_zone_binary: Make use of designated initializers
2020-08-04 18:56:28 -04:00
bunnei 4e96278c63 Merge pull request #4401 from ogniK5377/GetIndirectLayerImageRequiredMemoryInfo
vi: IApplicationDisplayService:GetIndirectLayerImageRequiredMemoryInfo
2020-08-04 18:45:11 -04:00
bunnei 09bd480eab Merge pull request #4430 from bunnei/new-gpu-vmm
hle: nvdrv: Rewrite of GPU memory management.
2020-08-04 18:44:26 -04:00
bunnei 62a64fc33b Merge pull request #4445 from Morph1984/async-threads
renderer_opengl: Use 1/4 of all threads for async shader compilation
2020-08-04 18:43:42 -04:00
bunnei 9fa1bebc57 Merge pull request #4450 from Morph1984/fix-gamelist-scanning
game_list_worker: Fix game list subdirectory scanning
2020-08-04 18:43:17 -04:00
bunnei e909b4731b Merge pull request #4472 from lioncash/const-get
perf_stats: Mark GetMeanFrametime() as const
2020-08-04 07:00:23 -07:00
bunnei 7cbb4227c7 Merge pull request #4469 from lioncash/missing
vk_texture_cache: Silence -Wmissing-field-initializer warnings
2020-08-04 06:59:51 -07:00
David 614476af30 Merge pull request #4470 from lioncash/qualifier
patch_manager: Resolve -Wignored-qualifier warnings
2020-08-04 14:09:48 +10:00
David 82f4fb21e8 Merge pull request #4481 from lioncash/cpp-dep
yuzu: Resolve C++20 deprecation warnings related to lambda captures
2020-08-04 14:06:07 +10:00
David a7fa221005 Merge pull request #4474 from lioncash/hle-profile
profile_manager: Make use of designated initializers
2020-08-04 13:51:15 +10:00
bunnei a4ff924420 Merge pull request #4473 from lioncash/cheat-desig
dmnt_cheat_vm: Make use of designated initializers
2020-08-03 18:07:17 -07:00
bunnei cf35405a71 Merge pull request #4456 from Morph1984/stub-really-long-fs-func
fsp-srv: Stub Read/WriteSaveDataFileSystemExtraDataWithMaskBySaveDataAttribute
2020-08-03 18:06:48 -07:00
Lioncash c28e7f51f3 aes_util: Allow SetIV to be non-allocating
In a few places, the data to be set as the IV is already within an array.
We shouldn't require this data to be heap-allocated if it doesn't need
to be. This allows certain callers to reduce heap churn.
2020-08-03 14:29:58 -04:00
bunnei afe7c91b50 Merge pull request #4480 from lioncash/optimize
tests/core_timing: Remove pragma optimize(off)
2020-08-03 11:27:52 -07:00
bunnei cdd9f577b4 Merge pull request #4482 from lioncash/ldr-sign
service/ldr: Resolve sign mismatch warnings
2020-08-03 11:27:13 -07:00
bunnei 70a59da903 Merge pull request #4468 from lioncash/regcache
registered_cache: Resolve -Wmaybe_uninitialized warnings
2020-08-03 11:26:45 -07:00
bunnei 9a685a6c85 Merge pull request #4471 from ogniK5377/sm-getservice-concept
sm: Make use of IsBaseOf for GetService
2020-08-03 11:11:22 -07:00
Lioncash bb711ced9d perf_stats: Make use of designated initializers
Same behavior, but allows us to avoid a now-unnecessary zero
initialization.
2020-08-03 12:33:40 -04:00
Lioncash 2a2bc9c147 perf_stats: Mark GetMeanFrametime() as const
The general pattern is to mark mutexes as mutable when it comes to
matters of constness, given the mutex acts as a transient member of a
data structure.
2020-08-03 12:33:35 -04:00
Lioncash 29ee53cb35 vulkan: Silence more -Wmissing-field-initializer warnings 2020-08-03 12:28:57 -04:00
Lioncash 08e30e0240 yuzu: Resolve C++20 deprecation warnings related to lambda captures
C++20 deprecates capturing the this pointer via the '=' capture.
Instead, we replace it or extend the capture specification.
2020-08-03 11:54:04 -04:00
Lioncash 78ff298d6d service/ldr: Resolve sign mismatch warnings
We were performing an int < size_t comparison. We can just correct the
type of the induction variable.
2020-08-03 11:48:16 -04:00
Lioncash 7967b2cb56 CMakeLists: Resolve #4478
This switch is enabled by default in all recent versions of GCC and
Clang.
2020-08-03 11:21:24 -04:00
Lioncash 2745697bcc tests/core_timing: Remove pragma optimize(off)
I made a review comment about this in the PR that this was introduced
in (#3955, commit 4df46e0525), but it
seems to have been missed.

We shouldn't be using this pragma here because it's MSVC specific. This
causes warnings on other compilers.

The test it's surrounding is *extremely* dubious, but for the sake of
silencing warnings on other compilers, we can mark "placebo" as volatile
and be on with it.
2020-08-03 11:12:55 -04:00
bunnei be05759325 Merge pull request #4467 from lioncash/mode
file_sys/mode: Make use of DECLARE_ENUM_FLAG_OPERATORS with Mode
2020-08-03 08:07:56 -07:00
Lioncash 607a02edda time_zone_binary: Make use of designated initializers 2020-08-03 10:42:38 -04:00
Lioncash 8190a40d18 logging/backend: Make use of designated initializers
Same behavior, less code.
2020-08-03 10:37:48 -04:00
Lioncash a1aab876e6 buffer_queue: Make use of std::nullopt
Allows compilers to eliminate unnecessary zeroing out of the optional's
buffer.
2020-08-03 09:31:51 -04:00
Lioncash 9b1ab372a7 buffer_queue: Make use of designated initializers 2020-08-03 09:31:51 -04:00
Lioncash 5430961f0d profile_manager: Make use of std::nullopt
Allows some implementations to completely avoid unnecessarily zeroing
out the internal buffer.
2020-08-03 09:03:42 -04:00
Lioncash 1f909d614c profile_manager: Make use of designated initializers
More compact code.
2020-08-03 09:01:31 -04:00
Lioncash 743ed2b727 dmnt_cheat_vm: Make use of designated initializers
Allows for more compact code.
2020-08-03 08:50:51 -04:00
Lioncash 2fa750dd6b file_sys/mode: Make use of DECLARE_ENUM_FLAG_OPERATORS with Mode
Same behavior, minus a hand-rolled operator.
2020-08-03 07:52:36 -04:00
David Marcec 4d0ba04c73 sm: Make use of IsBaseOf for GetService 2020-08-03 21:46:14 +10:00
Lioncash 39ac833461 patch_manager: Resolve -Wignored-qualifier warnings
Top level const will always be ignored in this case, so it can be
removed.
2020-08-03 07:42:56 -04:00
Lioncash 872200c7a9 registered_cache: Resolve -Wmaybe_uninitialized warnings
While we're at it, we can avoid a redundant map lookup.
2020-08-03 07:34:46 -04:00
David Marcec b20f4de430 Place in anonymous namespace 2020-08-03 21:31:28 +10:00
David Marcec 46d3c84839 loader: Make IdentifyFile typesafe
Relies on #4465 for concept.h Common::IsBaseOf
2020-08-03 21:31:27 +10:00
David ecaac59acd ipc: Allow all trivially copyable objects to be passed directly into WriteBuffer (#4465)
* ipc: Allow all trivially copyable objects to be passed directly into WriteBuffer

With the support of C++20, we can use concepts to deduce if a type is an STL container or not.

* More agressive concept for stl containers

* Add -fconcepts

* Move to common namespace

* Add Common::IsBaseOf
2020-08-03 07:28:54 -04:00
David 6ecae2e559 Merge pull request #4263 from lat9nq/fix-screencaps-2
screenshots: Option to save screenshots immediately in a specified directory + Linux workaround
2020-08-03 21:00:14 +10:00
David 6b05ff83bb Merge pull request #4439 from lioncash/cpu
cpu_manager: Remove redundant std::function declarations
2020-08-03 20:58:31 +10:00
David 1e44d65d1e Merge pull request #4438 from lioncash/localizing
yuzu/main: Remove redundant usages of QStringLiteral("")
2020-08-03 20:58:00 +10:00
David Marcec 0cd3851934 mix buffer depopping 2020-08-01 16:25:08 +10:00
Morph f6fa311cf9 minor nits 2020-07-31 11:02:59 -04:00
David Marcec 542ea8c6e8 am: Unstub SetScreenShotPermission 2020-08-01 00:44:14 +10:00
Morph 488cacca52 fsp-srv: Stub Read/WriteSaveDataFileSystemExtraDataWithMaskBySaveDataAttribute
Stub these 2 service commands required for Animal Crossing: New Horizons Update 1.4.0
2020-07-30 15:39:44 -04:00
Morph 06adef078c fs: Rename SaveDataDescriptor to SaveDataAttribute 2020-07-30 15:29:39 -04:00
David 4d4f03d11c Merge pull request #4392 from lioncash/guard
compatible_formats: Add missing header guard
2020-07-31 01:08:56 +10:00
David Marcec 6368b02526 adpcm streaming 2020-07-30 18:16:57 +10:00
bunnei 2441e2670e Merge pull request #4396 from lioncash/comma
surface_params: Replace questionable usages of the comma operator with semicolons
2020-07-29 19:55:44 -04:00
Morph 9759c28518 game_list_worker: Fix game list subdirectory scanning
Oddly enough the scan that feeds the manual content provider is hardcoded to scan 2 nested directories deep.
This effectively rendered the scan subdirectories setting useless as the manual content provider cannot find any games located more than 2 nested directories deep.
Furthermore, this behavior causes game files to be picked up by the manual content provider even if scan subdirectories is disabled.

FIx this by utilizing the behavior described when populating the game list for populating the content provider.
2020-07-29 09:22:29 -04:00
Morph eafd4145ac main: Add support for removing SDMC installed titles 2020-07-29 06:50:30 -04:00
Morph 4a6d4ab839 xts_archive: Check if the file is nullptr prior to parsing
Fixes an access violation where the file no longer exists at the specified path while being parsed.
2020-07-29 06:50:30 -04:00
Morph 0724e89467 registered_cache: Add support for removing folder ncas 2020-07-29 06:50:30 -04:00
Morph d15eb82edc game_list: Limit context menu options for homebrew
Hides the following options when the title id is 0:
- Open Save Location
- Open Mod Data Location
- Open Transferable Shader Cache
- All removal options except Remove Custom Configuration
2020-07-29 06:50:30 -04:00
Morph 81e3d7e924 main: Remove assert for opening savedata when program_id = 0 2020-07-29 06:50:30 -04:00
Morph 092dda59cb main: Silence [[fallthrough]] warning 2020-07-29 06:50:30 -04:00
Morph 0c6e683a63 main: Split removal cases into their individual functions and address feedback 2020-07-29 06:50:30 -04:00
Morph 96583b9b05 main: Connect game list remove signals to removal functions 2020-07-29 06:50:30 -04:00
Morph c756d76945 game_list: Add "Remove" context menu
Adds the following actions:
- Remove Installed Update
- Remove All Installed DLC
- Remove Shader Cache
- Remove Custom Configuration
- Remove All Installed Contents
2020-07-29 06:50:30 -04:00
bunnei 04a8b17939 Merge pull request #4442 from lioncash/devicemem
device_memory: Remove unused system member
2020-07-28 13:03:30 -07:00
Morph 9fa696c0d5 configure_graphics: Remove Force 30 FPS mode
The introduction of multicore rendered this setting non-functional as timing code was changed.

This removes the setting entirely.
2020-07-28 08:07:26 -04:00
Morph b93b5093a9 renderer_opengl: Use 1/4 of all threads for async shader compilation 2020-07-28 05:08:27 -04:00
Lioncash 32ce1467e5 common/atomic_ops: Don't cast away volatile from pointers
Preserves the volatility of the pointers being casted.
2020-07-28 04:36:53 -04:00
ReinUsesLisp 87e6485855 service/bsd: Handle Poll with no entries accurately
Testing shows that Poll called with zero entries returns -1 and signals
an errno of zero.
2020-07-28 01:51:47 -03:00
ReinUsesLisp 853ee47a15 services/bsd: Implement most of bsd:s
This implements: Socket, Poll, Accept, Bind, Connect, GetPeerName,
GetSockName, Listen, Fcntl, SetSockOpt, Shutdown, Recv, RecvFrom,
Send, SendTo, Write, and Close

The implementation was done referencing: SwIPC, switchbrew, testing
with libnx and inspecting its code, general information about bsd
sockets online, and analysing official software.

Not everything from these service calls is implemented, but everything
that is not implemented will be logged in some way.
2020-07-28 01:48:42 -03:00
ReinUsesLisp 20ac4ae8b7 service/sockets: Add worker pool abstraction
Manage worker threads with an easy to use abstraction.
We can expand this to support thread deletion in the future.
2020-07-28 01:47:03 -03:00
ReinUsesLisp 3cd68cade4 service/sockets: Add worker abstraction to execute blocking calls asynchronously
This abstraction allows executing blocking functions (like recvfrom on a
socket configured for blocking) without blocking the service thread.
It is intended to be used with SleepClientThread.
2020-07-28 01:47:03 -03:00
ReinUsesLisp 8a8f687fd2 service/sockets: Add translate functions
These functions translate from Network enumerations/structures to guest
enumerations/structures and viceversa.
2020-07-28 01:47:03 -03:00
ReinUsesLisp c2a607014a service/sockets: Add enumerations and structures
Add guest enumerations and structures used in socket services
2020-07-28 01:47:03 -03:00
ReinUsesLisp bd466d12be services/nifm: Implement GetCurrentIpAddress
This is trivially implemented using the Network abstraction

- Used by ftpd
2020-07-28 01:47:03 -03:00
Lioncash 078b7446c7 device_memory: Remove unused system member
This isn't used by anything in particular, so it can be removed.
2020-07-27 23:37:49 -04:00
Lioncash 3c31a08802 cpu_manager: Remove redundant std::function declarations
We can just return the function directly. Making for less reading.
2020-07-27 21:57:05 -04:00
bunnei 1bd1d08fc4 Update src/core/hle/service/nvdrv/devices/nvmap.cpp
Co-authored-by: LC <mathew1800@gmail.com>
2020-07-27 18:27:20 -07:00
Lioncash 7decda6bc2 core_timing: Make use of uintptr_t to represent user_data
Makes the interface future-proofed for supporting other platforms in the event we ever support platforms with differing pointer sizes. This way, we have a type in place that is always guaranteed to be able to represent a pointer exactly.
2020-07-27 21:21:01 -04:00
Lioncash af5fdb4682 yuzu/main: Remove redundant usages of QStringLiteral("")
An empty QStringLiteral can more efficiently be replaced with an empty
QString.
2020-07-27 21:04:17 -04:00
bunnei f8370efc1b Merge pull request #4419 from lioncash/initializer
vulkan: Resolve -Wmissing-field-initializer warnings
2020-07-27 15:52:03 -07:00
bunnei 61fefea059 Merge pull request #4434 from CrazyMax/lang_unused_var
AM: GetDesiredLanguage: remove unused variable
2020-07-27 12:37:52 -07:00
Rodrigo Locatti ee09a7ba3a Merge pull request #4432 from bylaws/patch-1
video_core/gpu: Correct the size of the puller registers
2020-07-27 05:25:49 -03:00
CrazyMax ac316a25a1 remove unused variable; 2020-07-27 10:36:26 +03:00
bunnei d9f73562d8 Merge pull request #4431 from kelnos/fix-exit-crash
GCAdapter: only join worker thread if running & joinable
2020-07-26 18:03:37 -07:00
Brian J. Tarricone f637cfec64 GCAdapter: only join worker thread if running & joinable 2020-07-26 14:54:02 -07:00
Billy Laws 0d1a089177 video_core/gpu: Correct the size of the puller registers
The puller register array is made up of u32s however the `NUM_REGS` value is the size in bytes, so switch it to avoid making the struct unnecessary large. Also fix a small typo in a comment.
2020-07-26 22:26:29 +01:00
lat9nq 6befb6e733 config: Make the save-as identifier more consistent
Solves an issue with restoring the value upon reloading program.
2020-07-26 13:31:00 -04:00
bunnei 841de299af Merge pull request #4426 from lioncash/lock
nvflinger: Use return value of Lock()
2020-07-26 09:19:24 -07:00
bunnei c021c9f3ae Merge pull request #4418 from lioncash/udp-warn
udp/client: Remove unused boost include
2020-07-25 21:50:37 -07:00
bunnei 991aca142e hle: nvdrv: Rewrite of GPU memory management. 2020-07-26 00:49:43 -04:00
bunnei 54d0f82e6e Merge pull request #4415 from lioncash/maybe
virtual_buffer: Mark size parameter of FreeMemoryPages() as [[maybe_unused]]
2020-07-25 21:35:09 -07:00
bunnei aa100a7e22 Merge pull request #4417 from lioncash/poll
gc_adapter/gc_poller: Resolve compiler warnings
2020-07-25 19:42:09 -07:00
FearlessTobi 8574303acc yuzu/configure_debug: Remove duplicated checkboxes
Those are already found in the Filesystem tab.
They were added back to the Debug tab by mistake in the Vulkan PR.
2020-07-26 02:45:19 +02:00
Lioncash f35d0d8f83 nvflinger: Mark interface functions with return values as [[nodiscard]]
Not using the return value of these functions are undeniably the source
of a bug. This way we allow compilers to loudly make any future misuses
evident.
2020-07-25 19:42:45 -04:00
Lioncash 94ae1a0bf1 nvflinger: Use return value of Lock()
comex reported in #4424 that we were incorrectly discarding the return
value of Lock() which is correct.
2020-07-25 19:04:53 -04:00
bunnei 34f9706950 Merge pull request #4350 from ogniK5377/hid-update-connected
hid: Only update keyboard & debug pad inputs if enabled
2020-07-25 11:57:24 -07:00
LC 690e92c4f3 common/string_util: Remove unimplemented function prototype (#4414)
This function was relocated to log.h as a constexpr function, so this
can be removed.
2020-07-25 15:37:51 +02:00
David Marcec 844bee65b3 Fix perf regression 2020-07-25 21:46:25 +10:00
Lioncash 0ab49b988e vulkan: Resolve -Wmissing-field-initializer warnings 2020-07-25 03:50:18 -04:00
Lioncash 5987e39f21 udp/client: Remove unused boost include
Also silences a deprecation warning from boost on Clang/GCC.
2020-07-25 03:42:03 -04:00
Lioncash bc2f95ea67 gc_adapter: Resolve C++20 deprecation warning 2020-07-25 03:38:22 -04:00
Lioncash 6efd1a2675 gc_poller: Resolve -Wsign-compare warning 2020-07-25 03:37:22 -04:00
Lioncash e94ad47152 gc_poller: Resolve -Wredundant-move warning 2020-07-25 03:35:40 -04:00
Lioncash 57f72ffa49 lz4_compression: Make use of std::span in interfaces
Allows compressing the data and size parameters into one.
2020-07-25 03:17:04 -04:00
Lioncash 84e6115423 zstd_compression: Make use of std::span in interfaces
Allows condensing the data and size parameters into a single argument.
2020-07-25 03:11:56 -04:00
Lioncash 3aad302953 virtual_buffer: Mark size parameter of FreeMemoryPages() as [[maybe_unused]]
This isn't used on Windows, but is used on non-Windows operating
systems.
2020-07-25 03:04:27 -04:00
bunnei 2f7d9afee7 Merge pull request #4380 from ogniK5377/swkbd-inline-1
swkbd: Return result for Calc request for inlined swkbd
2020-07-24 22:31:24 -07:00
bunnei b6ba7c5249 Merge pull request #4393 from lioncash/unused5
vk_rasterizer: Remove unused variable in Clear()
2020-07-24 20:33:58 -07:00
David Marcec 5f24aa9e0f Fix stream channel count when outputting to stereo 2020-07-25 13:31:43 +10:00
David Marcec 7cdad5d1fb Address issues 2020-07-25 12:39:37 +10:00
David Marcec 4c85fba0db Queue extra mix buffer 2020-07-25 12:39:36 +10:00
David Marcec f1ec702c03 Disable time stretcher for time being 2020-07-25 12:39:35 +10:00
David Marcec 81b2b4fbe9 audio_core: Apollo Part 1, AudioRenderer refactor 2020-07-25 12:39:34 +10:00
bunnei bcb6b4e574 Merge pull request #4377 from Morph1984/dark-themes
qt-themes: Add Midnight Blue qdarkstyle theme (2.8.1)
2020-07-24 19:23:45 -07:00
bunnei 0db2f8a714 Merge pull request #4334 from lat9nq/clear-per-game-settings
configure_per_game: Clearer per-game settings
2020-07-24 19:19:27 -07:00
bunnei ffbbadb29e Merge pull request #4388 from lioncash/written
buffer_cache: Eliminate redundant map lookup in MarkRegionAsWritten()
2020-07-24 11:29:37 -07:00
bunnei 82278bde7e Merge pull request #4391 from lioncash/nrvo
video_core: Allow copy elision to take place where applicable
2020-07-24 06:33:09 -07:00
bunnei f0fff26e67 Merge pull request #4394 from lioncash/unused6
video_core: Remove unused variables
2020-07-23 19:54:59 -07:00
bunnei da17329c3e Merge pull request #4353 from ameerj/gc-refactor
gc_adapter: Refactor code
2020-07-23 18:44:39 -07:00
Jan Beich 423d410d7c network: add missing include for BSDs
src/core/network/network.cpp:112:28: error: use of undeclared identifier 'SHUT_RD'
constexpr int SD_RECEIVE = SHUT_RD;
                           ^
src/core/network/network.cpp:113:25: error: use of undeclared identifier 'SHUT_WR'
constexpr int SD_SEND = SHUT_WR;
                        ^
src/core/network/network.cpp:114:25: error: use of undeclared identifier 'SHUT_RDWR'
constexpr int SD_BOTH = SHUT_RDWR;
                        ^
src/core/network/network.cpp:120:37: error: unknown type name 'in_addr'; did you mean 'in_addr_t'?
constexpr IPv4Address TranslateIPv4(in_addr addr) {
                                    ^~~~~~~
                                    in_addr_t
/usr/include/netdb.h:66:20: note: 'in_addr_t' declared here
typedef __uint32_t      in_addr_t;
                        ^
src/core/network/network.cpp:121:27: error: member reference base type 'in_addr_t' (aka 'unsigned int') is not a structure or union
    const u32 bytes = addr.s_addr;
                      ~~~~^~~~~~~
src/core/network/network.cpp:121:15: error: variables defined in a constexpr function must be initialized
    const u32 bytes = addr.s_addr;
              ^
src/core/network/network.cpp:126:10: error: incomplete result type 'sockaddr' in function definition
sockaddr TranslateFromSockAddrIn(SockAddrIn input) {
         ^
/usr/include/netdb.h:142:9: note: forward declaration of 'sockaddr'
        struct  sockaddr *ai_addr;      /* binary address */
                ^
src/core/network/network.cpp:127:5: error: unknown type name 'sockaddr_in'; did you mean 'sockaddr'?
    sockaddr_in result;
    ^~~~~~~~~~~
    sockaddr
/usr/include/netdb.h:142:9: note: 'sockaddr' declared here
        struct  sockaddr *ai_addr;      /* binary address */
                ^
src/core/network/network.cpp:127:17: error: variable has incomplete type 'sockaddr'
    sockaddr_in result;
                ^
/usr/include/netdb.h:142:9: note: forward declaration of 'sockaddr'
        struct  sockaddr *ai_addr;      /* binary address */
                ^
src/core/network/network.cpp:131:29: error: use of undeclared identifier 'AF_INET'
        result.sin_family = AF_INET;
                            ^
src/core/network/network.cpp:135:29: error: use of undeclared identifier 'AF_INET'
        result.sin_family = AF_INET;
                            ^
src/core/network/network.cpp:139:23: error: use of undeclared identifier 'htons'
    result.sin_port = htons(input.portno);
                      ^
src/core/network/network.cpp:143:14: error: variable has incomplete type 'sockaddr'
    sockaddr addr;
             ^
/usr/include/netdb.h:142:9: note: forward declaration of 'sockaddr'
        struct  sockaddr *ai_addr;      /* binary address */
                ^
src/core/network/network.cpp:156:1: error: unknown type name 'linger'
linger MakeLinger(bool enable, u32 linger_value) {
^
src/core/network/network.cpp:157:5: error: unknown type name 'linger'
    linger value;
    ^
src/core/network/network.cpp:185:16: error: use of undeclared identifier 'AF_INET'
        return AF_INET;
               ^
src/core/network/network.cpp:195:16: error: use of undeclared identifier 'SOCK_STREAM'
        return SOCK_STREAM;
               ^
src/core/network/network.cpp:197:16: error: use of undeclared identifier 'SOCK_DGRAM'
        return SOCK_DGRAM;
               ^
src/core/network/network.cpp:207:16: error: use of undeclared identifier 'IPPROTO_TCP'
        return IPPROTO_TCP;
               ^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
2020-07-22 22:10:15 +00:00
David Marcec 56c3c62a45 vi: IApplicationDisplayService:GetIndirectLayerImageRequiredMemoryInfo
Needed for dark souls and monster hunter
2020-07-21 23:06:18 +10:00
Rodrigo Locatti beafe0508a Merge pull request #4359 from ReinUsesLisp/clamp-shared
renderer_{opengl,vulkan}: Clamp shared memory to host's limit
2020-07-21 04:51:05 -03:00
Rodrigo Locatti 05ffdb1383 Merge pull request #4360 from ReinUsesLisp/glasm-bar
gl_arb_decompiler: Execute BAR even when inside control flow
2020-07-21 04:50:55 -03:00
Rodrigo Locatti ce9754ffa5 Merge pull request #4361 from ReinUsesLisp/lane-id
decode/other: Implement S2R.LaneId
2020-07-21 04:50:45 -03:00
Lioncash 3245700495 surface_params: Make use of designated initializers where applicable
Provides a convenient way to avoid unnecessary zero initializing.
2020-07-21 02:27:22 -04:00
Lioncash 4ec316a7b2 surface_params: Remove redundant assignment
This is a redundant assignment that can be removed.
2020-07-21 02:26:49 -04:00
Lioncash 9758e39655 surface_params: Replace questionable usages of the comma operator with semicolons
These are bugs waiting to happen.
2020-07-21 02:26:48 -04:00
David 9263c9af72 Merge pull request #4306 from ReinUsesLisp/bsd-network
core/network: Add network abstraction
2020-07-21 16:05:47 +10:00
Lioncash 074f382a39 video_core: Remove unused variables
Silences several compiler warnings about unused variables.
2020-07-21 00:57:25 -04:00
Lioncash 09172c0347 vk_rasterizer: Remove unused variable in Clear()
The relevant values are already assigned further down in the lambda, so
this can be removed entirely.
2020-07-21 00:49:10 -04:00
Lioncash cff696cfbb compatible_formats: Add missing header guard
Prevents potential inclusion issues from occurring.
2020-07-21 00:42:19 -04:00
Lioncash 991e4dc0b3 video_core: Allow copy elision to take place where applicable
Removes const from some variables that are returned from functions, as
this allows the move assignment/constructors to execute for them.
2020-07-21 00:36:13 -04:00
bunnei 2e4a5d2110 Merge pull request #4324 from ReinUsesLisp/formats
video_core: Fix, add and rename pixel formats
2020-07-21 00:13:04 -04:00
lat9nq c9dd8cd8a5 configure_ui: Ensure a separator follows the returned path 2020-07-20 23:19:07 -04:00
lat9nq 90a5f09f8c configure_ui: don't use an empty string
If the user had cancelled, it would clear the text box. That behavior was sanitized underneath, but may anyways cause inconveniences.
2020-07-20 23:11:46 -04:00
lat9nq 0f7e75ddb5 main: Don't use as many string copies
Co-Authored-By: LC <lioncash@users.noreply.github.com>
2020-07-20 23:03:55 -04:00
lat9nq 0e7594102b main: rewrite (save as) screenshot saving
This picks a default directory and file name. If on Windows and save-as screenshot saving is enabled, it asks the user, first defaulting to the default screenshot path, and with a default filename in the format `[title_id]_[year-mt-dy_hr-mn-sc-msc].png`. Otherwise, or on Linux for now, it simply saves a file in that directory with that file name.
2020-07-20 23:03:55 -04:00
lat9nq 3db1abfcbc configuration: Setup UI to config screenshot path and saving
This adds two options to the General -> UI tab. The first disables picking a place to save the file. The second chooses a default directory for saving screenshots.
2020-07-20 23:03:49 -04:00
lat9nq 11fb3d5d12 common: Add a screenshots directory
Adds a screenshots directory as a path managed by FileUtil.
2020-07-20 22:51:02 -04:00
David Marcec f3ef6e4fb1 video_core: Remove redundant pixel format type
We already get the format type before converting shadow formats and during shadow formats.
2020-07-21 12:44:32 +10:00
bunnei 10ae1e1dad Merge pull request #4168 from ReinUsesLisp/global-memory
gl_arb_decompiler: Use NV_shader_buffer_{load,store} on assembly shaders
2020-07-20 21:54:17 -04:00
Lioncash 1842c5df37 buffer_cache: Eliminate redundant map lookup in MarkRegionAsWritten()
We can make use of emplace()'s return value to determine whether or not
we need to perform an increment.

emplace() performs no insertion if an element already exist, so this can
eliminate a find() call.
2020-07-20 17:48:00 -04:00
Morph 19b3180ae3 wait_tree: Include Midnight Blue dark themes 2020-07-20 01:25:25 -04:00
James Rowe e9af5f404a qt-themes: Add Midnight Blue qdarkstyle theme (2.8.1)
Co-authored-by: Morph <39850852+Morph1984@users.noreply.github.com>
2020-07-20 01:25:25 -04:00
David Marcec 87a838304b Address issues 2020-07-20 11:52:07 +10:00
lat9nq 255f148a11 configure_graphics_advnaced: clang-format mk ii 2020-07-19 13:26:55 -04:00
lat9nq 41724d04c1 configure_graphics_advanced: Fix oversight from rebase 2020-07-19 13:26:55 -04:00
lat9nq a8532de77b configuration_shared: Remove unused functions
These were only kept for compatibility with old code during testing.
2020-07-19 13:26:55 -04:00
lat9nq 932de8986b configuration: Use forward declares and remove extraneous structs 2020-07-19 13:26:55 -04:00
lat9nq 7df8f2b760 configuration_shared: Make CheckState strongly typed
Also gets rid of unnecessary explicit namespace usage.
2020-07-19 13:26:55 -04:00
lat9nq d26e1a1839 clang-format 2020-07-19 13:26:55 -04:00
lat9nq 3676efbf03 configuration_shared: Break up tracker structs to respective classes
One less global variable.
2020-07-19 13:26:55 -04:00
lat9nq 54f4eba5a9 configure_system: break instead of semicolon
Makes the code more readable

Co-Authored-By: LC <lioncash@users.noreply.github.com>
2020-07-19 13:26:55 -04:00
lat9nq c2fa65efb6 clang-format 2020-07-19 13:26:55 -04:00
lat9nq f5f2f3e926 configure_system: Highlight labels on startup
whoops
2020-07-19 13:26:55 -04:00
lat9nq a0c66140a6 configure_graphics: Fix layout in global config
Fixes a regression where the global config takes up a lot of extra space.
2020-07-19 13:26:55 -04:00
lat9nq a186061bb9 configure_per_game: Improve style consistency
The way the configurations are set up, it is not trivial to do this. I'll leave it as is, but the API selection, and the background color and volume slider selectors are kind of not following the style.
2020-07-19 13:26:55 -04:00
lat9nq 2cb8f9ba8b configure_system: Implement highlighted overrides 2020-07-19 13:26:55 -04:00
lat9nq e79a198006 configuration_shared: Add default combobox setup function
Not a catch-all, but helps clean up the code for when I do this a lot. Also fixes some bugs caught in configure_graphics.
2020-07-19 13:26:55 -04:00
lat9nq df6af4e1a3 configuration_shared: Use an int instead of a QString
I noticed some of the code could be reduced to just passing the function an int, since I was doing the same thing over and over. Also clang-formats configure_graphics
2020-07-19 13:26:55 -04:00
lat9nq d75846daff configure_graphics_advanced: Implement highlighted overrides 2020-07-19 13:26:55 -04:00
lat9nq 14ab428a82 configuration_shared: Switch back to background colors
Let's see if I make up my mind.
2020-07-19 13:26:55 -04:00
lat9nq cfff443f00 configuration_shared: Better use global text
Also adds trackers for graphics and advanced graphics
2020-07-19 13:26:55 -04:00
lat9nq 5565548fb7 configure_audio: fix UI margins 2020-07-19 13:26:55 -04:00
lat9nq c80b9c67a7 configure_graphics: Implement highlighted overrides 2020-07-19 13:26:55 -04:00
lat9nq 0c8536e020 configure_audio: Implement highlighted overrides 2020-07-19 13:26:55 -04:00
lat9nq 1408d300ea configuration_shared: Require name of the widget for highlighting
Prevents mass-coloring of elements later on
2020-07-19 13:26:55 -04:00
lat9nq 26b196fcb2 configuration_shared: Use a highlight instead of background color
Fixes visibility in the built-in dark theme
2020-07-19 13:26:55 -04:00
lat9nq b4c860d57e configure_general: Implement manual tristate buttons 2020-07-19 13:26:55 -04:00
lat9nq a2ba6cf83d configuration_shared: Initial functions and data for manual tristate
Sets up initial support for implementing colored tristate functions. These functions color a QWidget blue when it's overriding a global setting, and discolor it when not. The lack of color indicates it uses the global state, replacing the Qt::CheckState::PartiallyChecked state with the global state.
2020-07-19 13:26:55 -04:00
ameerj bb2375ec9d Fix axis thresholding while polling
axes were very sensitive when mapping controls.
2020-07-19 11:49:26 -04:00
David Marcec 7ca5dcb7df swkbd: Return result for Calc request for inlined swkbd
Fixes random swkbd popups in monster hunter
2020-07-19 18:56:16 +10:00
ReinUsesLisp fc8ff7f4ef core/network: Add network abstraction
This commit adds a network abstraction designed to implement bsd:s but
at the same time work as a generic abstraction to implement any
networking code we have to use from core.

This is implemented on top of BSD sockets on Unix systems and winsock on
Windows. The code is designed around winsocks having compatibility
definitions to support both BSD and Windows sockets.
2020-07-19 04:12:40 -03:00
Rodrigo Locatti 5714c2c44a Merge pull request #4376 from ogniK5377/dark-wait-tree
frontend: Improve wait tree readability for dark themes
2020-07-19 03:55:36 -03:00
Jan Beich 01ee1a02ba alignment: explicitly include <new> after 203d2aaaa8
In file included from src/core/hle/kernel/memory/page_table.cpp:5:
src/./common/alignment.h:67:68: error: no member named 'align_val_t' in namespace 'std'
        return static_cast<T*>(::operator new (n * sizeof(T), std::align_val_t{Align}));
                                                              ~~~~~^
src/./common/alignment.h:71:51: error: no member named 'align_val_t' in namespace 'std'
        ::operator delete (p, n * sizeof(T), std::align_val_t{Align});
                                             ~~~~~^
2020-07-18 23:06:16 +00:00
David Marcec 157dfba918 Address issues 2020-07-19 01:02:41 +10:00
FearlessTobi 1c533f3c4f Address trivial review comments. 2020-07-18 14:09:13 +02:00
FearlessTobi bbaa6e26a2 configure_ui: Address some review comments from the previous PR 2020-07-18 14:09:13 +02:00
FearlessTobi 0dec785dc4 yuzu: Port translation support from Citra
Co-Authored-By: Weiyi Wang <wwylele@gmail.com>
2020-07-18 14:09:11 +02:00
David Marcec 4e11d6d05a frontend: Improve wait tree readability for dark themes 2020-07-18 20:22:03 +10:00
bunnei 01588e3e91 Merge pull request #4348 from lioncash/nano
core_timing: Make usage of nanoseconds more consistent in the interface
2020-07-18 01:45:10 -04:00
bunnei ca13092ccc Merge pull request #4373 from lioncash/allocator
alignment: Simplify AlignmentAllocator implementation
2020-07-18 01:04:17 -04:00
ReinUsesLisp 76bd3a8843 gl_arb_decompiler: Use NV_shader_buffer_{load,store} on assembly shaders
NV_shader_buffer_{load,store} is a 2010 extension that allows GL applications
to use what in Vulkan is known as physical pointers, this is basically C
pointers. On GLASM these is exposed through the LOAD/STORE/ATOM
instructions.

Up until now, assembly shaders were using NV_shader_storage_buffer_object.
These work fine, but have a (probably unintended) limitation that forces
us to have the limit of a single stage for all shader stages. In contrast,
with NV_shader_buffer_{load,store} we can pass GPU addresses to the
shader through local parameters (GLASM equivalent uniform constants, or
push constants on Vulkan). Local parameters have the advantage of being
per stage, allowing us to generate code without worrying about binding
overlaps.
2020-07-18 01:59:57 -03:00
bunnei 5891a0bf07 Merge pull request #4345 from Morph1984/fix-createfile
filesystem: Create subdirectories prior to creating a file
2020-07-18 00:59:26 -04:00
bunnei 54f4821375 Merge pull request #4273 from ogniK5377/async-shaders-prod
video_core: Add asynchronous shader decompilation and compilation
2020-07-18 00:48:27 -04:00
David Marcec 578f84cdf4 Fix style issues 2020-07-18 14:24:32 +10:00
bunnei 8ff5d393b7 Merge pull request #4364 from lioncash/desig5
vulkan: Make use of designated initializers where applicable
2020-07-18 00:12:43 -04:00
bunnei 3968c41ffa Merge pull request #4365 from lioncash/mii
mii/manager: Make use of designated initializers
2020-07-17 22:20:15 -04:00
bunnei bc49860ffc Merge pull request #4374 from ReinUsesLisp/fix-err
vk_device: Fix build error on old MSVC versions
2020-07-17 20:30:24 -04:00
bunnei 1d166b80ae Merge pull request #4366 from lioncash/mii-sign
mii/manager: Resolve sign mismatch warnings
2020-07-17 20:13:06 -04:00
FearlessTobi f7cf5430b0 file_sys/nsp: Make SetTicketKeys actually do something
Previously, the method wasn't modifying any class state and therefore not having any effects when called.
Since this has been the case for a very long time now, I'm not sure if we couldn't just remove this method altogether.
2020-07-18 02:02:39 +02:00
ReinUsesLisp 1e30bdee64 vk_device: Fix build error on old MSVC versions
Designated initializers on old MSVC versions fail to build when they
take the address of a constant.
2020-07-17 20:27:53 -03:00
bunnei d9a40d2422 Merge pull request #4344 from VolcaEM/c3
dmnt_cheat_vm: Implement opcode 0xC3 (ReadWriteStaticRegister)
2020-07-17 17:11:52 -04:00
bunnei ad5d8431f5 Merge pull request #4309 from Morph1984/fix-romfs-bug
fs: Fix RomFS building when zero byte files are present
2020-07-17 17:01:20 -04:00
ameerj 45584cf459 std::size_t where appropriate, make error message more clear if can't read 2020-07-17 12:10:32 -04:00
bunnei b4914299eb Merge pull request #4322 from ReinUsesLisp/fix-dynstate
vk_state_tracker: Fix dirty flags for stencil_enable on VK_EXT_extended_dynamic_state
2020-07-17 09:50:45 -04:00
Lioncash 203d2aaaa8 alignment: Simplify AlignmentAllocator implementation
With C++20, much of the allocator interface has been simplified, so we
can make the same adjustments.
2020-07-17 08:30:12 -04:00
LC 10cf640cb6 Merge pull request #4369 from lioncash/hle-macro
macro_hle: Remove unnecessary std::make_pair calls
2020-07-17 05:20:41 -04:00
LC e1b448b550 Merge pull request #4340 from lioncash/remove
shader_cache: Make use of std::erase_if
2020-07-17 05:19:20 -04:00
David Marcec 3a127edd0b Drop settings namespace 2020-07-17 17:23:24 +10:00
David Marcec bab9531cc6 Remove duplicate config 2020-07-17 14:26:18 +10:00
David Marcec 73118715ca Use conditional var 2020-07-17 14:26:17 +10:00
David Marcec 95b545df7c Drop max workers from 8->2 for testing 2020-07-17 14:26:15 +10:00
David Marcec 74d8c9e0dd Rebase for per game settings 2020-07-17 14:26:14 +10:00
David Marcec a4e811af27 async shaders 2020-07-17 14:24:57 +10:00
David 6825b4911d Merge pull request #4347 from lioncash/logging
settings: Make use of std::string_view over std::string for logging
2020-07-17 13:25:06 +10:00
David be744bfa16 Merge pull request #4371 from lioncash/cmake2
core/CMakeLists: Add missing physical_memory.h header file
2020-07-17 13:22:19 +10:00
David ba106cc5e7 Merge pull request #4357 from lioncash/unused4
kernel: Remove unused variables
2020-07-17 13:18:31 +10:00
David 8e8a332ce3 Merge pull request #4358 from lioncash/unused5
kernel/thread: Remove unimplemented function prototype
2020-07-17 13:17:52 +10:00
Lioncash 62ad951689 macro_hle: Remove unnecessary static keywords
These functions are already in an anonymous namespace which makes the
functions internally linked.
2020-07-16 23:17:17 -04:00
David 662b3a3e2f Merge pull request #4367 from lioncash/inc2
constants: Add missing <array> include
2020-07-17 13:14:01 +10:00
David e6e7f7834a Merge pull request #4368 from lioncash/macro
macro: Resolve missing parameter in doxygen comment
2020-07-17 13:13:22 +10:00
David cf419ad73e Merge pull request #4370 from lioncash/simplify
macro_hle: Simplify shift expression in HLE_771BB18C62444DA0()
2020-07-17 13:13:05 +10:00
Lioncash f128be35fe core/CMakeLists: Add missing physical_memory.h header file
Allows this header file to show up in IDE CMake generators.
2020-07-16 22:56:31 -04:00
Lioncash 68f92e780d macro_hle: Simplify shift expression in HLE_771BB18C62444DA0()
Given the expression involves a 32-bit value, this simplifies down to
just: 0x3ffffff. This is likely a remnant from testing that was never
cleaned up.

Resolves a -Wshift-overflow warning.
2020-07-16 22:16:11 -04:00
Lioncash a18530237c macro_hle: Remove unnecessary std::make_pair calls
The purpose of make_pair is generally to deduce the types within the
pair without explicitly specifying the types, so these usages were
generally unnecessary, particularly when the type is enforced by the
array declaration.
2020-07-16 21:59:25 -04:00
Lioncash 38c36545d5 macro: Resolve missing parameter in doxygen comment
Resolves a -Wdocumentation warning.
2020-07-16 21:54:42 -04:00
Lioncash 7e7daed253 constants: Add missing <array> include
Eliminates reliance on an indirect include.
2020-07-16 21:43:20 -04:00
Lioncash 214247f203 mii/manager: Resolve sign mismatch warnings
Previously the loop termination condition was testing variables of
different signedness.
2020-07-16 21:07:04 -04:00
Rodrigo Locatti b3078bd676 Merge pull request #4363 from lioncash/mismatch
vk_texture_cache: Amend mismatched access masks and indices in UploadBuffer
2020-07-16 21:54:40 -03:00
Lioncash 29a5f65f31 mii/manager: Make use of designated initializers
Allows returning the structure in a more concise manner.
2020-07-16 20:45:33 -04:00
bunnei 669dfb415e Merge pull request #4292 from bunnei/mii-rewrite
hle: service: mii: Rewrite service to properly support creation of random and default miis.
2020-07-16 20:05:40 -04:00
Lioncash daa19f1894 wrapper: Make use of designated initializers where applicable 2020-07-16 20:01:01 -04:00
Lioncash 28c7c4e06c vk_texture_cache: Make use of designated initializers where applicable 2020-07-16 19:52:38 -04:00
Lioncash 6ae380626f vk_texture_cache: Amend mismatched access masks and indices in UploadBuffer
Discovered while converting relevant parts of the codebase over to
designated initializers.
2020-07-16 19:45:46 -04:00
Lioncash f683a6e7e0 vk_swapchain: Make use of designated initializers where applicable 2020-07-16 19:27:02 -04:00
Lioncash 98e5d57908 vk_stream_buffer: Make use of designated initializers where applicable 2020-07-16 19:22:11 -04:00
Lioncash 947749d35d vk_staging_buffer_pool: Make use of designated initializers where applicable 2020-07-16 19:22:03 -04:00
Lioncash 4694ea8a99 vk_shader_util: Make use of designated initializers where applicable 2020-07-16 19:17:41 -04:00
Lioncash 683403d1cf vk_scheduler: Make use of designated initializers where applicable 2020-07-16 19:11:43 -04:00
Lioncash a6f0caeeb9 vk_sampler_cache: Make use of designated initializers where applicable 2020-07-16 19:06:40 -04:00
Lioncash faba1ede49 vk_resource_manager: Make use of designated initializers where applicable 2020-07-16 19:02:35 -04:00
Lioncash 96a6d95c9c vk_renderpass_cache: Make use of designated initializers where applicable 2020-07-16 18:57:23 -04:00
Lioncash 71a085c84f vk_rasterizer: Make use of designated initializers where applicable 2020-07-16 18:49:42 -04:00
Lioncash 42dadb45ac vk_query_cache: Make use of designated initializers where applicable 2020-07-16 18:34:04 -04:00
Lioncash fe2c963646 vk_pipeline_cache: Make use of designated initializers where applicable 2020-07-16 18:32:29 -04:00
Lioncash 8ffbe8e7c9 vk_memory_manager: Make use of designated initializers where applicable 2020-07-16 18:26:30 -04:00
Lioncash 6b6af38615 vk_image: Make use of designated initializers where applicable 2020-07-16 18:24:26 -04:00
Lioncash f734fa9d78 vk_descriptor_pool: Make use of designated initializers where applicable 2020-07-16 18:19:45 -04:00
Lioncash cc47d8b0ce vk_graphics_pipeline: Resolve narrowing warnings
For whatever reason, VK_TRUE and VK_FALSE aren't defined as having a
VkBool32 type, so we need to cast to it explicitly.
2020-07-16 18:13:49 -04:00
Lioncash 0b4ecb96d4 vk_compute_pipeline: Make use of designated initializers where applicable 2020-07-16 17:32:12 -04:00
Lioncash 7818dcd562 vk_compute_pass: Make use of designated initializers where applicable
Note: Some barriers can't be converted over yet, as they ICE MSVC.
2020-07-16 17:23:56 -04:00
Lioncash 5dc1c68a04 vk_buffer_cache: Make use of designated initializers where applicable
Note: An array within CopyFrom() cannot be converted over yet, as it
ICEs MSVC when converted over.
2020-07-16 16:59:39 -04:00
Rodrigo Locatti 10abdf0147 Merge pull request #4327 from lioncash/desig2
address_space_info: Make use of designated initializers
2020-07-16 17:41:55 -03:00
Rodrigo Locatti b880ecc427 Merge pull request #4333 from lioncash/desig3
vk_graphics_pipeline: Make use of designated initializers where applicable
2020-07-16 17:41:45 -03:00
Rodrigo Locatti 475e7fb624 Merge pull request #4332 from lioncash/vkdev
vk_device: Make use of designated initializers where applicable
2020-07-16 17:41:20 -03:00
ReinUsesLisp c5391180e6 decode/other: Implement S2R.LaneId
This maps to host's thread id.

- Fixes graphical issues on Paper Mario.
2020-07-16 16:09:39 -03:00
ReinUsesLisp 021aca9492 gl_arb_decompiler: Execute BAR even when inside control flow
Unlike GLSL, GLASM allows us to call BAR inside control flow.

- Fixes graphical artifacts in Paper Mario.
2020-07-16 16:05:52 -03:00
ReinUsesLisp 03bb8691b7 renderer_{opengl,vulkan}: Clamp shared memory to host's limit
This stops shaders from failing to build when the exceed host's shared
memory size limit. An error is logged.
2020-07-16 16:02:46 -03:00
bunnei a002ba827d Merge pull request #4321 from lioncash/desig
vk_blit_screen: Make use of designated initializers where applicable
2020-07-16 14:55:36 -04:00
Lioncash e05eec5d51 kernel/thread: Remove unimplemented function prototype
This isn't used, so it can be removed.
2020-07-16 14:32:46 -04:00
Lioncash 3fe863c8f2 kernel: Remove unused variables
Resolves some compiler warnings in the Linux build.
2020-07-16 14:17:50 -04:00
Lioncash 0a5524a15b kernel: Add missing include 2020-07-16 13:51:51 -04:00
Lioncash 02ff5e8d81 cpu_manager: Mark function getters as static
All these do are return std::function instances of static functions, so
these can be used without an instance of the CPU manager.
2020-07-16 13:30:56 -04:00
Lioncash 59f9dcf6cd cpu_manager: Remove unused preemption_count variable
Shrinks the data structure by 8 bytes.
2020-07-16 13:24:25 -04:00
Lioncash 7f032388fd cpu_manager: Add missing includes
Previously this header was relying on indirect inclusions that are no
longer satisfied.
2020-07-16 13:22:58 -04:00
Ameer 05174770cc Refactor adapter code 2020-07-16 13:00:04 -04:00
bunnei 97f40e32b5 Merge pull request #4261 from ameerj/gc-calibration
input_common: GC Controller save and compare against analog origin state
2020-07-16 11:40:09 -04:00
bunnei 8fd2e0d2ea Merge pull request #4337 from lat9nq/fix-per-game-async
main: Set async gpu properly after loading per-game setting
2020-07-16 11:33:51 -04:00
bunnei 1d761c4440 Merge pull request #4297 from FearlessTobi/skip-profile-select
main/profile_select: Don't prompt for profile selection when only one is available
2020-07-16 09:45:09 -04:00
David 2aa1af8abb Merge pull request #4346 from lioncash/thread
kernel/handle_table: Remove usages of the global system instance
2020-07-16 23:02:04 +10:00
David Marcec 255847b16d hid: Only update keyboard & debug pad inputs if enabled
Previously we would ignore this setting and would update the states regardless of the user setting
2020-07-16 22:28:49 +10:00
David 524a16f9c4 Merge pull request #4249 from Morph1984/delete-update-aoc-on-overwrite
registered_cache: Remove previous update/dlc if it exists on install
2020-07-16 20:36:22 +10:00
Morph 5a7b65b6d5 Check for empty section0 and CNMT prior to install 2020-07-16 05:22:51 -04:00
Morph 6bba209bba Add comment to clarify the nullptr check 2020-07-16 00:15:27 -04:00
Morph 7f908ceb00 filesystem: Create subdirectories prior to creating a file
If subdirectories exist in the given path parameter and don't exist in the real filesystem create them prior to creating the files within.
This fixes the softlocks upon save creation in The Legend of Zelda: Breath of the Wild
2020-07-16 00:15:27 -04:00
bunnei 3f9b1b22bc Merge pull request #4328 from lioncash/unused-var3
memory_layout: Remove unused data member
2020-07-15 22:08:05 -04:00
Lioncash 66e6dccc66 core_timing: Remove unused data member
Shrinks the size of the CoreTiming class by 8 bytes.
2020-07-15 19:41:37 -04:00
Lioncash 56054fe86d core_timing: Make TimedCallback take std::chrono::nanoseconds
Enforces our desired time units directly with a concrete type.
2020-07-15 19:41:22 -04:00
Lioncash 9e113a2b67 core_timing: Make use of std::chrono with ScheduleEvent 2020-07-15 18:54:15 -04:00
Lioncash 3ce5234599 settings: Resolve a sign conversion warning within GetTimeZoneString()
A sign conversion warning was occurring due to an int < size_t
comparison.
2020-07-15 13:45:22 -04:00
Lioncash 1d41247fce kernel/process: Move name and system context to the bottom of the member list
These aren't directly important or commonly used within the process, so
we can move these to the bottom to allow everything else to be more
likely to be within a cache line.
2020-07-15 13:40:18 -04:00
Lioncash 9346d1e257 kernel/handle_table: Remove usages of the global system instance
Removes even more usages of the global system instance, trimming away
more dependencies on global variables and making them explicit in the
interface.
2020-07-15 13:40:15 -04:00
Lioncash 8c0ba1ce84 settings: Make use of std::string_view over std::string for logging
In all usages of LogSetting(), string literals are provided.
std::string_view is better suited here, as we won't churn a bunch of
string allocations every time the settings are logged out.

While we're at it, we can fold LogSetting() into LogSettings(), given
it's only ever used there.
2020-07-15 13:37:33 -04:00
Lioncash 7deb699566 kernel/thread: Remove global GetCurrentThread()
This is only used in one place, so we can fold it into the calling code,
eliminating a place for the global system instance to be used.
2020-07-15 13:28:05 -04:00
Morph 63f16db2e6 clang format 2020-07-15 13:27:04 -04:00
Morph 9dc8b2f03c Use proper install result when overwriting files 2020-07-15 13:27:04 -04:00
Morph c530630c1c Remove global system instance and address feedback 2020-07-15 13:27:04 -04:00
Morph 5054a6c429 registered_cache: Remove previous update/dlc if it exists on install
- This checks for and removes old updates or dlc based on title id. If a content meta nca exists within the registered cache, it will attempt to remove all the ncas associated with the content meta before installing a new update/dlc
2020-07-15 13:27:04 -04:00
VolcaEM 67310a4623 clang-format 2020-07-15 01:22:52 +02:00
VolcaEM bec0bdabc8 dmnt_cheat_vm: Implement opcode 0xC3 (ReadWriteStaticRegister)
This was based on Atmosphére's DMNT Cheat VM:

- https://github.com/Atmosphere-NX/Atmosphere/blob/master/stratosphere/dmnt/source/cheat/impl/dmnt_cheat_vm.hpp
- https://github.com/Atmosphere-NX/Atmosphere/blob/master/stratosphere/dmnt/source/cheat/impl/dmnt_cheat_vm.cpp

From Atmosphére's documentation: "Code type 0xC3 reads or writes a static register with a given register"

There are now only two remaining opcodes to implement (PauseProcess and BreakProcess)

This is untested because I don't have any experience in testing cheats on yuzu
2020-07-15 01:19:22 +02:00
Rodrigo Locatti 9dd2647098 Merge pull request #4342 from lioncash/endian
common/swap: Make use of std::endian
2020-07-14 18:49:07 -03:00
Lioncash 589f33c54c common/swap: Make use of std::endian
Allows removing a bunch of defines in favor of a two liner.
2020-07-14 16:26:54 -04:00
Lioncash 7d3ba83dde shader_cache: Make use of std::erase_if
Now that we use C++20, we can also make use of std::erase_if instead of
needing to do the erase-remove idiom.
2020-07-14 15:49:15 -04:00
bunnei 4d15c4ae6f Merge pull request #4242 from ReinUsesLisp/maxwell-dma
maxwell_dma: Match official doc and support pitch->voxel copies
2020-07-14 14:04:16 -04:00
lat9nq ca132f7dfb clang-format 2020-07-14 13:46:42 -04:00
lat9nq be59d82047 settings: Move settings sanitization to its own function
Creates a new function that can be expanded later to fix other settings that are known to cause emulation errors across executables.
2020-07-14 13:36:09 -04:00
Ameer ed995fe27e Rebase to master 2020-07-14 13:04:02 -04:00
bunnei c4ce38fcb5 Merge pull request #4294 from MerryMage/cpu-opt-settings
configuration: Add settings to enable/disable specific CPU optimizations
2020-07-14 12:38:03 -04:00
bunnei f1b2cb5eec Merge pull request #4282 from Morph1984/fs-size
filesystem: Set various NAND partition sizes to their defaults
2020-07-14 12:16:42 -04:00
Ameer 2b38468a0b Fix crash if gc configured but adapter not connected 2020-07-14 11:23:10 -04:00
bunnei f18dca4b04 Merge pull request #4314 from lioncash/input-warn
gcadapter: Tidy up compiler warnings
2020-07-14 10:20:12 -04:00
bunnei 1434f790a0 Merge pull request #4315 from lioncash/udp-warn
udp: Silence a C++20 deprecation warning
2020-07-14 09:33:16 -04:00
lat9nq 688bae221f main: Set async gpu properly after loading per-game setting
Another error that got pass me and only noticed when I was doing the per-game settings UI rework. This prevents asynchronous GPU emulation from being disabled while multi core is enabled as a result of a poorly put together per-game config.
2020-07-14 01:02:10 -04:00
lat9nq 73c7843bff configure_general: Explicitly guard use_multi_core when applying settings
This is likely an oversight during a rebase. Guards use_multi_core to be only set when the global value is in use. It should not make a difference given the current code base, but makes the code sensible.
2020-07-14 00:49:17 -04:00
Lioncash 8d7fa4e28c vk_device: Make use of designated initializers where applicable
Avoids redundant repetitions of variable names, and allows assignment
all in one statement.
2020-07-13 22:24:01 -04:00
LC e15aa03b49 Merge pull request #4280 from jbeich/system-libusb
cmake: pass libusb include directory
2020-07-13 22:21:07 -04:00
Ameer a8deadbb2b input_common: drop unused libusb.h include
Remnant of an early implementation.
2020-07-14 01:50:34 +00:00
Lioncash 869f37566e vk_graphics_pipeline: Make use of designated initializers where applicable
Avoids redundant variable name repetitions.
2020-07-13 21:07:56 -04:00
Jan Beich cfc73b4188 input_common: make libusb private to gc_adapter 2020-07-13 18:48:19 +00:00
Lioncash ed658d92dc memory_layout: Remove unused data member
This isn't used, so it can be removed entirely, shrinking the structure
size by 8 bytes.
2020-07-13 10:51:23 -04:00
Lioncash 14332845af address_space_info: Use type alias to simplify code
We can define an alias for the index arrays and then just reuse it to
make the code nicer to read.
2020-07-13 10:42:52 -04:00
Lioncash c8b9f7bd14 address_space_info: Make use of designated initializers
We can alter the structure so that we can use designated initializers in
the array, eliminating the comments that indicate their field names.
2020-07-13 10:42:49 -04:00
ReinUsesLisp a068ce4c32 video_core: Rearrange pixel format names
Normalizes pixel format names to match Vulkan names. Previous to this
commit pixel formats had no convention, leading to confusion and
potential bugs.
2020-07-13 01:44:23 -03:00
ReinUsesLisp 44fb3cf920 video_core: Fix DXT4 and RGB565 2020-07-13 01:01:09 -03:00
ReinUsesLisp 716ab93365 video_core/format_lookup_table: Add formats with existing PixelFormat 2020-07-13 01:01:09 -03:00
ReinUsesLisp 46c327d2d9 video_core: Fix B5G6R5_UNORM render target format 2020-07-13 01:01:09 -03:00
ReinUsesLisp 12937875a5 video_core: Fix B5G6R5U 2020-07-13 01:01:09 -03:00
ReinUsesLisp ac8eeffbbc video_core: Implement RGBA32_SINT render target 2020-07-13 01:01:09 -03:00
ReinUsesLisp 59610b129f video_core: Implement RGBA32_SINT render target 2020-07-13 01:01:09 -03:00
ReinUsesLisp 5ba68f5fab video_core: Implement RGBA16_SINT render target 2020-07-13 01:01:09 -03:00
ReinUsesLisp f8136072ff video_core: Implement RGBA8_SINT render target 2020-07-13 01:01:09 -03:00
ReinUsesLisp ad494d0a3c video_core: Implement RG32_SINT render target 2020-07-13 01:01:09 -03:00
ReinUsesLisp 469c89d31a video_core: Implement RG8_SINT render target and fix RG8_UINT 2020-07-13 01:01:09 -03:00
ReinUsesLisp c6e852f5c5 video_core: Implement R8_SINT render target 2020-07-13 01:01:08 -03:00
ReinUsesLisp 29e5516bb8 video_core: Implement R8_SNORM render target 2020-07-13 01:01:08 -03:00
ReinUsesLisp 8cb663e1b4 video_core/surface: Remove explicit values on PixelFormat's definition 2020-07-13 01:01:08 -03:00
ReinUsesLisp 0902bb64f1 video_core/surface: Reorder render target to pixel format switch 2020-07-13 01:01:08 -03:00
ReinUsesLisp 43e15338e2 kernel/scheduler: Use std::mutex instead of spin lock
Profiling shows that this is a highly contested mutex, causing dimishing
results compared to a OS lock. std::mutex implementations can spin for a
while before falling back to an OS lock.

This avoids wasting precious CPU cycles in a no-op.
2020-07-12 21:27:24 -03:00
Lioncash 6d507f7487 vk_blit_screen: Make use of designated initializers where applicable
Now that we make use of C++20, we can use designated initializers to
make things a little nicer to read.
2020-07-12 19:45:30 -04:00
ReinUsesLisp 6e3bbca693 vk_state_tracker: Fix dirty flags for stencil_enable on VK_EXT_extended_dynamic_state
Fixes a regression on any game using stencil on devices with
VK_EXT_extended_dynamic_state.
2020-07-12 20:43:42 -03:00
Lioncash cb588c9ef1 udp: Silence a C++20 deprecation warning
C++20 deprecates using the = lambda capture to implicitly capture the
this pointer. Instead, we must specify it explicitly.
2020-07-12 15:49:42 -04:00
Lioncash 7c05493952 gc_poller: Mark GCButtonFactory::GetNextInput() as const
This doesn't modify class instance state.
2020-07-12 15:43:07 -04:00
Lioncash 340875a12f gc_poller: Get rid of undefined behavior in Create()
Ensures that the function always has returns in all control paths.
2020-07-12 15:41:35 -04:00
Lioncash ff47456e8b gc_poller: Silence sign conversion warnings 2020-07-12 15:40:22 -04:00
Lioncash 1fe8261049 gc_adapter: Remove deprecated usage of = in lambda captures
It's deprecated in C++20 to use = to capture the this pointer.

Instead, we can simply pass this as an argument to the thread
constructor.
2020-07-12 15:38:19 -04:00
Lioncash 6b6d076f51 gc_adapter: Silence sign conversion warnings 2020-07-12 15:36:27 -04:00
MerryMage 188203ec23 configure_cpu: Split optimization settings off into Debug tab 2020-07-12 19:32:32 +01:00
Fernando Sahmkow 979eda4b70 Merge pull request #4265 from Morph1984/file-rename
vfs_real: Fix MoveFile
2020-07-12 13:00:09 -04:00
LC 4b13d493ed Merge pull request #4290 from lioncash/latest
CMakeLists: Make use of /std:c++latest on MSVC
2020-07-12 12:25:10 -04:00
bunnei 4d096ef36d Merge pull request #3385 from Morph1984/batch-install
frontend: Add support to batch install files to NAND
2020-07-12 12:20:56 -04:00
Tobias dec48c55cb common/alignment: Fix compilation errors (#4303) 2020-07-12 16:45:49 +02:00
Morph e01424699b fs: Fix RomFS building when zero byte files are present
When zero byte files are present, the key (offset) for that file is identical to the file right after. A std::map isn't able to fit key-value pairs with identical keys (offsets), therefore, the solution is to use std::multimap which permits multiple entries with the same key.

This most prominently fixes Pokemon Sword and Shield weather with any RomFS mod applied.
2020-07-12 04:33:35 -04:00
bunnei 739562c334 Merge pull request #4275 from CrazyMax/desired_language
AM: fix GetDesiredLanguage:
2020-07-12 01:45:08 -04:00
bunnei 734ab6f472 Merge pull request #4289 from ReinUsesLisp/dynfix
vk_rasterizer: Pass <pSizes> to CmdBindVertexBuffers2EXT
2020-07-11 23:44:03 -04:00
bunnei bd88e9fa71 hle: service: mii: Rewrite service to properly support creation of random and default miis. 2020-07-11 21:34:59 -04:00
bunnei 1b617c2e35 Revert "Port citra-emu/citra#5441: "Common: remove a mod from AlignUp"" 2020-07-11 19:28:09 -04:00
Marshall Mohror ebab55ab8f Common: remove a mod from AlignUp (#5441)
In cases where the size is not a known constant when inlining, AlignUp<std::size_t> currently generates two 64-bit div instructions.
This generates one div and a cmov which is significantly cheaper.
2020-07-11 18:39:00 +02:00
MerryMage 202c1fc6a4 configure_cpu: Add tooltips 2020-07-11 16:38:38 +01:00
MerryMage f82bbf743c configure_cpu: Show/Hide debugging options 2020-07-11 16:38:38 +01:00
FearlessTobi 32051d4b49 main/profile_select: Don't prompt for profile selection when only one is available 2020-07-11 16:08:34 +02:00
MerryMage 79dfd272a9 configuration: Add settings to enable/disable specific CPU optimizations 2020-07-11 14:34:09 +01:00
Lioncash f13c3a81e7 CMakeLists: Make use of /std:c++latest on MSVC
Provides the buildbot with one builder that is always tracking the
latest version of the C++ standard, allowing us to progressively rectify
our code and amend any differences between standards over time instead
of waiting for a complete standard change, potentially breaking a lot of
code all at once.
2020-07-11 04:45:40 -04:00
bunnei 12834a1c44 Merge pull request #4203 from VolcaEM/services
service: Update function tables
2020-07-11 00:02:36 -04:00
bunnei 74f380638c Merge pull request #4250 from Morph1984/key-writing
KeyManager: Prevent writing of invalid keys
2020-07-10 22:45:18 -04:00