Commit graph

34386 commits

Author SHA1 Message Date
JosJuice
1f130bf8a3 Android: Declare host thread when generating analytics ID
Another instance of the host thread check failing.
2023-06-21 18:16:46 +02:00
Sketch
bc0e8158b3 IOS/KD/Time: Take into account DST for AdjustedUTC 2023-06-20 22:49:33 -04:00
iwubcode
1d767c3a5b VideoCommon: add graphics mod callback interface for when a texture is created 2023-06-20 19:26:53 -05:00
iwubcode
2dc24a9148 VideoCommon: move cached texture asset to 'CustomAsset' common code 2023-06-20 18:59:55 -05:00
Admiral H. Curtiss
5ad2d86cc7
Merge pull request #11979 from nicovank/master
Minor fix: Rename Symbol constructor parameter to prevent shadowing
2023-06-21 00:54:30 +02:00
Charles Lombardo
deb37f0846
Merge pull request #11964 from JosJuice/android-hide-infinity
Android: Hide Infinity Base in MenuFragment when not relevant
2023-06-20 17:11:18 -04:00
Nicolas van Kempen
4ef2f2c710 Rename Symbol constructor parameter to prevent shadowing 2023-06-20 13:38:31 -04:00
Admiral H. Curtiss
00bf5f55de
WiimoteReal/IOWin: Don't try to print error message for non-errors. 2023-06-20 01:54:59 +02:00
JosJuice
27db8d4123
Merge pull request #11935 from nitanmarcel/patch-1
Use getCacheDir if getExternalCacheDir returns null.
2023-06-19 20:47:27 +02:00
JosJuice
cff3e22f84
Merge pull request #11926 from JosJuice/android-host-check
Android: Re-add host thread check
2023-06-19 20:37:59 +02:00
Admiral H. Curtiss
5d7b5822c9
Merge pull request #11972 from Minty-Meeo/string-improvements-part-1c
Replace std::ostringstream usage with fmt::format
2023-06-19 02:18:30 +02:00
get
ffabb6c57b Replace std::ostringstream usage with fmt::format 2023-06-18 18:37:32 -05:00
Filoppi
daddf4cd9c Qt: add color correction and HDR Qt settings widgets 2023-06-19 01:34:42 +03:00
Filoppi
a2702c6e27 Video: implement color correction to match the NTSC and PAL color spaces (and gamma) that GC and Wii targeted.
To further increase the accuracy of the post process phase, I've added (scRGB) HDR support, which is necessary
to fully display the PAL and NTSC-J color spaces, and also to improve the quality of post process texture samplings and
do them in linear space instead of gamma space (which is very important when playing at low resolutions).
For SDR, the quality is also slightly increased, at least if any post process runs, as the buffer is now
R10G10B10A2 (on Vulkan, DX11 and DX12) if supported; previously it was R8G8B8A8 but the alpha bits were wasted.

Gamma correction is arguably the most important thing as Dolphin on Windows outputted in "sRGB" (implicitly)
as that's what Windows expects by default, though sRGB gamma is very different from the gamma commonly used
by video standards dating to the pre HDR era (roughly gamma 2.35).

Additionally, the addition of HDR support (which is pretty straight forward and minimal), added support for
our own custom AutoHDR shaders, which would allow us to achieve decent looking HDR in Dolphin games without
having to use SpecialK or Windows 11 AutoHDR. Both of which don't necessarily play nice with older games
with strongly different and simpler lighting. HDR should also be supported in Linux.
Development of my own AutoHDR shader is almost complete and will come next.

This has been carefully tested and there should be no regression in any of the different features that Dolphin
offers, like multisampling, stereo rendering, other post processes, etc etc.

Fixes: https://bugs.dolphin-emu.org/issues/8941

Co-authored-by: EndlesslyFlowering <EndlesslyFlowering@protonmail.com>
Co-authored-by: Dogway <lin_ares@hotmail.com>
2023-06-19 01:34:42 +03:00
Admiral H. Curtiss
9e06b6964b
Merge pull request #11963 from iwubcode/d3d12_fix
VideoBackends: fix d3d12 error when validation layers enabled
2023-06-19 00:33:40 +02:00
Admiral H. Curtiss
8039d10994
Merge pull request #11966 from Dentomologist/convert_xemitter_prefetchlevel_to_enum_class
xEmitter: Convert PrefetchLevel to enum class
2023-06-18 15:17:02 +02:00
Admiral H. Curtiss
2d18c9e079
Merge pull request #11976 from JosJuice/emitter-nodiscard
Arm64Emitter/x64Emitter: Use nodiscard for FixupBranch
2023-06-18 15:16:42 +02:00
Filoppi
0584f8ae2a Video: fix Vulkan RGBA10_2 format to the actual most common one (used as swapchain format) 2023-06-18 12:58:40 +03:00
JosJuice
39a8219767 Arm64Emitter/x64Emitter: Use nodiscard for FixupBranch
This should prevent future occurrences of the type of problem that was
fixed in b713042.
2023-06-18 09:10:20 +02:00
get
80575c4489 DITConfiguration: Use File::ReadFileToString 2023-06-17 19:38:15 -05:00
Dentomologist
04fcf68176 xEmitter: Convert PrefetchLevel to enum class 2023-06-17 16:41:32 -07:00
Admiral H. Curtiss
b71304230c
Jit64: Fix trampolines after #11834. 2023-06-18 01:31:44 +02:00
Admiral H. Curtiss
93d9e90798
Merge pull request #11962 from Minty-Meeo/to-underlying
EnumUtils: Add Common::ToUnderlying
2023-06-17 20:04:25 +02:00
Lioncash
696087cae0 Qt/NetworkWidget: Get rid of some trivial sign conversions
In all instances, these variables should be signed rather than unsigned.
2023-06-17 10:48:49 -04:00
get
7523a62105 Change unnamed enum in NativeVertexFormat.h to u32 2023-06-17 08:13:57 -05:00
Admiral H. Curtiss
79d5850e6a
Merge pull request #11960 from Minty-Meeo/dolphin-tool-code-review-4
DolphinTool: Use {fmt} library
2023-06-17 14:18:21 +02:00
get
07ad75f34f EnumUtils: Add Common::ToUnderlying
Mirrors the C++23 <utility> function, std::to_underlying
2023-06-17 07:15:33 -05:00
JosJuice
f16381adc5 Android: Hide Infinity Base in MenuFragment when not relevant 2023-06-17 11:57:53 +02:00
iwubcode
ba74902bca VideoBackends: fix d3d12 validation layer error introduced by multi-output texture breaking logic ops support 2023-06-17 01:48:59 -05:00
get
e67c196d2a DolphinTool: Less string copies 2023-06-16 21:51:06 -05:00
get
410c4ffe75 DolphinTool: Use {fmt} library 2023-06-16 21:45:59 -05:00
Admiral H. Curtiss
5029924ba1
Merge pull request #11954 from Minty-Meeo/dolphin-tool-code-review-3
DolphinTool: Use EXIT_SUCCESS and EXIT_FAILURE
2023-06-17 04:44:09 +02:00
Admiral H. Curtiss
1aef85a985
Merge pull request #11918 from TellowKrinkle/DPIScale
Improved DPI change handling
2023-06-17 04:07:13 +02:00
Admiral H. Curtiss
089d433996
Merge pull request #11956 from JosJuice/jitarm64-12-bit-asm
JitArm64: Micro-optimizations in fres routine
2023-06-17 04:00:22 +02:00
get
969eeb4b52 DolphinTool: Use EXIT_SUCCESS and EXIT_FAILURE 2023-06-16 21:00:10 -05:00
get
25c020cbe2 DolphinTool: Ditch OOP design 2023-06-16 20:39:16 -05:00
Admiral H. Curtiss
98b5d72ef1
Merge pull request #11951 from Minty-Meeo/dolphin-tool-code-review-1
DolphinTool: Sensible changes
2023-06-17 03:03:26 +02:00
get
31e78c40a1 DolphinTool: Sensible changes 2023-06-16 18:28:03 -05:00
Admiral H. Curtiss
cbcf5bfac1
Merge pull request #11889 from Filoppi/patch-18
Fix video output having small black borders all the times
2023-06-16 17:59:51 +02:00
Admiral H. Curtiss
50301bf1d1
Merge pull request #11957 from lioncash/resource
UICommon/ResourcePack: Allow priority helpers to take arguments by const reference
2023-06-16 17:01:19 +02:00
Lioncash
653d6d059f UICommon/ResourcePack: Allow priority helpers to take arguments by const reference
There's nothing going on with behavior here that would prevent these
from being const qualified.

