mirror of
https://github.com/morgan9e/FreeRDP
synced 2026-04-14 00:14:11 +09:00
[CMake,simd] unify WITH_SSE2, WITH_AVX2, WITH_NEON
* Add new CMake option WITH_SIMD to enable best available instruction type * Unify simd related defines in single header
This commit is contained in:
@@ -409,10 +409,6 @@ endif(APPLE)
|
|||||||
if(ANDROID)
|
if(ANDROID)
|
||||||
set_property(GLOBAL PROPERTY FIND_LIBRARY_USE_LIB64_PATHS ${ANDROID_LIBRARY_USE_LIB64_PATHS})
|
set_property(GLOBAL PROPERTY FIND_LIBRARY_USE_LIB64_PATHS ${ANDROID_LIBRARY_USE_LIB64_PATHS})
|
||||||
|
|
||||||
if(${ANDROID_ABI} STREQUAL "armeabi")
|
|
||||||
set(WITH_NEON OFF)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(ANDROID_ABI STREQUAL arm64-v8a)
|
if(ANDROID_ABI STREQUAL arm64-v8a)
|
||||||
include(CheckCCompilerFlag)
|
include(CheckCCompilerFlag)
|
||||||
check_c_compiler_flag("-mfloat-abi=softfp" ABI_SOFTFP_SUPPORTED)
|
check_c_compiler_flag("-mfloat-abi=softfp" ABI_SOFTFP_SUPPORTED)
|
||||||
|
|||||||
@@ -1,21 +1,21 @@
|
|||||||
message("PRELOADING cache")
|
message("PRELOADING cache")
|
||||||
set (CMAKE_VERBOSE_MAKEFILE ON CACHE BOOL "preload")
|
set(CMAKE_VERBOSE_MAKEFILE ON CACHE BOOL "preload")
|
||||||
set (WITH_MANPAGES OFF CACHE BOOL "preload")
|
set(WITH_MANPAGES OFF CACHE BOOL "preload")
|
||||||
set (CMAKE_BUILD_TYPE "RelWithDebInfo" CACHE STRING "preload")
|
set(CMAKE_BUILD_TYPE "RelWithDebInfo" CACHE STRING "preload")
|
||||||
#set (UWAC_FORCE_STATIC_BUILD ON CACHE BOOL "preload")
|
#set (UWAC_FORCE_STATIC_BUILD ON CACHE BOOL "preload")
|
||||||
#set (RDTK_FORCE_STATIC_BUILD ON CACHE BOOL "preload")
|
#set (RDTK_FORCE_STATIC_BUILD ON CACHE BOOL "preload")
|
||||||
set (WINPR_UTILS_IMAGE_PNG ON CACHE BOOL "preload")
|
set(WINPR_UTILS_IMAGE_PNG ON CACHE BOOL "preload")
|
||||||
set (WINPR_UTILS_IMAGE_JPEG ON CACHE BOOL "preload")
|
set(WINPR_UTILS_IMAGE_JPEG ON CACHE BOOL "preload")
|
||||||
set (WINPR_UTILS_IMAGE_WEBP ON CACHE BOOL "preload")
|
set(WINPR_UTILS_IMAGE_WEBP ON CACHE BOOL "preload")
|
||||||
set (WITH_BINARY_VERSIONING ON CACHE BOOL "preload")
|
set(WITH_BINARY_VERSIONING ON CACHE BOOL "preload")
|
||||||
set (WITH_INTERNAL_RC4 ON CACHE BOOL "preload")
|
set(WITH_INTERNAL_RC4 ON CACHE BOOL "preload")
|
||||||
set (WITH_INTERNAL_MD4 ON CACHE BOOL "preload")
|
set(WITH_INTERNAL_MD4 ON CACHE BOOL "preload")
|
||||||
set (WITH_INTERNAL_MD5 ON CACHE BOOL "preload")
|
set(WITH_INTERNAL_MD5 ON CACHE BOOL "preload")
|
||||||
set (WITH_SAMPLE ON CACHE BOOL "preload")
|
set(WITH_SAMPLE ON CACHE BOOL "preload")
|
||||||
set (WITH_FFMPEG ON CACHE BOOL "preload")
|
set(WITH_FFMPEG ON CACHE BOOL "preload")
|
||||||
set (WITH_SWSCALE ON CACHE BOOL "preload")
|
set(WITH_SWSCALE ON CACHE BOOL "preload")
|
||||||
set (WITH_DSP_FFMPEG ON CACHE BOOL "preload")
|
set(WITH_DSP_FFMPEG ON CACHE BOOL "preload")
|
||||||
set (WITH_FREERDP_DEPRECATED_COMMANDLINE ON CACHE BOOL "preload")
|
set(WITH_FREERDP_DEPRECATED_COMMANDLINE ON CACHE BOOL "preload")
|
||||||
set (WITH_PULSE ON CACHE BOOL "preload")
|
set(WITH_PULSE ON CACHE BOOL "preload")
|
||||||
set (WITH_OPAQUE_SETTINGS ON CACHE BOOL "preload")
|
set(WITH_OPAQUE_SETTINGS ON CACHE BOOL "preload")
|
||||||
set (WITH_VERBOSE_WINPR_ASSERT OFF CACHE BOOL "preload")
|
set(WITH_VERBOSE_WINPR_ASSERT OFF CACHE BOOL "preload")
|
||||||
|
|||||||
@@ -1,14 +1,14 @@
|
|||||||
message("PRELOADING android cache")
|
message("PRELOADING android cache")
|
||||||
set (CMAKE_VERBOSE_MAKEFILE ON CACHE BOOL "preload")
|
set(CMAKE_VERBOSE_MAKEFILE ON CACHE BOOL "preload")
|
||||||
set(CMAKE_TOOLCHAIN_FILE "$ANDROID_NDK/build/cmake/android.toolchain.cmake" CACHE PATH "ToolChain file")
|
set(CMAKE_TOOLCHAIN_FILE "$ANDROID_NDK/build/cmake/android.toolchain.cmake" CACHE PATH "ToolChain file")
|
||||||
set (WITH_SANITIZE_ADDRESS ON CACHE BOOL "build with address sanitizer")
|
set(WITH_SANITIZE_ADDRESS ON CACHE BOOL "build with address sanitizer")
|
||||||
set(FREERDP_EXTERNAL_SSL_PATH $ENV{ANDROID_SSL_PATH} CACHE PATH "android ssl")
|
set(FREERDP_EXTERNAL_SSL_PATH $ENV{ANDROID_SSL_PATH} CACHE PATH "android ssl")
|
||||||
# ANDROID_NDK and ANDROID_SDK must be set as environment variable
|
# ANDROID_NDK and ANDROID_SDK must be set as environment variable
|
||||||
#set(ANDROID_NDK $ENV{ANDROID_SDK} CACHE PATH "Android NDK")
|
#set(ANDROID_NDK $ENV{ANDROID_SDK} CACHE PATH "Android NDK")
|
||||||
#set(ANDROID_SDK "${ANDROID_NDK}" CACHE PATH "android SDK")
|
#set(ANDROID_SDK "${ANDROID_NDK}" CACHE PATH "android SDK")
|
||||||
set (WITH_FREERDP_DEPRECATED_COMMANDLINE ON CACHE BOOL "Enable deprecated command line options")
|
set(WITH_FREERDP_DEPRECATED_COMMANDLINE ON CACHE BOOL "Enable deprecated command line options")
|
||||||
set (WITH_KRB5 OFF CACHE BOOL "Kerberos support")
|
set(WITH_KRB5 OFF CACHE BOOL "Kerberos support")
|
||||||
set (WITH_CLIENT_SDL OFF CACHE BOOL "SDL client")
|
set(WITH_CLIENT_SDL OFF CACHE BOOL "SDL client")
|
||||||
set (WITH_SERVER OFF CACHE BOOL "ci default")
|
set(WITH_SERVER OFF CACHE BOOL "ci default")
|
||||||
set (WITH_X11 OFF CACHE BOOL "ci default")
|
set(WITH_X11 OFF CACHE BOOL "ci default")
|
||||||
set (WITH_LIBRARY_VERSIONING OFF CACHE BOOL "ci default")
|
set(WITH_LIBRARY_VERSIONING OFF CACHE BOOL "ci default")
|
||||||
|
|||||||
@@ -1,18 +1,17 @@
|
|||||||
set (CMAKE_VERBOSE_MAKEFILE ON CACHE BOOL "preload")
|
set(CMAKE_VERBOSE_MAKEFILE ON CACHE BOOL "preload")
|
||||||
set (WINPR_UTILS_IMAGE_JPEG ON CACHE BOOL "preload")
|
set(WINPR_UTILS_IMAGE_JPEG ON CACHE BOOL "preload")
|
||||||
set (WINPR_UTILS_IMAGE_WEBP ON CACHE BOOL "preload")
|
set(WINPR_UTILS_IMAGE_WEBP ON CACHE BOOL "preload")
|
||||||
set (WINPR_UTILS_IMAGE_PNG ON CACHE BOOL "preload")
|
set(WINPR_UTILS_IMAGE_PNG ON CACHE BOOL "preload")
|
||||||
set (WITH_CAIRO ON CACHE BOOL "preload")
|
set(WITH_CAIRO ON CACHE BOOL "preload")
|
||||||
set (WITH_DSP_EXPERIMENTAL ON CACHE BOOL "preload")
|
set(WITH_DSP_EXPERIMENTAL ON CACHE BOOL "preload")
|
||||||
set (WITH_DSP_FFMPEG ON CACHE BOOL "preload")
|
set(WITH_DSP_FFMPEG ON CACHE BOOL "preload")
|
||||||
set (WITH_FFMPEG ON CACHE BOOL "preload")
|
set(WITH_FFMPEG ON CACHE BOOL "preload")
|
||||||
set (WITH_INTERNAL_RC4 ON CACHE BOOL "preload")
|
set(WITH_INTERNAL_RC4 ON CACHE BOOL "preload")
|
||||||
set (WITH_INTERNAL_MD4 ON CACHE BOOL "preload")
|
set(WITH_INTERNAL_MD4 ON CACHE BOOL "preload")
|
||||||
set (WITH_INTERNAL_MD5 ON CACHE BOOL "preload")
|
set(WITH_INTERNAL_MD5 ON CACHE BOOL "preload")
|
||||||
set (WITH_OPUS ON CACHE BOOL "preload")
|
set(WITH_OPUS ON CACHE BOOL "preload")
|
||||||
set (WITH_PROXY_EMULATE_SMARTCARD ON CACHE BOOL "preload")
|
set(WITH_PROXY_EMULATE_SMARTCARD ON CACHE BOOL "preload")
|
||||||
set (WITH_PULSE ON CACHE BOOL "preload")
|
set(WITH_PULSE ON CACHE BOOL "preload")
|
||||||
set (WITH_SMARTCARD_INSPECT ON CACHE BOOL "preload")
|
set(WITH_SMARTCARD_INSPECT ON CACHE BOOL "preload")
|
||||||
set (WITH_SOXR ON CACHE BOOL "preload")
|
set(WITH_SOXR ON CACHE BOOL "preload")
|
||||||
set (WITH_UNICODE_BUILTIN ON CACHE BOOL "preload")
|
set(WITH_UNICODE_BUILTIN ON CACHE BOOL "preload")
|
||||||
|
|
||||||
|
|||||||
@@ -1,18 +1,18 @@
|
|||||||
message("PRELOADING iOS cache")
|
message("PRELOADING iOS cache")
|
||||||
set (CMAKE_VERBOSE_MAKEFILE ON CACHE BOOL "preload")
|
set(CMAKE_VERBOSE_MAKEFILE ON CACHE BOOL "preload")
|
||||||
set (CMAKE_TOOLCHAIN_FILE "${CMAKE_SOURCE_DIR}/cmake/ios.toolchain.cmake" CACHE PATH "cmake toolchain file")
|
set(CMAKE_TOOLCHAIN_FILE "${CMAKE_SOURCE_DIR}/cmake/ios.toolchain.cmake" CACHE PATH "cmake toolchain file")
|
||||||
set (CMAKE_BUILD_TYPE "Release" CACHE STRING "build type")
|
set(CMAKE_BUILD_TYPE "Release" CACHE STRING "build type")
|
||||||
set (CMAKE_OSX_ARCHITECTURES "arm64" CACHE STRING "iOS platform to build")
|
set(CMAKE_OSX_ARCHITECTURES "arm64" CACHE STRING "iOS platform to build")
|
||||||
set (CMAKE_OSX_DEPLOYMENT_TARGET "10.0" CACHE STRING "iOS minimum target")
|
set(CMAKE_OSX_DEPLOYMENT_TARGET "10.0" CACHE STRING "iOS minimum target")
|
||||||
set (ENABLE_BITCODE OFF CACHE BOOL "iOS default")
|
set(ENABLE_BITCODE OFF CACHE BOOL "iOS default")
|
||||||
set (BUILD_TESTING ON CACHE BOOL "iOS default")
|
set(BUILD_TESTING ON CACHE BOOL "iOS default")
|
||||||
set (WITH_SANITIZE_ADDRESS ON CACHE BOOL "build with address sanitizer")
|
set(WITH_SANITIZE_ADDRESS ON CACHE BOOL "build with address sanitizer")
|
||||||
set (WITH_CLIENT OFF CACHE BOOL "disable iOS client")
|
set(WITH_CLIENT OFF CACHE BOOL "disable iOS client")
|
||||||
set (WITH_SERVER OFF CACHE BOOL "disable iOS server")
|
set(WITH_SERVER OFF CACHE BOOL "disable iOS server")
|
||||||
set (WITH_KRB5 OFF CACHE BOOL "Kerberos support")
|
set(WITH_KRB5 OFF CACHE BOOL "Kerberos support")
|
||||||
set (WITH_CLIENT_SDL OFF CACHE BOOL "iOS preload")
|
set(WITH_CLIENT_SDL OFF CACHE BOOL "iOS preload")
|
||||||
set (WITH_FFMPEG OFF CACHE BOOL "iOS preload")
|
set(WITH_FFMPEG OFF CACHE BOOL "iOS preload")
|
||||||
set (WITH_SWSCALE OFF CACHE BOOL "iOS preload")
|
set(WITH_SWSCALE OFF CACHE BOOL "iOS preload")
|
||||||
set (WITH_NEON ON CACHE BOOL "iOS preload")
|
set(WITH_SIMD ON CACHE BOOL "iOS preload")
|
||||||
set (WITH_OPUS OFF CACHE BOOL "iOS preload")
|
set(WITH_OPUS OFF CACHE BOOL "iOS preload")
|
||||||
set (BUILD_SHARED_LIBS ON CACHE BOOL "iOS preload")
|
set(BUILD_SHARED_LIBS ON CACHE BOOL "iOS preload")
|
||||||
|
|||||||
@@ -1,18 +1,18 @@
|
|||||||
message("PRELOADING iOS cache")
|
message("PRELOADING iOS cache")
|
||||||
set (CMAKE_VERBOSE_MAKEFILE ON CACHE BOOL "preload")
|
set(CMAKE_VERBOSE_MAKEFILE ON CACHE BOOL "preload")
|
||||||
set (CMAKE_TOOLCHAIN_FILE "${CMAKE_SOURCE_DIR}/cmake/ios.toolchain.cmake" CACHE PATH "cmake toolchain file")
|
set(CMAKE_TOOLCHAIN_FILE "${CMAKE_SOURCE_DIR}/cmake/ios.toolchain.cmake" CACHE PATH "cmake toolchain file")
|
||||||
set (CMAKE_BUILD_TYPE "Debug" CACHE STRING "build type")
|
set(CMAKE_BUILD_TYPE "Debug" CACHE STRING "build type")
|
||||||
set (CMAKE_OSX_ARCHITECTURES "arm64" CACHE STRING "iOS platform to build")
|
set(CMAKE_OSX_ARCHITECTURES "arm64" CACHE STRING "iOS platform to build")
|
||||||
set (CMAKE_OSX_DEPLOYMENT_TARGET "10.0" CACHE STRING "iOS minimum target")
|
set(CMAKE_OSX_DEPLOYMENT_TARGET "10.0" CACHE STRING "iOS minimum target")
|
||||||
set (ENABLE_BITCODE OFF CACHE BOOL "iOS default")
|
set(ENABLE_BITCODE OFF CACHE BOOL "iOS default")
|
||||||
set (BUILD_TESTING ON CACHE BOOL "iOS default")
|
set(BUILD_TESTING ON CACHE BOOL "iOS default")
|
||||||
set (WITH_SANITIZE_ADDRESS ON CACHE BOOL "build with address sanitizer")
|
set(WITH_SANITIZE_ADDRESS ON CACHE BOOL "build with address sanitizer")
|
||||||
set (WITH_CLIENT OFF CACHE BOOL "disable iOS client")
|
set(WITH_CLIENT OFF CACHE BOOL "disable iOS client")
|
||||||
set (WITH_SERVER OFF CACHE BOOL "disable iOS server")
|
set(WITH_SERVER OFF CACHE BOOL "disable iOS server")
|
||||||
set (WITH_KRB5 OFF CACHE BOOL "Kerberos support")
|
set(WITH_KRB5 OFF CACHE BOOL "Kerberos support")
|
||||||
set (WITH_CLIENT_SDL OFF CACHE BOOL "iOS preload")
|
set(WITH_CLIENT_SDL OFF CACHE BOOL "iOS preload")
|
||||||
set (WITH_FFMPEG OFF CACHE BOOL "iOS preload")
|
set(WITH_FFMPEG OFF CACHE BOOL "iOS preload")
|
||||||
set (WITH_SWSCALE OFF CACHE BOOL "iOS preload")
|
set(WITH_SWSCALE OFF CACHE BOOL "iOS preload")
|
||||||
set (WITH_NEON ON CACHE BOOL "iOS preload")
|
set(WITH_SIMD ON CACHE BOOL "iOS preload")
|
||||||
set (WITH_OPUS OFF CACHE BOOL "iOS preload")
|
set(WITH_OPUS OFF CACHE BOOL "iOS preload")
|
||||||
set (BUILD_SHARED_LIBS OFF CACHE BOOL "iOS preload")
|
set(BUILD_SHARED_LIBS OFF CACHE BOOL "iOS preload")
|
||||||
|
|||||||
@@ -1,55 +1,55 @@
|
|||||||
message("PRELOADING cache")
|
message("PRELOADING cache")
|
||||||
set (CMAKE_VERBOSE_MAKEFILE ON CACHE BOOL "preload")
|
set(CMAKE_VERBOSE_MAKEFILE ON CACHE BOOL "preload")
|
||||||
set (BUILD_TESTING_INTERNAL ON CACHE BOOL "preload")
|
set(BUILD_TESTING_INTERNAL ON CACHE BOOL "preload")
|
||||||
set (WITH_MANPAGES ON CACHE BOOL "preload")
|
set(WITH_MANPAGES ON CACHE BOOL "preload")
|
||||||
set (CMAKE_BUILD_TYPE "Debug" CACHE STRING "preload")
|
set(CMAKE_BUILD_TYPE "Debug" CACHE STRING "preload")
|
||||||
set (WITH_PULSE ON CACHE BOOL "preload")
|
set(WITH_PULSE ON CACHE BOOL "preload")
|
||||||
set (WITH_CHANNELS ON CACHE BOOL "preload")
|
set(WITH_CHANNELS ON CACHE BOOL "preload")
|
||||||
set (WITH_CUPS ON CACHE BOOL "preload")
|
set(WITH_CUPS ON CACHE BOOL "preload")
|
||||||
set (WITH_WAYLAND ON CACHE BOOL "preload")
|
set(WITH_WAYLAND ON CACHE BOOL "preload")
|
||||||
set (WITH_KRB5 ON CACHE BOOL "preload")
|
set(WITH_KRB5 ON CACHE BOOL "preload")
|
||||||
set (WITH_PCSC ON CACHE BOOL "preload")
|
set(WITH_PCSC ON CACHE BOOL "preload")
|
||||||
set (WITH_JPEG ON CACHE BOOL "preload")
|
set(WITH_JPEG ON CACHE BOOL "preload")
|
||||||
set (WITH_GSM ON CACHE BOOL "preload")
|
set(WITH_GSM ON CACHE BOOL "preload")
|
||||||
set (CHANNEL_URBDRC ON CACHE BOOL "preload")
|
set(CHANNEL_URBDRC ON CACHE BOOL "preload")
|
||||||
set (CHANNEL_URBDRC_CLIENT ON CACHE BOOL "preload")
|
set(CHANNEL_URBDRC_CLIENT ON CACHE BOOL "preload")
|
||||||
set (WITH_SERVER ON CACHE BOOL "preload")
|
set(WITH_SERVER ON CACHE BOOL "preload")
|
||||||
set (WITH_DEBUG_ALL OFF CACHE BOOL "preload")
|
set(WITH_DEBUG_ALL OFF CACHE BOOL "preload")
|
||||||
set (WITH_DEBUG_CAPABILITIES OFF CACHE BOOL "preload")
|
set(WITH_DEBUG_CAPABILITIES OFF CACHE BOOL "preload")
|
||||||
set (WITH_DEBUG_CERTIFICATE OFF CACHE BOOL "preload")
|
set(WITH_DEBUG_CERTIFICATE OFF CACHE BOOL "preload")
|
||||||
set (WITH_DEBUG_CHANNELS OFF CACHE BOOL "preload")
|
set(WITH_DEBUG_CHANNELS OFF CACHE BOOL "preload")
|
||||||
set (WITH_DEBUG_CLIPRDR OFF CACHE BOOL "preload")
|
set(WITH_DEBUG_CLIPRDR OFF CACHE BOOL "preload")
|
||||||
set (WITH_DEBUG_RDPGFX OFF CACHE BOOL "preload")
|
set(WITH_DEBUG_RDPGFX OFF CACHE BOOL "preload")
|
||||||
set (WITH_DEBUG_DVC OFF CACHE BOOL "preload")
|
set(WITH_DEBUG_DVC OFF CACHE BOOL "preload")
|
||||||
set (WITH_DEBUG_KBD OFF CACHE BOOL "preload")
|
set(WITH_DEBUG_KBD OFF CACHE BOOL "preload")
|
||||||
set (WITH_DEBUG_LICENSE OFF CACHE BOOL "preload")
|
set(WITH_DEBUG_LICENSE OFF CACHE BOOL "preload")
|
||||||
set (WITH_DEBUG_NEGO OFF CACHE BOOL "preload")
|
set(WITH_DEBUG_NEGO OFF CACHE BOOL "preload")
|
||||||
set (WITH_DEBUG_NLA OFF CACHE BOOL "preload")
|
set(WITH_DEBUG_NLA OFF CACHE BOOL "preload")
|
||||||
set (WITH_DEBUG_NTLM OFF CACHE BOOL "preload")
|
set(WITH_DEBUG_NTLM OFF CACHE BOOL "preload")
|
||||||
set (WITH_DEBUG_RAIL OFF CACHE BOOL "preload")
|
set(WITH_DEBUG_RAIL OFF CACHE BOOL "preload")
|
||||||
set (WITH_DEBUG_RDP OFF CACHE BOOL "preload")
|
set(WITH_DEBUG_RDP OFF CACHE BOOL "preload")
|
||||||
set (WITH_DEBUG_RDPEI OFF CACHE BOOL "preload")
|
set(WITH_DEBUG_RDPEI OFF CACHE BOOL "preload")
|
||||||
set (WITH_DEBUG_REDIR OFF CACHE BOOL "preload")
|
set(WITH_DEBUG_REDIR OFF CACHE BOOL "preload")
|
||||||
set (WITH_DEBUG_RDPDR OFF CACHE BOOL "preload")
|
set(WITH_DEBUG_RDPDR OFF CACHE BOOL "preload")
|
||||||
set (WITH_DEBUG_RFX OFF CACHE BOOL "preload")
|
set(WITH_DEBUG_RFX OFF CACHE BOOL "preload")
|
||||||
set (WITH_DEBUG_SCARD OFF CACHE BOOL "preload")
|
set(WITH_DEBUG_SCARD OFF CACHE BOOL "preload")
|
||||||
set (WITH_DEBUG_SND OFF CACHE BOOL "preload")
|
set(WITH_DEBUG_SND OFF CACHE BOOL "preload")
|
||||||
set (WITH_DEBUG_SVC OFF CACHE BOOL "preload")
|
set(WITH_DEBUG_SVC OFF CACHE BOOL "preload")
|
||||||
set (WITH_DEBUG_THREADS OFF CACHE BOOL "preload")
|
set(WITH_DEBUG_THREADS OFF CACHE BOOL "preload")
|
||||||
set (WITH_DEBUG_TIMEZONE OFF CACHE BOOL "preload")
|
set(WITH_DEBUG_TIMEZONE OFF CACHE BOOL "preload")
|
||||||
set (WITH_DEBUG_TRANSPORT OFF CACHE BOOL "preload")
|
set(WITH_DEBUG_TRANSPORT OFF CACHE BOOL "preload")
|
||||||
set (WITH_DEBUG_TSG OFF CACHE BOOL "preload")
|
set(WITH_DEBUG_TSG OFF CACHE BOOL "preload")
|
||||||
set (WITH_DEBUG_TSMF OFF CACHE BOOL "preload")
|
set(WITH_DEBUG_TSMF OFF CACHE BOOL "preload")
|
||||||
set (WITH_DEBUG_WND OFF CACHE BOOL "preload")
|
set(WITH_DEBUG_WND OFF CACHE BOOL "preload")
|
||||||
set (WITH_DEBUG_X11 OFF CACHE BOOL "preload")
|
set(WITH_DEBUG_X11 OFF CACHE BOOL "preload")
|
||||||
set (WITH_DEBUG_X11_LOCAL_MOVESIZE OFF CACHE BOOL "preload")
|
set(WITH_DEBUG_X11_LOCAL_MOVESIZE OFF CACHE BOOL "preload")
|
||||||
set (WITH_DEBUG_XV OFF CACHE BOOL "preload")
|
set(WITH_DEBUG_XV OFF CACHE BOOL "preload")
|
||||||
set (WITH_SAMPLE ON CACHE BOOL "preload")
|
set(WITH_SAMPLE ON CACHE BOOL "preload")
|
||||||
set (WITH_NO_UNDEFINED ON CACHE BOOL "preload")
|
set(WITH_NO_UNDEFINED ON CACHE BOOL "preload")
|
||||||
set (WITH_SANITIZE_ADDRESS ON CACHE BOOL "preload")
|
set(WITH_SANITIZE_ADDRESS ON CACHE BOOL "preload")
|
||||||
set (WITH_FFMPEG ON CACHE BOOL "preload")
|
set(WITH_FFMPEG ON CACHE BOOL "preload")
|
||||||
set (WITH_SWSCALE ON CACHE BOOL "preload")
|
set(WITH_SWSCALE ON CACHE BOOL "preload")
|
||||||
set (WITH_DSP_FFMPEG ON CACHE BOOL "preload")
|
set(WITH_DSP_FFMPEG ON CACHE BOOL "preload")
|
||||||
set (WITH_PROXY ON CACHE BOOL "preload")
|
set(WITH_PROXY ON CACHE BOOL "preload")
|
||||||
set (WITH_PROXY_MODULES ON CACHE BOOL "preload")
|
set(WITH_PROXY_MODULES ON CACHE BOOL "preload")
|
||||||
set (WITH_FREERDP_DEPRECATED_COMMANDLINE ON CACHE BOOL "preload")
|
set(WITH_FREERDP_DEPRECATED_COMMANDLINE ON CACHE BOOL "preload")
|
||||||
|
|||||||
@@ -1,17 +1,17 @@
|
|||||||
message("PRELOADING mac cache")
|
message("PRELOADING mac cache")
|
||||||
set (CMAKE_VERBOSE_MAKEFILE ON CACHE BOOL "preload")
|
set(CMAKE_VERBOSE_MAKEFILE ON CACHE BOOL "preload")
|
||||||
set (WITH_MANPAGES OFF CACHE BOOL "man pages")
|
set(WITH_MANPAGES OFF CACHE BOOL "man pages")
|
||||||
set (CMAKE_BUILD_TYPE "Debug" CACHE STRING "build type")
|
set(CMAKE_BUILD_TYPE "Debug" CACHE STRING "build type")
|
||||||
set (WITH_CUPS ON CACHE BOOL "CUPS printing")
|
set(WITH_CUPS ON CACHE BOOL "CUPS printing")
|
||||||
set (CHANNEL_URBDRC OFF CACHE BOOL "USB redirection")
|
set(CHANNEL_URBDRC OFF CACHE BOOL "USB redirection")
|
||||||
set (WITH_X11 ON CACHE BOOL "Enable X11")
|
set(WITH_X11 ON CACHE BOOL "Enable X11")
|
||||||
set (WITH_SERVER ON CACHE BOOL "build with server")
|
set(WITH_SERVER ON CACHE BOOL "build with server")
|
||||||
set (WITH_SAMPLE ON CACHE BOOL "build with sample")
|
set(WITH_SAMPLE ON CACHE BOOL "build with sample")
|
||||||
set (BUILD_TESTING_INTERNAL ON CACHE BOOL "build testing")
|
set(BUILD_TESTING_INTERNAL ON CACHE BOOL "build testing")
|
||||||
set (WITH_SANITIZE_ADDRESS ON CACHE BOOL "build with address sanitizer")
|
set(WITH_SANITIZE_ADDRESS ON CACHE BOOL "build with address sanitizer")
|
||||||
set (WITH_FREERDP_DEPRECATED_COMMANDLINE ON CACHE BOOL "Enable deprecated command line options")
|
set(WITH_FREERDP_DEPRECATED_COMMANDLINE ON CACHE BOOL "Enable deprecated command line options")
|
||||||
set (WITH_KRB5 OFF CACHE BOOL "Kerberos support")
|
set(WITH_KRB5 OFF CACHE BOOL "Kerberos support")
|
||||||
set (WITH_WEBVIEW OFF CACHE BOOL "ci default")
|
set(WITH_WEBVIEW OFF CACHE BOOL "ci default")
|
||||||
set (WITH_FFMPEG OFF CACHE BOOL "ci default")
|
set(WITH_FFMPEG OFF CACHE BOOL "ci default")
|
||||||
set (WITH_OPUS OFF CACHE BOOL "ci default")
|
set(WITH_OPUS OFF CACHE BOOL "ci default")
|
||||||
set (WITH_SWSCALE OFF CACHE BOOL "ci default")
|
set(WITH_SWSCALE OFF CACHE BOOL "ci default")
|
||||||
|
|||||||
@@ -2,8 +2,7 @@ message("PRELOADING cache")
|
|||||||
set(CMAKE_VERBOSE_MAKEFILE ON CACHE BOOL "preload")
|
set(CMAKE_VERBOSE_MAKEFILE ON CACHE BOOL "preload")
|
||||||
set(WITH_SERVER ON CACHE BOOL "qa default")
|
set(WITH_SERVER ON CACHE BOOL "qa default")
|
||||||
set(WITH_SAMPLE ON CACHE BOOL "qa default")
|
set(WITH_SAMPLE ON CACHE BOOL "qa default")
|
||||||
set(WITH_SSE2 ON CACHE BOOL "qa default")
|
set(WITH_SIMD ON CACHE BOOL "qa default")
|
||||||
set(WITH_NEON ON CACHE BOOL "qa default")
|
|
||||||
set(WITH_VERBOSE_WINPR_ASSERT OFF CACHE BOOL "qa default")
|
set(WITH_VERBOSE_WINPR_ASSERT OFF CACHE BOOL "qa default")
|
||||||
set(ENABLE_WARNING_VERBOSE ON CACHE BOOL "preload")
|
set(ENABLE_WARNING_VERBOSE ON CACHE BOOL "preload")
|
||||||
set(BUILD_SHARED_LIBS OFF CACHE BOOL "qa default")
|
set(BUILD_SHARED_LIBS OFF CACHE BOOL "qa default")
|
||||||
|
|||||||
@@ -11,8 +11,7 @@ set(WITH_CUPS ON CACHE BOOL "qa default")
|
|||||||
set(WITH_OPENCL ON CACHE BOOL "qa default")
|
set(WITH_OPENCL ON CACHE BOOL "qa default")
|
||||||
set(WITH_PCSC ON CACHE BOOL "qa default")
|
set(WITH_PCSC ON CACHE BOOL "qa default")
|
||||||
set(WITH_SOXR ON CACHE BOOL "qa default")
|
set(WITH_SOXR ON CACHE BOOL "qa default")
|
||||||
set(WITH_SSE2 ON CACHE BOOL "qa default")
|
set(WITH_SIMD ON CACHE BOOL "qa default")
|
||||||
set(WITH_NEON ON CACHE BOOL "qa default")
|
|
||||||
set(WITH_SWSCALE ON CACHE BOOL "qa default")
|
set(WITH_SWSCALE ON CACHE BOOL "qa default")
|
||||||
set(WITH_DSP_FFMPEG ON CACHE BOOL "qa default")
|
set(WITH_DSP_FFMPEG ON CACHE BOOL "qa default")
|
||||||
set(WITH_FFMPEG ON CACHE BOOL "qa default")
|
set(WITH_FFMPEG ON CACHE BOOL "qa default")
|
||||||
|
|||||||
@@ -1,15 +1,15 @@
|
|||||||
message("PRELOADING cache")
|
message("PRELOADING cache")
|
||||||
set (CMAKE_VERBOSE_MAKEFILE ON CACHE BOOL "preload")
|
set(CMAKE_VERBOSE_MAKEFILE ON CACHE BOOL "preload")
|
||||||
set (WITH_MANPAGES ON CACHE BOOL "man pages")
|
set(WITH_MANPAGES ON CACHE BOOL "man pages")
|
||||||
set (CMAKE_BUILD_TYPE "Debug" CACHE STRING "build type")
|
set(CMAKE_BUILD_TYPE "Debug" CACHE STRING "build type")
|
||||||
set (WITH_CUPS OFF CACHE BOOL "CUPS printing")
|
set(WITH_CUPS OFF CACHE BOOL "CUPS printing")
|
||||||
set (WITH_KRB5 ON CACHE BOOL "Kerberos support")
|
set(WITH_KRB5 ON CACHE BOOL "Kerberos support")
|
||||||
set (WITH_ALSA OFF CACHE BOOL "alsa audio")
|
set(WITH_ALSA OFF CACHE BOOL "alsa audio")
|
||||||
set (WITH_FFMPEG OFF CACHE BOOL "ffmepg support")
|
set(WITH_FFMPEG OFF CACHE BOOL "ffmepg support")
|
||||||
set (WITH_XV OFF CACHE BOOL "xvideo support")
|
set(WITH_XV OFF CACHE BOOL "xvideo support")
|
||||||
set (BUILD_TESTING_INTERNAL ON CACHE BOOL "build testing")
|
set(BUILD_TESTING_INTERNAL ON CACHE BOOL "build testing")
|
||||||
set (WITH_XSHM OFF CACHE BOOL "build with xshm support")
|
set(WITH_XSHM OFF CACHE BOOL "build with xshm support")
|
||||||
set (WITH_SERVER ON CACHE BOOL "build with server")
|
set(WITH_SERVER ON CACHE BOOL "build with server")
|
||||||
set (WITH_SAMPLE ON CACHE BOOL "build with sample")
|
set(WITH_SAMPLE ON CACHE BOOL "build with sample")
|
||||||
set (WITH_SANITIZE_ADDRESS ON)
|
set(WITH_SANITIZE_ADDRESS ON)
|
||||||
set (WITH_FREERDP_DEPRECATED_COMMANDLINE ON CACHE BOOL "Enable deprecated command line options")
|
set(WITH_FREERDP_DEPRECATED_COMMANDLINE ON CACHE BOOL "Enable deprecated command line options")
|
||||||
|
|||||||
@@ -1,21 +1,21 @@
|
|||||||
message("PRELOADING windows cache")
|
message("PRELOADING windows cache")
|
||||||
set (CMAKE_VERBOSE_MAKEFILE ON CACHE BOOL "preload")
|
set(CMAKE_VERBOSE_MAKEFILE ON CACHE BOOL "preload")
|
||||||
set (CMAKE_WINDOWS_VERSION "WIN7" CACHE STRING "windows build version")
|
set(CMAKE_WINDOWS_VERSION "WIN7" CACHE STRING "windows build version")
|
||||||
set (BUILD_SHARED_LIBS OFF CACHE BOOL "build static linked executable")
|
set(BUILD_SHARED_LIBS OFF CACHE BOOL "build static linked executable")
|
||||||
set (CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded" CACHE STRING "MSVC runtime to use")
|
set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded" CACHE STRING "MSVC runtime to use")
|
||||||
set (OPENSSL_USE_STATIC_LIBS ON CACHE BOOL "link OpenSSL static")
|
set(OPENSSL_USE_STATIC_LIBS ON CACHE BOOL "link OpenSSL static")
|
||||||
set (CMAKE_BUILD_TYPE "Debug" CACHE STRING "build type")
|
set(CMAKE_BUILD_TYPE "Debug" CACHE STRING "build type")
|
||||||
set (WITH_SERVER ON CACHE BOOL "build with server")
|
set(WITH_SERVER ON CACHE BOOL "build with server")
|
||||||
set (WITH_SAMPLE ON CACHE BOOL "build with sample")
|
set(WITH_SAMPLE ON CACHE BOOL "build with sample")
|
||||||
set (WITH_SHADOW OFF CACHE BOOL "Do not build shadow server")
|
set(WITH_SHADOW OFF CACHE BOOL "Do not build shadow server")
|
||||||
set (WITH_PLATFORM_SERVER OFF CACHE BOOL "Do not build platform server")
|
set(WITH_PLATFORM_SERVER OFF CACHE BOOL "Do not build platform server")
|
||||||
set (WITH_CLIENT_SDL ON CACHE BOOL "build with SDL client")
|
set(WITH_CLIENT_SDL ON CACHE BOOL "build with SDL client")
|
||||||
set (WITH_PROXY_MODULES "ON" CACHE BOOL "build proxy modules")
|
set(WITH_PROXY_MODULES "ON" CACHE BOOL "build proxy modules")
|
||||||
set (CHANNEL_URBDRC OFF CACHE BOOL "USB redirection")
|
set(CHANNEL_URBDRC OFF CACHE BOOL "USB redirection")
|
||||||
set (BUILD_TESTING_INTERNAL ON CACHE BOOL "build testing")
|
set(BUILD_TESTING_INTERNAL ON CACHE BOOL "build testing")
|
||||||
set (WITH_FFMPEG OFF CACHE BOOL "ci default")
|
set(WITH_FFMPEG OFF CACHE BOOL "ci default")
|
||||||
set (WITH_SWSCALE OFF CACHE BOOL "ci default")
|
set(WITH_SWSCALE OFF CACHE BOOL "ci default")
|
||||||
set (WITH_WEBVIEW ON CACHE BOOL "ci default")
|
set(WITH_WEBVIEW ON CACHE BOOL "ci default")
|
||||||
set (ZLIB_USE_STATIC_LIBS ON CACHE BOOL "ci default")
|
set(ZLIB_USE_STATIC_LIBS ON CACHE BOOL "ci default")
|
||||||
set (WITH_FREERDP_DEPRECATED_COMMANDLINE ON CACHE BOOL "Enable deprecated command line options")
|
set(WITH_FREERDP_DEPRECATED_COMMANDLINE ON CACHE BOOL "Enable deprecated command line options")
|
||||||
set (WITH_SDL_LINK_SHARED OFF CACHE BOOL "ci default")
|
set(WITH_SDL_LINK_SHARED OFF CACHE BOOL "ci default")
|
||||||
|
|||||||
@@ -22,11 +22,6 @@ option(WITH_MANPAGES "Generate manpages." ${MANPAGE_DEF})
|
|||||||
option(WITH_PROFILER "Compile profiler." OFF)
|
option(WITH_PROFILER "Compile profiler." OFF)
|
||||||
option(WITH_GPROF "Compile with GProf profiler." OFF)
|
option(WITH_GPROF "Compile with GProf profiler." OFF)
|
||||||
|
|
||||||
option(WITH_SSE2 "Enable SSE2 optimization." OFF)
|
|
||||||
cmake_dependent_option(WITH_AVX2 "Compile AVX2 optimizations" ON "WITH_SSE2" OFF)
|
|
||||||
|
|
||||||
option(WITH_NEON "Enable NEON optimization." OFF)
|
|
||||||
|
|
||||||
option(WITH_JPEG "Use JPEG decoding." OFF)
|
option(WITH_JPEG "Use JPEG decoding." OFF)
|
||||||
|
|
||||||
include(CompilerDetect)
|
include(CompilerDetect)
|
||||||
|
|||||||
@@ -1,44 +1,104 @@
|
|||||||
include(CheckSymbolExists)
|
option(WITH_SIMD "Enable best platform specific vector instruction support" ON)
|
||||||
|
cmake_dependent_option(WITH_AVX2 "Compile AVX2 optimizations." ON "WITH_SIMD" OFF)
|
||||||
|
|
||||||
check_symbol_exists("__i586__" "" X86_i586)
|
if(WITH_SSE2)
|
||||||
check_symbol_exists("__i686__" "" X86_i686)
|
message(WARNING "WITH_SSE2 is deprecated, use WITH_SIMD instead")
|
||||||
check_symbol_exists("__X86__" "" X86_X86)
|
set(WITH_SIMD ON CACHE BOOL "WITH_SSE2")
|
||||||
check_symbol_exists("_X86_" "" X86_X862)
|
endif()
|
||||||
check_symbol_exists("__I86__" "" X86_I86)
|
if(WITH_NEON)
|
||||||
check_symbol_exists("__IA32__" "" X86_IA32)
|
message(WARNING "WITH_NEON is deprecated, use WITH_SIMD instead")
|
||||||
check_symbol_exists("_M_IX86" "" X86_M_IX86)
|
set(WITH_SIMD ON CACHE BOOL "WITH_NEON")
|
||||||
check_symbol_exists("__amd64" "" X86_AMD64)
|
|
||||||
check_symbol_exists("__amd64__" "" X86_AMD642)
|
|
||||||
check_symbol_exists("__x86_64" "" X86_X86_64)
|
|
||||||
check_symbol_exists("__x86_64__" "" X86_X86_642)
|
|
||||||
check_symbol_exists("_M_X64" "" X86_X64)
|
|
||||||
check_symbol_exists("__ia64" "" X86_IA64)
|
|
||||||
check_symbol_exists("__ia64__" "" X86_IA642)
|
|
||||||
check_symbol_exists("_M_IA64" "" X86_M_IA64)
|
|
||||||
check_symbol_exists("_M_ARM64" "" MSVC_ARM64)
|
|
||||||
check_symbol_exists("__aarch64__" "" ARCH_ARM64)
|
|
||||||
check_symbol_exists("M_ARM" "" ARCH_M_ARM)
|
|
||||||
check_symbol_exists("_arm__" "" ARCH_ARM)
|
|
||||||
check_symbol_exists("_thumb__" "" ARCH_THUMB)
|
|
||||||
check_symbol_exists("_TARGET_ARCH_ARM" "" ARCH_ARM_TARGET)
|
|
||||||
check_symbol_exists("_TARGET_ARCH_THUMB" "" ARCH_ARM_TARGET_THUMB)
|
|
||||||
|
|
||||||
if(X86_i586 OR X86_i686 OR X86_X86 OR X86_X862 OR X86_I86 OR X86_IA32 OR X86_M_IX86 OR X86_AMD64 OR X86_AMD642
|
|
||||||
OR X86_X86_64 OR X86_X86_642 OR X86_X64 OR X86_IA64 OR X86_IA642 OR X86_M_IA64
|
|
||||||
)
|
|
||||||
set(HAVE_SSE_OR_AVX ON CACHE INTERNAL "internal")
|
|
||||||
else()
|
|
||||||
set(HAVE_SSE_OR_AVX OFF CACHE INTERNAL "internal")
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(MSVC_ARM64 OR ARCH_ARM64 OR ARCH_M_ARM OR ARCH_ARM OR ARCH_THUMB OR ARCH_ARM_TARGET OR ARCH_ARM_TARGET_THUMB)
|
macro(set_simd_source_file_properties INTRINSIC_TYPE)
|
||||||
set(HAVE_NEON ON CACHE INTERNAL "internal")
|
if(ARGC LESS_EQUAL 1)
|
||||||
else()
|
message(FATAL_ERROR "set_simd_source_file_properties called with invalid arguments: [${ARGC}] {${ARGN}")
|
||||||
set(HAVE_NEON OFF CACHE INTERNAL "internal")
|
endif()
|
||||||
endif()
|
|
||||||
|
|
||||||
if(MSVC_ARM64 OR ARCH_ARM64)
|
# see https://cmake.org/cmake/help/latest/variable/CMAKE_LANG_COMPILER_ID.html
|
||||||
set(HAVE_NEON64 ON CACHE INTERNAL "internal")
|
set(GCC_CLANG_NAMES "AppleClang;Clang;CrayClang;FujitsuClang;GNU;IntelLLVM;TIClang;XLClang;IBMClang")
|
||||||
else()
|
|
||||||
set(HAVE_NEON64 OFF CACHE INTERNAL "internal")
|
set(SSE_X86_LIST "i686;x86;X86")
|
||||||
endif()
|
set(SSE_LIST "x86_64;ia64;x64;AMD64;IA64;EM64T;${SSE_X86_LIST}")
|
||||||
|
set(NEON_LIST "arm;armv7;armv8b;armv8l")
|
||||||
|
set(SUPPORTED_INTRINSICS_LIST "neon;sse2;sse3;ssse3;sse4.1;sse4.2;avx2")
|
||||||
|
|
||||||
|
if(NOT "${INTRINSIC_TYPE}" IN_LIST SUPPORTED_INTRINSICS_LIST)
|
||||||
|
message(WARNING "Intrinsic type ${INTRINSIC_TYPE} not supported, only ${SUPPORTED_INTRINSICS_LIST} are available")
|
||||||
|
else()
|
||||||
|
set(SIMD_LINK_ARG "")
|
||||||
|
if(MSVC)
|
||||||
|
# https://learn.microsoft.com/en-us/cpp/build/reference/arch-x64?view=msvc-140
|
||||||
|
if("${CMAKE_SYSTEM_PROCESSOR}" IN_LIST SSE_LIST)
|
||||||
|
if("${CMAKE_SYSTEM_PROCESSOR}" IN_LIST SSE_X86_LIST)
|
||||||
|
# /arch:SSE2 is the default, so do nothing
|
||||||
|
set(SIMD_LINK_ARG "ignore")
|
||||||
|
if("${INTRINSIC_TYPE}" STREQUAL "avx2")
|
||||||
|
set(SIMD_LINK_ARG "/arch:AVX2")
|
||||||
|
endif()
|
||||||
|
else()
|
||||||
|
# /arch:SSE2 is the default, so do nothing
|
||||||
|
set(SIMD_LINK_ARG "ignore")
|
||||||
|
if("${INTRINSIC_TYPE}" STREQUAL "sse4.2")
|
||||||
|
set(SIMD_LINK_ARG "/arch:SSE4.2")
|
||||||
|
elseif("${INTRINSIC_TYPE}" STREQUAL "avx2")
|
||||||
|
set(SIMD_LINK_ARG "/arch:AVX2")
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
elseif("${CMAKE_C_COMPILER_ID}" IN_LIST GCC_CLANG_NAMES)
|
||||||
|
set(HAVE_SSE_AVX OFF)
|
||||||
|
foreach(ARCH ${CMAKE_OSX_ARCHITECTURES})
|
||||||
|
if("${ARCH}" IN_LIST SSE_LIST)
|
||||||
|
set(HAVE_SSE_AVX ON)
|
||||||
|
endif()
|
||||||
|
endforeach()
|
||||||
|
if("${CMAKE_SYSTEM_PROCESSOR}" IN_LIST SSE_LIST OR HAVE_SSE_AVX)
|
||||||
|
if("${INTRINSIC_TYPE}" STREQUAL "sse2")
|
||||||
|
set(SIMD_LINK_ARG "-msse2")
|
||||||
|
elseif("${INTRINSIC_TYPE}" STREQUAL "sse3")
|
||||||
|
set(SIMD_LINK_ARG "-msse3")
|
||||||
|
elseif("${INTRINSIC_TYPE}" STREQUAL "ssse3")
|
||||||
|
set(SIMD_LINK_ARG "-mssse3")
|
||||||
|
elseif("${INTRINSIC_TYPE}" STREQUAL "sse4.1")
|
||||||
|
set(SIMD_LINK_ARG "-msse4.1")
|
||||||
|
elseif("${INTRINSIC_TYPE}" STREQUAL "sse4.2")
|
||||||
|
set(SIMD_LINK_ARG "-msse4.2")
|
||||||
|
elseif("${INTRINSIC_TYPE}" STREQUAL "avx2")
|
||||||
|
set(SIMD_LINK_ARG "-mavx2")
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
else()
|
||||||
|
message(WARNING "[SIMD] Unsupported compiler ${CMAKE_C_COMPILER_ID}, ignoring")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if("${INTRINSIC_TYPE}" STREQUAL "neon")
|
||||||
|
set(HAVE_NEON OFF)
|
||||||
|
foreach(ARCH ${CMAKE_OSX_ARCHITECTURES})
|
||||||
|
if("${ARCH}" IN_LIST NEON_LIST)
|
||||||
|
set(HAVE_NEON ON)
|
||||||
|
endif()
|
||||||
|
endforeach()
|
||||||
|
if("${CMAKE_SYSTEM_PROCESSOR}" IN_LIST NEON_LIST OR HAVE_NEON)
|
||||||
|
if(MSVC)
|
||||||
|
set(SIMD_LINK_ARG "/arch:VFPv4")
|
||||||
|
elseif("${CMAKE_C_COMPILER_ID}" IN_LIST GCC_CLANG_NAMES)
|
||||||
|
set(SIMD_LINK_ARG "-mfpu=neon")
|
||||||
|
else()
|
||||||
|
message(WARNING "[SIMD] Unsupported compiler ${CMAKE_C_COMPILER_ID}, ignoring")
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(SIMD_LINK_ARG STREQUAL "")
|
||||||
|
message(NOTICE "INTRINSIC_TYPE=${INTRINSIC_TYPE}: not supported on target platform, ignoring")
|
||||||
|
elseif(SIMD_LINK_ARG STREQUAL "ignore")
|
||||||
|
message(NOTICE "INTRINSIC_TYPE=${INTRINSIC_TYPE}: does not require linker flags, enabled by default")
|
||||||
|
else()
|
||||||
|
message("[SIMD] linking ${INTRINSIC_TYPE} [${SIMD_LINK_ARG}]: ${ARGN}")
|
||||||
|
foreach(src ${ARGN})
|
||||||
|
set_source_files_properties(${src} PROPERTIES COMPILE_FLAGS "${SIMD_LINK_ARG}")
|
||||||
|
endforeach()
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
endmacro()
|
||||||
|
|||||||
@@ -21,9 +21,8 @@
|
|||||||
#cmakedefine WITH_ADD_PLUGIN_TO_RPATH
|
#cmakedefine WITH_ADD_PLUGIN_TO_RPATH
|
||||||
#cmakedefine WITH_PROFILER
|
#cmakedefine WITH_PROFILER
|
||||||
#cmakedefine WITH_GPROF
|
#cmakedefine WITH_GPROF
|
||||||
#cmakedefine WITH_SSE2
|
#cmakedefine WITH_SIMD
|
||||||
#cmakedefine WITH_AVX2
|
#cmakedefine WITH_AVX2
|
||||||
#cmakedefine WITH_NEON
|
|
||||||
#cmakedefine WITH_CUPS
|
#cmakedefine WITH_CUPS
|
||||||
#cmakedefine WITH_JPEG
|
#cmakedefine WITH_JPEG
|
||||||
#cmakedefine WITH_WIN8
|
#cmakedefine WITH_WIN8
|
||||||
|
|||||||
@@ -53,29 +53,9 @@ list(APPEND CODEC_SRCS ${CODEC_NEON_SRCS})
|
|||||||
include(CompilerDetect)
|
include(CompilerDetect)
|
||||||
include(DetectIntrinsicSupport)
|
include(DetectIntrinsicSupport)
|
||||||
|
|
||||||
if(WITH_SSE2)
|
if(WITH_SIMD)
|
||||||
|
set_simd_source_file_properties("sse2" ${CODEC_SSE2_SRCS})
|
||||||
if(HAVE_SSE_OR_AVX)
|
set_simd_source_file_properties("neon" ${CODEC_NEON_SRCS})
|
||||||
if(CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_CLANG)
|
|
||||||
if(CODEC_SSE2_SRCS)
|
|
||||||
set_source_files_properties(${CODEC_SSE2_SRCS} PROPERTIES COMPILE_FLAGS "-msse2")
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(MSVC)
|
|
||||||
if(CODEC_SSE2_SRCS)
|
|
||||||
set_source_files_properties(${CODEC_SSE2_SRCS} PROPERTIES COMPILE_FLAGS "/arch:SSE2")
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
if(WITH_NEON)
|
|
||||||
# aarch64 requires NEON by default, no flag required
|
|
||||||
if(HAVE_NEON AND NOT HAVE_NEON64)
|
|
||||||
if(CODEC_SSE2_SRCS)
|
|
||||||
set_source_files_properties(${CODEC_NEON_SRCS} PROPERTIES COMPILE_FLAGS "-mfpu=neon")
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(WITH_DSP_FFMPEG)
|
if(WITH_DSP_FFMPEG)
|
||||||
|
|||||||
@@ -26,19 +26,15 @@
|
|||||||
#include "../nsc_types.h"
|
#include "../nsc_types.h"
|
||||||
#include "nsc_neon.h"
|
#include "nsc_neon.h"
|
||||||
|
|
||||||
#if defined(WITH_NEON)
|
#include "../../core/simd.h"
|
||||||
#if defined(_M_ARM64) || defined(_M_ARM)
|
|
||||||
#define NEON_ENABLED
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(NEON_ENABLED)
|
#if defined(NEON_INTRINSICS_ENABLED)
|
||||||
#define TAG FREERDP_TAG("codec.nsc.neon")
|
#define TAG FREERDP_TAG("codec.nsc.neon")
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
void nsc_init_neon(NSC_CONTEXT* context)
|
void nsc_init_neon(NSC_CONTEXT* context)
|
||||||
{
|
{
|
||||||
#if defined(NEON_ENABLED)
|
#if defined(NEON_INTRINSICS_ENABLED)
|
||||||
if (!IsProcessorFeaturePresent(PF_ARM_NEON_INSTRUCTIONS_AVAILABLE))
|
if (!IsProcessorFeaturePresent(PF_ARM_NEON_INSTRUCTIONS_AVAILABLE))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
|||||||
@@ -24,13 +24,9 @@
|
|||||||
#include "../rfx_types.h"
|
#include "../rfx_types.h"
|
||||||
#include "rfx_neon.h"
|
#include "rfx_neon.h"
|
||||||
|
|
||||||
#if defined(WITH_NEON)
|
#include "../../core/simd.h"
|
||||||
#if defined(_M_ARM64) || defined(_M_ARM)
|
|
||||||
#define NEON_ENABLED
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(NEON_ENABLED)
|
#if defined(NEON_INTRINSICS_ENABLED)
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
@@ -525,11 +521,11 @@ static void rfx_dwt_2d_extrapolate_decode_neon(INT16* buffer, INT16* temp)
|
|||||||
rfx_dwt_2d_decode_extrapolate_block_neon(&buffer[3007], temp, 2);
|
rfx_dwt_2d_decode_extrapolate_block_neon(&buffer[3007], temp, 2);
|
||||||
rfx_dwt_2d_decode_extrapolate_block_neon(&buffer[0], temp, 1);
|
rfx_dwt_2d_decode_extrapolate_block_neon(&buffer[0], temp, 1);
|
||||||
}
|
}
|
||||||
#endif // NEON_ENABLED
|
#endif // NEON_INTRINSICS_ENABLED
|
||||||
|
|
||||||
void rfx_init_neon(RFX_CONTEXT* context)
|
void rfx_init_neon(RFX_CONTEXT* context)
|
||||||
{
|
{
|
||||||
#if defined(NEON_ENABLED)
|
#if defined(NEON_INTRINSICS_ENABLED)
|
||||||
if (IsProcessorFeaturePresent(PF_ARM_NEON_INSTRUCTIONS_AVAILABLE))
|
if (IsProcessorFeaturePresent(PF_ARM_NEON_INSTRUCTIONS_AVAILABLE))
|
||||||
{
|
{
|
||||||
DEBUG_RFX("Using NEON optimizations");
|
DEBUG_RFX("Using NEON optimizations");
|
||||||
|
|||||||
@@ -23,13 +23,9 @@
|
|||||||
#include "../nsc_types.h"
|
#include "../nsc_types.h"
|
||||||
#include "nsc_sse2.h"
|
#include "nsc_sse2.h"
|
||||||
|
|
||||||
#if defined(WITH_SSE2)
|
#include "../../core/simd.h"
|
||||||
#if defined(_M_IX86) || defined(_M_AMD64) || defined(_M_IA64) || defined(_M_IX86_AMD64)
|
|
||||||
#define SSE2_ENABLED
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(SSE2_ENABLED)
|
#if defined(SSE_AVX_INTRINSICS_ENABLED)
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
@@ -388,7 +384,7 @@ static BOOL nsc_encode_sse2(NSC_CONTEXT* context, const BYTE* data, UINT32 scanl
|
|||||||
|
|
||||||
void nsc_init_sse2(NSC_CONTEXT* context)
|
void nsc_init_sse2(NSC_CONTEXT* context)
|
||||||
{
|
{
|
||||||
#if defined(SSE2_ENABLED)
|
#if defined(SSE_AVX_INTRINSICS_ENABLED)
|
||||||
if (!IsProcessorFeaturePresent(PF_XMMI64_INSTRUCTIONS_AVAILABLE))
|
if (!IsProcessorFeaturePresent(PF_XMMI64_INSTRUCTIONS_AVAILABLE))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
|||||||
@@ -24,13 +24,9 @@
|
|||||||
#include "../rfx_types.h"
|
#include "../rfx_types.h"
|
||||||
#include "rfx_sse2.h"
|
#include "rfx_sse2.h"
|
||||||
|
|
||||||
#if defined(WITH_SSE2)
|
#include "../../core/simd.h"
|
||||||
#if defined(_M_IX86) || defined(_M_AMD64) || defined(_M_IA64) || defined(_M_IX86_AMD64)
|
|
||||||
#define SSE2_ENABLED
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(SSE2_ENABLED)
|
#if defined(SSE_AVX_INTRINSICS_ENABLED)
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
@@ -488,7 +484,7 @@ static void rfx_dwt_2d_encode_sse2(INT16* WINPR_RESTRICT buffer, INT16* WINPR_RE
|
|||||||
|
|
||||||
void rfx_init_sse2(RFX_CONTEXT* context)
|
void rfx_init_sse2(RFX_CONTEXT* context)
|
||||||
{
|
{
|
||||||
#if defined(SSE2_ENABLED)
|
#if defined(SSE_AVX_INTRINSICS_ENABLED)
|
||||||
if (!IsProcessorFeaturePresent(PF_XMMI64_INSTRUCTIONS_AVAILABLE))
|
if (!IsProcessorFeaturePresent(PF_XMMI64_INSTRUCTIONS_AVAILABLE))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
|||||||
@@ -56,6 +56,7 @@ set(${MODULE_PREFIX}_GATEWAY_SRCS
|
|||||||
)
|
)
|
||||||
|
|
||||||
set(${MODULE_PREFIX}_SRCS
|
set(${MODULE_PREFIX}_SRCS
|
||||||
|
simd.h
|
||||||
state.h
|
state.h
|
||||||
state.c
|
state.c
|
||||||
utils.c
|
utils.c
|
||||||
|
|||||||
39
libfreerdp/core/simd.h
Normal file
39
libfreerdp/core/simd.h
Normal file
@@ -0,0 +1,39 @@
|
|||||||
|
/**
|
||||||
|
* FreeRDP: A Remote Desktop Protocol Implementation
|
||||||
|
* SIMD support detection header
|
||||||
|
*
|
||||||
|
* Copyright 2024 Armin Novak <anovak@thincast.com>
|
||||||
|
* Copyright 2024 Thincast Technologies GmbH
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include <freerdp/config.h>
|
||||||
|
|
||||||
|
/* https://sourceforge.net/p/predef/wiki/Architectures/
|
||||||
|
*
|
||||||
|
* contains a list of defined symbols for each compiler
|
||||||
|
*/
|
||||||
|
#if defined(WITH_SIMD)
|
||||||
|
#if defined(_M_IX86) || defined(_M_AMD64) || defined(_M_IA64) || defined(_M_IX86_AMD64) || \
|
||||||
|
defined(__amd64__) || defined(__amd64) || defined(__x86_64__) || defined(__x86_64) || \
|
||||||
|
defined(__i686__) || defined(__ia64__)
|
||||||
|
#define SSE_AVX_INTRINSICS_ENABLED
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(_M_ARM64) || defined(_M_ARM) || defined(__arm) || defined(__aarch64__)
|
||||||
|
#define NEON_INTRINSICS_ENABLED
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
@@ -79,43 +79,14 @@ add_library(freerdp-primitives OBJECT ${PRIMITIVES_SRCS})
|
|||||||
|
|
||||||
include(CompilerDetect)
|
include(CompilerDetect)
|
||||||
include(DetectIntrinsicSupport)
|
include(DetectIntrinsicSupport)
|
||||||
if(WITH_SSE2)
|
if(WITH_SIMD)
|
||||||
if(HAVE_SSE_OR_AVX)
|
set_simd_source_file_properties("sse2" ${PRIMITIVES_SSE2_SRCS})
|
||||||
if(CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_CLANG)
|
set_simd_source_file_properties("sse3" ${PRIMITIVES_SSE3_SRCS})
|
||||||
if(PRIMITIVES_SSE2_SRCS)
|
set_simd_source_file_properties("ssse3" ${PRIMITIVES_SSSE3_SRCS})
|
||||||
set_source_files_properties(${PRIMITIVES_SSE2_SRCS} PROPERTIES COMPILE_FLAGS "-msse2")
|
set_simd_source_file_properties("sse4.1" ${PRIMITIVES_SSE4_1_SRCS})
|
||||||
endif()
|
set_simd_source_file_properties("sse4.2" ${PRIMITIVES_SSE4_2_SRCS})
|
||||||
if(PRIMITIVES_SSE3_SRCS)
|
set_simd_source_file_properties("avx2" ${PRIMITIVES_AVX2_SRCS})
|
||||||
set_source_files_properties(${PRIMITIVES_SSE3_SRCS} PROPERTIES COMPILE_FLAGS "-msse3")
|
set_simd_source_file_properties("neon" ${PRIMITIVES_OPT_SRCS})
|
||||||
endif()
|
|
||||||
if(PRIMITIVES_SSSE3_SRCS)
|
|
||||||
set_source_files_properties(${PRIMITIVES_SSSE3_SRCS} PROPERTIES COMPILE_FLAGS "-mssse3")
|
|
||||||
endif()
|
|
||||||
if(PRIMITIVES_SSE4_1_SRCS)
|
|
||||||
set_source_files_properties(${PRIMITIVES_SSE4_1_SRCS} PROPERTIES COMPILE_FLAGS "-msse4.1")
|
|
||||||
endif()
|
|
||||||
if(PRIMITIVES_SSE4_2_SRCS)
|
|
||||||
set_source_files_properties(${PRIMITIVES_SSE4_2_SRCS} PROPERTIES COMPILE_FLAGS "-msse4.2")
|
|
||||||
endif()
|
|
||||||
if(PRIMITIVES_AVX2_SRCS AND WITH_AVX2)
|
|
||||||
set_source_files_properties(${PRIMITIVES_AVX2_SRCS} PROPERTIES COMPILE_FLAGS "-mavx2")
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(MSVC)
|
|
||||||
set_source_files_properties(${PRIMITIVES_OPT_SRCS} PROPERTIES COMPILE_FLAGS "/arch:SSE2")
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
elseif(WITH_NEON)
|
|
||||||
# aarch64 requires NEON by default, no flag required
|
|
||||||
if(HAVE_NEON AND NOT HAVE_NEON64)
|
|
||||||
if(CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_CLANG)
|
|
||||||
if(NOT MSVC_ARM64 AND NOT ARCH_ARM64)
|
|
||||||
set_source_files_properties(${PRIMITIVES_OPT_SRCS} PROPERTIES COMPILE_FLAGS "-mfpu=neon")
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
# TODO: Add MSVC equivalent
|
|
||||||
endif()
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
freerdp_object_library_add(freerdp-primitives)
|
freerdp_object_library_add(freerdp-primitives)
|
||||||
|
|||||||
@@ -27,7 +27,7 @@
|
|||||||
#include "prim_templates.h"
|
#include "prim_templates.h"
|
||||||
#include "prim_YCoCg.h"
|
#include "prim_YCoCg.h"
|
||||||
|
|
||||||
#if defined(NEON_ENABLED)
|
#if defined(NEON_INTRINSICS_ENABLED)
|
||||||
#include <arm_neon.h>
|
#include <arm_neon.h>
|
||||||
|
|
||||||
static primitives_t* generic = NULL;
|
static primitives_t* generic = NULL;
|
||||||
@@ -157,7 +157,7 @@ static pstatus_t neon_YCoCgToRGB_8u_AC4R(const BYTE* WINPR_RESTRICT pSrc, INT32
|
|||||||
/* ------------------------------------------------------------------------- */
|
/* ------------------------------------------------------------------------- */
|
||||||
void primitives_init_YCoCg_neon(primitives_t* WINPR_RESTRICT prims)
|
void primitives_init_YCoCg_neon(primitives_t* WINPR_RESTRICT prims)
|
||||||
{
|
{
|
||||||
#if defined(NEON_ENABLED)
|
#if defined(NEON_INTRINSICS_ENABLED)
|
||||||
generic = primitives_get_generic();
|
generic = primitives_get_generic();
|
||||||
primitives_init_YCoCg(prims);
|
primitives_init_YCoCg(prims);
|
||||||
|
|
||||||
@@ -167,7 +167,7 @@ void primitives_init_YCoCg_neon(primitives_t* WINPR_RESTRICT prims)
|
|||||||
prims->YCoCgToRGB_8u_AC4R = neon_YCoCgToRGB_8u_AC4R;
|
prims->YCoCgToRGB_8u_AC4R = neon_YCoCgToRGB_8u_AC4R;
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
WLog_VRB(PRIM_TAG, "undefined WITH_NEON");
|
WLog_VRB(PRIM_TAG, "undefined WITH_SIMD or neon intrinsics not available");
|
||||||
WINPR_UNUSED(prims);
|
WINPR_UNUSED(prims);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -30,7 +30,7 @@
|
|||||||
#include "prim_internal.h"
|
#include "prim_internal.h"
|
||||||
#include "prim_YUV.h"
|
#include "prim_YUV.h"
|
||||||
|
|
||||||
#if defined(NEON_ENABLED)
|
#if defined(NEON_INTRINSICS_ENABLED)
|
||||||
#include <arm_neon.h>
|
#include <arm_neon.h>
|
||||||
|
|
||||||
static primitives_t* generic = NULL;
|
static primitives_t* generic = NULL;
|
||||||
@@ -741,7 +741,7 @@ static pstatus_t neon_YUV420CombineToYUV444(avc444_frame_type type,
|
|||||||
|
|
||||||
void primitives_init_YUV_neon(primitives_t* WINPR_RESTRICT prims)
|
void primitives_init_YUV_neon(primitives_t* WINPR_RESTRICT prims)
|
||||||
{
|
{
|
||||||
#if defined(NEON_ENABLED)
|
#if defined(NEON_INTRINSICS_ENABLED)
|
||||||
generic = primitives_get_generic();
|
generic = primitives_get_generic();
|
||||||
primitives_init_YUV(prims);
|
primitives_init_YUV(prims);
|
||||||
|
|
||||||
@@ -753,7 +753,7 @@ void primitives_init_YUV_neon(primitives_t* WINPR_RESTRICT prims)
|
|||||||
prims->YUV420CombineToYUV444 = neon_YUV420CombineToYUV444;
|
prims->YUV420CombineToYUV444 = neon_YUV420CombineToYUV444;
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
WLog_VRB(PRIM_TAG, "undefined WITH_NEON");
|
WLog_VRB(PRIM_TAG, "undefined WITH_SIMD or neon intrinsics not available");
|
||||||
WINPR_UNUSED(prims);
|
WINPR_UNUSED(prims);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -28,7 +28,7 @@
|
|||||||
#include "prim_colors.h"
|
#include "prim_colors.h"
|
||||||
|
|
||||||
/*---------------------------------------------------------------------------*/
|
/*---------------------------------------------------------------------------*/
|
||||||
#if defined(NEON_ENABLED)
|
#if defined(NEON_INTRINSICS_ENABLED)
|
||||||
#include <arm_neon.h>
|
#include <arm_neon.h>
|
||||||
|
|
||||||
static primitives_t* generic = NULL;
|
static primitives_t* generic = NULL;
|
||||||
@@ -341,12 +341,12 @@ neon_RGBToRGB_16s8u_P3AC4R(const INT16* WINPR_RESTRICT pSrc[3], /* 16-bit R,G, a
|
|||||||
return generic->RGBToRGB_16s8u_P3AC4R(pSrc, srcStep, pDst, dstStep, DstFormat, roi);
|
return generic->RGBToRGB_16s8u_P3AC4R(pSrc, srcStep, pDst, dstStep, DstFormat, roi);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif /* NEON_ENABLED */
|
#endif /* NEON_INTRINSICS_ENABLED */
|
||||||
|
|
||||||
/* ------------------------------------------------------------------------- */
|
/* ------------------------------------------------------------------------- */
|
||||||
void primitives_init_colors_neon(primitives_t* prims)
|
void primitives_init_colors_neon(primitives_t* prims)
|
||||||
{
|
{
|
||||||
#if defined(NEON_ENABLED)
|
#if defined(NEON_INTRINSICS_ENABLED)
|
||||||
generic = primitives_get_generic();
|
generic = primitives_get_generic();
|
||||||
primitives_init_colors(prims);
|
primitives_init_colors(prims);
|
||||||
|
|
||||||
@@ -358,7 +358,7 @@ void primitives_init_colors_neon(primitives_t* prims)
|
|||||||
prims->yCbCrToRGB_16s16s_P3P3 = neon_yCbCrToRGB_16s16s_P3P3;
|
prims->yCbCrToRGB_16s16s_P3P3 = neon_yCbCrToRGB_16s16s_P3P3;
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
WLog_VRB(PRIM_TAG, "undefined WITH_NEON");
|
WLog_VRB(PRIM_TAG, "undefined WITH_SIMD or neon intrinsics not available");
|
||||||
WINPR_UNUSED(prims);
|
WINPR_UNUSED(prims);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -24,6 +24,9 @@
|
|||||||
#include <freerdp/api.h>
|
#include <freerdp/api.h>
|
||||||
|
|
||||||
#include <freerdp/log.h>
|
#include <freerdp/log.h>
|
||||||
|
|
||||||
|
#include "../core/simd.h"
|
||||||
|
|
||||||
#define PRIM_TAG FREERDP_TAG("primitives")
|
#define PRIM_TAG FREERDP_TAG("primitives")
|
||||||
|
|
||||||
#ifdef __GNUC__
|
#ifdef __GNUC__
|
||||||
@@ -34,27 +37,15 @@
|
|||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(WITH_SSE2)
|
#if defined(SSE_AVX_INTRINSICS_ENABLED) || defined(NEON_INTRINSICS_ENABLED) || defined(WITH_OPENCL)
|
||||||
#if defined(_M_IX86) || defined(_M_AMD64) || defined(_M_IA64) || defined(_M_IX86_AMD64)
|
|
||||||
#define SSE2_ENABLED
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(WITH_NEON)
|
|
||||||
#if defined(_M_ARM64) || defined(_M_ARM)
|
|
||||||
#define NEON_ENABLED
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(SSE2_ENABLED) || defined(NEON_ENABLED) || defined(WITH_OPENCL)
|
|
||||||
#define HAVE_OPTIMIZED_PRIMITIVES 1
|
#define HAVE_OPTIMIZED_PRIMITIVES 1
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(SSE2_ENABLED) || defined(NEON_ENABLED)
|
#if defined(SSE_AVX_INTRINSICS_ENABLED) || defined(NEON_INTRINSICS_ENABLED)
|
||||||
#define HAVE_CPU_OPTIMIZED_PRIMITIVES 1
|
#define HAVE_CPU_OPTIMIZED_PRIMITIVES 1
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(SSE2_ENABLED)
|
#if defined(SSE_AVX_INTRINSICS_ENABLED)
|
||||||
/* Use lddqu for unaligned; load for 16-byte aligned. */
|
/* Use lddqu for unaligned; load for 16-byte aligned. */
|
||||||
#define LOAD_SI128(_ptr_) \
|
#define LOAD_SI128(_ptr_) \
|
||||||
(((const ULONG_PTR)(_ptr_)&0x0f) ? _mm_lddqu_si128((const __m128i*)(_ptr_)) \
|
(((const ULONG_PTR)(_ptr_)&0x0f) ? _mm_lddqu_si128((const __m128i*)(_ptr_)) \
|
||||||
|
|||||||
@@ -28,7 +28,7 @@
|
|||||||
#include "prim_internal.h"
|
#include "prim_internal.h"
|
||||||
#include "prim_templates.h"
|
#include "prim_templates.h"
|
||||||
|
|
||||||
#if defined(SSE2_ENABLED)
|
#if defined(SSE_AVX_INTRINSICS_ENABLED)
|
||||||
#include <emmintrin.h>
|
#include <emmintrin.h>
|
||||||
#include <tmmintrin.h>
|
#include <tmmintrin.h>
|
||||||
|
|
||||||
@@ -439,7 +439,7 @@ static pstatus_t ssse3_YCoCgRToRGB_8u_AC4R(const BYTE* WINPR_RESTRICT pSrc, INT3
|
|||||||
/* ------------------------------------------------------------------------- */
|
/* ------------------------------------------------------------------------- */
|
||||||
void primitives_init_YCoCg_ssse3(primitives_t* WINPR_RESTRICT prims)
|
void primitives_init_YCoCg_ssse3(primitives_t* WINPR_RESTRICT prims)
|
||||||
{
|
{
|
||||||
#if defined(SSE2_ENABLED)
|
#if defined(SSE_AVX_INTRINSICS_ENABLED)
|
||||||
generic = primitives_get_generic();
|
generic = primitives_get_generic();
|
||||||
primitives_init_YCoCg(prims);
|
primitives_init_YCoCg(prims);
|
||||||
|
|
||||||
@@ -450,7 +450,7 @@ void primitives_init_YCoCg_ssse3(primitives_t* WINPR_RESTRICT prims)
|
|||||||
prims->YCoCgToRGB_8u_AC4R = ssse3_YCoCgRToRGB_8u_AC4R;
|
prims->YCoCgToRGB_8u_AC4R = ssse3_YCoCgRToRGB_8u_AC4R;
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
WLog_VRB(PRIM_TAG, "undefined WITH_SSE2");
|
WLog_VRB(PRIM_TAG, "undefined WITH_SIMD or SSE2 intrinsics not available");
|
||||||
WINPR_UNUSED(prims);
|
WINPR_UNUSED(prims);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -31,7 +31,7 @@
|
|||||||
#include "prim_internal.h"
|
#include "prim_internal.h"
|
||||||
#include "prim_YUV.h"
|
#include "prim_YUV.h"
|
||||||
|
|
||||||
#if defined(SSE2_ENABLED)
|
#if defined(SSE_AVX_INTRINSICS_ENABLED)
|
||||||
#include <emmintrin.h>
|
#include <emmintrin.h>
|
||||||
#include <tmmintrin.h>
|
#include <tmmintrin.h>
|
||||||
|
|
||||||
@@ -1496,7 +1496,7 @@ static pstatus_t ssse3_YUV420CombineToYUV444(avc444_frame_type type,
|
|||||||
|
|
||||||
void primitives_init_YUV_ssse3(primitives_t* WINPR_RESTRICT prims)
|
void primitives_init_YUV_ssse3(primitives_t* WINPR_RESTRICT prims)
|
||||||
{
|
{
|
||||||
#if defined(SSE2_ENABLED)
|
#if defined(SSE_AVX_INTRINSICS_ENABLED)
|
||||||
generic = primitives_get_generic();
|
generic = primitives_get_generic();
|
||||||
primitives_init_YUV(prims);
|
primitives_init_YUV(prims);
|
||||||
|
|
||||||
@@ -1512,7 +1512,7 @@ void primitives_init_YUV_ssse3(primitives_t* WINPR_RESTRICT prims)
|
|||||||
prims->YUV420CombineToYUV444 = ssse3_YUV420CombineToYUV444;
|
prims->YUV420CombineToYUV444 = ssse3_YUV420CombineToYUV444;
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
WLog_VRB(PRIM_TAG, "undefined WITH_SSE2");
|
WLog_VRB(PRIM_TAG, "undefined WITH_SIMD or SSSE3 intrinsics not available");
|
||||||
WINPR_UNUSED(prims);
|
WINPR_UNUSED(prims);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -25,7 +25,7 @@
|
|||||||
#include "prim_internal.h"
|
#include "prim_internal.h"
|
||||||
#include "prim_templates.h"
|
#include "prim_templates.h"
|
||||||
|
|
||||||
#if defined(SSE2_ENABLED)
|
#if defined(SSE_AVX_INTRINSICS_ENABLED)
|
||||||
#include <emmintrin.h>
|
#include <emmintrin.h>
|
||||||
#include <pmmintrin.h>
|
#include <pmmintrin.h>
|
||||||
|
|
||||||
@@ -173,7 +173,7 @@ static pstatus_t sse3_add_16s_inplace(INT16* WINPR_RESTRICT pSrcDst1,
|
|||||||
/* ------------------------------------------------------------------------- */
|
/* ------------------------------------------------------------------------- */
|
||||||
void primitives_init_add_sse3(primitives_t* WINPR_RESTRICT prims)
|
void primitives_init_add_sse3(primitives_t* WINPR_RESTRICT prims)
|
||||||
{
|
{
|
||||||
#if defined(SSE2_ENABLED)
|
#if defined(SSE_AVX_INTRINSICS_ENABLED)
|
||||||
generic = primitives_get_generic();
|
generic = primitives_get_generic();
|
||||||
primitives_init_add(prims);
|
primitives_init_add(prims);
|
||||||
|
|
||||||
@@ -186,7 +186,7 @@ void primitives_init_add_sse3(primitives_t* WINPR_RESTRICT prims)
|
|||||||
}
|
}
|
||||||
|
|
||||||
#else
|
#else
|
||||||
WLog_VRB(PRIM_TAG, "undefined WITH_SSE2");
|
WLog_VRB(PRIM_TAG, "undefined WITH_SIMD or SSE3 intrinsics not available");
|
||||||
WINPR_UNUSED(prims);
|
WINPR_UNUSED(prims);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -31,7 +31,7 @@
|
|||||||
#include "prim_internal.h"
|
#include "prim_internal.h"
|
||||||
|
|
||||||
/* ------------------------------------------------------------------------- */
|
/* ------------------------------------------------------------------------- */
|
||||||
#if defined(SSE2_ENABLED)
|
#if defined(SSE_AVX_INTRINSICS_ENABLED)
|
||||||
#include <emmintrin.h>
|
#include <emmintrin.h>
|
||||||
#include <pmmintrin.h>
|
#include <pmmintrin.h>
|
||||||
|
|
||||||
@@ -209,7 +209,7 @@ static pstatus_t sse2_alphaComp_argb(const BYTE* WINPR_RESTRICT pSrc1, UINT32 sr
|
|||||||
/* ------------------------------------------------------------------------- */
|
/* ------------------------------------------------------------------------- */
|
||||||
void primitives_init_alphaComp_sse3(primitives_t* WINPR_RESTRICT prims)
|
void primitives_init_alphaComp_sse3(primitives_t* WINPR_RESTRICT prims)
|
||||||
{
|
{
|
||||||
#if defined(SSE2_ENABLED)
|
#if defined(SSE_AVX_INTRINSICS_ENABLED)
|
||||||
generic = primitives_get_generic();
|
generic = primitives_get_generic();
|
||||||
primitives_init_alphaComp(prims);
|
primitives_init_alphaComp(prims);
|
||||||
|
|
||||||
@@ -221,7 +221,7 @@ void primitives_init_alphaComp_sse3(primitives_t* WINPR_RESTRICT prims)
|
|||||||
}
|
}
|
||||||
|
|
||||||
#else
|
#else
|
||||||
WLog_VRB(PRIM_TAG, "undefined WITH_SSE2");
|
WLog_VRB(PRIM_TAG, "undefined WITH_SIMD or SSE3 intrinsics not available");
|
||||||
WINPR_UNUSED(prims);
|
WINPR_UNUSED(prims);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -24,7 +24,7 @@
|
|||||||
#include "prim_internal.h"
|
#include "prim_internal.h"
|
||||||
#include "prim_templates.h"
|
#include "prim_templates.h"
|
||||||
|
|
||||||
#if defined(SSE2_ENABLED)
|
#if defined(SSE_AVX_INTRINSICS_ENABLED)
|
||||||
#include <emmintrin.h>
|
#include <emmintrin.h>
|
||||||
#include <pmmintrin.h>
|
#include <pmmintrin.h>
|
||||||
|
|
||||||
@@ -40,7 +40,7 @@ SSE3_SCD_PRE_ROUTINE(sse3_orC_32u, UINT32, generic->orC_32u, _mm_or_si128, *dptr
|
|||||||
/* ------------------------------------------------------------------------- */
|
/* ------------------------------------------------------------------------- */
|
||||||
void primitives_init_andor_sse3(primitives_t* WINPR_RESTRICT prims)
|
void primitives_init_andor_sse3(primitives_t* WINPR_RESTRICT prims)
|
||||||
{
|
{
|
||||||
#if defined(SSE2_ENABLED)
|
#if defined(SSE_AVX_INTRINSICS_ENABLED)
|
||||||
generic = primitives_get_generic();
|
generic = primitives_get_generic();
|
||||||
primitives_init_andor(prims);
|
primitives_init_andor(prims);
|
||||||
|
|
||||||
@@ -53,7 +53,7 @@ void primitives_init_andor_sse3(primitives_t* WINPR_RESTRICT prims)
|
|||||||
}
|
}
|
||||||
|
|
||||||
#else
|
#else
|
||||||
WLog_VRB(PRIM_TAG, "undefined WITH_SSE2");
|
WLog_VRB(PRIM_TAG, "undefined WITH_SIMD or SSE3 intrinsics not available");
|
||||||
WINPR_UNUSED(prims);
|
WINPR_UNUSED(prims);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -28,7 +28,7 @@
|
|||||||
#include "prim_internal.h"
|
#include "prim_internal.h"
|
||||||
#include "prim_templates.h"
|
#include "prim_templates.h"
|
||||||
|
|
||||||
#if defined(SSE2_ENABLED)
|
#if defined(SSE_AVX_INTRINSICS_ENABLED)
|
||||||
#include <emmintrin.h>
|
#include <emmintrin.h>
|
||||||
|
|
||||||
static primitives_t* generic = NULL;
|
static primitives_t* generic = NULL;
|
||||||
@@ -1245,7 +1245,7 @@ sse2_RGBToRGB_16s8u_P3AC4R(const INT16* WINPR_RESTRICT pSrc[3], /* 16-bit R,G, a
|
|||||||
|
|
||||||
void primitives_init_colors_sse2(primitives_t* prims)
|
void primitives_init_colors_sse2(primitives_t* prims)
|
||||||
{
|
{
|
||||||
#if defined(SSE2_ENABLED)
|
#if defined(SSE_AVX_INTRINSICS_ENABLED)
|
||||||
generic = primitives_get_generic();
|
generic = primitives_get_generic();
|
||||||
primitives_init_colors(prims);
|
primitives_init_colors(prims);
|
||||||
|
|
||||||
@@ -1259,7 +1259,7 @@ void primitives_init_colors_sse2(primitives_t* prims)
|
|||||||
}
|
}
|
||||||
|
|
||||||
#else
|
#else
|
||||||
WLog_VRB(PRIM_TAG, "undefined WITH_SSE2");
|
WLog_VRB(PRIM_TAG, "undefined WITH_SIMD or SSE2 intrinsics not available");
|
||||||
WINPR_UNUSED(prims);
|
WINPR_UNUSED(prims);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -28,7 +28,7 @@
|
|||||||
|
|
||||||
#include <freerdp/codec/color.h>
|
#include <freerdp/codec/color.h>
|
||||||
|
|
||||||
#if defined(SSE2_ENABLED)
|
#if defined(SSE_AVX_INTRINSICS_ENABLED)
|
||||||
#define TAG FREERDP_TAG("primitives.copy")
|
#define TAG FREERDP_TAG("primitives.copy")
|
||||||
|
|
||||||
#include <emmintrin.h>
|
#include <emmintrin.h>
|
||||||
@@ -274,14 +274,14 @@ static pstatus_t avx2_image_copy_no_overlap(BYTE* WINPR_RESTRICT pDstData, DWORD
|
|||||||
/* ------------------------------------------------------------------------- */
|
/* ------------------------------------------------------------------------- */
|
||||||
void primitives_init_copy_avx2(primitives_t* prims)
|
void primitives_init_copy_avx2(primitives_t* prims)
|
||||||
{
|
{
|
||||||
#if defined(SSE2_ENABLED)
|
#if defined(SSE_AVX_INTRINSICS_ENABLED)
|
||||||
if (IsProcessorFeaturePresent(PF_AVX2_INSTRUCTIONS_AVAILABLE))
|
if (IsProcessorFeaturePresent(PF_AVX2_INSTRUCTIONS_AVAILABLE))
|
||||||
{
|
{
|
||||||
WLog_VRB(PRIM_TAG, "AVX2 optimizations");
|
WLog_VRB(PRIM_TAG, "AVX2 optimizations");
|
||||||
prims->copy_no_overlap = avx2_image_copy_no_overlap;
|
prims->copy_no_overlap = avx2_image_copy_no_overlap;
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
WLog_VRB(PRIM_TAG, "undefined WITH_SSE2");
|
WLog_VRB(PRIM_TAG, "undefined WITH_SIMD or WITH_AVX2 or AVX2 intrinsics not available");
|
||||||
WINPR_UNUSED(prims);
|
WINPR_UNUSED(prims);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -28,7 +28,7 @@
|
|||||||
|
|
||||||
#include <freerdp/codec/color.h>
|
#include <freerdp/codec/color.h>
|
||||||
|
|
||||||
#if defined(SSE2_ENABLED)
|
#if defined(SSE_AVX_INTRINSICS_ENABLED)
|
||||||
#define TAG FREERDP_TAG("primitives.copy")
|
#define TAG FREERDP_TAG("primitives.copy")
|
||||||
|
|
||||||
#include <emmintrin.h>
|
#include <emmintrin.h>
|
||||||
@@ -258,14 +258,14 @@ static pstatus_t sse_image_copy_no_overlap(BYTE* WINPR_RESTRICT pDstData, DWORD
|
|||||||
/* ------------------------------------------------------------------------- */
|
/* ------------------------------------------------------------------------- */
|
||||||
void primitives_init_copy_sse41(primitives_t* prims)
|
void primitives_init_copy_sse41(primitives_t* prims)
|
||||||
{
|
{
|
||||||
#if defined(SSE2_ENABLED)
|
#if defined(SSE_AVX_INTRINSICS_ENABLED)
|
||||||
if (IsProcessorFeaturePresent(PF_SSE4_1_INSTRUCTIONS_AVAILABLE))
|
if (IsProcessorFeaturePresent(PF_SSE4_1_INSTRUCTIONS_AVAILABLE))
|
||||||
{
|
{
|
||||||
WLog_VRB(PRIM_TAG, "SSE4.1 optimizations");
|
WLog_VRB(PRIM_TAG, "SSE4.1 optimizations");
|
||||||
prims->copy_no_overlap = sse_image_copy_no_overlap;
|
prims->copy_no_overlap = sse_image_copy_no_overlap;
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
WLog_VRB(PRIM_TAG, "undefined WITH_SSE2");
|
WLog_VRB(PRIM_TAG, "undefined WITH_SIMD or SSE4.1 intrinsics not available");
|
||||||
WINPR_UNUSED(prims);
|
WINPR_UNUSED(prims);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -25,7 +25,7 @@
|
|||||||
#include "prim_set.h"
|
#include "prim_set.h"
|
||||||
|
|
||||||
/* ========================================================================= */
|
/* ========================================================================= */
|
||||||
#if defined(SSE2_ENABLED)
|
#if defined(SSE_AVX_INTRINSICS_ENABLED)
|
||||||
#include <emmintrin.h>
|
#include <emmintrin.h>
|
||||||
|
|
||||||
static primitives_t* generic = NULL;
|
static primitives_t* generic = NULL;
|
||||||
@@ -215,7 +215,7 @@ static pstatus_t sse2_set_32s(INT32 val, INT32* WINPR_RESTRICT pDst, UINT32 len)
|
|||||||
/* ------------------------------------------------------------------------- */
|
/* ------------------------------------------------------------------------- */
|
||||||
void primitives_init_set_sse2(primitives_t* WINPR_RESTRICT prims)
|
void primitives_init_set_sse2(primitives_t* WINPR_RESTRICT prims)
|
||||||
{
|
{
|
||||||
#if defined(SSE2_ENABLED)
|
#if defined(SSE_AVX_INTRINSICS_ENABLED)
|
||||||
generic = primitives_get_generic();
|
generic = primitives_get_generic();
|
||||||
primitives_init_set(prims);
|
primitives_init_set(prims);
|
||||||
/* Pick tuned versions if possible. */
|
/* Pick tuned versions if possible. */
|
||||||
@@ -229,7 +229,7 @@ void primitives_init_set_sse2(primitives_t* WINPR_RESTRICT prims)
|
|||||||
}
|
}
|
||||||
|
|
||||||
#else
|
#else
|
||||||
WLog_VRB(PRIM_TAG, "undefined WITH_SSE2");
|
WLog_VRB(PRIM_TAG, "undefined WITH_SIMD or SSE2 intrinsics not available");
|
||||||
WINPR_UNUSED(prims);
|
WINPR_UNUSED(prims);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -24,7 +24,7 @@
|
|||||||
#include "prim_internal.h"
|
#include "prim_internal.h"
|
||||||
#include "prim_templates.h"
|
#include "prim_templates.h"
|
||||||
|
|
||||||
#if defined(SSE2_ENABLED)
|
#if defined(SSE_AVX_INTRINSICS_ENABLED)
|
||||||
#include <emmintrin.h>
|
#include <emmintrin.h>
|
||||||
#include <pmmintrin.h>
|
#include <pmmintrin.h>
|
||||||
|
|
||||||
@@ -142,7 +142,7 @@ static pstatus_t sse2_lShiftC_16s_inplace(INT16* WINPR_RESTRICT pSrcDst, UINT32
|
|||||||
/* ------------------------------------------------------------------------- */
|
/* ------------------------------------------------------------------------- */
|
||||||
void primitives_init_shift_sse3(primitives_t* WINPR_RESTRICT prims)
|
void primitives_init_shift_sse3(primitives_t* WINPR_RESTRICT prims)
|
||||||
{
|
{
|
||||||
#if defined(SSE2_ENABLED)
|
#if defined(SSE_AVX_INTRINSICS_ENABLED)
|
||||||
generic = primitives_get_generic();
|
generic = primitives_get_generic();
|
||||||
primitives_init_shift(prims);
|
primitives_init_shift(prims);
|
||||||
|
|
||||||
@@ -158,7 +158,7 @@ void primitives_init_shift_sse3(primitives_t* WINPR_RESTRICT prims)
|
|||||||
}
|
}
|
||||||
|
|
||||||
#else
|
#else
|
||||||
WLog_VRB(PRIM_TAG, "undefined WITH_SSE2");
|
WLog_VRB(PRIM_TAG, "undefined WITH_SIMD or SSE3 intrinsics not available");
|
||||||
WINPR_UNUSED(prims);
|
WINPR_UNUSED(prims);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -23,7 +23,7 @@
|
|||||||
|
|
||||||
#include "prim_internal.h"
|
#include "prim_internal.h"
|
||||||
|
|
||||||
#if defined(SSE2_ENABLED)
|
#if defined(SSE_AVX_INTRINSICS_ENABLED)
|
||||||
#include <emmintrin.h>
|
#include <emmintrin.h>
|
||||||
#include <tmmintrin.h>
|
#include <tmmintrin.h>
|
||||||
|
|
||||||
@@ -165,12 +165,12 @@ static pstatus_t ssse3_sign_16s(const INT16* WINPR_RESTRICT pSrc, INT16* WINPR_R
|
|||||||
return PRIMITIVES_SUCCESS;
|
return PRIMITIVES_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif /* SSE2_ENABLED */
|
#endif /* SSE_AVX_INTRINSICS_ENABLED */
|
||||||
|
|
||||||
/* ------------------------------------------------------------------------- */
|
/* ------------------------------------------------------------------------- */
|
||||||
void primitives_init_sign_ssse3(primitives_t* WINPR_RESTRICT prims)
|
void primitives_init_sign_ssse3(primitives_t* WINPR_RESTRICT prims)
|
||||||
{
|
{
|
||||||
#if defined(SSE2_ENABLED)
|
#if defined(SSE_AVX_INTRINSICS_ENABLED)
|
||||||
generic = primitives_get_generic();
|
generic = primitives_get_generic();
|
||||||
primitives_init_sign(prims);
|
primitives_init_sign(prims);
|
||||||
/* Pick tuned versions if possible. */
|
/* Pick tuned versions if possible. */
|
||||||
@@ -184,7 +184,7 @@ void primitives_init_sign_ssse3(primitives_t* WINPR_RESTRICT prims)
|
|||||||
}
|
}
|
||||||
|
|
||||||
#else
|
#else
|
||||||
WLog_VRB(PRIM_TAG, "undefined WITH_SSE2");
|
WLog_VRB(PRIM_TAG, "undefined WITH_SIMD or SSSE3/SSE3 intrinsics not available");
|
||||||
WINPR_UNUSED(prims);
|
WINPR_UNUSED(prims);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -269,8 +269,7 @@ cd $BUILD
|
|||||||
cmake -GNinja -Bfreerdp -S"$SCRIPT_PATH/.." \
|
cmake -GNinja -Bfreerdp -S"$SCRIPT_PATH/.." \
|
||||||
$CMAKE_ARGS \
|
$CMAKE_ARGS \
|
||||||
-DWITH_PLATFORM_SERVER=OFF \
|
-DWITH_PLATFORM_SERVER=OFF \
|
||||||
-DWITH_NEON=ON \
|
-DWITH_SIMD=ON \
|
||||||
-DWITH_SSE=ON \
|
|
||||||
-DWITH_FFMPEG=OFF \
|
-DWITH_FFMPEG=OFF \
|
||||||
-DWITH_SWSCALE=ON \
|
-DWITH_SWSCALE=ON \
|
||||||
-DWITH_OPUS=ON \
|
-DWITH_OPUS=ON \
|
||||||
|
|||||||
Reference in New Issue
Block a user