fraunhoferhhi / vvdec

VVdeC, the Fraunhofer Versatile Video Decoder
https://www.hhi.fraunhofer.de/en/departments/vca/technologies-and-solutions/h266-vvc.html
BSD 3-Clause Clear License
453 stars 91 forks source link

Weird decoding artefacts in all SIMD decoding modes #63

Closed 1div0 closed 3 years ago

1div0 commented 3 years ago

Only scalar variant of the decoder is correct. All SIMD optimized modes are exhibiting uninitialized patterns.

peter.kovar@Pascal /1TB/usr/src/github.com/1div0/vvdec/Linux/x86-64/Core i7
€ vvdecapp --simd 0 --bitstream /home/peter.kovar/Video/VVC/Kimono1_1920x1080_24.QP30.266 --output /1TB/Video/YUV/Kimono1_1920x1080_24.QP30.266.yuv
€ vvdecapp --simd 1 --bitstream /home/peter.kovar/Video/VVC/Kimono1_1920x1080_24.QP30.266 --output /1TB/Video/YUV/Kimono1_1920x1080_24.QP30.266.sse41.yuv
€ vvdecapp --simd 2 --bitstream /home/peter.kovar/Video/VVC/Kimono1_1920x1080_24.QP30.266 --output /1TB/Video/YUV/Kimono1_1920x1080_24.QP30.266.sse42.yuv
€ vvdecapp --simd 3 --bitstream /home/peter.kovar/Video/VVC/Kimono1_1920x1080_24.QP30.266 --output /1TB/Video/YUV/Kimono1_1920x1080_24.QP30.266.avx.yuv
€ vvdecapp --simd 4 --bitstream /home/peter.kovar/Video/VVC/Kimono1_1920x1080_24.QP30.266 --output /1TB/Video/YUV/Kimono1_1920x1080_24.QP30.266.avx2.yuv

Screenshot is available at: https://nextcloud.reflexion.tv/index.php/s/oPmE7PWmpp6GbYp

adamjw24 commented 3 years ago

Could you share the bitstream and/or the encoding settings you used?

Best regards, Adam

1div0 commented 3 years ago

VVenC bitstream https://nextcloud.reflexion.tv/index.php/s/bzkPYioeKPPG2iy

1div0 commented 3 years ago

`#!/bin/sh

set -x

NAME=Kimono1_1920x1080_24

NAME=1_CrowdRun_2160p50_CgrLevels_MASTERSVTdec05

QP=30

INPUT=/1TB/Video/YUV/$NAME.yuv OUTPUT=~/Video/VVC/$NAME.QP$QP.266 LOG=$OUTPUT.log

ENCODER=vvencapp

time nice $ENCODER --input $INPUT --size 1920x1080 --framerate 24 --internal-bitdepth 8 --qp $QP --output $OUTPUT > $LOG 2>&1

time nice $ENCODER --input $INPUT --size 3840x2160 --framerate 50 --qp $QP --output $OUTPUT > $LOG 2>&1

`

1div0 commented 3 years ago

In other words this bitstream was encoded with the internal bit depth 8 and quantization parameter 30.

I will try to compare 10 bits per channel mode as well.

adamjw24 commented 3 years ago

Thanks. That's strange, for me the decoded file has the same md5sum for both SCALAR (--simd 0) and AVX2 (default).

What CPU are you on, what compiler, what OS? Maybe its some undefined behavior for a instruction that only happens on a specific architecture?

1div0 commented 3 years ago

This is the CMakeCache file.

For build in directory: /1TB/usr/src/github.com/1div0/vvdec/Linux/x86-64/Core i7

It was generated by CMake: /usr/bin/cmake

You can edit this file to change values found and used by cmake.

If you do not want to change any of the values, simply exit the editor.

If you do want to change a value, simply edit, save, and exit the editor.

The syntax for the file is as follows:

KEY:TYPE=VALUE

KEY is the name of a variable in the cache.

TYPE is a hint to GUIs for the type of VALUE, DO NOT EDIT TYPE!.

VALUE is the current value for the KEY.

########################

EXTERNAL cache entries

########################

