27118 Commits

Author SHA1 Message Date
Pokechu22
f2f9df7541 Remove unused includes of QButtonGroup 2022-02-12 11:40:53 -08:00
Pokechu22
0daee4fe9f CheatSearchFactoryWidget: Set QButtonGroup's parent 2022-02-12 11:40:53 -08:00
Pokechu22
99b3ac21e4 NewBreakpointDialog: Fix improperly behaving radio buttons 2022-02-12 11:40:53 -08:00
Pokechu22
a05dd6b7e6 MemoryWidget: Fix improperly behaving radio buttons 2022-02-12 11:40:53 -08:00
JosJuice
989bdb8d6d Common/CodeBlock: Call ResetCodePtr when decreasing region_size
Fixes https://bugs.dolphin-emu.org/issues/12827.

A description of what was going wrong:

JitArm64::Init first calls CodeBlock::AllocCodeSpace, after which
CodeBlock and Arm64Emitter consider us to have 96 MB of code space
available. JitArm64::Init then calls AddChildCodeSpace, which is
supposed to take 64 MiB of that space and give it to m_far_code.
CodeBlock's view of how much space there is gets updated from 96 MiB
to 32 MiB, but due to the missing call, Arm64Emitter keeps thinking
that it has 96 MiB of space available.

The last thing JitArm64::Init does is to call ResetFreeMemoryRanges.
This function asks Arm64Emitter how much code space is available and
stores a range of that size in m_free_ranges_near, meaning that
m_free_ranges_near ends up being backed by both nearcode and farcode!
This is a ticking time bomb; as soon as we grab memory from
m_free_ranges_near which is backed by farcode, we're in trouble.
The crash I ran into in my testing was caused by fastmem code being
allocated in farcode (our backpatch handler only handles accesses made
from nearcode), but you may as well get errors caused by code intended
for nearcode overwriting code intended for farcode or vice versa.

