mirror of
https://github.com/kasmtech/KasmVNC.git
synced 2025-03-01 08:41:10 +01:00
Merge pull request #77 from jasonrandrews/master
use sse2neon for aarch64 performance improvements
This commit is contained in:
commit
4af59dbdf7
@ -210,7 +210,13 @@ endif()
|
||||
set(HAVE_PAM ${ENABLE_PAM})
|
||||
|
||||
# Check for SSE2
|
||||
check_cxx_compiler_flag(-msse2 COMPILER_SUPPORTS_SSE2)
|
||||
# Arm is not SSE2 but say it is and use sse2neon.h to convert to neon
|
||||
check_cxx_compiler_flag("-march=armv8-a" COMPILER_ARM)
|
||||
if(COMPILER_ARM)
|
||||
set(COMPILER_SUPPORTS_SSE2 1)
|
||||
else()
|
||||
check_cxx_compiler_flag(-msse2 COMPILER_SUPPORTS_SSE2)
|
||||
endif()
|
||||
|
||||
# Generate config.h and make sure the source finds it
|
||||
configure_file(config.h.in config.h)
|
||||
|
@ -135,6 +135,7 @@ These instructions assume KasmVNC has been cloned at $HOME and ```kasm_www.tar.g
|
||||
cd ~
|
||||
tar -zxf kasm_www.tar.gz -C KasmVNC/builder/
|
||||
cd KasmVNC
|
||||
sed -i 's/^build_www_dir$/#build_www_dir/' builder/build-tarball
|
||||
sudo builder/build-package ubuntu bionic
|
||||
```
|
||||
The resulting deb package can be found under ~/KasmVNC/builder/build/bionic
|
||||
|
@ -107,7 +107,12 @@ set(SCALE_DUMMY_SOURCES
|
||||
scale_dummy.cxx)
|
||||
|
||||
if(COMPILER_SUPPORTS_SSE2)
|
||||
set_source_files_properties(${SSE2_SOURCES} PROPERTIES COMPILE_FLAGS ${COMPILE_FLAGS} -msse2)
|
||||
if(COMPILER_ARM)
|
||||
# This is for Graviton2, adjust for other CPUs: -march=armv8-a+crc+crypto
|
||||
set_source_files_properties(${SSE2_SOURCES} PROPERTIES COMPILE_FLAGS ${COMPILE_FLAGS} -march=armv8.2-a+fp16+rcpc+dotprod+crypto)
|
||||
else()
|
||||
set_source_files_properties(${SSE2_SOURCES} PROPERTIES COMPILE_FLAGS ${COMPILE_FLAGS} -msse2)
|
||||
endif()
|
||||
set(RFB_SOURCES
|
||||
${RFB_SOURCES}
|
||||
${SSE2_SOURCES}
|
||||
|
@ -51,7 +51,9 @@ namespace rfb {
|
||||
|
||||
bool supportsSSE2() {
|
||||
getcpuid();
|
||||
#if defined(__x86_64__) || defined(__i386__)
|
||||
#if defined(__aarch64__)
|
||||
return true;
|
||||
#elif defined(__x86_64__) || defined(__i386__)
|
||||
#define bit_SSE2 (1 << 26)
|
||||
return cpuid[3] & bit_SSE2;
|
||||
#endif
|
||||
|
@ -16,7 +16,11 @@
|
||||
* USA.
|
||||
*/
|
||||
|
||||
#ifdef __aarch64__
|
||||
#include "sse2neon.h"
|
||||
#else
|
||||
#include <emmintrin.h>
|
||||
#endif
|
||||
|
||||
#include <rfb/scale_sse2.h>
|
||||
|
||||
|
8776
common/rfb/sse2neon.h
Normal file
8776
common/rfb/sse2neon.h
Normal file
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user