//No help, variable specified on the command line. BUILD_SHARED_LIBS:UNINITIALIZED=1

//Path to a program. CCACHE_FOUND:FILEPATH=/usr/bin/ccache

//Path to a program. CMAKE_ADDR2LINE:FILEPATH=/usr/bin/addr2line

//Path to a program. CMAKE_AR:FILEPATH=/usr/bin/ar

//Choose the type of build, options are: None Debug Release RelWithDebInfo // MinSizeRel ... CMAKE_BUILD_TYPE:STRING=Release

//Enable/Disable color output during build. CMAKE_COLOR_MAKEFILE:BOOL=ON

//CXX compiler CMAKE_CXX_COMPILER:STRING=/usr/lib64/ccache/c++

//A wrapper around 'ar' adding the appropriate '--plugin' option // for the GCC compiler CMAKE_CXX_COMPILER_AR:FILEPATH=/usr/bin/gcc-ar

//A wrapper around 'ranlib' adding the appropriate '--plugin' option // for the GCC compiler CMAKE_CXX_COMPILER_RANLIB:FILEPATH=/usr/bin/gcc-ranlib

//Flags used by the CXX compiler during all build types. CMAKE_CXX_FLAGS:STRING=

//Flags used by the CXX compiler during DEBUG builds. CMAKE_CXX_FLAGS_DEBUG:STRING=-g

//Flags used by the CXX compiler during MINSIZEREL builds. CMAKE_CXX_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG

//Flags used by the CXX compiler during RELEASE builds. CMAKE_CXX_FLAGS_RELEASE:STRING=-O2 -DNDEBUG

//Flags used by the CXX compiler during RELWITHDEBINFO builds. CMAKE_CXX_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG

//C compiler CMAKE_C_COMPILER:STRING=/usr/lib64/ccache/cc

//A wrapper around 'ar' adding the appropriate '--plugin' option // for the GCC compiler CMAKE_C_COMPILER_AR:FILEPATH=/usr/bin/gcc-ar

//A wrapper around 'ranlib' adding the appropriate '--plugin' option // for the GCC compiler CMAKE_C_COMPILER_RANLIB:FILEPATH=/usr/bin/gcc-ranlib

//Flags used by the C compiler during all build types. CMAKE_C_FLAGS:STRING=

//Flags used by the C compiler during DEBUG builds. CMAKE_C_FLAGS_DEBUG:STRING=-g

//Flags used by the C compiler during MINSIZEREL builds. CMAKE_C_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG

//Flags used by the C compiler during RELEASE builds. CMAKE_C_FLAGS_RELEASE:STRING=-O2 -DNDEBUG

//Flags used by the C compiler during RELWITHDEBINFO builds. CMAKE_C_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG

//Path to a program. CMAKE_DLLTOOL:FILEPATH=CMAKE_DLLTOOL-NOTFOUND

//Flags used by the linker during all build types. CMAKE_EXE_LINKER_FLAGS:STRING=

//Flags used by the linker during DEBUG builds. CMAKE_EXE_LINKER_FLAGS_DEBUG:STRING=

//Flags used by the linker during MINSIZEREL builds. CMAKE_EXE_LINKER_FLAGS_MINSIZEREL:STRING=

//Flags used by the linker during RELEASE builds. CMAKE_EXE_LINKER_FLAGS_RELEASE:STRING=

//Flags used by the linker during RELWITHDEBINFO builds. CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO:STRING=

//Enable/Disable output of compile commands during generation. CMAKE_EXPORT_COMPILE_COMMANDS:BOOL=

//User executables (bin) CMAKE_INSTALL_BINDIR:PATH=bin

//Read-only architecture-independent data (DATAROOTDIR) CMAKE_INSTALL_DATADIR:PATH=

//Read-only architecture-independent data root (share) CMAKE_INSTALL_DATAROOTDIR:PATH=share

//Documentation root (DATAROOTDIR/doc/PROJECT_NAME) CMAKE_INSTALL_DOCDIR:PATH=

//C header files (include) CMAKE_INSTALL_INCLUDEDIR:PATH=include

//Info documentation (DATAROOTDIR/info) CMAKE_INSTALL_INFODIR:PATH=