Also better communicates that this function isn't intended to modify the
given resource pack.
2023-06-16 10:20:50 -04:00
Admiral H. Curtiss
f5eea4a957
Merge pull request #11834 from Dentomologist/xemitter_use_pseudonamed_parameter_force5bytes
XEmitter: Add enum class Force5Bytes
2023-06-16 15:46:36 +02:00
JosJuice
9c13436e2b JitArm64: Improve instruction scheduling in fres routine
We want to have a low number of instructions between the LDP and the
MADD so that the MADD can start immediately after the LDP finishes
even if we're on a lower-end in-order CPU.
2023-06-15 22:02:39 +02:00
JMC47
f0f8225ff8
Merge pull request #11424 from Pokechu22/jit-imm-loadstore-update
Jit64: Attempt to fix updating stores with an immediate value
2023-06-15 11:32:30 -04:00
TellowKrinkle
5b10a80401 CMake: Use targets for all optionally-external dependencies 2023-06-15 01:41:41 -05:00
JosJuice
5b5124d9ff JitArm64: Use immediates more in fres routine
Not sure why I didn't do this to begin with. Maybe I was under the
impression that the most significant bit of a 12-bit immediate was a
sign bit.
2023-06-14 23:27:58 +02:00
Admiral H. Curtiss
bd125733f0
Merge pull request #11946 from Dentomologist/convert_fromwhichroot_to_enum_class
Common: Convert FromWhichRoot to enum class
2023-06-14 13:29:07 +02:00
Admiral H. Curtiss
88ff00a05c
Merge pull request #11942 from Dentomologist/convert_controlleremu_translatability_to_enum_class
ControllerEmu: Convert Translatability to enum class
2023-06-14 13:27:47 +02:00
Admiral H. Curtiss
79073c1a40
Merge pull request #11944 from lioncash/casts
PPCCache: Remove redundant reinterpret_casts
2023-06-14 13:25:48 +02:00
Dentomologist
7ff7c9e84f Common: Convert FromWhichRoot to enum class 2023-06-13 13:25:22 -07:00
Marcel Alexandru Nitan
cff7a4bfd2 Use getCacheDir if getExternalCacheDir returns null. 2023-06-13 18:44:27 +00:00
JosJuice
ae4d52c838 Android: Fix overlay d-pad not working until finger moves
A switch case fallthrough was overlooked when translating from Java to
Kotlin.
2023-06-13 20:37:59 +02:00
JosJuice
c961c6c35a Android: Fix pressing up on overlay d-pad 2023-06-13 20:37:59 +02:00
Lioncash
708c986693 PPCCache: Remove redundant reinterpret_casts
The pointer is being passed to functions that take arguments as void*,
so we don't need to cast here.
2023-06-13 08:25:26 -04:00
Admiral H. Curtiss
6d16a09707
Merge pull request #11941 from Dentomologist/convert_blockingloop_stopmode_to_enum_class
Common: Convert BlockingLoop::StopMode to enum class
2023-06-13 11:47:20 +02:00
Admiral H. Curtiss
74c0519c54
Merge pull request #11930 from iwubcode/game_texture_validation
VideoCommon: don't reject game textures which have the wrong size
2023-06-13 11:43:35 +02:00
iwubcode
3e27fc7c0b VideoCommon: don't treat incorrect aspect ratio or sizes that aren't a multiple of native textures as an error 2023-06-12 21:19:29 -05:00
Dentomologist
527f8e783c ControllerEmu: Convert Translatability to enum class 2023-06-12 18:11:04 -07:00
Dentomologist
3c80f821c0 Common: Convert BlockingLoop::StopMode to enum class 2023-06-12 17:12:25 -07:00
Admiral H. Curtiss
63090d411d
Merge pull request #11940 from lioncash/debugiface
Common: Move DebugInterface.h into Core
2023-06-13 01:59:33 +02:00
JosJuice
f11175d117 Revert "Android: Temporarily disable host thread check"
This reverts commit 361171fce0.
2023-06-12 23:39:42 +02:00
JosJuice
03f2f57edf Android: Add HostThreadLock where necessary 2023-06-12 23:39:42 +02:00
JosJuice
3519a7070d Android: And Lock and Unlock wrappers to HostThreadLock
This way we can ensure DeclareAsHostThread and UndeclareAsHostThread
are called when locking and unlocking.
2023-06-12 23:39:42 +02:00
JosJuice
5524042922 Android: Move host thread lock to a separate file 2023-06-12 23:39:42 +02:00
Dentomologist
4c2759f541 XEmitter: Add enum class Jump
Replace the bool parameter force5bytes in J, JMP, and J_CC with an enum
class Jump::Short/Near. Many callers set that parameter to the literal
'true', which was unclear if you didn't already know what it did.
2023-06-12 13:04:18 -07:00
JMC47
c8559a7933
Merge pull request #11863 from Minty-Meeo/nkit-extract
Remove NKit data when extracting a GCN/Wii disc volume
2023-06-12 15:37:02 -04:00
Admiral H. Curtiss
635bce2e7b
Merge pull request #11939 from lioncash/condition
BreakpointDialog: Mark breakpoint help text as translatable
2023-06-12 20:13:07 +02:00
Admiral H. Curtiss
b4d161ff29
Merge pull request #11938 from lioncash/inits
ParallelProgressDialog: Initialize all data members
2023-06-12 20:07:57 +02:00
Admiral H. Curtiss
b3f4006bb7
Merge pull request #11937 from lioncash/sky
SkylanderPortalWindow: Detranslate unnecessary strings
2023-06-12 20:07:37 +02:00
Lioncash
41df38cb7c Common: Move DebugInterface.h into Core
The base DebugInterface now depends on the Core's CPUThreadGuard, and
utilities in Common shouldn't be depending on Core facilities. So, we
can move this into the core library instead.
2023-06-12 10:35:31 -04:00
Lioncash
6e9afd9a73 BreakpointDialog: Mark breakpoint help text as translatable
We already mark the title of the dialog box as translatable, so it
would be a bit odd to not mark the containing text as translatable too.
2023-06-12 09:50:17 -04:00
Lioncash
9c0cd5c81a ParallelProgressDialog: Mark WasCanceled() as const
This doesn't alter any class state.
2023-06-12 09:38:10 -04:00
Lioncash
b70894b950 ParallelProgressDialog: Initialize all data members
Ensures we always have a deterministic state.
2023-06-12 09:36:51 -04:00
Lioncash
001fe6ff61 SkylanderPortalWindow: Detranslate unnecessary strings
This doesn't need to be handled by translators, since they're not
user-displayed text or just don't need to be translated.