So why did NBA Live 2005 crash when most games had no problems,
and why was the bug bisected to the commit that increased the size
of far code from 16 MiB to 64 MiB? Well, as long as we're only
using the first 32 MiB of the big 96 MiB range, everything works.
What happens with NBA Live 2005 (I have not investigated exactly
through what mechanism this happens) is that at some point the range
in m_free_ranges_near gets split into two ranges, one which is
backed by nearcode and one which is backed by farcode. Dolphin
prefers to select the biggest range available (we don't want to
pick a tiny 1 KiB range that may not be able to fit the whole block
we're about to emit, after all), and after increasing the size of
farcode to 64 MiB, farcode is bigger than nearcode.
2022-02-12 17:51:32 +01:00
JMC47
9214174bb3
Merge pull request #10435 from AdmiralCurtiss/savestate-crash
Core/State: Add some multithreading protections.
2022-02-11 06:28:46 -05:00
JMC47
9d69ca8850
Merge pull request #10386 from JosJuice/gba-save-dir-cond
Don't create GBA saves dir when building without mGBA
2022-02-11 06:27:43 -05:00
JMC47
30a9777c5a
Merge pull request #10394 from Pokechu22/alpha-1-blend
Revert TEV alpha lerp change and special-case alpha=1 in blending
2022-02-11 06:26:35 -05:00
Admiral H. Curtiss
af36b6c055
HotkeyManager: Change defaults for GBA hotkeys so they don't conflict with common keyboard mappings. 2022-02-10 17:30:23 +01:00
JMC47
a6f9dd5a83
Merge pull request #9544 from AdmiralCurtiss/fastmem-placeholder-windows
MemArena: Use memory placeholders for fastmem on Windows to ensure nothing allocates within the fastmem space.
2022-02-09 16:46:15 -05:00
Pokechu22
444f6fd0cb Treat alpha as 0 if alpha is 1 for blending
This removes the white box in fortune street again, without causing Mario Kart Wii to regress.
2022-02-08 15:15:15 -08:00
Pokechu22
0327e6acb4 Use the same logic for lerp bias for color and alpha
It doesn't make sense for alpha to add the bias ONLY when dividing by 2, while color doesn't apply the bias for divide by 2 only; hardware testing indicates that alpha should have the bias.

This fixes the menus in Mario Kart Wii (https://bugs.dolphin-emu.org/issues/11909) but reintroduces the white rectangle in Fortune Street.

This reverts commit 5aaa5141ed76acc3fffc70561a6b6e7fe3b9b470 (and several other matching changes elsewhere).
2022-02-08 15:15:15 -08:00
OatmealDome
a9b5188047 OGLMain: Set default value for bSupportsSettingObjectNames 2022-02-08 14:53:51 -05:00
OatmealDome
bdc55f9557 RenderState: Set source and destination alpha factors in logic op workaround 2022-02-07 16:03:22 -05:00
Admiral H. Curtiss
79405de103
MemArena: Use placeholders on Windows. 2022-02-06 18:06:04 +01:00
Admiral H. Curtiss
73311694b0
Core/State: Guard g_save_thread with a mutex. 2022-02-05 21:50:37 +01:00
Admiral H. Curtiss
56ea1c1d74
Core/State: Guard SaveAs() and LoadAs() with a mutex. 2022-02-05 21:50:34 +01:00
Admiral H. Curtiss
09a0ba06c0
Merge pull request #10417 from jordan-woyak/libavformat-59-build-fix
VideoCommon/FrameDump: Build fix for libavformat major version 59 and newer.
2022-02-04 20:42:34 +01:00
Mai M
40cda23491
Merge pull request #10404 from iwubcode/vulkan_headers_update
Externals / Vulkan: update Vulkan headers to v1.3.204
2022-02-04 01:04:29 -05:00
JMC47
4d1e6ff76a
Merge pull request #10422 from OatmealDome/opengl-shader-crash
VideoConfig: Add flag for whether the system supports setting object names
2022-01-31 01:25:46 -05:00
OatmealDome
8be3572c83 D3D12: Assume support for setting object names 2022-01-31 01:17:40 -05:00
OatmealDome
73d957f65c D3DMain: Assume support for setting object names 2022-01-31 01:17:40 -05:00
OatmealDome
4c7fe45475 VKShader: Only set shader name if supported 2022-01-31 01:17:40 -05:00
OatmealDome
28f3cb3d97 VKTexture: Only set texture name if supported 2022-01-31 01:17:40 -05:00
OatmealDome
a8ce71fcd4 VulkanContext: Set bSupportsSettingObjectNames based on extension initialization result 2022-01-31 01:17:40 -05:00
OatmealDome
801897467c VulkanEntryPoints: Make vkSetDebugUtilsObjectNameEXT an instance function 2022-01-31 01:17:40 -05:00
OatmealDome
a720083a7e Revert "Vulkan: Check for vkSetDebugUtilsObjectNameEXT before using it"
This reverts commit 2ab66390f8a461b074cb3cf6073b8f9d60875436.
2022-01-31 01:17:40 -05:00
OatmealDome
b36c866398 OGLTexture: Only set texture name if supported 2022-01-31 01:17:40 -05:00
OatmealDome
ea1ac73c38 OGLShader: Only set shader name if supported 2022-01-31 01:17:40 -05:00
OatmealDome
390cc13834 OGLRender: Set object name support on GL >4.3 and GL ES 3.2 2022-01-31 01:17:40 -05:00
OatmealDome
947b562e06 VideoConfig: Add flag for whether the system supports setting object names 2022-01-31 01:17:37 -05:00
JMC47
8e21495c59
Merge pull request #10419 from OatmealDome/mac-updater-rename
UpdaterCommon: Copy content file to a temporary file before renaming on macOS
2022-01-30 19:45:58 -05:00
OatmealDome
90665fbabe UpdaterCommon: Copy content file to a temporary file before renaming on macOS 2022-01-30 15:40:28 -05:00
Jordan Woyak
a9a163657c VideoCommon/FrameDump: Build fix for libavformat major version 59 and newer. av_guess_format now returns a pointer to const. 2022-01-30 13:16:51 -06:00
Admiral H. Curtiss
ff071f8b75
Core/BaseConfigLoader: Disallow loading the MAIN_MEMORY_CARD_SIZE from the global config INI. 2022-01-29 22:32:19 +01:00
Admiral H. Curtiss
63df67b7c8
Merge pull request #10395 from AdmiralCurtiss/memcard-size-setting
Port memory card size override setting to new config system.
2022-01-29 22:32:00 +01:00
Pokechu22
4aeef95746 Fix copy filter clamping when EFB VRAM copies are disabled 2022-01-29 12:23:32 -08:00
iwubcode
8e3dbe9671 Externals / Vulkan: update Vulkan headers to v1.3.204. Fix default present mode in Vulkan swap chain 2022-01-29 00:47:51 -06:00
Admiral H. Curtiss
a336c4386c
IOFile: Rename Clear() to ClearError() for clarity. 2022-01-29 06:49:22 +01:00
Admiral H. Curtiss
36cfcb530f
IOFile: Make origin parameter to Seek() an enum class. 2022-01-29 06:49:21 +01:00
JMC47
c2d8191fbb
Merge pull request #10401 from JosJuice/adreno-primitive-restart
DriverDetails: Disable primitive restart on Adreno
2022-01-28 15:12:43 -05:00
JosJuice
4f292f5ade DriverDetails: Disable primitive restart on Adreno
Turning off primitive restart increases performance a lot on
Adreno for some reason. We're talking numbers like 50%-100% faster
in situations which are bottlenecked by rendering.
2022-01-28 20:25:18 +01:00
JMC47
f0136e0eb6
Merge pull request #10396 from Pokechu22/efb-copy-clamp
Fix copy filter clamping (again)
2022-01-27 20:12:34 -05:00
JosJuice
80771ec89e
Merge pull request #10399 from Pokechu22/ubershader-fog-typo
UberShaderPixel: Fix typo in fog calculation
2022-01-27 22:59:49 +01:00
JosJuice
90f7565fcc
Merge pull request #10385 from shuffle2/arm-buildfix
msvc/arm64: fix shadowed variable warning
2022-01-27 18:00:33 +01:00
Pokechu22
cc9ed4815d UberShaderPixel: Fix typo in fog calculation 2022-01-26 20:23:35 -08:00
Pokechu22
ab5e71abf3
Merge pull request #10387 from Pokechu22/geometry-shader-always-write-layer
GeometryShaderGen: Write the layer for every vertex
2022-01-26 13:37:40 -08:00
Pokechu22
25c547e9e5 Fix incorrect copy filter clamping
We need to clamp to the center of pixels, or else things end up working out incorrectly.  This also fixes an off-by-1 for the bottom line.
2022-01-25 19:53:25 -08:00
Admiral H. Curtiss
407aefb6b9
Netplay: Get memory card size override setting from config system instead of manually parsing INI. 2022-01-26 00:57:44 +01:00
Admiral H. Curtiss
b88507a3ed
Core: Port memory card size override setting to new config system. 2022-01-25 23:50:03 +01:00