//Object code libraries (lib64) CMAKE_INSTALL_LIBDIR:PATH=lib64

//Program executables (libexec) CMAKE_INSTALL_LIBEXECDIR:PATH=libexec

//Locale-dependent data (DATAROOTDIR/locale) CMAKE_INSTALL_LOCALEDIR:PATH=

//Modifiable single-machine data (var) CMAKE_INSTALL_LOCALSTATEDIR:PATH=var

//Man documentation (DATAROOTDIR/man) CMAKE_INSTALL_MANDIR:PATH=

//C header files for non-gcc (/usr/include) CMAKE_INSTALL_OLDINCLUDEDIR:PATH=/usr/include

//Standard install prefix CMAKE_INSTALL_PREFIX:PATH=/usr/local

//Run-time variable data (LOCALSTATEDIR/run) CMAKE_INSTALL_RUNSTATEDIR:PATH=

//System admin executables (sbin) CMAKE_INSTALL_SBINDIR:PATH=sbin

//Modifiable architecture-independent data (com) CMAKE_INSTALL_SHAREDSTATEDIR:PATH=com

//Read-only single-machine data (etc) CMAKE_INSTALL_SYSCONFDIR:PATH=etc

//Path to a program. CMAKE_LINKER:FILEPATH=/usr/bin/ld

//Path to a program. CMAKE_MAKE_PROGRAM:FILEPATH=/usr/bin/gmake

//Flags used by the linker during the creation of modules during // all build types. CMAKE_MODULE_LINKER_FLAGS:STRING=

//Flags used by the linker during the creation of modules during // DEBUG builds. CMAKE_MODULE_LINKER_FLAGS_DEBUG:STRING=

//Flags used by the linker during the creation of modules during // MINSIZEREL builds. CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL:STRING=

//Flags used by the linker during the creation of modules during // RELEASE builds. CMAKE_MODULE_LINKER_FLAGS_RELEASE:STRING=

//Flags used by the linker during the creation of modules during // RELWITHDEBINFO builds. CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO:STRING=

//Path to a program. CMAKE_NM:FILEPATH=/usr/bin/nm

//Path to a program. CMAKE_OBJCOPY:FILEPATH=/usr/bin/objcopy

//Path to a program. CMAKE_OBJDUMP:FILEPATH=/usr/bin/objdump

//Value Computed by CMake CMAKE_PROJECT_DESCRIPTION:STATIC=

//Value Computed by CMake CMAKE_PROJECT_HOMEPAGE_URL:STATIC=

//Value Computed by CMake CMAKE_PROJECT_NAME:STATIC=vvdec

//Value Computed by CMake CMAKE_PROJECT_VERSION:STATIC=1.2.0

//Value Computed by CMake CMAKE_PROJECT_VERSION_MAJOR:STATIC=1

//Value Computed by CMake CMAKE_PROJECT_VERSION_MINOR:STATIC=2

//Value Computed by CMake CMAKE_PROJECT_VERSION_PATCH:STATIC=0

//Value Computed by CMake CMAKE_PROJECT_VERSION_TWEAK:STATIC=

//Path to a program. CMAKE_RANLIB:FILEPATH=/usr/bin/ranlib

//Path to a program. CMAKE_READELF:FILEPATH=/usr/bin/readelf

//Flags used by the linker during the creation of shared libraries // during all build types. CMAKE_SHARED_LINKER_FLAGS:STRING=-shared

//Flags used by the linker during the creation of shared libraries // during DEBUG builds. CMAKE_SHARED_LINKER_FLAGS_DEBUG:STRING=

//Flags used by the linker during the creation of shared libraries // during MINSIZEREL builds. CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL:STRING=

//Flags used by the linker during the creation of shared libraries // during RELEASE builds. CMAKE_SHARED_LINKER_FLAGS_RELEASE:STRING=

//Flags used by the linker during the creation of shared libraries // during RELWITHDEBINFO builds. CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO:STRING=

//If set, runtime paths are not added when installing shared libraries, // but are added when building. CMAKE_SKIP_INSTALL_RPATH:BOOL=NO

//If set, runtime paths are not added when using shared libraries. CMAKE_SKIP_RPATH:BOOL=NO

