Commit Graph

32337 Commits

Author SHA1 Message Date
Admiral H. Curtiss e0d30e371c
Core/State: Rewrite threading behavior when multiple Save requests are happening. Should improve responsiveness when eg. mashing a save state button. 2022-10-02 00:00:29 +02:00
Admiral H. Curtiss 79efd5df1e
Common/WorkQueueThread: Make Shutdown() public, so users can wait for all currently queued tasks to finish when shutting down the thread. 2022-10-01 23:58:52 +02:00
JMC47 c196c47e81
Merge pull request #11090 from K0bin/submit-rework
Vulkan: Raise number of command buffers
2022-09-30 20:15:25 -04:00
Robin Kertels e5fb9c9adf
VideoBackends:Vulkan: Raise number of command buffers
Avoid waiting for earlier submissions when we flush more often.
The vertex manager will flush more often if the game accesses the EFB
on the CPU, to give the GPU a head start.
2022-10-01 01:26:04 +02:00
Robin Kertels fba7d35f94
VideoBackends:Vulkan: Associate descriptor pool with frame rather than command buffer 2022-10-01 01:26:04 +02:00
Robin Kertels ed75a58061
VideoBackends:Vulkan: Decouple available command buffers from frames in flight 2022-10-01 01:26:04 +02:00
Robin Kertels e8fa867f14
VideoBackends:Vulkan: Only synchronize with submission thread when necessary
We only need to synchronize with the submission thread
when submitting on the GPU thread or when waiting for a command buffer.
2022-10-01 01:26:04 +02:00
Robin Kertels 2e6d8d6575
VideoBackends:Vulkan: Fix validation error around surface_capabilities2 2022-10-01 01:26:03 +02:00
JMC47 68eda7f887
Merge pull request #11084 from K0bin/qcom-workaround
Vulkan: Workaround slow vkCmdCopyImageToBuffer on QCom
2022-09-30 15:33:00 -04:00
Robin Kertels 81c817c54d
VideoBackends:Vulkan: Workaround slow vkCmdCopyImageToBuffer on QCom driver 2022-09-30 21:13:42 +02:00
JosJuice 2e8d775df1 Jit64: boolX formatting fixes 2022-09-29 20:27:15 +02:00
Mai 1f2ec9afd6
Merge pull request #11052 from Tilka/shinkansen
Add emulated Shinkansen controller
2022-09-29 09:21:27 -04:00
Mai e3e6c3dfa4
Merge pull request #11088 from JosJuice/uicommon-set-enable-alert
Move a SetEnableAlert call to UICommon
2022-09-29 09:09:29 -04:00
Mai 6805c9dd0d
Merge pull request #11108 from AdmiralCurtiss/fat-fs-callbacks
FatFsUtil: Add ability to provide callbacks for the FatFs code.
2022-09-29 09:08:12 -04:00
Mai 0c19a1d87c
Merge pull request #11100 from Pokechu22/software-settings-merge
Use the same settings for the software renderer as other backends
2022-09-29 09:05:51 -04:00
Mai 3fab5b2338
Merge pull request #11097 from JosJuice/android-launch-wii-menu-check
Android: Improve checking in MainPresenter.launchWiiSystemMenu
2022-09-29 09:03:46 -04:00
Mai 865348cfb1
Merge pull request #11103 from JosJuice/android-gamefilecache-not-null
Android: Allocate GameFileCache on GUI thread
2022-09-29 09:02:47 -04:00
Pokechu22 87f84d4f54 Debugger/CodeWidget: Update callstack/callers/calls on symbol changes
Before, only the symbols box would update. However, if you edit the symbol of a function in the call stack (which seems like something that would happen reasonably often while debugging), the call stack would be out of date until it was updated by clicking on it. Callers and calls were more of an edge case; for them to be out of date, you would need to right-click on an instruction in a function other than the one containing the currently-selected instruction (though it would also affect recursive functions).
2022-09-28 21:01:37 -07:00
Admiral H. Curtiss 3182d9178c
FatFsUtil: Add ability to provide callbacks for the FatFs code. 2022-09-29 05:16:21 +02:00
Admiral H. Curtiss dafe2c785a
Merge pull request #9481 from Sintendo/jit64boolx
Jit64: boolX constant optimizations
2022-09-28 23:40:26 +02:00
Admiral H. Curtiss 95615ab91b
Merge pull request #11096 from Sintendo/arm64boolx
JitArm64: boolX constant optimizations
2022-09-28 21:58:06 +02:00
Admiral H. Curtiss 32bdc54869
Merge pull request #11101 from Pokechu22/backend-multithreading-enabled
DolphinQt: Only enable the backend multithreading checkbox if the backend supports it
2022-09-28 21:57:37 +02:00
Admiral H. Curtiss 4de70f1e99
Merge pull request #11099 from Pokechu22/draw_done_and_token_stats
VideoCommon: Add statistics for draw done and token commands
2022-09-28 21:56:54 +02:00
Vincent Pelletier 85d2358157 EXI_DeviceMemoryCard: Drop comment about ChipErase behaviour
Tested on an official DOL-014 (251 blocks) memory card by executing the
0xf4 command on a card with content along its entire length and then
dumping the whole card: it reads as 0xff all the way through.
Therefor, the current implementation is already consistent with hardware.
2022-09-28 11:55:46 +00:00
JosJuice d4709ce0ba Android: Remove unnecessary Context parameters 2022-09-27 19:09:47 +02:00
JosJuice 45901f64b5 Android: Use synchronized methods for GameFileCache
Compared to the previous solution of using big `synchronized` blocks,
this makes GameFileCacheManager's executor thread release and re-lock
the lock when possible, giving the GUI thread a chance to do a
(comparatively) quick getOrAdd call if it needs to.
2022-09-27 19:06:10 +02:00
JosJuice 51debaeb47 Revert "Android: Don't hold gameFileCache lock during updateAdditionalMetadata"
This reverts commit fb265b610d.