While we're at it, we don't need to copy each entry of the resulting
list.
2023-06-12 09:26:16 -04:00
Lioncash
cbd2a720bb InfinityBaseWindow: Remove unnecessary system instance accessor
GetFigureList() is a static member function, so we can just call it
directly instead of going through the system instance.
2023-06-12 09:02:20 -04:00
Charles Lombardo
9a7e1652f3 Android: Target Java 17 2023-06-11 23:44:44 -04:00
Charles Lombardo
7822e662f5 Android: Update Kotlin to 1.8.21
Additionally updates the serialization plugin to match
2023-06-11 23:44:44 -04:00
Charles Lombardo
4934b6e30b Android: Update dependencies 2023-06-11 23:44:44 -04:00
Charles Lombardo
7c2c558646 Android: Upgrade to AGP 8.0.2 2023-06-11 23:44:44 -04:00
Charles Lombardo
4e4705e983
Merge pull request #11931 from t895/build-flag-fix
Android: Fix use of deprecated JVM flag
2023-06-11 23:37:53 -04:00
OatmealDome
1a0a1e8f12
Merge pull request #10976 from TellowKrinkle/StackFrames
Improve stack frames for profilers
2023-06-12 05:00:08 +02:00
Charles Lombardo
78f7463363 Android: Fix use of deprecated JVM flag 2023-06-11 22:54:31 -04:00
TellowKrinkle
fc53dca7bd Qt: Send SizeChanged on DPI changes 2023-06-11 20:05:27 -05:00
TellowKrinkle
d3110b9521 VideoCommon: Update imgui scale when dpi changes 2023-06-11 20:05:27 -05:00
Charles Lombardo
157deb5864
Merge pull request #11928 from K0bin/adrenotools-release-build-fix
Android: Fix Adrenotools in release builds
2023-06-11 17:02:36 -04:00
Charles Lombardo
8db5775a1b
Merge pull request #11927 from JosJuice/android-custom-file-extension-locale
Android: Check file name extensions locale-independently
2023-06-11 16:52:50 -04:00
Robin Kertels
6f55b26751
Android: Fix Adrenotools in release builds 2023-06-11 22:44:48 +02:00
JMC47
5c0581e990
Merge pull request #11867 from K0bin/adrenotools
Implement loading custom drivers on Android
2023-06-11 14:17:39 -04:00
JosJuice
fee86e8536 Android: Check file name extensions locale-independently
A very minor bug that became more obvious when this code was translated
to Kotlin.
2023-06-11 19:03:49 +02:00
Robin Kertels
2da7d16b7c
Android: Implement a UI for Adrenotools 2023-06-11 13:53:31 +02:00
Robin Kertels
23bebc5270
VideoBackends:Vulkan: Allow loading custom drivers on Android
... using libadrenotools
2023-06-11 13:52:34 +02:00
Charles Lombardo
28785c5fad Android: Convert SaveLoadStateFragment to Kotlin 2023-06-11 00:53:26 -04:00
Charles Lombardo
d26eddd4e2 Android: Convert MenuFragment to Kotlin 2023-06-11 00:53:26 -04:00
Charles Lombardo
afb6719a1a Android: Convert EmulationFragment to Kotlin 2023-06-11 00:53:26 -04:00
Charles Lombardo
7e7cd6ff76 Android: Convert CustomFilePickerFragment to Kotlin 2023-06-11 00:53:26 -04:00
TellowKrinkle
28ed1f8be1 Common:AGL: Support making temporary contexts from the main thread
- Don't crash when making contexts from the main thread
- Don't focus the window when making a context
2023-06-10 14:25:45 -05:00
OatmealDome
7752e247f7
Merge pull request #11911 from TellowKrinkle/MTLParallelCompilation
VideoBackends:Metal: Enable shouldMaximizeConcurrentCompilation when available
2023-06-10 19:39:24 +02:00
Filoppi
03ec86f248
Qt: Add float config tooltip slider 2023-06-09 22:07:12 +02:00
JosJuice
061ec365a8 PPCAnalyst: Reduce number of iterations in ReorderInstructionsCore
We can utilize the fact that if swapping two instructions causes another
swap to become possible, that swap involves one of the two instructions
we just swapped. There's need to search for new swap opportunities as
far back as the beginning of the block; we can just go one step back.
2023-06-09 19:45:51 +02:00
Admiral H. Curtiss
8f51a9d2d8
Merge pull request #11699 from Pokechu22/gl-check-maximum-samples
OpenGL: Check the list of supported AA modes instead of hardcoding
2023-06-09 15:07:07 +02:00
Admiral H. Curtiss
092773ad0c
Merge pull request #11859 from iwubcode/backend-multi-output
VideoBackends: add support to allow rendering to multiple output targets
2023-06-09 13:40:21 +02:00
Pokechu22
ac48b2eea4 EnhancementsWidget: Handle gaps in AA mode list
Mesa (llvmpipe) only reports 4x MSAA, and doesn't report 2x (or 1x, but we implicitly add that). The old logic did not handle this correctly, causing selecting 4x to fail and fall back to None.

This also removes VideoUtils::GetAvailableAntialiasingModes, and thus VideoUtils entirely, as its only other function was removed in 1f74653501.
2023-06-08 22:07:41 -07:00
Pokechu22
b246a634d4 OpenGL: Check the list of supported AA modes instead of hardcoding 2023-06-08 22:07:41 -07:00
Pokechu22
c63f0f37cd VideoCommon: Pass WindowSystemInfo to InitBackendInfo 2023-06-08 22:07:39 -07:00
iwubcode
afa498fa2f VideoCommon: update DirectFilesystemAssetLibrary to not throw exceptions when a file no longer exists 2023-06-08 22:20:52 -05:00
iwubcode
429b2eca8a VideoCommon: add logging for loading texture assets 2023-06-08 19:48:45 -05:00
TellowKrinkle
e7f4b7679b VideoBackends:Metal: Enable shouldMaximizeConcurrentCompilation when available 2023-06-08 18:57:41 -05:00
Admiral H. Curtiss
7845fb00ee
Merge pull request #11681 from iwubcode/asset_management
VideoCommon: migrate texture packs to use the asset loader system
2023-06-08 22:21:12 +02:00
JosJuice
f561bd4285
Merge pull request #11910 from lioncash/construct
PowerPC/ConditionRegister: Mark PPCToInternal() as constexpr
2023-06-08 21:26:07 +02:00
Admiral H. Curtiss
0d07ebab25
Merge pull request #11908 from lioncash/strcopy
Debugger: Remove some trivial string copies
2023-06-08 20:54:21 +02:00
Admiral H. Curtiss
e8c87dc4fd
Merge pull request #11902 from Minty-Meeo/regex-best-practices
static const std::regex
2023-06-08 20:52:11 +02:00
Admiral H. Curtiss
e3cae72c18
Merge pull request #11909 from lioncash/spans
GCMemcardUtils: Make use of std::span where applicable
2023-06-08 20:46:08 +02:00
Lioncash
09271f365a PowerPC/ConditionRegister: Mark PPCToInternal() as constexpr
This allows the compiler to eliminate a static constructor that
initializes the table, and instead precompute all of the data ahead of
time.