//Flags used by the linker during the creation of static libraries // during all build types. CMAKE_STATIC_LINKER_FLAGS:STRING=

//Flags used by the linker during the creation of static libraries // during DEBUG builds. CMAKE_STATIC_LINKER_FLAGS_DEBUG:STRING=

//Flags used by the linker during the creation of static libraries // during MINSIZEREL builds. CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL:STRING=

//Flags used by the linker during the creation of static libraries // during RELEASE builds. CMAKE_STATIC_LINKER_FLAGS_RELEASE:STRING=

//Flags used by the linker during the creation of static libraries // during RELWITHDEBINFO builds. CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO:STRING=

//Path to a program. CMAKE_STRIP:FILEPATH=/usr/bin/strip

//If this value is on, makefiles will be generated without the // .SILENT directive, and all commands will be echoed to the console // during the make. This is useful for debugging only. With Visual // Studio IDE projects all commands are done without /nologo. CMAKE_VERBOSE_MAKEFILE:BOOL=FALSE

//Directory under which to collect all populated content FETCHCONTENT_BASE_DIR:PATH=/1TB/usr/src/github.com/1div0/vvdec/Linux/x86-64/Core i7/_deps

//Disables all attempts to download or update content and assumes // source dirs already exist FETCHCONTENT_FULLY_DISCONNECTED:BOOL=ON

//Enables QUIET option for all content population FETCHCONTENT_QUIET:BOOL=OFF

//Enables UPDATE_DISCONNECTED behavior for all content population FETCHCONTENT_UPDATES_DISCONNECTED:BOOL=ON

//enable arm intrinsics VVDEC_ENABLE_ARM_SIMD:BOOL=FALSE

//Enable or disable bitstream download VVDEC_ENABLE_BITSTREAM_DOWNLOAD:BOOL=ON

//Enable or disable build type postfix for apps and libs VVDEC_ENABLE_BUILD_TYPE_POSTFIX:BOOL=OFF

//Enable or disable install target VVDEC_ENABLE_INSTALL:BOOL=ON

//Enable Intel Runtime Support for Profiling VVDEC_ENABLE_ITT:BOOL=OFF

//Enable link time optimization for release and profile builds VVDEC_ENABLE_LINK_TIME_OPT:BOOL=ON

//Enable or disable local bitstream download VVDEC_ENABLE_LOCAL_BITSTREAM_DOWNLOAD:BOOL=OFF

//enable x86 intrinsics VVDEC_ENABLE_X86_SIMD:BOOL=TRUE

//Enable or disable building with architecture specific optimization VVDEC_OPT_TARGET_ARCH:STRING=corei7

//Enable or disable address sanitizer VVDEC_USE_ADDRESS_SANITIZER:BOOL=OFF

//Value Computed by CMake vvdec_BINARY_DIR:STATIC=/1TB/usr/src/github.com/1div0/vvdec/Linux/x86-64/Core i7

//Value Computed by CMake vvdec_IS_TOP_LEVEL:STATIC=ON

//Value Computed by CMake vvdec_SOURCE_DIR:STATIC=/1TB/usr/src/github.com/1div0/vvdec

########################

INTERNAL cache entries

########################

