Rodrigo Locatti
ee5e77fbf9
Merge pull request #5018 from lioncash/service-global
...
service: Eliminate usages of the global system instance
2020-11-27 02:41:56 -03:00
german
3898d8f0d7
Stub set and get NpadCommunicationMode
2020-11-26 21:35:11 -06:00
Lioncash
1a954b2a59
service: Eliminate usages of the global system instance
...
Completely removes all usages of the global system instance within the
services code by passing in the using system instance to the services.
2020-11-26 20:03:11 -05:00
comex
4681e1ea9e
codec: Fix pragma GCC diagnostic pop
missing corresponding push
2020-11-26 16:35:42 -05:00
ReinUsesLisp
2ccf85a910
vk_shader_decompiler: Implement force early fragment tests
...
Force early fragment tests when the 3D method is enabled.
The established pipeline cache takes care of recompiling if needed.
This is implemented only on Vulkan to avoid invalidating the shader
cache on OpenGL.
2020-11-26 17:52:26 -03:00
Lioncash
9d3d0ae999
core: Reduce string copies in GetGameFileFromPath()
...
Eliminates some minor string churn where applicable. Also eliminates an
unnecessary vector copy.
2020-11-26 14:05:13 -05:00
ameerj
979b602738
Limit queue size to 10 frames
...
Workaround for ZLA, which seems to decode and queue twice as many frames as it displays.
2020-11-26 14:04:06 -05:00
bunnei
322349e8cc
Merge pull request #4975 from comex/invalid-syncpoint-id
...
nvdrv, video_core: Don't index out of bounds when given invalid syncpoint ID
2020-11-26 01:27:24 -08:00
german
e46f0e084c
Implement full mouse support
2020-11-25 23:59:30 -06:00
bunnei
ebcee03b0c
Merge pull request #4981 from ogniK5377/ioctl-ctrl
...
nvservices: Reintroducee IoctlCtrl
2020-11-25 21:48:57 -08:00
german
2c2b586d86
Add multiple udp server support
2020-11-25 23:44:41 -06:00
ameerj
c9e3abe206
Address PR feedback
...
remove some redundant moves, make deleter match naming guidelines.
Co-Authored-By: LC <712067+lioncash@users.noreply.github.com>
2020-11-26 00:18:26 -05:00
ReinUsesLisp
630823e363
common: Add Common::DivCeil and Common::DivCeilLog2
...
Add an equivalent to 'Common::AlignUp(n, d) / d' and a log2 alternative.
2020-11-25 23:37:56 -03:00
Jan Beich
e48e9a406c
input_common: ignore some Clang warnings after 5c4774e8ce
...
error: unknown warning option '-Werror=unused-but-set-parameter'; did you mean '-Werror=unused-parameter'? [-Werror,-Wunknown-warning-option]
error: unknown warning option '-Werror=unused-but-set-variable'; did you mean '-Werror=unused-const-variable'? [-Werror,-Wunknown-warning-option]
2020-11-25 23:57:11 +00:00
Rodrigo Locatti
0e15c68f54
Merge pull request #4976 from comex/poll-events
...
Overhaul EmuWindow::PollEvents to fix yuzu-cmd calling SDL_PollEvents off main thread
2020-11-25 20:44:53 -03:00
ameerj
eab041866b
Queue decoded frames, cleanup decoders
2020-11-25 17:10:44 -05:00
Rodrigo Locatti
b834c21894
Merge pull request #4946 from ameerj/alpha-test
...
renderer_vulkan: Implement alpha testing
2020-11-25 18:48:34 -03:00
ameerj
d52ee6d0a7
cleanup unneeded comments and newlines
2020-11-25 14:46:08 -05:00
bunnei
dcfa1992ea
Merge pull request #4959 from Morph1984/emulated-controller-styleset
...
configure_input_player: Use the NpadStyleSet to limit the available controllers shown
2020-11-25 11:20:46 -08:00
bunnei
b7f1095980
Merge pull request #4932 from ogniK5377/misc-audio
...
audren: Make use of nodiscard, rework downmixing, release all buffers
2020-11-25 10:50:52 -08:00
Morph
6f70e1b1ff
hid: Check if applet_resource exists in InitializeVibrationDevice
2020-11-25 13:33:30 -05:00
bunnei
9aeada734d
Merge pull request #4978 from bunnei/shutdown-crash
...
core: cpu_manager: Fix shutdown crash when closing before emulation starts.
2020-11-25 01:20:01 -08:00
ameerj
e87670ee48
Refactor MaxwellToSpirvComparison. Use Common::BitCast
...
Co-Authored-By: Rodrigo Locatti <reinuseslisp@airmail.cc>
2020-11-25 00:33:20 -05:00
ameerj
1dbf71ceb3
Address PR feedback from Rein
2020-11-24 22:46:45 -05:00
ameerj
9014861858
vulkan_renderer: Alpha Test Culling Implementation
...
Used by various textures in many titles, e.g. SSBU menu.
2020-11-24 22:46:45 -05:00
bunnei
d1da7eb119
Merge pull request #4905 from german77/AnalogFromButton
...
Allow to dial any angle with digital joystick
2020-11-24 16:04:55 -08:00
bunnei
3359e5ab70
core: cpu_manager: Fix shutdown crash when closing before emulation starts.
2020-11-24 15:25:39 -08:00
bunnei
4fbe4da911
frontend: yuzu (qt): Register a callback for ExecuteProgram.
2020-11-24 15:18:29 -08:00
bunnei
4fb5ca80c0
service: am: Implement ExecuteProgram and required stubs.
...
- This is used by Super Mario 3D All-Stars.
2020-11-24 15:17:43 -08:00
bunnei
5f75d97125
core: loader: Implement support for loading indexed programs.
2020-11-24 15:16:24 -08:00
bunnei
7791cc8c2e
hle: services: Fix a crash with improper NVFlinger lifetime management. ( #4977 )
...
* hle: services: Fix a crash with improper NVFlinger lifetime management.
- This crash would happen when attempting to shutdown yuzu early on in boot.
2020-11-24 14:31:58 -08:00
comex
e8b2fd21d8
nvdrv, video_core: Don't index out of bounds when given invalid syncpoint ID
...
- Use .at() instead of raw indexing when dealing with untrusted indices.
- For the special case of WaitFence with syncpoint id UINT32_MAX,
instead of crashing, log an error and ignore. This is what I get when
running Super Mario Maker 2.
2020-11-24 12:59:41 -05:00
Rodrigo Locatti
fbda5e9ec9
Merge pull request #3681 from lioncash/component
...
decoder/image: Fix incorrect G24R8 component sizes in GetComponentSize()
2020-11-24 04:38:03 -03:00
Rodrigo Locatti
410ed82922
Merge pull request #4942 from lioncash/system
...
core: Make use of [[nodiscard]] with the System class
2020-11-24 04:26:59 -03:00
Rodrigo Locatti
7afb7a9494
Merge pull request #4972 from lioncash/unused4
...
svc: Remove unnecessary [[maybe_unused]] tag
2020-11-24 04:25:59 -03:00
bunnei
6694e11303
input_common: Fix typo in gc_poller.cpp with [[maybe_unused]].
2020-11-23 21:42:06 -08:00
Chloe Marcec
ab25d1fe9a
nvservices: Reintroducee IoctlCtrl
...
Fixes regression caused by #4907 which caused games like Breath of the Wild 1.0.0 not to boot.
2020-11-24 16:40:23 +11:00
bunnei
7fb7540d69
input_common: Add more missing [[maybe_unused]] from #4927 .
2020-11-23 20:50:35 -08:00
bunnei
d04abd39eb
Fix warnings in core/frontend/input.h with [[maybe_unused]]
...
Fixes build break due to #4927
2020-11-23 18:11:21 -08:00
bunnei
e371d12af6
Merge pull request #4927 from lioncash/input-error
...
input_common: Treat warnings as errors
2020-11-23 17:25:53 -08:00
comex
994f497781
Overhaul EmuWindow::PollEvents to fix yuzu-cmd calling SDL_PollEvents off main thread
...
EmuWindow::PollEvents was called from the GPU thread (or the CPU thread
in sync-GPU mode) when swapping buffers. It had three implementations:
- In GRenderWindow, it didn't actually poll events, just set a flag and
emit a signal to indicate that a frame was displayed.
- In EmuWindow_SDL2_Hide, it did nothing.
- In EmuWindow_SDL2, it did call SDL_PollEvents, but this is wrong
because SDL_PollEvents is supposed to be called on the thread that set
up video - in this case, the main thread, which was sleeping in a
busyloop (regardless of whether sync-GPU was enabled). On macOS this
causes a crash.
To fix this:
- Rename EmuWindow::PollEvents to OnFrameDisplayed, and give it a
default implementation that does nothing.
- In EmuWindow_SDL2, do not override OnFrameDisplayed, but instead have
the main thread call SDL_WaitEvent in a loop.
2020-11-23 17:58:49 -05:00
bunnei
5d1447897a
Merge pull request #4451 from slashiee/extended-logging
...
logging/settings: Increase maximum log size to 100 MB and add extended logging option
2020-11-23 13:34:15 -08:00
Lioncash
874be0e3e1
svc: Remove unnecessary [[maybe_unused]] tag
...
The parameter is used in this function, so this suppression isn't
necessary.
2020-11-23 10:17:20 -05:00
Lioncash
5c4774e8ce
input_common: Treat warnings as errors
...
Migrates over warnings as errors for input common to match how the
common library treats warnings as errors.
2020-11-22 04:50:03 -05:00
bunnei
3a85bc1e77
Merge pull request #4944 from lioncash/system-rem
...
patch_manager: Remove usages of the global system instance
2020-11-21 22:12:34 -08:00
Morph
e13a91fa9b
Merge pull request #4954 from lioncash/compare
...
gl_rasterizer: Make floating-point literal a float
2020-11-22 09:55:23 +08:00
bunnei
5502f39125
Merge pull request #4955 from lioncash/move3
...
async_shaders: std::move data within QueueVulkanShader()
2020-11-21 01:21:08 -08:00
bunnei
afd0e2ee87
Merge pull request #4907 from ogniK5377/nvdrv-cleanup
...
core: Make nvservices more standardized
2020-11-20 22:15:44 -08:00
Morph
8758378dc4
applets/controller: Use a pair of emulated controller index to controller type
2020-11-20 22:22:22 -05:00
Morph
102630f2b2
configure_input_player: Use the npad style set to show the available controllers
...
This will reduce the likelihood of an invalid controller type to be set within a game
2020-11-20 22:22:22 -05:00
LC
d88baa746b
Merge pull request #4957 from ReinUsesLisp/alpha-test-rt
...
gl_rasterizer: Remove warning of untested alpha test
2020-11-20 21:19:06 -05:00
ReinUsesLisp
acc14d233f
gl_rasterizer: Remove warning of untested alpha test
...
Alpha test has been proven to only affect the first render target.
2020-11-20 23:17:40 -03:00
bunnei
b00f4abe36
Merge pull request #4953 from lioncash/shader-shadow
...
shader_bytecode: Eliminate variable shadowing
2020-11-20 16:58:14 -08:00
bunnei
c47c3d723f
Merge pull request #4951 from bunnei/olsc-stub
...
hle: service: Stub OLSC Initialize and SetSaveDataBackupSettingEnabled functions.
2020-11-20 14:06:37 -08:00
bunnei
3794c91145
olsc: Move member initialization to after member functions.
2020-11-20 10:50:50 -08:00
Lioncash
01db5cf203
async_shaders: emplace threads into the worker thread vector
...
Same behavior, but constructs the threads in place instead of moving
them.
2020-11-20 04:46:56 -05:00
Lioncash
ba3916fc67
async_shaders: Simplify implementation of GetCompletedWork()
...
This is equivalent to moving all the contents and then clearing the
vector. This avoids a redundant allocation.
2020-11-20 04:44:44 -05:00
Lioncash
3fcc98e11a
async_shaders: Simplify moving data into the pending queue
2020-11-20 04:41:29 -05:00
Lioncash
5b441fa25d
async_shaders: std::move data within QueueVulkanShader()
...
Same behavior, but avoids redundant copies.
While we're at it, we can simplify the pushing of the parameters into
the pending queue.
2020-11-20 04:38:18 -05:00
Lioncash
8469b76630
gl_rasterizer: Make floating-point literal a float
...
Gets rid of an unnecessary expansion from float to double.
2020-11-20 04:24:33 -05:00
Lioncash
b7cd5d742e
shader_bytecode: Make use of [[nodiscard]] where applicable
...
Ensures that all queried values are made use of.
2020-11-20 02:20:37 -05:00
Lioncash
56ecafc204
shader_bytecode: Eliminate variable shadowing
2020-11-20 02:13:45 -05:00
Morph
715f0c3b0c
Merge pull request #4941 from lioncash/config
...
configure_input_player: Use static qualifier for IsProfileNameValid()
2020-11-20 14:16:01 +08:00
LC
bba7e8ea4b
Merge pull request #4950 from german77/RumbleStrenght
...
Modify rumble amplification
2020-11-20 00:40:09 -05:00
LC
e883101999
Merge pull request #4952 from ReinUsesLisp/bit-cast
...
common/bit_cast: Add function matching std::bit_cast without constexpr
2020-11-20 00:39:30 -05:00
Rodrigo Locatti
1889b641d9
Merge pull request #4308 from ReinUsesLisp/maxwell-3d-funcs
...
maxwell_3d: Move code to separate functions and insert instead of push_back
2020-11-20 01:57:22 -03:00
ReinUsesLisp
3f2e605dd1
common/bit_cast: Add function matching std::bit_cast without constexpr
...
Add a std::bit_cast-like function archiving the same runtime results as
the standard function, without compile time support.
This allows us to use bit_cast while we wait for compiler support, it
can be trivially replaced in the future.
2020-11-20 01:52:37 -03:00
bunnei
6e37676482
hle: service: Stub OLSC Initialize and SetSaveDataBackupSettingEnabled functions.
...
- Used by Animal Cross: New Horizons v1.6.0 update, minimal stub gets this update working.
2020-11-19 12:36:09 -08:00
german77
5b6545b141
Modify rumble amplification
2020-11-19 11:30:52 -06:00
Lioncash
412044960a
virtual_buffer: Do nothing on resize() calls with same sizes
...
Prevents us from churning memory by freeing and reallocating a memory
block that would have already been adequate as is.
2020-11-19 07:54:03 -05:00
bunnei
92344da20c
Merge pull request #4936 from lioncash/page
...
page_table: Allow page tables to be moved
2020-11-18 20:40:10 -08:00
Lioncash
6f8a06bac5
patch_manager: Remove usages of the global system instance
...
With this, only 19 usages of the global system instance remain within
the core library.
We're almost there.
2020-11-18 09:36:48 -05:00
Lioncash
aaf262bfed
core: Remove unused private Init function for the System class
...
This isn't used, so it can be removed.
2020-11-18 02:09:08 -05:00
Lioncash
bcaadac22c
core: Make use of [[nodiscard]] with the System class
...
Given this is a central class, we should flag cases where the return
value of some functions not being used is likely a bug.
2020-11-18 02:06:44 -05:00
Lioncash
be4fc777c0
configure_input_player: Use static qualifier for IsProfileNameValid()
...
This is a static member function, so we don't need use an existing
instance to call this function.
2020-11-17 23:12:44 -05:00
bunnei
abda366362
Merge pull request #4866 from Morph1984/mjolnir-p3-prod
...
Project Mjölnir: Part 3 - Controller Profiles and Vibration Rework
2020-11-17 20:02:27 -08:00
Lioncash
0ca91ced2d
virtual_buffer: Add compile-time type-safety guarantees with VirtualBuffer
...
VirtualBuffer makes use of VirtualAlloc (on Windows) and mmap() (on
other platforms). Neither of these ensure that non-trivial objects are
properly constructed in the allocated memory.
To prevent potential undefined behavior occurring due to that, we can
add a static assert to loudly complain about cases where that is done.
2020-11-17 20:09:58 -05:00
Lioncash
b3c8997829
page_table: Allow page tables to be moved
...
Makes page tables and virtual buffers able to be moved, but not copied,
making the interface more flexible.
Previously, with the destructor specified, but no move assignment or
constructor specified, they wouldn't be implicitly generated.
2020-11-17 20:08:20 -05:00
Lioncash
3cfd962ef4
page_table: Add missing doxygen parameters to Resize()
...
Resolves two -Wdocumentation warnings.
2020-11-17 19:45:20 -05:00
Lioncash
0890451c55
page_table: Remove unnecessary header inclusions
...
Prevents indirect inclusions for these headers.
2020-11-17 19:43:27 -05:00
Lioncash
70812ec57b
rasterizer_interface: Make use of [[nodiscard]] where applicable
2020-11-17 07:19:13 -05:00
Lioncash
a78021580d
render_base: Make use of [[nodiscard]] where applicable
2020-11-17 07:19:12 -05:00
Lioncash
b928fca114
gpu: Make use of [[nodiscard]] where applicable
2020-11-17 07:19:09 -05:00
bunnei
8ace3959a5
Merge pull request #4929 from lioncash/nodiscard-input
...
motion_input: Mark member functions as [[nodiscard]] where applicable
2020-11-16 21:40:16 -08:00
Chloe Marcec
908d3c5679
Addressed changes
2020-11-17 15:40:19 +11:00
Chloe Marcec
9a4beac95a
audren: Make use of nodiscard, rework downmixing, release all buffers
...
Preliminary work for upmixing & general cleanup. Fixes basic issues in games such as Shovel Knight and slightly improves the LEGO games. Upmixing stitll needs to be implemented.
Audio levels in a few games will be fixed as we now use the downmix coefficients when possible instead of supplying our own
2020-11-17 14:14:29 +11:00
Morph
e7e8a87927
sdl_impl: Pump SDL Events at 1000 Hz
2020-11-15 23:33:21 -05:00
Morph
b254d528bc
configure_input: Accommodate for the mouse input device engine
2020-11-15 23:33:21 -05:00
Morph
ad50209383
hid: Reimplement Begin/EndPermitVibrationSession
...
Upon further investigation, these commands allow temporary vibrations even when the "Controller Vibration" system setting is disabled. As a result, vibrations are allowed when either the system setting or this flag is set to true. Therefore, we can only block vibrations when both flags are set to false.
2020-11-15 23:33:21 -05:00
Morph
d8ad2f3484
controllers/npad: Load input devices on init
2020-11-15 23:33:21 -05:00
Morph
6f5b942897
configure_input: Update the input profiles for other player tabs
2020-11-15 23:33:21 -05:00
Morph
97b2220a82
general: Fix compiler warnings on linux and miscellaneous changes
2020-11-15 23:33:21 -05:00
Morph
117bdc71e0
sdl_impl: Revert to the "old" method of mapping sticks
...
Not all controllers have a SDL_GameController binding. This caused controllers not present in the SDL GameController database to have buttons mapped instead of axes.
Furthermore, it was not possible to invert the axes when it could be useful such as emulating a horizontal single joycon or other potential cases. This allows us to invert the axes by reversing the order of mapping (vertical, then horizontal).
2020-11-15 23:33:21 -05:00
Morph
760a9e8693
applets/controller: Change the input button to create input profiles
...
Co-authored-by: Its-Rei <kupfel@gmail.com>
2020-11-15 23:33:21 -05:00
Morph
30e0d1c973
controllers/npad: Remove the old vibration filter
...
Previously we used a vibration filter that filters out amplitudes close to each other. It turns out there are cases where this results into vibrations that are too inaccurate. Remove this and move the 100Hz vibration filter (Only allowing a maximum of 100 vibrations per second) from sdl_impl to npad when enable_accurate_vibrations is set to false.
2020-11-15 23:33:21 -05:00
Morph
91c06dae1a
input: Disconnect a controller prior to connecting a new one
...
Some games do not respond to a change in controller type if 1) The controller is not disconnected prior to being reconnected and/or 2) The controller is reconnected instantly after being disconnected.
Since it is not possible to change controllers instantly on hardware and requiring a disconnect prior to connecting a new one, we should emulate this as well with a small delay, fixing the aforementioned issue.
2020-11-15 23:33:21 -05:00
Morph
978ca65f59
hid: Implement InitializeVibrationDevice and IsVibrationDeviceMounted
2020-11-15 23:33:20 -05:00
Morph
e9e1876e82
input_common: Add VibrationDevice and VibrationDeviceFactory
...
A vibration device is an input device that returns an unsigned byte as status.
It represents whether the vibration device supports vibration or not.
If the status returns 1, it supports vibration. Otherwise, it does not support vibration.
2020-11-15 23:33:20 -05:00
Morph
38110dd485
configure_input: Add per-player vibration
...
Allows for enabling and modifying vibration and vibration strength per player.
Also adds a toggle for enabling/disabling accurate vibrations.
Co-authored-by: Its-Rei <kupfel@gmail.com>
2020-11-15 23:33:20 -05:00
Morph
d6a41cfc21
settings: Remove global vibration strength modifier
...
This will be replaced in favor of per-player vibration strength modifiers.
2020-11-15 23:33:20 -05:00