| Age | Commit message (Collapse) | Author |
|
feat(retroachievements): implement achievement notification sounds
|
|
|
|
Vulkan: Allow custom drivers on Mali devices
|
|
Android: Add global hotkeys
|
|
PowerPC/MMU: Use effective address for special-case unaligned stores
|
|
JitArm64_SystemRegister: mfspr - Sign extension nit
|
|
VertexLoaderARM64: Optimize RGB565 and RGBA6666
|
|
VideoCommon: Add TextureDecoder_ARM64.cpp
|
|
IOS/DolphinDevice: Enable some requests with WantsDeterminism rather than disabling them all.
|
|
ArmCPUDetect: check elf_aux_info() return value in ReadHwCap
|
|
Replace manual calculations with std::lerp and std::midpoint
|
|
DolphinQt: Make individual tabs of PostProcessingConfigWindow scrollable.
|
|
VideoCommon: Option for byte to memset in RAM when `EFBToTextureEnable = True`
|
|
shaders with too many settings to fit on the screen.
|
|
|
|
PPCAnalyst: Avoid using strncmp
|
|
Jit: Optimize trampoline info allocation
|
|
Common/Thread: Remove some unused things.
|
|
|
|
|
|
Its usage appears in the profiler, and while small, it's not completely insignificant.
|
|
disabling them all.
|
|
UnitTests: Fix CoreTiming.SharedSlot test so it can run independently.
|
|
Revert "msvc: use std::chrono for GetLocalTimeSinceJan1970"
|
|
This commit replaces the old instruction sequence with one that is
considerably shorter. Main ideas are as follows:
- Use AND with constant mask to isolate the needed bits.
- Use ORR + LSL/LSR to shirt the bits into position and combine in one
instruction where possible.
- Red and alpha are already sequential, so don't need to wait for the
byteswap.
- Do the expansion from 6 to 8 bits at the end for all 4 components
in one step.
Before:
ldur w14, [x0]
rev w14, w14
ubfx w15, w14, #0, #6
orr w15, wzr, w15, lsl #2
orr w15, w15, w15, lsr #6
orr w16, wzr, w15, lsl #24
ubfx w15, w14, #6, #6
orr w15, wzr, w15, lsl #2
orr w15, w15, w15, lsr #6
orr w16, w16, w15, lsl #16
ubfx w15, w14, #12, #6
orr w15, wzr, w15, lsl #2
orr w15, w15, w15, lsr #6
orr w16, w16, w15, lsl #8
ubfx w15, w14, #18, #6
orr w16, w16, w15, lsl #2
orr w16, w16, w15, lsr #4
str w16, [x1, #0xc]
After:
ldur w14, [x0]
rev w15, w14
and w16, w14, #0xfc00
and w14, w14, #0x3f000000
lsr w16, w16, #8
orr w16, w16, w14, lsl #2
and w14, w15, #0xfc0
and w15, w15, #0x3f000
orr w15, w15, w14, lsl #14
orr w16, w16, w15, lsr #2
and w15, w16, #0xc0c0c0c0
orr w16, w16, w15, lsr #6
str w16, [x1, #0xc]
|
|
This replaces the old instruction sequence with one that is considerably
shorter. Main ideas are as follows:
- Use AND with constant mask to isolate the needed bits.
- Use ORR + LSL/LSR to shift the bits into position and combine in one
instruction where possible.
- Red and blue are already sequential, so don't need to wait for the
byteswap. This is especially handy for red, where the bits are
already where they need to be.
- Red and blue can be expanded from 5 to 8 bits together.
Before:
ldurh w14, [x0, #0x1]
rev16 w14, w14
and w15, w14, #0x1f
orr w15, wzr, w15, lsl #3
orr w15, w15, w15, lsr #5
orr w16, wzr, w15, lsl #16
ubfx w15, w14, #5, #6
orr w15, wzr, w15, lsl #2
orr w15, w15, w15, lsr #6
orr w16, w16, w15, lsl #8
ubfx w15, w14, #11, #5
orr w16, w16, w15, lsl #3
orr w16, w16, w15, lsr #2
orr w16, w16, #0xff000000
str w16, [x1, #0xc]
After:
ldurh w14, [x0, #0x1]
rev16 w15, w14
bfi w14, w14, #11, #13
and w16, w14, #0xf800f8
and w14, w14, #0xe000e0
orr w16, w16, #0xff000000
orr w16, w16, w14, lsr #5
and w14, w15, #0x7e0
and w15, w15, #0x600
orr w14, w14, w15, lsr #6
orr w16, w16, w14, lsl #5
str w16, [x1, #0xc]
|
|
Skylanders: Replace mbedtls_aes usage with Common::AES.
|
|
|
|
This reverts commit 86da6c98fbd229d87de7cf8b9c7eb94c16923829.
|
|
cleanups.
|
|
Common: Introduce MD5Context class and ComputeMD5 function to minimize mbedtls dependence.
|
|
This instruction effectively performs the following computation:
```
Xresult = SXTW(slice_length) - Xresult + global_timer;
```
ARM64 has a dedicated sign extension instruction, but also allows this
sign extension to happen as part of many arithmetic operations. By
reordering the computation, we can take advantage of this:
```
Xresult = global_timer + SXTW(slice_length) - Xresult;
```
Before:
```
ldr w24, [x29, #0x2f0]
scvtf s8, w24
ldr s9, [x27, #0x20]
fmul s8, s8, s9
fcvtzs x25, s8
ldp x24, x23, [x27]
sxtw x23, w23
sub x25, x23, x25
add x25, x25, x24
ldp x24, x23, [x27, #0x10]
sub x25, x25, x23
mov x23, #-0x5555555555555556 ; =-6148914691236517206
add x23, x23, #0x1
umulh x25, x25, x23
add x25, x24, x25, lsr #3
str x25, [x29, #0x770]
```
After:
```
ldr w24, [x29, #0x2f0]
scvtf s8, w24
ldr s9, [x27, #0x20]
fmul s8, s8, s9
fcvtzs x25, s8
ldp x24, x23, [x27]
add x24, x24, w23, sxtw
sub x25, x24, x25
ldp x24, x23, [x27, #0x10]
sub x25, x25, x23
mov x23, #-0x5555555555555556 ; =-6148914691236517206
add x23, x23, #0x1
umulh x25, x25, x23
add x25, x24, x25, lsr #3
str x25, [x29, #0x770]
```
|
|
Dentomologist/cmake_add_explicit_check_for_minimum_qt_version
CMake: Enforce minimum Qt version 6.2
|
|
Android: Trigger netplay game digest check
|
|
|
|
|
|
|
|
to mbedtls throughout the project.
|
|
Qt 6.2 has been de facto required since
afa6e26e5de58e942c8e7ef3a02632ccfb851d3d added a call to
QPixmap::deviceIndependentSize which was introduced in that Qt version.
Qt 6.2 was released 5 years ago and we've required 6.2+ for over 2
years, so let's make that requirement explicit in CMakeLists.txt instead
of having an apparently random compile error if anyone happens to try
building with an older Qt version.
|
|
|
|
Jit: Followed unconditional branches are a property added by the Analyzer, not something to assume
|
|
|
|
Only poll for hotkeys while EmulationActivity is resumed and at least
one supported hotkey is mapped. Otherwise the scheduler thread waits on
an event instead of polling.
|
|
not something to assume
If an unconditional branch is not the last instruction of the block, assuming that this means that the branch must have been followed is an unsafe assumption on how the analyzer works that may not hold true in the future.
As a bonus: JitArm64, unlike x86, didn't skip followed `bcx`s. Now it does.
|
|
VideoCommon: remove global framebuffer manager from EFBInterface
|
|
Traversal: update pending-packet time on socket timeout
|
|
DiscIO/CachedBlob: Minor cleanup by replacing std::thread with std::jthread.
|
|
CMake: Automatically disable warnings for Externals
|
|
Jit: Use LazyMemoryRegion-backed bit sets
|
|
AMMediaboard: Change accept non-blocking logic
|