//ADVANCED property for variable: CMAKE_ADDR2LINE CMAKE_ADDR2LINE-ADVANCED:INTERNAL=1 //ADVANCED property for variable: CMAKE_AR CMAKE_AR-ADVANCED:INTERNAL=1 //This is the directory where this CMakeCache.txt was created CMAKE_CACHEFILE_DIR:INTERNAL=/1TB/usr/src/github.com/1div0/vvdec/Linux/x86-64/Core i7 //Major version of cmake used to create the current loaded cache CMAKE_CACHE_MAJOR_VERSION:INTERNAL=3 //Minor version of cmake used to create the current loaded cache CMAKE_CACHE_MINOR_VERSION:INTERNAL=21 //Patch version of cmake used to create the current loaded cache CMAKE_CACHE_PATCH_VERSION:INTERNAL=3 //ADVANCED property for variable: CMAKE_COLOR_MAKEFILE CMAKE_COLOR_MAKEFILE-ADVANCED:INTERNAL=1 //Path to CMake executable. CMAKE_COMMAND:INTERNAL=/usr/bin/cmake //Path to cpack program executable. CMAKE_CPACK_COMMAND:INTERNAL=/usr/bin/cpack //Path to ctest program executable. CMAKE_CTEST_COMMAND:INTERNAL=/usr/bin/ctest //ADVANCED property for variable: CMAKE_CXX_COMPILER CMAKE_CXX_COMPILER-ADVANCED:INTERNAL=1 //ADVANCED property for variable: CMAKE_CXX_COMPILER_AR CMAKE_CXX_COMPILER_AR-ADVANCED:INTERNAL=1 //ADVANCED property for variable: CMAKE_CXX_COMPILER_RANLIB CMAKE_CXX_COMPILER_RANLIB-ADVANCED:INTERNAL=1 //ADVANCED property for variable: CMAKE_CXX_FLAGS CMAKE_CXX_FLAGS-ADVANCED:INTERNAL=1 //ADVANCED property for variable: CMAKE_CXX_FLAGS_DEBUG CMAKE_CXX_FLAGS_DEBUG-ADVANCED:INTERNAL=1 //ADVANCED property for variable: CMAKE_CXX_FLAGS_MINSIZEREL CMAKE_CXX_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 //ADVANCED property for variable: CMAKE_CXX_FLAGS_RELEASE CMAKE_CXX_FLAGS_RELEASE-ADVANCED:INTERNAL=1 //ADVANCED property for variable: CMAKE_CXX_FLAGS_RELWITHDEBINFO CMAKE_CXX_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 //ADVANCED property for variable: CMAKE_C_COMPILER CMAKE_C_COMPILER-ADVANCED:INTERNAL=1 //ADVANCED property for variable: CMAKE_C_COMPILER_AR CMAKE_C_COMPILER_AR-ADVANCED:INTERNAL=1 //ADVANCED property for variable: CMAKE_C_COMPILER_RANLIB CMAKE_C_COMPILER_RANLIB-ADVANCED:INTERNAL=1 //ADVANCED property for variable: CMAKE_C_FLAGS CMAKE_C_FLAGS-ADVANCED:INTERNAL=1 //ADVANCED property for variable: CMAKE_C_FLAGS_DEBUG CMAKE_C_FLAGS_DEBUG-ADVANCED:INTERNAL=1 //ADVANCED property for variable: CMAKE_C_FLAGS_MINSIZEREL CMAKE_C_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 //ADVANCED property for variable: CMAKE_C_FLAGS_RELEASE CMAKE_C_FLAGS_RELEASE-ADVANCED:INTERNAL=1 //ADVANCED property for variable: CMAKE_C_FLAGS_RELWITHDEBINFO CMAKE_C_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 //ADVANCED property for variable: CMAKE_DLLTOOL CMAKE_DLLTOOL-ADVANCED:INTERNAL=1 //Path to cache edit program executable. CMAKE_EDIT_COMMAND:INTERNAL=/usr/bin/ccmake //Executable file format CMAKE_EXECUTABLE_FORMAT:INTERNAL=ELF //ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS CMAKE_EXE_LINKER_FLAGS-ADVANCED:INTERNAL=1 //ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_DEBUG CMAKE_EXE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 //ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_MINSIZEREL CMAKE_EXE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 //ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELEASE CMAKE_EXE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 //ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 //ADVANCED property for variable: CMAKE_EXPORT_COMPILE_COMMANDS CMAKE_EXPORT_COMPILE_COMMANDS-ADVANCED:INTERNAL=1 //Name of external makefile project generator. CMAKE_EXTRA_GENERATOR:INTERNAL= //Name of generator. CMAKE_GENERATOR:INTERNAL=Unix Makefiles //Generator instance identifier. CMAKE_GENERATOR_INSTANCE:INTERNAL= //Name of generator platform. CMAKE_GENERATOR_PLATFORM:INTERNAL= //Name of generator toolset. CMAKE_GENERATOR_TOOLSET:INTERNAL= //Test CMAKE_HAVE_LIBC_PTHREAD CMAKE_HAVE_LIBC_PTHREAD:INTERNAL= //Have library pthreads CMAKE_HAVE_PTHREADS_CREATE:INTERNAL= //Have library pthread CMAKE_HAVE_PTHREAD_CREATE:INTERNAL=1 //Have include pthread.h CMAKE_HAVE_PTHREAD_H:INTERNAL=1 //Source directory with the top level CMakeLists.txt file for this // project CMAKE_HOME_DIRECTORY:INTERNAL=/1TB/usr/src/github.com/1div0/vvdec //ADVANCED property for variable: CMAKE_INSTALL_BINDIR CMAKE_INSTALL_BINDIR-ADVANCED:INTERNAL=1 //ADVANCED property for variable: CMAKE_INSTALL_DATADIR CMAKE_INSTALL_DATADIR-ADVANCED:INTERNAL=1 //ADVANCED property for variable: CMAKE_INSTALL_DATAROOTDIR CMAKE_INSTALL_DATAROOTDIR-ADVANCED:INTERNAL=1 //ADVANCED property for variable: CMAKE_INSTALL_DOCDIR CMAKE_INSTALL_DOCDIR-ADVANCED:INTERNAL=1 //ADVANCED property for variable: CMAKE_INSTALL_INCLUDEDIR CMAKE_INSTALL_INCLUDEDIR-ADVANCED:INTERNAL=1 //ADVANCED property for variable: CMAKE_INSTALL_INFODIR CMAKE_INSTALL_INFODIR-ADVANCED:INTERNAL=1 //ADVANCED property for variable: CMAKE_INSTALL_LIBDIR CMAKE_INSTALL_LIBDIR-ADVANCED:INTERNAL=1 //ADVANCED property for variable: CMAKE_INSTALL_LIBEXECDIR CMAKE_INSTALL_LIBEXECDIR-ADVANCED:INTERNAL=1 //ADVANCED property for variable: CMAKE_INSTALL_LOCALEDIR CMAKE_INSTALL_LOCALEDIR-ADVANCED:INTERNAL=1 //ADVANCED property for variable: CMAKE_INSTALL_LOCALSTATEDIR CMAKE_INSTALL_LOCALSTATEDIR-ADVANCED:INTERNAL=1 //ADVANCED property for variable: CMAKE_INSTALL_MANDIR CMAKE_INSTALL_MANDIR-ADVANCED:INTERNAL=1 //ADVANCED property for variable: CMAKE_INSTALL_OLDINCLUDEDIR CMAKE_INSTALL_OLDINCLUDEDIR-ADVANCED:INTERNAL=1 //MODIFIED property for variable: CMAKE_INSTALL_PREFIX CMAKE_INSTALL_PREFIX-MODIFIED:INTERNAL=ON //ADVANCED property for variable: CMAKE_INSTALL_RUNSTATEDIR CMAKE_INSTALL_RUNSTATEDIR-ADVANCED:INTERNAL=1 //ADVANCED property for variable: CMAKE_INSTALL_SBINDIR CMAKE_INSTALL_SBINDIR-ADVANCED:INTERNAL=1 //ADVANCED property for variable: CMAKE_INSTALL_SHAREDSTATEDIR CMAKE_INSTALL_SHAREDSTATEDIR-ADVANCED:INTERNAL=1 //Install .so files without execute permission. CMAKE_INSTALL_SO_NO_EXE:INTERNAL=0 //ADVANCED property for variable: CMAKE_INSTALL_SYSCONFDIR CMAKE_INSTALL_SYSCONFDIR-ADVANCED:INTERNAL=1 //ADVANCED property for variable: CMAKE_LINKER CMAKE_LINKER-ADVANCED:INTERNAL=1 //ADVANCED property for variable: CMAKE_MAKE_PROGRAM CMAKE_MAKE_PROGRAM-ADVANCED:INTERNAL=1 //ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS CMAKE_MODULE_LINKER_FLAGS-ADVANCED:INTERNAL=1 //ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_DEBUG CMAKE_MODULE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 //ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 //ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELEASE CMAKE_MODULE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 //ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 //ADVANCED property for variable: CMAKE_NM CMAKE_NM-ADVANCED:INTERNAL=1 //number of local generators CMAKE_NUMBER_OF_MAKEFILES:INTERNAL=3 //ADVANCED property for variable: CMAKE_OBJCOPY CMAKE_OBJCOPY-ADVANCED:INTERNAL=1 //ADVANCED property for variable: CMAKE_OBJDUMP CMAKE_OBJDUMP-ADVANCED:INTERNAL=1 //Platform information initialized CMAKE_PLATFORM_INFO_INITIALIZED:INTERNAL=1 //ADVANCED property for variable: CMAKE_RANLIB CMAKE_RANLIB-ADVANCED:INTERNAL=1 //ADVANCED property for variable: CMAKE_READELF CMAKE_READELF-ADVANCED:INTERNAL=1 //Path to CMake installation. CMAKE_ROOT:INTERNAL=/usr/share/cmake //ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS CMAKE_SHARED_LINKER_FLAGS-ADVANCED:INTERNAL=1 //MODIFIED property for variable: CMAKE_SHARED_LINKER_FLAGS CMAKE_SHARED_LINKER_FLAGS-MODIFIED:INTERNAL=ON //ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_DEBUG CMAKE_SHARED_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 //ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 //ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELEASE CMAKE_SHARED_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 //ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 //ADVANCED property for variable: CMAKE_SKIP_INSTALL_RPATH CMAKE_SKIP_INSTALL_RPATH-ADVANCED:INTERNAL=1 //ADVANCED property for variable: CMAKE_SKIP_RPATH CMAKE_SKIP_RPATH-ADVANCED:INTERNAL=1 //ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS CMAKE_STATIC_LINKER_FLAGS-ADVANCED:INTERNAL=1 //ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_DEBUG CMAKE_STATIC_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 //ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 //ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELEASE CMAKE_STATIC_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 //ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 //ADVANCED property for variable: CMAKE_STRIP CMAKE_STRIP-ADVANCED:INTERNAL=1 //uname command CMAKE_UNAME:INTERNAL=/usr/bin/uname //ADVANCED property for variable: CMAKE_VERBOSE_MAKEFILE CMAKE_VERBOSE_MAKEFILE-ADVANCED:INTERNAL=1 //MODIFIED property for variable: FETCHCONTENT_FULLY_DISCONNECTED FETCHCONTENT_FULLY_DISCONNECTED-MODIFIED:INTERNAL=ON //MODIFIED property for variable: FETCHCONTENT_QUIET FETCHCONTENT_QUIET-MODIFIED:INTERNAL=ON //MODIFIED property for variable: FETCHCONTENT_UPDATES_DISCONNECTED FETCHCONTENT_UPDATES_DISCONNECTED-MODIFIED:INTERNAL=ON //Details about finding Threads FIND_PACKAGE_MESSAGE_DETAILS_Threads:INTERNAL=[TRUE][v()] //Test HAVE_INITIN_mm_loadu_si32 HAVE_INITIN_mm_loadu_si32:INTERNAL=1 //Test HAVE_INITIN_mm_loadu_si64 HAVE_INITIN_mm_loadu_si64:INTERNAL=1 //Test HAVE_INITIN_mm_storeu_si16 HAVE_INITIN_mm_storeu_si16:INTERNAL=1 //Test HAVE_INITIN_mm_storeu_si32 HAVE_INITIN_mm_storeu_si32:INTERNAL=1 //Test HAVE_INITIN_mm_storeu_si64 HAVE_INITIN_mm_storeu_si64:INTERNAL=1 //MODIFIED property for variable: VVDEC_ENABLE_BITSTREAM_DOWNLOAD VVDEC_ENABLE_BITSTREAM_DOWNLOAD-MODIFIED:INTERNAL=ON //MODIFIED property for variable: VVDEC_OPT_TARGET_ARCH VVDEC_OPT_TARGET_ARCH-MODIFIED:INTERNAL=ON //CMAKE_INSTALL_PREFIX during last run _GNUInstallDirs_LAST_CMAKE_INSTALL_PREFIX:INTERNAL=/usr/local