The optimization in that commit is safe when the executor thread is
writing and the GUI thread is reading, but I had failed to take into
account that it's unsafe when the GUI thread is writing and the executor
thread is reading. (The native UpdateAdditionalMetadata function loops
through m_cached_files, which is unsafe if another thread is adding
elements to m_cached_files simultaneously.)

Losing out on this optimization isn't too bad, because
719930bb39 makes it very unlikely that
both threads will want the lock at the same time.
2022-09-27 19:06:05 +02:00
JosJuice 481df6b660 Android: Allocate GameFileCache on GUI thread
This is intended to fix https://bugs.dolphin-emu.org/issues/13053,
which is a crash caused by sGameFileCache being null when addOrGet
is called.
2022-09-27 18:47:54 +02:00
JosJuice f857fa6529 Android: Add s prefix to static variables in GameFileCacheManager 2022-09-27 18:47:54 +02:00
Pokechu22 3d0cd8b076 DolphinQt: Remove software renderer settings widget
Thus, the software renderer uses the same settings as everything else, fixing https://bugs.dolphin-emu.org/issues/13051.
2022-09-26 19:43:57 -07:00
Pokechu22 b90d23158f Software: Fix mipmaps and uneven strides in SWTexture
I think this is only used for texture dumping, but this resolves some failed assertions and glitchy results.
2022-09-26 19:43:57 -07:00
Pokechu22 94a77bc573 DolphinQt: Only enable the backend multithreading checkbox if the backend supports it 2022-09-26 19:25:11 -07:00
Pokechu22 a6c00c7633 D3D12: Fix backend multithreading incorrectly being marked as supported 2022-09-26 19:24:52 -07:00
Pokechu22 56fce3ba8a Software: Remove dedicated texture/frame dumping infrastructure
Texture dumping can already be done using VideoCommon's system (and in fact the same setting already enabled *both* of these). Dumping objects/TEV stages/texture fetches doesn't currently have an equivalent, but could be added to the FIFO player instead.
2022-09-26 18:25:54 -07:00
Pokechu22 39569392bd VideoCommon: Add statistics for draw done and token commands 2022-09-26 16:19:54 -07:00
Pokechu22 67ed4fa92d Common/Image: Add unit to log message 2022-09-26 15:04:15 -07:00
JosJuice 2c216c9a2b Android: Improve checking in MainPresenter.launchWiiSystemMenu
Not only SystemMenuNotInstalledDialogFragment requires directory
initialization to have completed, but also isSystemMenuInstalled.
2022-09-25 22:15:15 +02:00
Bram Speeckaert 4914ff25d6 JitArm64: boolX constant optimizations
A (partial) port of #9481 to ARM64. This commit adds special cases for
immediate values equal to 0 or 0xFFFFFFFF, allowing for more efficient
or no code to be generated.
2022-09-25 14:58:26 +02:00
Bram Speeckaert 9d73583ea3 JitArm64: Skip redundant imm to register writes
When a guest register is an immediate, it may be necessary to move this
value into a register. This is handled by gpr.R(), which lacks context
on how the register will be used. This leads to cases where the
immediate is written to a register, only for it to be overwritten. Take
for example this code generated by srwx:

0x5280031b   mov    w27, #0x18
0x53187edb   lsr    w27, w22, #24

gpr.BindToRegister() does have this context through the do_load
parameter, but didn't handle immediates. By adding this logic, we can
intelligently skip the write when do_load is false.
2022-09-25 10:04:51 +02:00
Admiral H. Curtiss f106bc150a
Merge pull request #11083 from sepalani/bba-check
BBA/BuiltIn: Fix a crash during network stack exhaustion
2022-09-24 20:30:46 +02:00
Admiral H. Curtiss 63975556a4
Merge pull request #10175 from dreamsyntax/pause-on-panic
Core/DolphinQt: Add Pause on Panic Option for DSI Exceptions and Unknown Instruction
2022-09-24 20:28:09 +02:00
Admiral H. Curtiss 571e300e9e
Merge pull request #11047 from AdmiralCurtiss/netplay-save-options-rework
Netplay: Simplify save data options.
2022-09-24 20:26:05 +02:00
JosJuice 04072f0ce6 Integrate "Ignore for this session" better with config system
Because of the previous commit, this is needed to stop DolphinQt from
forgetting that the user pressed ignore whenever any part of the config
is changed.

This commit also changes the behavior a bit on DolphinQt: "Ignore for
this session" now applies to the current emulation session instead of
the current Dolphin launch. This matches how it already worked on
Android, and is in my opinion better because it means the user won't
lose out on important panic alerts in a game becase they played another
game first that had repeated panic alerts that they wanted to ignore.

For Android, this commit isn't necessary, but it makes the code cleaner.
2022-09-24 13:03:45 +02:00
JosJuice 16c71b9a35 Move a SetEnableAlert call to UICommon
This fixes a problem where changing the Use Panic Handlers setting on
Android wouldn't take effect until the app was restarted.
2022-09-24 12:35:10 +02:00
Admiral H. Curtiss 02a967f786
InputCommon: Add equality operators to RawValue. 2022-09-24 01:44:21 +02:00
Admiral H. Curtiss 24a1fe32f1
InputCommon: Make RawValue constructors constexpr. 2022-09-24 01:38:09 +02:00
Admiral H. Curtiss 70485472b1
Common/Matrix: Add equality operators to TVec2/3/4. 2022-09-24 01:38:01 +02:00
Admiral H. Curtiss 3fa9fdf57a
Merge pull request #11075 from AdmiralCurtiss/controller-gui-refresh
Qt/Controllers: Refresh GUI on settings change.
2022-09-24 00:14:54 +02:00
Sepalani 34858e934f BBA/BuiltIn: Ignore UPnP request to itself 2022-09-23 20:54:26 +04:00
Sepalani df53ebb59f BBA/BuiltIn: Fix a crash during network stack exhaustion 2022-09-23 18:59:27 +04:00