e.g. We get something like so on GCC without constexpr:

_GLOBAL__sub_I_PowerPC::ConditionRegister::s_crTable:
        movdqa  xmm0, XMMWORD PTR .LC0[rip]
        movaps  XMMWORD PTR PowerPC::ConditionRegister::s_crTable[rip], xmm0
        movdqa  xmm0, XMMWORD PTR .LC1[rip]
        movaps  XMMWORD PTR PowerPC::ConditionRegister::s_crTable[rip+16], xmm0
        movdqa  xmm0, XMMWORD PTR .LC2[rip]
        movaps  XMMWORD PTR PowerPC::ConditionRegister::s_crTable[rip+32], xmm0
        movdqa  xmm0, XMMWORD PTR .LC3[rip]
        movaps  XMMWORD PTR PowerPC::ConditionRegister::s_crTable[rip+48], xmm0
        movdqa  xmm0, XMMWORD PTR .LC4[rip]
        movaps  XMMWORD PTR PowerPC::ConditionRegister::s_crTable[rip+64], xmm0
        movdqa  xmm0, XMMWORD PTR .LC5[rip]
        movaps  XMMWORD PTR PowerPC::ConditionRegister::s_crTable[rip+80], xmm0
        movdqa  xmm0, XMMWORD PTR .LC6[rip]
        movaps  XMMWORD PTR PowerPC::ConditionRegister::s_crTable[rip+96], xmm0
        movdqa  xmm0, XMMWORD PTR .LC7[rip]
        movaps  XMMWORD PTR PowerPC::ConditionRegister::s_crTable[rip+112], xmm0
        ret
PowerPC::ConditionRegister::s_crTable:
        .zero   128
.LC0:
        .quad   -9223372032559808511
        .quad   -8646911280256385023
.LC1:
        .quad   -9223372032559808512
        .quad   -8646911280256385024
.LC2:
        .quad   4294967297
        .quad   576460756598390785
.LC3:
        .quad   4294967296
        .quad   576460756598390784
.LC4:
        .quad   -4611686014132420607
        .quad   -4035225261828997119
.LC5:
        .quad   -4611686014132420608
        .quad   -4035225261828997120
.LC6:
        .quad   4611686022722355201
        .quad   5188146775025778689
.LC7:
        .quad   4611686022722355200
        .quad   5188146775025778688

and with constexpr, this all get collapsed into:

PowerPC::ConditionRegister::s_crTable:
        .quad   -9223372032559808511
        .quad   -8646911280256385023
        .quad   -9223372032559808512
        .quad   -8646911280256385024
        .quad   4294967297
        .quad   576460756598390785
        .quad   4294967296
        .quad   576460756598390784
        .quad   -4611686014132420607
        .quad   -4035225261828997119
        .quad   -4611686014132420608
        .quad   -4035225261828997120
        .quad   4611686022722355201
        .quad   5188146775025778689
        .quad   4611686022722355200
        .quad   5188146775025778688

completely eliminating the static constructor. MSVC also exhibits this,
whereas clang is a little better and does this anyway, even without
constexpr.
2023-06-08 14:33:13 -04:00
Lioncash
349add0f81 GCMemcardManager: Shorten-up EnumMap definitions
We can make a small alias that gets rid of the need to repeat the long
constant.
2023-06-08 13:05:13 -04:00
Lioncash
1044bc40ca GCMemcardUtils: Make use of std::span where applicable
Generifies bits of the interface so that some functions aren't
explicitly tied down to only using std::vector.
2023-06-08 12:59:43 -04:00
Lioncash
fae5ca39ad InfinityBaseWindow: Move core headers into cpp file
Restricts the headers to the cpp file where they're needed and prevents
the headers from "leaking" into other translation units.
2023-06-08 12:39:10 -04:00
Lioncash
2b0a9477d0 MemoryViewWidget: Use QStringView with ConvertTextToBytes
Allows for avoiding string copies. While we're at it, we can also mark
ConvertTextToBytes as const.
2023-06-08 12:01:59 -04:00
Lioncash
cfd25f1d7c CodeDiffDialog: Construct Diff instance in CalculateSymbolsFromProfile() when necessary
We can move the construction of the Diff instance into the body of the
if statement, so that we only construct this if the condition is true.

While we're at it, we can move the symbol description string into the
instance, getting rid of a copy. The function itself can also be const
qualified.
2023-06-08 11:55:57 -04:00
Lioncash
496aea54c0 CodeDiffDialog: Pass QString by const reference to create_item
Avoids churning string copies when updating
2023-06-08 11:48:09 -04:00
Lioncash
c99b0f2eb8 BreakpointWidget: Pass QString by const reference to create_item
Avoids churning string copies when performing updates.
2023-06-08 11:46:16 -04:00
Lioncash
867e7d259d BreakpointDialog: Pass QString by const reference to invalid_input
Gets rid of redundant copying.
2023-06-08 11:45:14 -04:00
Lioncash
d092381d25 InfinityBaseWindow: Collapse lambda into direct member pointer
The parameters to this match the requirements of the toggled() function
exactly, so we can pass the function directly into the connect call.
2023-06-08 11:01:34 -04:00
Lioncash
1f874be36e InfinityBaseWindow: Remove redundant string copies
tr() already returns a QString, so we don't need to construct a QString
around it, and FindFigure() already returns a std::string.
2023-06-08 11:01:29 -04:00
Lioncash
d35be7ce40 InfinityBaseWindow: Add missing header guard
Prevents potential inclusion issues.
2023-06-08 10:49:09 -04:00
get
1df482d51f Prefer static const std::regex
std::regex has a relatively expensive constructor, and these are unchanging regexes.
2023-06-08 09:39:23 -05:00
Admiral H. Curtiss
78f5c5f8d2
Merge pull request #11899 from Filoppi/patch-20
Video: Fix Post Process shader options issues
2023-06-08 16:12:49 +02:00
Admiral H. Curtiss
3dbdf0472d
Merge pull request #11901 from Filoppi/add_texture_types
Video: add R10B10G10A2 and R16G16B16A16F texture types
2023-06-08 15:28:15 +02:00
Admiral H. Curtiss
e4636ad0a2
Merge pull request #11898 from Filoppi/patch-19
Video: Fix crash when getting the AA modes
2023-06-08 15:26:40 +02:00
Admiral H. Curtiss
65135190d4
Merge pull request #11897 from JosJuice/spurious-two-analog
InputCommon: Don't treat two analog inputs as a spurious trigger combo
2023-06-08 14:28:53 +02:00
Filoppi
cdc53c046b Video: add R10B10G10A2 and R16G16B16A16F texture types (needed by PR 11850) 2023-06-08 03:17:20 +03:00
Filippo Tarpini
c9e61a79b7
Video: Fix Post Process shader options issues
-An assert would be erroneously thrown when shaders declared an array of 4 int or float options, despite 4 being the max supported (a simple <= / < mistake)
-When changing the type of a shader option (e.g. from bool to float), the serialization would be stuck appending the value from the previous option type, making the shader fail to build permanently until the cache were cleaned
2023-06-08 02:54:46 +03:00
Filippo Tarpini
80d12e3e88
Video: Fix crash when getting the AA modes
DX12 would often crash when starting and stopping the emulation many times, due to the device enumerator failing for some reason. Checking for success fixes it.
2023-06-08 02:46:08 +03:00
iwubcode
e831d7b6bb InputCommon / VideoCommon: remove dynamic input reloading the texture cache, this is no longer needed, assets reload automatically! 2023-06-07 18:30:10 -05:00
iwubcode
ca8d6748d6 VideoCommon: introduce linked assets in TCacheEntry, allowing for assets to be reloaded 2023-06-07 18:30:10 -05:00
Minty-Meeo
e92f8fcbb4 Remove old GCC version workarounds
The minimum GCC version is now GCC 10.
2023-06-06 22:49:53 -05:00
Mai
bab3229c98
Merge pull request #11874 from AdmiralCurtiss/vi-clock-bounds
VI: Prevent out-of-bounds access when clock register is a nonstandard value.
2023-06-06 20:31:42 -04:00
JosJuice
71ac6ec239 InputCommon: Don't treat two analog inputs as a spurious trigger combo
I've received a report from an Android user with a gamepad (a "BSP-D3")
where one physical trigger is controlling two analog axes at the same
time. This was causing RemoveSpuriousTriggerCombinations to delete both
axes, which is clearly not a desireable outcome.