1div0 commented 3 years ago

€ cat /etc/os-release NAME="Fedora Linux" VERSION="35 (Workstation Edition Prerelease)" ID=fedora VERSION_ID=35 VERSION_CODENAME="" PLATFORM_ID="platform:f35" PRETTY_NAME="Fedora Linux 35 (Workstation Edition Prerelease)" ANSI_COLOR="0;38;2;60;110;180" LOGO=fedora-logo-icon CPE_NAME="cpe:/o:fedoraproject:fedora:35" HOME_URL="https://fedoraproject.org/" DOCUMENTATION_URL="https://docs.fedoraproject.org/en-US/fedora/f35/system-administrators-guide/" SUPPORT_URL="https://ask.fedoraproject.org/" BUG_REPORT_URL="https://bugzilla.redhat.com/" REDHAT_BUGZILLA_PRODUCT="Fedora" REDHAT_BUGZILLA_PRODUCT_VERSION=35 REDHAT_SUPPORT_PRODUCT="Fedora" REDHAT_SUPPORT_PRODUCT_VERSION=35 PRIVACY_POLICY_URL="https://fedoraproject.org/wiki/Legal:PrivacyPolicy" VARIANT="Workstation Edition" VARIANT_ID=workstation

1div0 commented 3 years ago

€ gcc -v Using built-in specs. COLLECT_GCC=/usr/bin/gcc COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-redhat-linux/11/lto-wrapper OFFLOAD_TARGET_NAMES=nvptx-none OFFLOAD_TARGET_DEFAULT=1 Target: x86_64-redhat-linux Configured with: ../configure --enable-bootstrap --enable-languages=c,c++,fortran,objc,obj-c++,ada,go,d,lto --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-shared --enable-threads=posix --enable-checking=release --enable-multilib --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-gcc-major-version-only --with-linker-hash-style=gnu --enable-plugin --enable-initfini-array --with-isl=/builddir/build/BUILD/gcc-11.2.1-20210728/obj-x86_64-redhat-linux/isl-install --enable-offload-targets=nvptx-none --without-cuda-driver --enable-gnu-indirect-function --enable-cet --with-tune=generic --with-arch_32=i686 --build=x86_64-redhat-linux --with-build-config=bootstrap-lto --enable-link-serialization=1 Thread model: posix Supported LTO compression algorithms: zlib zstd gcc version 11.2.1 20210728 (Red Hat 11.2.1-1) (GCC)

