summaryrefslogtreecommitdiff
path: root/Source/Core/InputCommon/ControllerInterface/Win32
diff options
context:
space:
mode:
authorJosJuice <josjuice@gmail.com>2026-10-04 14:44:04 +0200
committerJosJuice <josjuice@gmail.com>2026-10-11 10:45:11 +0200
commit6103e4f5c6215ce57d855d99ab714fc0f52e6fc5 (patch)
tree31a984ca7e546e591c04ec064c759bac12c650b9 /Source/Core/InputCommon/ControllerInterface/Win32
parentd57e268691e6520f776dde63f814754efaf4e2eb (diff)
VideoCommon: Add TextureDecoder_ARM64.cpp
We already have x64 SIMD implementations for decoding most texture formats. This commit adds AArch64 SIMD implementations for all texture formats except the XFB format. (AArch64 was previously using the non-SIMD implementations from TextureDecoder_Generic.cpp.) I left a few TODO comments about things that could be improved using optional ISA extensions. I don't have any immediate plans to work on these. Performance numbers from the unit test are available below. Note that the unit test fits relatively well in cache, so real workloads might spend more time waiting on memory, which could lead to smaller differences between the old and new implementation. Before: I4 took 2676 ns on average (36 iterations) I8 took 3961 ns on average (36 iterations) IA4 took 7304 ns on average (36 iterations) IA8 took 4555 ns on average (36 iterations) RGB565 took 12146 ns on average (36 iterations) RGB5A3 took 33155 ns on average (36 iterations) RGBA8 took 3702 ns on average (36 iterations) C4 (IA8) took 9149 ns on average (36 iterations) C4 (RGB565) took 19398 ns on average (36 iterations) C4 (RGB5A3) took 28533 ns on average (36 iterations) C8 (IA8) took 6766 ns on average (36 iterations) C8 (RGB565) took 15577 ns on average (36 iterations) C8 (RGB5A3) took 18906 ns on average (36 iterations) C14X2 (IA8) took 10603 ns on average (36 iterations) C14X2 (RGB565) took 20700 ns on average (36 iterations) C14X2 (RGB5A3) took 38878 ns on average (36 iterations) CMPR took 6205 ns on average (36 iterations) After: I4 took 2086 ns on average (36 iterations) I8 took 1699 ns on average (36 iterations) IA4 took 1522 ns on average (36 iterations) IA8 took 1673 ns on average (36 iterations) RGB565 took 2443 ns on average (36 iterations) RGB5A3 took 3922 ns on average (36 iterations) RGBA8 took 1983 ns on average (36 iterations) C4 (IA8) took 1646 ns on average (36 iterations) C4 (RGB565) took 2057 ns on average (36 iterations) C4 (RGB5A3) took 1670 ns on average (36 iterations) C8 (IA8) took 3765 ns on average (36 iterations) C8 (RGB565) took 4275 ns on average (36 iterations) C8 (RGB5A3) took 5146 ns on average (36 iterations) C14X2 (IA8) took 5121 ns on average (36 iterations) C14X2 (RGB565) took 5572 ns on average (36 iterations) C14X2 (RGB5A3) took 7142 ns on average (36 iterations) CMPR took 3250 ns on average (36 iterations)
Diffstat (limited to 'Source/Core/InputCommon/ControllerInterface/Win32')
0 files changed, 0 insertions, 0 deletions