With this change, now the axis with the greatest smoothness is kept,
or both in case they have the same smoothness.
2023-06-06 22:07:14 +02:00
Admiral H. Curtiss
a7678f3210
Merge pull request #11694 from jnaidu360/skylanders-portal-window
Skylanders Portal Menu Navigational Improvements
2023-06-06 19:20:39 +02:00
JosJuice
5d40871dd4
Merge pull request #11894 from t895/interface-fix
android: Fix compilation error from Kotlin changes
2023-06-06 19:07:08 +02:00
Admiral H. Curtiss
afc97ec20f
Merge pull request #11895 from JosJuice/android-no-host-check
Android: Temporarily disable host thread check
2023-06-06 18:56:41 +02:00
JosJuice
361171fce0 Android: Temporarily disable host thread check
Very broken. Will investigate, but let's revert it for the time being.
2023-06-06 18:39:32 +02:00
Admiral H. Curtiss
e1a986b270
Merge pull request #11893 from JosJuice/dual-core-exit-assert
Core: Declare emu thread as CPU thread while shutting down
2023-06-06 18:36:51 +02:00
Charles Lombardo
05b1aa3775 android: Fix compilation error from Kotlin changes
Since the ThemeProvider interface changed `fun getThemeId()` to `var themeId`, I had to adjust how it was used in the EmulationActivity. Similar case for `fun getConfiguredControllerType()`.
2023-06-06 12:36:21 -04:00
Admiral H. Curtiss
38b033a476
Merge pull request #11762 from jbosboom/xinput2-raw-event-query
Xinput2: use raw events and queries
2023-06-06 18:14:51 +02:00
JosJuice
6bd5473d56 Core: Declare emu thread as CPU thread while shutting down
Fixes https://bugs.dolphin-emu.org/issues/13274.
2023-06-06 18:04:21 +02:00
JosJuice
2d56daf1bb
Merge pull request #11873 from AdmiralCurtiss/pause-and-lock-host
Core: Assert that only the Host thread may call PauseAndLock().
2023-06-06 13:50:20 +02:00
JosJuice
83b4af86b6
Merge pull request #11892 from t895/kotlin-adapters
Android: Convert "adapters" package to Kotlin
2023-06-06 13:06:56 +02:00
JosJuice
04fab7f2b2
Merge pull request #11884 from t895/kotlin-overlay
Android: Convert InputOverlay to Kotlin
2023-06-06 13:03:39 +02:00
JosJuice
36ca747d55
Merge pull request #11886 from t895/kotlin-ui
Android: Convert "ui" package to Kotlin
2023-06-06 13:03:02 +02:00
Charles Lombardo
f117e8a2f9 Android: Convert PlatformGamesView to Kotlin 2023-06-05 20:08:54 -04:00
Charles Lombardo
3e8d6b8aa2 Android: Convert PlatformGamesFragment to Kotlin 2023-06-05 20:08:54 -04:00
Charles Lombardo
0915bfbb30 Android: Convert Platform to Kotlin 2023-06-05 20:08:54 -04:00
Charles Lombardo
90ac08c98d Android: Convert NVidiaShieldWorkaroundView to Kotlin 2023-06-05 20:08:54 -04:00
Charles Lombardo
2434c2db59 Android: Convert TvMainActivity to Kotlin 2023-06-05 20:08:53 -04:00
Charles Lombardo
ecd62b2211 Android: Convert ThemeProvider to Kotlin 2023-06-05 20:08:53 -04:00
Charles Lombardo
b5c63b995c Android: Convert MainView to Kotlin 2023-06-05 20:08:53 -04:00
Charles Lombardo
01d4e6fe87 Android: Convert MainPresenter to Kotlin 2023-06-05 20:08:53 -04:00
Charles Lombardo
18a03e69a9 Android: Convert MainActivity to Kotlin 2023-06-05 20:08:53 -04:00
Charles Lombardo
dff2d8111c Android: Convert CustomTitleView to Kotlin 2023-06-05 20:08:52 -04:00
Admiral H. Curtiss
3d4b4cfdc6
Merge pull request #11872 from LillyJadeKatrin/retroachievements-bugfix
RetroAchievements Bugfix: Fixed Missing DoFrame Call
2023-06-05 23:42:11 +02:00
iwubcode
f1f1ecc9d1 Core / VideoCommon: update HiresTexture to use CustomAssetLoader 2023-06-05 16:33:19 -05:00
iwubcode
5738646e3e Core: add CustomAssetLoader to System 2023-06-05 16:33:19 -05:00
iwubcode
9d7ab47738 VideoCommon: add additional locks around asset access and usage to ensure thread safety 2023-06-05 16:19:46 -05:00
Charles Lombardo
a1d027fe07 Android: Convert SettingsRowPresenter to Kotlin 2023-06-05 15:44:26 -04:00
Charles Lombardo
e4935d4b12 Android: Convert PlatformPagerAdapter to Kotlin 2023-06-05 15:44:26 -04:00
JosJuice
ce2b63dcc0
Merge pull request #11887 from t895/kotlin-activities
Android: Convert "activities" package to Kotlin
2023-06-05 21:33:34 +02:00
Charles Lombardo
0bd0fa4f44 Android: Convert InputOverlayPointer to Kotlin 2023-06-05 14:29:48 -04:00
Charles Lombardo
ddb0de0410 Android: Convert InputOverlayDrawableJoystick to Kotlin 2023-06-05 14:29:39 -04:00
Charles Lombardo
fb60b708f5 Android: Convert InputOverlayDrawableDpad to Kotlin 2023-06-05 14:29:31 -04:00
Charles Lombardo
500f1f1861 Android: Convert InputOverlayDrawableButton to Kotlin 2023-06-05 14:29:31 -04:00
Charles Lombardo
9828ffe250 Android: Convert InputOverlay to Kotlin 2023-06-05 14:29:31 -04:00
Charles Lombardo
e6d8694cbe Android: Convert AppLinkActivity to Kotlin 2023-06-05 14:10:06 -04:00
Charles Lombardo
cbca383bd2 Android: Convert CustomFilePickerActivity to Kotlin 2023-06-05 14:10:06 -04:00
Charles Lombardo
03675f7677 Android: Convert EmulationActivity to Kotlin 2023-06-05 14:10:05 -04:00
jnaidu360
66f4902a1e Improved Skylanders Portal Window Navigation
Adds features to improve navigation of Skylanders portal menu, includes:
-List of Skylanders and filters for searching
-Improved buttons for faster loading options
-Added default user folder for storing .sky files
2023-06-04 18:10:08 -07:00
Shawn Hoffman
c1580ebf30 msvc: workaround optimizer bug 2023-06-04 10:57:22 -07:00
Filippo Tarpini
adf4089276
Fix video output having small black borders all the times
To maintain compatibility with some video encoders, the whole output buffer was scaled to be a multiple of 4.
This change makes it so that that rule only applies while actively recording (or taking screenshots, even if it might not be necessary for that case).
2023-06-04 18:03:57 +03:00
iwubcode
8c3dc5b0d6 VideoCommon: update pipeline version for RenderState change 2023-06-03 14:52:31 -05:00
iwubcode
834f8f7b5c VideoBackends: add support to allow rendering to multiple output textures 2023-06-03 14:52:31 -05:00
iwubcode
9b9dc6dc5d VideoCommon: fix minor issue in C++ template 2023-06-03 12:47:12 -05:00
Admiral H. Curtiss
80bf175c48
Merge pull request #11879 from iwubcode/texture_data_load_nolevels
VideoCommon: avoid segfault when loading a PNG with no custom texture data levels
2023-06-03 19:35:48 +02:00
iwubcode
47c40d51df VideoCommon: when loading a PNG with no custom texture data levels already, create a level, this avoids a potential segfault 2023-06-03 12:19:30 -05:00
LillyJadeKatrin
e2d0ff718c Fixed Missing DoFrame Call
Somewhere in the process of getting the memory peeking right for achievements, the AchievementManager call to DoFrame went missing. This restores it properly.
2023-06-03 09:15:41 -04:00
LillyJadeKatrin
32f7873ee6 Added missing Leaderboard Canceled event 2023-06-03 09:15:41 -04:00
LillyJadeKatrin
60350635b6 Fixed Rich Presence bugs
Refactored the Rich Presence two-minute trigger to clean it up and fix it.
2023-06-03 09:15:40 -04:00
Admiral H. Curtiss
0b3d28abaf
Merge pull request #11586 from JosJuice/unknown-opcode-msg
VideoCommon: Reword the unknown opcode error message
2023-06-03 12:53:33 +02:00
iwubcode
58d383b30b VideoCommon: prevent potential data issue when reloading Asset data that could happen due to the asset loading thread reloading data while another thread is working with it 2023-06-03 00:13:06 -05:00
Admiral H. Curtiss
d03e09c8fd
Merge pull request #11877 from iwubcode/asset_library_loader
VideoCommon: add multithreaded asset loader and define a texture asset
2023-06-03 01:11:41 +02:00
Admiral H. Curtiss
4c9210b439
Merge pull request #11527 from Hibyehello/MacOSPlatform
NoGUI: Create MacOS platform
2023-06-03 01:11:32 +02:00
iwubcode
c93940c6ee VideoCommon: add multithreaded asset loader and define a texture asset 2023-06-02 17:31:31 -05:00
iwubcode
07307edd49 VideoCommon: add an asset library that loads directly from the filesystem 2023-06-02 14:49:22 -05:00
Charles Lombardo
6028c05644
Merge pull request #11868 from JosJuice/android-wiimote-submenu-number
Android: Fix submenus for Wii Remote 2-4
2023-06-02 15:47:07 -04:00
iwubcode
e028d2ead0 VideoCommon: move custom texture data to assets 2023-06-02 14:07:42 -05:00
Admiral H. Curtiss
45a21ef83f
Merge pull request #11871 from iwubcode/custom-assets
VideoCommon: add custom asset implementation and asset library
2023-06-02 20:58:08 +02:00
Admiral H. Curtiss
ca484c7a65
Merge pull request #11609 from AdmiralCurtiss/sd-size-select
Add SD card size option for converting folder -> file.
2023-06-02 20:52:08 +02:00
Admiral H. Curtiss
10061aa22c
VI: Prevent out-of-bounds access when clock register is a nonstandard value. 2023-06-02 20:06:07 +02:00
Admiral H. Curtiss
b3c9f49cbe
Core: Assert that only the Host thread may call PauseAndLock(). 2023-06-02 18:51:43 +02:00
get
ee19ff66b4 Remove NKit data when extracting a GCN/Wii disc volume 2023-06-02 01:11:50 -05:00
OatmealDome
7bbd530eb5
Merge pull request #11854 from TellowKrinkle/AMDFix
VideoBackends:Metal: Allocate bounding box uploads on a cpu buffer
2023-06-02 06:17:44 +02:00
iwubcode
b2c5a5485a VideoCommon: add custom asset implementation and asset library that can load an asset 2023-06-01 19:57:57 -05:00
Admiral H. Curtiss
6302cea22c
Merge pull request #11849 from LillyJadeKatrin/retroachievements-dialog
Retroachievements dialog
2023-06-02 02:09:08 +02:00
LillyJadeKatrin
df38573ff6
Added AchievementSettingsWidget
AchievementSettingsWidget is a dialog widget in AchievementsWindow for handling RetroAchievements settings in the user interface. This class contains the physical layout, widget connections, load/save functions and button responses. AchievementsWindow now has a tabbed list that this is inserted into; other tabs will be in a later pull request.
2023-06-02 01:53:19 +02:00
LillyJadeKatrin
e1e662b86a Added AchievementsWindow QDialog
AchievementsWindow is the dialog box that will eventually contain the settings and progress data for RetroAchievements on Dolphin. This adds the barebones dialog, and connects it to MainWindow's MenuBar.
2023-06-01 18:12:20 -04:00
Admiral H. Curtiss
fee28e26a1
Merge pull request #11869 from dvessel/texdump-compression
Add compression option for texture dumps.
2023-06-01 22:37:08 +02:00
joon
db712772b7 Add compression option for texture dumps.
Enable through command line options:
-C Graphics.Settings.TexturePNGCompressionLevel=[0-9]