1div0 commented 3 years ago

Maybe it was caused by corei7 architecture flag. Will try again w/o it.

adamjw24 commented 3 years ago

You specified platform specific optimization for Core-i7? It'd be great if you could test the default compile (generic x86_64 architecture).

Please just run (first command since you use ccache, just to be sure):

ccache -C
make distclean
make install-release
adamjw24 commented 3 years ago

In the meantime, I'd try to get my hands on gcc-11 and see if this works.

1div0 commented 3 years ago

So, even without Intel Core i7 specific target optimization, AVX2 variant exhibits the same artefacts.

adamjw24 commented 3 years ago

Can confirm, there is a problem compiling vvdec with GCC-11. I'd look into it.

As a workaround for now, use an older version of GCC (everythink up until GCC-10 should work alright). You can change the compiler as shown in the example:

make distclean
CC=gcc-10 CXX=g++-10 make install-release
1div0 commented 3 years ago

Thank you so much.

K-os commented 3 years ago

@adamjw24 I was able to reproduce that the bug using gcc-11 on fedora-35 with the default build settings.

adamjw24 commented 3 years ago

Yes, I'm on it. There is a problem with the function simdInterpolateVerM2. Looking into it right now.

1div0 commented 3 years ago

clang version 13.0.0 exhibits the same.

adamjw24 commented 3 years ago

Please check the newest Head with the a workaround for what for me seems to be a compiler bug. Would be great if you could check with Clang-13. Locally I checked it works with Clang-12 and g++-11.

adamjw24 commented 3 years ago

Ach yes, here it is: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99754

1div0 commented 3 years ago

Bingo. Clang 13 OK.

1div0 commented 3 years ago

GCC 11.2.1 20210728 (Red Hat 11.2.1-1) as well. Thank you very much for all your efforts.

adamjw24 commented 3 years ago

Sure, closing