Commit Graph

39083 Commits

Author SHA1 Message Date
6aafbaf66f Fix build when using mGBA in unorthodox location
Includes use `mgba/` and `mgba-util/` as part of path, making compilation fail when relying on include directory supplied here was actually needed.
2023-02-14 22:24:02 +03:00
661b74f4a3 Merge pull request #11564 from JosJuice/jitarm64-cmp-order
JitArm64: Fix special cases of cmp
2023-02-14 20:19:07 +01:00
e1d3237dbd Merge pull request #11342 from TellowKrinkle/GLLayerMac
VideoCommon: Fix stereoscopic 3D on OpenGL < 4.3 (macOS)
2023-02-14 20:17:22 +01:00
0049a76775 JitArm64: Fix special cases of cmp
This fixes a regression from 592ba31. When `a` was a constant 0 and `b`
was a non-constant 0x80000000, the 32-bit negation operation would
overflow, causing an incorrect result. The sign extension needs to happen
before the negation to avoid overflow.

Note that I can't merge the SXTW and NEG into one instruction.
NEG is an alias for SUB with the first operand being set to ZR,
but "SUB (extended register)" treats register 31 as SP instead of ZR.

I've also changed the order for the case where `a` is a constant
0xFFFFFFFF. I don't think the order actually affects correctness here,
but let's use the same order for all the cases since it makes the code
easier to reason about.
2023-02-14 19:16:00 +01:00
22ed084209 Merge pull request #11563 from JosJuice/host-lock-cpu-fixups
Follow-up fixes for "Properly lock CPU before accessing emulated memory"
2023-02-14 19:04:21 +01:00
5b6784432c Follow-up fixes for "Properly lock CPU before accessing emulated memory" 2023-02-14 18:44:16 +01:00
f25a0b43b6 VideoCommon: Fix stereoscopic 3D on OpenGL < 4.3 (macOS) 2023-02-14 18:25:33 +01:00
ba3c38a63f Merge pull request #11406 from Pokechu22/intel-less-dual-source
VideoCommon: Clear blend configuration if color/alpha update disabled
2023-02-14 18:27:40 +13:00
4f6ce51d69 VideoCommon: Clear blend configuration if color/alpha update disabled
This works around an Intel driver bug where, on D3D12 only, dual-source blending behaves incorrectly if the second source is unused on. This bug is visible in skyboxes in Super Mario Sunshine, which first draw clouds and sun flare in greyscale and then draw the sky afterwards with a source factor of 1 and a dest factor of 1-src_color (this results in the clouds being tinted blue). This process is done on an RGB888 framebuffer, so alpha update is disabled. (Color update is enabled; note that if you look at this in Dolphin's fifo analyzer, it won't be enabled because they use the BP mask functionality to only change the blending functions and not alpha/color update, for whatever reason.)
2023-02-13 18:22:41 -08:00
5f929d00eb Merge pull request #11560 from phire/EventHook_construct_on_first_use
HookableEvent: Switch to construct on first use
2023-02-14 01:01:03 +01:00
34a459bed7 Merge pull request #11445 from JosJuice/jit64-wraparound-backpatch
Jit64: Properly handle backpatching overflowed address calculations
2023-02-14 01:00:13 +01:00
3458c58c7d Merge pull request #11503 from JosJuice/ppcanalyst-read-cr
PPCAnalyst: Actually check if instructions want CR
2023-02-14 00:55:24 +01:00
e2d7b6d079 Merge pull request #11559 from Pokechu22/cache-fix-plru-updates
PPCCache: Update PLRU on any cache access
2023-02-14 00:50:54 +01:00
8f91cb62e6 Merge pull request #11426 from shuffle2/stdfs
fileutil: use std::filesystem
2023-02-14 00:50:34 +01:00
9d139ea84e Merge pull request #11561 from AdmiralCurtiss/hle-execute-fix
JIT: Fix calls to HLE::Execute.
2023-02-13 12:09:36 +01:00
e1dbea3658 JIT: Fix calls to HLE::Execute.
This got broken in 7cecb28bdf.
2023-02-13 11:47:47 +01:00
05181f6b88 HookableEvent: Switch to construct on first use
A registration might happen during static initialization, which opens
us up to issues with ordering of static initialization.
2023-02-13 18:48:43 +13:00
1fc5d37fd2 Merge pull request #11558 from Pokechu22/vertex-loader-size-assertion-details
VertexLoader: Add more info to m_vertex_size == m_src_ofs assertion
2023-02-13 17:34:04 +13:00
cc411c4e41 VertexLoader: Add more info to m_vertex_size == m_src_ofs assertion 2023-02-12 20:10:38 -08:00
14c4f4e7f6 PPCCache: Update PLRU on any cache access
The previous code only updated the PLRU on cache misses, which made it so that the least recently inserted cache block was evicted, instead of the least recently used/hit one.

