Compare commits

..

4 Commits

Author SHA1 Message Date
mmcclaskey
4af59dbdf7 Merge pull request #77 from jasonrandrews/master
use sse2neon for aarch64 performance improvements
2021-11-09 11:11:38 -05:00
Ubuntu
7d85ae014a use sse2neon for aarch64 performance improvements 2021-11-09 05:06:29 +00:00
j-travis
8c2c099342 Merge pull request #76 from kasmtech/feature/KASM-2001_mobile_keyboard
KASM-2001 Update noVNC commit
2021-11-08 21:05:40 -05:00
Mariusz Marciniak
314e7e9615 KASM-2001 Update noVNC commit 2021-11-08 20:44:56 -05:00
10 changed files with 8800 additions and 13 deletions

2
.gitmodules vendored
View File

@@ -1,4 +1,4 @@
[submodule "kasmweb"] [submodule "kasmweb"]
path = kasmweb path = kasmweb
url = https://github.com/kasmtech/noVNC.git url = https://github.com/kasmtech/noVNC.git
branch = bugfix/KASM-2053_video_quality branch = master

View File

@@ -210,7 +210,13 @@ endif()
set(HAVE_PAM ${ENABLE_PAM}) set(HAVE_PAM ${ENABLE_PAM})
# Check for SSE2 # 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 # Generate config.h and make sure the source finds it
configure_file(config.h.in config.h) configure_file(config.h.in config.h)

View File

@@ -135,6 +135,7 @@ These instructions assume KasmVNC has been cloned at $HOME and ```kasm_www.tar.g
cd ~ cd ~
tar -zxf kasm_www.tar.gz -C KasmVNC/builder/ tar -zxf kasm_www.tar.gz -C KasmVNC/builder/
cd KasmVNC cd KasmVNC
sed -i 's/^build_www_dir$/#build_www_dir/' builder/build-tarball
sudo builder/build-package ubuntu bionic sudo builder/build-package ubuntu bionic
``` ```
The resulting deb package can be found under ~/KasmVNC/builder/build/bionic The resulting deb package can be found under ~/KasmVNC/builder/build/bionic

View File

@@ -107,7 +107,12 @@ set(SCALE_DUMMY_SOURCES
scale_dummy.cxx) scale_dummy.cxx)
if(COMPILER_SUPPORTS_SSE2) if(COMPILER_SUPPORTS_SSE2)
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) set_source_files_properties(${SSE2_SOURCES} PROPERTIES COMPILE_FLAGS ${COMPILE_FLAGS} -msse2)
endif()
set(RFB_SOURCES set(RFB_SOURCES
${RFB_SOURCES} ${RFB_SOURCES}
${SSE2_SOURCES} ${SSE2_SOURCES}

View File

@@ -211,7 +211,7 @@ void ConnParams::setEncodings(int nEncodings, const rdr::S32* encodings)
break; break;
case pseudoEncodingPreferBandwidth: case pseudoEncodingPreferBandwidth:
if (!rfb::Server::ignoreClientSettingsKasm && canChangeSettings) if (!rfb::Server::ignoreClientSettingsKasm && canChangeSettings)
Server::preferBandwidth.setParam(true); Server::preferBandwidth.setParam();
break; break;
case pseudoEncodingMaxVideoResolution: case pseudoEncodingMaxVideoResolution:
if (!rfb::Server::ignoreClientSettingsKasm && canChangeSettings) if (!rfb::Server::ignoreClientSettingsKasm && canChangeSettings)

View File

@@ -356,13 +356,6 @@ void EncodeManager::doUpdate(bool allowLossy, const Region& changed_,
if (conn->cp.kasmPassed[ConnParams::KASM_MAX_VIDEO_RESOLUTION]) if (conn->cp.kasmPassed[ConnParams::KASM_MAX_VIDEO_RESOLUTION])
updateMaxVideoRes(&maxVideoX, &maxVideoY); updateMaxVideoRes(&maxVideoX, &maxVideoY);
// The dynamic quality params may have changed
if (Server::dynamicQualityMax && Server::dynamicQualityMax <= 9 &&
Server::dynamicQualityMax > Server::dynamicQualityMin) {
dynamicQualityMin = Server::dynamicQualityMin;
dynamicQualityOff = Server::dynamicQualityMax - Server::dynamicQualityMin;
}
prepareEncoders(allowLossy); prepareEncoders(allowLossy);
changed = changed_; changed = changed_;

View File

@@ -51,7 +51,9 @@ namespace rfb {
bool supportsSSE2() { bool supportsSSE2() {
getcpuid(); getcpuid();
#if defined(__x86_64__) || defined(__i386__) #if defined(__aarch64__)
return true;
#elif defined(__x86_64__) || defined(__i386__)
#define bit_SSE2 (1 << 26) #define bit_SSE2 (1 << 26)
return cpuid[3] & bit_SSE2; return cpuid[3] & bit_SSE2;
#endif #endif

View File

@@ -16,7 +16,11 @@
* USA. * USA.
*/ */
#ifdef __aarch64__
#include "sse2neon.h"
#else
#include <emmintrin.h> #include <emmintrin.h>
#endif
#include <rfb/scale_sse2.h> #include <rfb/scale_sse2.h>

8776
common/rfb/sse2neon.h Normal file

File diff suppressed because it is too large Load Diff

Submodule kasmweb updated: 1adce75ee1...b5a1586c0a