Or from GFX.ini:
[Settings]
TexturePNGCompressionLevel=[0-9]

@see #10792
2023-06-01 16:01:11 -04:00
Filippo Tarpini
3f22e9849b
Qt: Fix some Post Process Configuration Widget issues 2
Same fix as https://github.com/dolphin-emu/dolphin/pull/11846 but applied to int sliders instead of float ones
2023-06-01 21:38:38 +02:00
JosJuice
3a81463e68 Android: Fix submenus for Wii Remote 2-4
Accessing any of the submenus "Buttons", "Motion Simulation" or
"Motion Input" for Wii Remotes 2-4 would actually lead to the
corresponding submenu for Wii Remote 1.
2023-06-01 20:17:50 +02:00
Hibyehello
8324a85339 Add MacOS Platform
Use MacOS Standard Fullscreen hotkey
2023-06-01 09:01:20 -05:00
JosJuice
6743ca8e09
Merge pull request #11861 from shuffle2/qt
Revert "Revert "DolphinQt: use default dpi rounding mode (passthrough)""
2023-05-30 20:33:20 +02:00
iwubcode
0afb8c247f VideoCommon: check whether action was successfully created before adding targets for a graphics mod 2023-05-30 09:32:59 -05:00
iwubcode
bbf3efb17d VideoCommon: fix bug in GraphicsModManager where a separate action was being created for each target 2023-05-29 23:08:35 -05:00
Shawn Hoffman
ca49f49037 Revert "Revert "DolphinQt: use default dpi rounding mode (passthrough)""
This reverts commit 20e14aab06.
2023-05-29 11:47:29 -07:00
Admiral H. Curtiss
da77084d2f
Merge pull request #11819 from JosJuice/android-input-device-null
ControllerInterface/Android: Use InputEvent.getDeviceId
2023-05-29 19:27:30 +02:00
LillyJadeKatrin
82ff6fb0b7 Fix RetroAchievements Login Crash
Fixing a bug with the RetroAchievements integration where certain combinations of configurations would result in a malformed API request and an attempt to dereference the null response.
2023-05-28 20:53:03 -04:00
TellowKrinkle
0ee12b6164 VideoBackends:Metal: Allocate bounding box uploads on a cpu buffer
AMD Metal drivers have a goofy bug where the bbox buffer stops being coherent with the cpu if you copy to it from a private (gpu) buffer and don't do anything else with it in that command buffer.
2023-05-28 17:08:08 -05:00
Admiral H. Curtiss
4dc4b28db4
Merge pull request #11845 from jnaidu360/skylanders-portal-hotkey
Add hotkey to open Skylanders and Infinity Menus
2023-05-28 23:27:41 +02:00
Charles Lombardo
faa2b28e6b
Merge pull request #11835 from JosJuice/android-analytics-race
Android: Don't show analytics dialog for destroyed activity
2023-05-28 17:14:36 -04:00
Charles Lombardo
55b9794e4b
Merge pull request #11808 from deReeperJosh/disneyinfinitybaseandroid
Android: Infinity Base UI
2023-05-28 17:09:31 -04:00
Admiral H. Curtiss
afbc604f42
Merge pull request #11839 from LillyJadeKatrin/retroachievements-popups
Retroachievements popups
2023-05-28 17:17:11 +02:00
Joshua de Reeper
2c98efaa5c Infinity Base: Figure Name Fix 2023-05-28 19:01:21 +12:00
Joshua de Reeper
cf3e8714eb Android: Add Hashmap to IDCache 2023-05-28 19:01:21 +12:00
Joshua de Reeper
f8abc2c0e6 Android: Infinity Base UI
Add a UI option for the Infinity Base within the Android Emulation Activity
2023-05-28 19:01:21 +12:00
Admiral H. Curtiss
6d9529a68d
Merge pull request #11844 from shuffle2/qt6.5.1
windows: update to qt 6.5.1
2023-05-27 22:33:01 +02:00
Shawn Hoffman
1a8634fafc windows: update to qt 6.5.1 2023-05-26 15:37:55 -07:00
jnaidu360
5eb1669573 Add Hotkeys for Skylanders Portal and Infinity Base Menus
Adds two new hotkeys to open the menus for emulated USB devices- Skylanders Portal of Power and the Infinity Base. (Hotkeys only active when game is running).