This regressed in 9d39647f9e (part of #11183, but it was fine in e97d380437), although beforehand it was only implemented for the instruction cache, and the instruction cache hit extremely infrequently when the JIT or cached interpreter is in use, which generally keeps it from behaving correctly (the pure interpreter behaves correctly with it).

I'm not aware of any games that are affected by this, though I did not do extensive testing.
2023-02-12 19:59:19 -08:00
a4729a026f Merge pull request #11554 from JosJuice/host-lock-cpu
DolphinQt: Properly lock CPU before accessing emulated memory
2023-02-13 16:08:36 +13:00
f37113204f Merge pull request #11550 from iwubcode/set_common_samplers_count
VideoCommon: add constant value for maximum number of pixel samplers
2023-02-13 16:05:51 +13:00
2c24d07837 Merge pull request #11538 from t895/disc-speed-stuff
Rename "Speed up Disc Transfer Rate" to "Emulate Disc Speed"
2023-02-13 15:46:56 +13:00
0ed64b080f Rename Fast Disc Speed to Emulate Disc Speed and invert option 2023-02-12 16:20:38 -05:00
d0941342d2 Android: Expose Emulate Disc Speed 2023-02-12 16:20:38 -05:00
5ef014e55a Merge pull request #11556 from AdmiralCurtiss/plain-file-s64
DiscIO/FileBlob: Make m_size unsigned.
2023-02-12 21:22:56 +01:00
300d63b492 DiscIO/FileBlob: Make m_size unsigned. 2023-02-12 20:51:08 +01:00
611e721a4d Jit64: Properly handle backpatching overflowed address calculations
Previously we would only backpatch overflowed address calculations
if the overflow was 0x1000 or less. Now we can handle the full 2 GiB
of overflow in both directions.

I'm also making equivalent changes to JitArm64's code. This isn't because
it needs it – JitArm64 address calculations should never overflow – but
because I wanted to get rid of the 0x100001000 inherited from Jit64 that
makes even less sense for JitArm64 than for Jit64.
2023-02-12 20:48:27 +01:00
9737345a9e Merge pull request #11493 from icup321/master
GameINI: Heavy Iron updates
2023-02-12 19:34:12 +01:00
70a5895a42 GameINI: Heavy Iron updates 2023-02-12 19:19:13 +01:00
f3ee167a3c Merge pull request #11536 from JosJuice/transifex-migrate
Update Transifex config for new client
2023-02-12 19:07:10 +01:00
c3dee1f11c Merge pull request #11499 from iwubcode/graphics-mod-pass-base-path
VideoCommon: allow graphics mods to have access to the file path where the config exists to load additional files
2023-02-12 19:04:59 +01:00
6f0266e8de DolphinQt: Only update call stack if paused
This avoids a pseudo infinite loop where CodeWidget::UpdateCallstack
would lock the CPU in order to read the call stack, causing the CPU to
call Host_UpdateDisasmDialog because it's transitioning from running to
pausing, causing Host::UpdateDisasmDialog to be emitted, causing
CodeWidget::Update to be called, once again causing
CodeWidget::UpdateCallstack to be called, repeating the cycle.

Dolphin didn't go completely unresponsive during this, because
Host_UpdateDisasmDialog schedules the emitting of Host::UpdateDisasmDialog
to happen on another thread without blocking, but it was stopping certain
operations like exiting emulation from working.
2023-02-12 12:50:28 +01:00
7cecb28bdf DolphinQt: Properly lock CPU before accessing emulated memory
This fixes a problem I was having where using frame advance with the
debugger open would frequently cause panic alerts about invalid addresses
due to the CPU thread changing MSR.DR while the host thread was trying
to access memory.

To aid in tracking down all the places where we weren't properly locking
the CPU, I've created a new type (in Core.h) that you have to pass as a
reference or pointer to functions that require running as the CPU thread.
2023-02-12 11:27:50 +01:00
efed037c4a Merge pull request #11553 from MayImilae/rename-viskip-to-vbiskip
Rename VI Skip to VBI Skip
2023-02-12 00:31:28 -05:00
508c79a66f Rename VI Skip to VBI Skip
VI Skip was very hard to explain on the blog, so this small changes
clarifies what VI Skip is to resolve that issue.
2023-02-11 20:28:41 -08:00
20dc4401c5 VideoCommon: pass a graphics mod base path to the graphics mod, so it can lookup other relative files if necessary 2023-02-11 00:21:40 -06:00
fbb3db71b2 Merge pull request #11526 from AdmiralCurtiss/netplay-crash
ENetUtil: Add check for valid socket in SendPacket().
2023-02-10 21:24:04 +01:00
2f6e7d497d ENetUtil: Add check for valid socket in SendPacket(). 2023-02-10 19:32:40 +01:00
9b5c52ad8d Merge pull request #11541 from Pokechu22/dsptool-no-redefine-label
DSPTool: Fix missing error when redefining labels
2023-02-10 11:02:36 +01:00
3c2933cad2 Merge pull request #11549 from Pokechu22/texturecachebase-bitset-include
TextureCacheBase: Remove unused bitset include
2023-02-10 10:55:07 +01:00
258151fe5a Merge pull request #11523 from degasus/OGL_KHR_subgroup
VideoBackend/OGL: Prefer KHR_shader_subgroup over NV_shader_thread.
2023-02-10 04:47:20 -05:00
dad7a32a35 Merge pull request #11534 from Pokechu22/warning-fixes-feb-2023
Resolve various compiler warnings
2023-02-10 21:21:15 +13:00
af313f8419 VideoCommon: add constant value to set the allowed maximum number of pixel samplers 2023-02-10 00:46:11 -06:00
3024ca2146 Suppress memcpy writing to an object with no trivial copy-assignment warnings
We need to copy padding in most of these cases, and the objects are trivially copyable; however, BitField prevents trivial copy-assignment.
2023-02-09 16:23:49 -08:00
ac7a17579e BreakPoints: Fix shadowing warning 2023-02-09 16:23:02 -08:00
3bd655463d MemoryViewWidget: Fix warning: enumeration value ‘Null’ not handled in switch [-Wswitch] 2023-02-09 16:23:02 -08:00
5c8d8383e2 CodeWidget: Fix shadowing warning 2023-02-09 16:23:02 -08:00
470115fd4f TextureDecoder: Fix warning: array subscript has type ‘char’ [-Wchar-subscripts] 2023-02-09 16:23:02 -08:00
debed35c10 State: Fix shadowing warnings 2023-02-09 16:23:02 -08:00