Compare commits

..

2 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
11 changed files with 8813 additions and 19 deletions

View File

@@ -51,9 +51,6 @@ build_ubuntu_bionic:
- *prepare_artfacts
script:
- bash builder/build-package ubuntu bionic
only:
variables:
- $CI_COMMIT_MESSAGE =~ /\[full [Cc][Ii]\]/
artifacts:
paths:
- output/
@@ -70,9 +67,6 @@ build_ubuntu_bionic_arm:
- *prepare_artfacts
script:
- bash builder/build-package ubuntu bionic
only:
variables:
- $CI_COMMIT_MESSAGE =~ /\[full [Cc][Ii]\]/
artifacts:
paths:
- output/
@@ -86,7 +80,7 @@ build_ubuntu_bionic_libjpeg_turbo:
after_script:
- *prepare_artfacts
script:
- bash builder/build-package ubuntu focal +libjpeg-turbo_latest
- bash builder/build-package ubuntu bionic +libjpeg-turbo_latest
artifacts:
paths:
- output/
@@ -120,6 +114,9 @@ build_ubuntu_focal_arm:
- *prepare_artfacts
script:
- bash builder/build-package ubuntu focal;
only:
variables:
- $CI_COMMIT_MESSAGE =~ /\[full [Cc][Ii]\]/
artifacts:
paths:
- output/

View File

@@ -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)

View File

@@ -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

View File

@@ -1,15 +1,14 @@
FROM ubuntu:20.04
FROM ubuntu:18.04
ENV KASMVNC_BUILD_OS ubuntu
ENV KASMVNC_BUILD_OS_CODENAME focal
ENV XORG_VER 1.20.8
ENV KASMVNC_BUILD_OS_CODENAME bionic
ENV XORG_VER 1.20.10
RUN sed -i 's$# deb-src$deb-src$' /etc/apt/sources.list
RUN apt-get update && \
apt-get -y install sudo
RUN DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends tzdata
RUN apt-get update && apt-get -y build-dep xorg-server libxfont-dev
RUN apt-get update && apt-get -y install cmake git libgnutls28-dev vim wget tightvncserver
RUN apt-get update && apt-get -y install libpng-dev libtiff-dev libgif-dev libavcodec-dev libssl-dev
@@ -26,6 +25,12 @@ RUN cd /tmp/libwebp-1.0.2 && \
./configure --enable-static --disable-shared && \
make && make install
# Fix for older required libs
#RUN cd /tmp && wget http://launchpadlibrarian.net/347526424/libxfont1-dev_1.5.2-4ubuntu2_amd64.deb && \
# wget http://launchpadlibrarian.net/347526425/libxfont1_1.5.2-4ubuntu2_amd64.deb && \
# dpkg -i libxfont1_1.5.2-4ubuntu2_amd64.deb && \
# dpkg -i libxfont1-dev_1.5.2-4ubuntu2_amd64.deb
RUN useradd -m docker && echo "docker:docker" | chpasswd && adduser docker sudo
COPY --chown=docker:docker . /src

View File

@@ -1,7 +1,5 @@
FROM ubuntu:20.04
FROM ubuntu:bionic
RUN apt-get update && \
DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends tzdata
RUN apt-get update && \
apt-get -y install vim build-essential devscripts equivs

View File

@@ -1,4 +1,4 @@
FROM ubuntu:20.04
FROM ubuntu:bionic
ENV DISPLAY=:1 \
VNC_PORT=8443 \

View File

@@ -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}

View File

@@ -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

View File

@@ -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

File diff suppressed because it is too large Load Diff

Submodule kasmweb updated: 9383783efd...b5a1586c0a