| Age | Commit message (Collapse) | Author |
|
Avoids unnecessary atomic increments and decrements.
|
|
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.
|
|
Prevents unnecessary copying of the line being parsed.
|
|
submission_package: Account for multi-content NSPs
|
|
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
|
|
renderer_opengl: Remove emulated mailbox presentation
|
|
hid: Implement Get/SetNpadHandheldActivationMode
|
|
Emulated mailbox presentation was causing performance issues on
Nvidia's OpenGL driver. Remove it.
|
|
Test: Decrease pad_update_ns
|
|
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.
|
|
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.
|
|
|
|
Same behavior, less repetition. We can also ensure all members of Config
are initialized.
|
|
- Used in Clubhouse Games: 51 Worldwide Classics
|
|
|
|
configure_input_player: Re-add "Clear" context menu option
|
|
- Used in Super Mario 3D All-Stars
|
|
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.
|
|
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.
|
|
arm_dynarmic_cp15: Initialize member variables
|
|
service/sm: Eliminate dependency on the global system instance
|
|
service: Remove unused funcation
|
|
command_generator/nfp: Eliminate unnecessary copies
|
|
decoder/texture: Eliminate narrowing conversion in GetTldCode()
|
|
decode/image: Eliminate switch fallthrough in DecodeImage()
|
|
hid/configuration: Implement motion controls to HID
|
|
Fortunately this didn't result in any issues, given the block that code
was falling through to would immediately break.
|
|
The assignment was previously truncating a u64 value to a bool.
|
|
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.
|
|
GenerateFinalMixCommand()
|
|
GetAmiiboBuffer() returns by const reference, so we can use a reference
instead of taking the returned buffer by value.
|
|
Ensures that the member variables are always initialized to a
deterministic value on creation.
|
|
This isn't used anywhere, so this is a trivial fix.
|
|
This is now completely unused, so it can be removed.
|
|
We can check the end of the string first for null-termination, rather
than the beginning of the string.
|
|
|
|
gc_adapter: Disable MSVC nonstandard extension warning on libusb.h
|
|
video_core: Enforce -Werror=switch
|
|
|
|
|
|
|
|
This forces us to fix all -Wswitch warnings in video_core.
|
|
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.
|
|
nca_patch: Reduce 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.
|
|
This is only used internally and doesn't depend on any class state, so
we can make it fully internal.
|
|
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.
|
|
This isn't used within the function at all in any implementations, so we
can remove it entirely.
|
|
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 :<)
|
|
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.
|