SDL Wiki Bot
511783b2ba
Sync SDL3 wiki -> header
...
[ci skip]
2026-05-26 14:59:13 +00:00
Gabriel Wang
f2dba2626e
SVE2: Improves SVE2 8888 swizzling performance and important fixes ( #15662 )
...
* SVE2 was actually disabled in fdfbbce , this issue is fixed
- The macro __ARM_FEATURE_SVE is only defined when the compilation target is set as -march=armv8-m+sve2
* Improves 8888 alpha-blending performance
- Now, in In-Order AArch64 processors, e.g. A520, SVE2 is better than NEON with the 128bit vector width
- For Out-of-order processors, NEON is still better than SVE2 (We could improve this in the future), the performance is improved from 3.0 to 3.6.
* The 8888 -> RGB565 performance is also improved (from 7.4 to 9.3)
2026-05-26 07:57:44 -07:00
Sam Lantinga
fdfbbcefb2
Fixed error: "SVE support not enabled" building on Android
2026-05-14 12:01:19 -07:00
Sam Lantinga
de08751537
Fixed build for older toolchains that don't have arm_sve.h
2026-05-14 11:42:54 -07:00
Sylvain Becker
11745aad07
Fix build with SVE2 ( #15586 )
2026-05-14 11:17:53 -07:00
SDL Wiki Bot
a400a70484
Sync SDL3 wiki -> header
...
[ci skip]
2026-05-14 06:39:08 +00:00
Gabriel Wang
0f175891a6
Add SVE2 SIMD Alpha-Blending Blitter ( #15504 )
...
SVE/SVE2 is a new SIMD extension for AArch64. Compared to NEON, SVE/SVE2 brings the following benefits that are good for SDL projects:
- Lane prediction: we don't have to treat the tail part of a stride separately when the width is n times the hardware vector size
- Although the performance is almost no difference from NEON when the hardware vector size is 128bits, when the hardware provides a longer vector size, e.g. 256, 512, ... 2048, we can enjoy the large performance gain without modifying the source code or recompiling a library.
The functional correctness is validated in a dedicated [qemu project](https://github.com/GorgonMeducer/aarch64_qemu_mac_template/tree/SDL-SVE2-Acceleration-Validation ).
The performance is tested on [Radxa Orion 6 N](https://radxa.com/products/orion/o6n/ ), which provides 4x A720 and 4x A520 processors. Since the vector size is 128 bits, which is the same as NEON, the performance is almost the same (or no worse than) the NEON acceleration.
2026-05-13 23:37:46 -07:00
Sam Lantinga
5340d6a94c
Fixed definition of builtin function '_m_prefetch'
...
Fixes https://github.com/libsdl-org/SDL/issues/15116
2026-02-25 14:29:07 -08:00
Sam Lantinga
5f086e7623
Updated copyright for 2026
2026-01-01 09:40:08 -08:00
yuanhecai
0b1eb4c841
loongarch: add Blit8888to8888PixelAlphaSwizzleLSX opt
2025-11-03 08:45:51 -08:00
SDL Wiki Bot
e7e2b26b2e
Sync SDL3 wiki -> header
...
[ci skip]
2025-10-25 19:08:01 +00:00
Sam Lantinga
ed2920afef
All SDL 3.0 release symbols are at version 3.2.0
2025-01-21 10:19:21 -08:00
Ryan C. Gordon
7a5604cf0c
Sync SDL3 wiki -> headers.
2025-01-21 13:12:25 -05:00
Sam Lantinga
f2074d7af3
Updated copyright for 2025
2025-01-01 07:45:52 -08:00
SDL Wiki Bot
56cf8d8dc9
Sync SDL3 wiki -> header
...
[ci skip]
2024-12-22 07:09:56 +00:00
Ryan C. Gordon
f0fad41f2c
include: Filled in all remaining missing documentation!
2024-12-22 01:58:13 -05:00
Ryan C. Gordon
c9ab8ad8d9
SDL_intrin.h: Added missing NEON and Altivec documentation.
2024-12-17 23:33:05 -05:00
SDL Wiki Bot
d38c09e5c4
Sync SDL3 wiki -> header
...
[ci skip]
2024-12-18 04:26:44 +00:00
Ryan C. Gordon
6730cf7bed
SDL_intrin.h: Add documentation.
2024-12-17 23:25:25 -05:00
Ryan C. Gordon
79316ca36e
Heavy work on improving category documentation.
...
Still more to go!
Reference Issue #9440 .
2024-12-16 01:10:37 -05:00
Anonymous Maarten
476b987f1b
intrinsics: avx, avx2 and avx512f are (currently) unsupported on arm64ec
2024-07-20 00:59:58 +02:00
Ryan C. Gordon
5e6d85b8f0
wikiheaders: bridge wiki Category docs to the headers!
...
Did an initial cleanup on the headers and wrote a few pieces of documentation,
but this needs more work to fill out the documentation.
2024-05-16 11:48:23 -04:00
Ozkan Sezer
fd6ec3b9aa
SDL_intrin.h: adjust for new SDL_PLATFORM_WINDOWS meaning.
2024-01-24 21:20:50 +03:00
Anonymous Maarten
31d133db40
Define SDL_PLATFORM_* macros instead of underscored ones ( #8875 )
2024-01-24 01:40:51 +00:00
Sam Lantinga
5b3ee51c6c
Updated copyright for 2024
2024-01-01 13:15:26 -08:00
Ryan C. Gordon
c53843a961
docs: Remove Doxygen \brief tags.
...
Doxygen and the wiki bridge don't need them; they'll both just use the first
line/sentence instead.
Fixes #8446 .
2023-11-06 10:26:06 -05:00
Anonymous Maarten
b6ae281e97
Use #ifdef/#ifndef instead of #if defined/#if \!defined
2023-03-30 21:35:01 +00:00
Anonymous Maarten
b99f380498
intrinsics: add lsx/lasx intrinsic headers when not disabled
...
__attribute__((target(xx))) is not supported by LoongArch64.
The following warning is emitted:
target attribute is not supported on this machine [-Wattributes]
2023-03-30 04:00:48 +02:00
Anonymous Maarten
46f5c1fe6a
Move and rename SDL_rdtsc macro to testautomation
2023-03-27 06:12:49 +00:00
Anonymous Maarten
e2f51bf38e
SDL_intrin.h: add SDL_rdtsc macro
2023-03-27 06:12:49 +00:00
Ozkan Sezer
f5a92092e1
SDL_intrin.h: workaround clang-cl failures when avx isn't enabled.
2023-03-21 23:03:02 +03:00
Ozkan Sezer
5d4d11f92f
SDL_intrin.h: fixed typo in AVX2 checks.
2023-03-21 23:03:02 +03:00
Anonymous Maarten
0bd5ce13db
cmake: add underscore in SSE4_1 and SSE4_2 options
2023-03-21 23:03:02 +03:00
Ozkan Sezer
6c9780720b
cmake: added configuration options for AVX2, AVX512F, SSE4.1, and SSE4.2
...
adjusted SDL_intrin.h and testautomation_intrinsics.c accordingly.
2023-03-21 23:03:02 +03:00
Ozkan Sezer
260bb1c661
SDL_intrin.h: fixed disabler macro name for SSE4.1
2023-03-21 23:03:02 +03:00
Anonymous Maarten
cb46cbe684
include: include intrinsics headers for RDTSC SSE4.1 and SSE4.2
2023-03-21 23:03:02 +03:00
Ozkan Sezer
1dbe6447ee
SDL_intrin.h: simplified MSVC preprocessor conditions.
...
Also removed definings of gcc-specific macros for MSVC.
2023-03-21 23:03:02 +03:00
Anonymous Maarten
b5b9ddb205
SDL_intrin.h: define SDL_<simd>_INTRINSICS in user-visible header
2023-03-21 23:03:02 +03:00
Ozkan Sezer
41c693dc25
build fix for non-x86 targets.
2023-03-21 23:03:02 +03:00
Ozkan Sezer
69de6964e5
use target attributes of gcc / clang for SIMD code.
2023-03-21 23:03:02 +03:00
Anonymous Maarten
d27db3defa
cmake+video: always use altivec.h header for detection + introduce SDL_ENABLE_ALTIVEC
2023-03-15 14:54:20 +01:00
Anonymous Maarten
fc4085b54e
cmake: Allow build system to disable arm neon intrinsics
2023-03-15 14:54:20 +01:00
Anonymous Maarten
46de6241d7
cmake: Allow build system to disable loongarch intrinsics
2023-03-15 14:54:20 +01:00
Anonymous Maarten
4681240241
cmake: Detect AVX + allow build system to disable Intel intrinsics
2023-03-15 14:54:20 +01:00
Anonymous Maarten
549cedfa88
include: add \brief to includes
2023-02-19 10:01:33 -08:00
Sam Lantinga
0ead89747a
Fixed filename comment in SDL_intrin.h
2023-01-10 21:05:38 -08:00
Sam Lantinga
dc280c17a0
Moved SDL_intrin.h back into the public headers for application use
2023-01-10 15:50:35 -08:00