Portal menu: Default is <Ctrl+P>.
Infinity base: Default is <Ctrl+I>
2023-05-26 13:36:08 -07:00
Filoppi
aeff66d373 Qt: Fix some Post Process Configuration Widget issues:
-The float sliders initial value wasn't calculated correctly
-Fix the checkbox dependencies not being applied until a setting was changed for the first time
2023-05-26 03:50:51 +03:00
LillyJadeKatrin
57290a45e8 Added Notification Popups for Game Mastery
Added OnScreenDisplay messages to HandleAchievementTriggeredEvent to display an extra congratulations message if the player has completed (unlocked all achievements in casual) or mastered (unlocked all achievements in challenge) the game. This also uses the display name retrieved when verifying credentials, which has now been added as a member field on AchievementManager.
2023-05-23 23:23:18 -04:00
LillyJadeKatrin
1841089054 Added Notification Popups for Game Start
Added an OnScreenDisplay message to LoadGameByFilenameAsync to display a message when a player starts a game with achievements, notifying them of their current score. The score displayed is challenge points if the player is in challenge mode or challenge + casual if the player is in casual mode. A second message tells the player which mode they are in. To match RetroAchievements' website interface, the messages are blue for casual and gold for challenge.
2023-05-23 23:22:22 -04:00
LillyJadeKatrin
aa0224a8ab Added TallyScore method to AchievementManager
Added a TallyScore method to AchievementManager to calculate the player's current scores (soft and hard) against the total number of points across all achievements. Includes a PointSpread structure to hold all points and counts. The Unlock Map now includes point values for each achievement to aid in this calculation; this is populated at insert time, and Unofficial achievements are tallied as zero.
2023-05-23 23:22:22 -04:00
LillyJadeKatrin
22af13f9e0 Added Notification Popups for No Achievement Data
Added OnScreenDisplay messages to LoadGameByFilenameAsync to notify the player when any of the potential failures occur.
2023-05-23 23:22:21 -04:00
LillyJadeKatrin
b0eb4ccb80 Added Notification Popup for Leaderboard Canceled
Added HandleLeaderboardStartedEvent with an OnScreenDisplay message when a player has triggered a leaderboard's failure conditions. The message includes the title of the achievement.
2023-05-23 23:22:21 -04:00
LillyJadeKatrin
a4b7f43f21 Added Notification Popup for Leaderboard Started
Added HandleLeaderboardStartedEvent with an OnScreenDisplay message when a player has triggered a leaderboard's start conditions. The message includes the title of the achievement.
2023-05-23 23:22:21 -04:00
LillyJadeKatrin
c20d0ae9e1 Added Notification Popup for Leaderboard Scored
Added an OnScreenDisplay message to HandleLeaderboardTriggeredEvent to display a message when a player has completed a leaderboard. The message includes the title of the achievement and the player's score/time.
2023-05-23 23:22:20 -04:00
LillyJadeKatrin
a7b09413f9 Added Notification Popup for Achievement Unlocked
Added an OnScreenDisplay message to HandleAchievementTriggeredEvent to display a message when a player has unlocked an achievement. The message includes the title of the achievement and its point value based on the game data. To match RetroAchievements' website interface, the message is blue if the unlock is casual and gold for challenge.
2023-05-23 23:22:14 -04:00
Shawn Hoffman
63680f23d7 msvc: disable building std modules
fixes build failures related to pch
2023-05-23 17:07:56 -07:00
Franz-Josef Haider
8943a9a369 Jit: Add missing call to InitBLROptimization for extra performance 2023-05-23 23:49:29 +03:00
Franz-Josef Haider
68aab70c75 Jit: Fix block map fallback in Arm64 case. 2023-05-23 23:20:08 +03:00
Admiral H. Curtiss
60cb88d379
Merge pull request #11838 from brad0/discordpresence_warning_fix
Fix s_using_custom_client warning with DiscordPresence
2023-05-23 20:59:21 +02:00
Admiral H. Curtiss
df06ae2257
Merge pull request #11837 from brad0/aes_silence_warning
Silence AES warning
2023-05-23 09:20:38 +02:00
Brad Smith
cf06da8fea Fix s_using_custom_client warning with DiscordPresence
/home/ports/pobj/dolphin-5.0.0.20230429/dolphin-5.0.0.20230429/Source/Core/UICommon/DiscordPresence.cpp:27:13: warning: unused variable 's_using_custom_client' [-Wunused-variable]
static bool s_using_custom_client = false;
            ^
2023-05-23 00:07:06 -04:00
Brad Smith
49afa23f95 Silence AES warning
This warning came about after 46ad8b9d68

In file included from /home/ports/pobj/dolphin-5.0.0.20230429/dolphin-5.0.0.20230429/Source/Core/Core/IOS/WFS/WFSI.cpp:4:
/home/ports/pobj/dolphin-5.0.0.20230429/dolphin-5.0.0.20230429/Source/Core/Core/IOS/WFS/WFSI.h:54:6: warning: private field 'm_aes_key' is not used [-Wunused-private-field]
  u8 m_aes_key[0x10] = {};
     ^
2023-05-22 23:34:19 -04:00
Brad Smith
7d26f4ff8e Fix for Socket header for OpenBSD 2023-05-22 23:07:33 -04:00
Admiral H. Curtiss
68c3b1fb7d
Merge pull request #11830 from shuffle2/vs17.6
update to VS 17.6
2023-05-23 00:37:01 +02:00
JosJuice
8a78538b2d Android: Don't show analytics dialog for destroyed activity
Should fix one of the reported crashes on Google Play. The issue can
happen if you leave the activity during directory initialization.
2023-05-22 11:10:13 +02:00
Admiral H. Curtiss
8fd61d0b54
Merge pull request #11737 from krnlyng/block_map
Jit: Improve block lookup performance through a shm memory segment.
2023-05-21 04:48:23 +02:00
Admiral H. Curtiss
ef95d942e1
Merge pull request #11763 from LillyJadeKatrin/retroachievements-memory-events
RetroAchievements Memory, Events, and Awarding
2023-05-21 03:20:34 +02:00
OatmealDome
b7389bc7bc DolphinQt: Adjust variable name for Qt root directory in steamrt builds 2023-05-20 20:32:43 -04:00
Franz-Josef Haider
859da32a6c Jit: Improve block lookup performance through a shm memory segment.
By using a shm memory segment for the fast_block_map that is sparsely
allocated (i.e. on write by the OS) instead of a statically allocated
array we can make the block lookup faster by:
* Having a bigger space available for lookup that doesn't take up
  too much memory, because the OS will only allocate the needed
  pages when written to.
* Decrease the time spent to lookup a block in the assembly dispatcher
  due to less comparisions and shorter code (for example the pc check
  has been entirely dropped since only the msrBits need to be validated).

When the JIT block cache is full the shm segment will also be released
and reallocated to avoid allocating too much memory. It will also be
reset when the instruction cache is flushed by the PPC code to avoid
having stale entries.

Also fallback to the original method in case the memory segment couldn't
be allocated.
2023-05-20 16:26:55 +03:00
Jeffrey Bosboom
620955d397 XInput2: Listen to master devices only
A comment removed by this commit gives two reasons for listening to
slave devices, both of which no longer apply:

- "Only slaves emit raw motion events": perhaps this was true when the
comment was written, but now master devices provide raw motion events
along with the other raw events.

- "Selecting slave keyboards avoids dealing with key focus": we get raw
key events regardless of the focus.

Listening to both master and slave devices results in duplicate raw
events.  For button and key events, that's a tiny waste of time setting
the update flag a second time, but for raw mouse events the raw motion
will be processed twice.  That makes this commit a user-facing change.
2023-05-19 14:20:10 -07:00
Jeffrey Bosboom
b2a98c41ee XInput2: Use raw events and queries for buttons and keys
In X, the ButtonPress events generated when a mouse button is pressed
have a special property: if they don't activate an existing passive
grab, the X server automatically activates the "implicit passive grab"
on behalf of the client the event is delivered to.  This ensures the
ButtonRelease event is delivered to the same client even if the pointer
moves between windows, but it also causes all events from that pointer
to be delivered exclusively to that client.  As a consequence of the
implicit passive grab, for each window, only one client can listen for
ButtonPress events; any further listeners would never receive the event.

XInput 1 made the implicit grab optional and explicit by allowing
clients to listen for DeviceButtonPress events without
DeviceButtonPressGrab events.  XInput 2 does not have a separate grab
event class, but multiple clients can listen for XI_ButtonPress on the
same window.  When a button is pressed, the X server first tries to
deliver an XI_ButtonPress event; if no clients want it, then the server
tries to deliver a DeviceButtonPress event; if no clients want it, then
the server tries to deliver a ButtonPress event.  Once an event has been
delivered, event processing stops and earlier protocol levels are not
considered.  The reason for this rule is not obviously documented, but
it is probably because of the implicit passive grab; a client receiving
a ButtonPress event assumes it is the only client receiving that event,
and later protocols maintain that property for backward compatibility.

Before this commit, Dolphin listened for XI_ButtonPress events on the
root window.  This interferes with window managers that expect to
receive ButtonPress events on the root window, such as awesome and
Openbox.  In Openbox, applications are often launched from a menu
activated by clicking on the root window, and desktops are switched by
scroll wheel input on the root window.  This makes normal use of other
applications difficult when Dolphin is open (though Openbox keyboard
shortcuts still work).  Conversely, Dolphin only receives XI_ButtonPress
events for clicks on the root window or window decorations (title bars),
not on Dolphin's windows' content or the render window.  In window
managers that use a "virtual root window" covering the actual root
window, such as Mutter running in X, Dolphin and the window manager do
not conflict, but clicks delivered to other applications using XInput2
(for testing, try xinput --test-xi2) are not seen by Dolphin, which is
relevant when background input is enabled.

This commit changes Dolphin to listen for XI_RawButtonPress (and the raw
versions of other events); Dolphin was already listening to XI_RawMotion
for raw mouse movement.  Raw events are always and exclusively delivered
to the root window and are delivered to every client listening for them,
so Dolphin will not interfere with (or be interfered with by) other
applications listening for events.

As part of being raw, button numbers and keycodes in raw events have not
had mapping applied.  If a left-handed user swapped the left and right
buttons on their mouse, raw events do not reflect that.  It is possible
to query the mappings for each device and apply them manually, but that
would require a fair amount of code, including listening for mapping
changes.

Instead, Dolphin now uses the events only to set a "changed" flag, then
queries the current button and key state after processing all events.
Dolphin was already querying the pointer to get its absolute position
and querying the keyboard to filter the key bitmap it created from
events; now Dolphin also uses the button state from the pointer query
and uses the keyboard query directly.

Queries have a performance cost because they are synchronous requests to
the X server (Dolphin waits for the result).  Commit 2b640a4f made the
pointer query conditional on receiving a motion event to "cut down on
round trips", but commit bbb12a75 added an unconditional keyboard query,
and there have apparently been no performance complaints.  This commit
queries the pointer slightly more often (on button events in addition to
motion), but only queries the keyboard after key events, so the total
rate of queries should be substantially reduced.

Fixes: https://bugs.dolphin-emu.org/issues/10668
2023-05-19 14:20:10 -07:00