Commit 1e7bf52d authored by Archit Tamarapu's avatar Archit Tamarapu
Browse files

Merge branch 'main' of forge.3gpp.org:ivas-codec-pc/ivas-codec into 766-omasa-split-rendering-tests

parents 6fa95cda 88495a44
Loading
Loading
Loading
Loading
+35 −7
Original line number Diff line number Diff line
@@ -201,7 +201,23 @@ stages:
    - make clean
    - make -j CLANG=$CLANG_NUM
    - testcase_timeout=$SELFTEST_SANITY_TIMEOUT
    - UBSAN_OPTIONS=suppressions=scripts/ubsan.supp,report_error_type=1 python3 -m pytest $SELF_TEST_PRM_FILE -v --update_ref 1 -m create_ref --html=report.html --self-contained-html --junit-xml=report-junit.xml --testcase_timeout=$testcase_timeout --ref_encoder_path ./IVAS_cod --ref_decoder_path ./IVAS_dec
    - export UBSAN_OPTIONS=suppressions=scripts/ubsan.supp,report_error_type=1

    - exit_code20=0
    - exit_code10=0
    - exit_code5=0

    - if [ $CLANG_NUM -eq 1 ]; then sanitizer_type="MemorySanitizer"; elif [ $CLANG_NUM -eq 2 ]; then sanitizer_type="AddressSanitizer"; elif [ $CLANG_NUM -eq 3 ]; then sanitizer_type="UndefinedBehaviorSanitizer"; else echo "Wrong CLANG_NUM $CLANG_NUM given!"; exit 1; fi

    # run encoder and decoder with 20ms renderer framesize first, use reference creation mode
    - python3 -m pytest $SELF_TEST_PRM_FILE -v --update_ref 1 -m create_ref --html=report-20ms.html --self-contained-html --junit-xml=report-junit-20ms.xml --testcase_timeout=$testcase_timeout --ref_encoder_path ./IVAS_cod --ref_decoder_path ./IVAS_dec || exit_code20=$?
    # for 10ms and 5ms renderer framesize, we only need to run the decoder part as renderer framesize is a decoder-only option
    # set tolerance very high do ignore any BE differences due to the different renderer framesizes, those can appear due to the limiter being active
    # we are only interested in runtime errors from the sanitizers and ignore the diffs
    - python3 -m pytest $SELF_TEST_PRM_FILE -v --html=report-5ms.html --self-contained-html --junit-xml=report-junit-5ms.xml --dut_fr 5 --decoder_only --abs_tol 100000 || exit_code5=$?
    - python3 -m pytest $SELF_TEST_PRM_FILE -v --html=report-10ms.html --self-contained-html --junit-xml=report-junit-10ms.xml --dut_fr 10 --decoder_only --abs_tol 100000 || exit_code10=$?

    - if [ $exit_code20 -ne 0 ] || [ $exit_code10 -ne 0 ] || [ $exit_code5 -ne 0 ]; then exit 1; fi


# ---------------------------------------------------------------
@@ -283,12 +299,18 @@ stages:
    expire_in: 1 week
    when: always
    paths:
      - report-junit.xml
      - report.html
      - report-junit-20ms.xml
      - report-junit-10ms.xml
      - report-junit-5ms.xml
      - report-20ms.html
      - report-10ms.html
      - report-5ms.html
    expose_as: "Sanitizer selftest results"
    reports:
      junit:
        - report-junit.xml
        - report-junit-20ms.xml
        - report-junit-10ms.xml
        - report-junit-5ms.xml

.sanitizer-selftest-ltv:
  stage: test
@@ -299,12 +321,18 @@ stages:
    expire_in: 2 week
    when: always
    paths:
      - report-junit.xml
      - report.html
      - report-junit-20ms.xml
      - report-junit-10ms.xml
      - report-junit-5ms.xml
      - report-20ms.html
      - report-10ms.html
      - report-5ms.html
    expose_as: "Sanitizer selftest results"
    reports:
      junit:
        - report-junit.xml
        - report-junit-20ms.xml
        - report-junit-10ms.xml
        - report-junit-5ms.xml

# ---------------------------------------------------------------
# .pre jobs for setting up things
+4 −0
Original line number Diff line number Diff line
@@ -1195,7 +1195,11 @@ enum
#define MASA_COHERENCE_TOLERANCE                0.1f
#define MASA_COHERENCE_THRESHOLD                0.1f
#define MASA_RATIO_TOLERANCE                    0.1f
#ifdef NONBE_FIX_1034_DRY_MASA_RATIOS
#define MASA_RATIO_THRESHOLD                    0.015f
#else
#define MASA_RATIO_THRESHOLD                    0.1f
#endif
#define MASA_ANGLE_TOLERANCE                    0.5f
#define MASA_LIMIT_NO_BANDS_SUR_COH             8
#define MINIMUM_BIT_BUDGET_NORMAL_META          100
+2 −2
Original line number Diff line number Diff line
@@ -156,7 +156,6 @@
/*#define FIX_I4_OL_PITCH*/                             /* fix open-loop pitch used for EVS core switching */
/*#define SPLIT_REND_WITH_HEAD_ROT  */                  /* Dlb,FhG: Split Rendering contributions 21 and 35 */

#define FIX_1027_GSC_INT_OVERFLOW                       /* VA: issue 2207: overflow in GSC */
#define FIX_1024_REMOVE_PARAMMC_MIXING_MAT              /* VA: issue 1024: remove unused function ivas_param_mc_get_mono_stereo_mixing_matrices() */
#define FIX_1023_REMOVE_PARAMMC_DEC                     /* VA: issue 1023: remove unused function ivas_param_mc_dec() */
#define FIX_1022_REMOVE_PARAMISM_DEC                    /* VA: issue 1022: remove unused function ivas_param_ism_dec() */
@@ -170,6 +169,7 @@
/* all switches in this category should start with "NONBE_" */

#define NONBE_FIX_1021_ISM_BRIR_RS_FLUSH                /* FhG: issue #1021: fix ISM with JBM and RS renderer flushing*/
#define NONBE_FIX_1034_DRY_MASA_RATIOS                  /* Nokia: Fix issue 1034, use of wrong numDir state. */

/* ##################### End NON-BE switches ########################### */

+1 −0
Original line number Diff line number Diff line
@@ -2169,3 +2169,4 @@ void Reset_BASOP_WMOPS_counter( void )
#endif


+69 −61
Original line number Diff line number Diff line
@@ -613,14 +613,6 @@ extern int cntr_push_pop;

#endif

/* mac & msu (Non Instrumented Versions) */
#ifndef mac
#define mac( a, b, c ) ( ( a ) + ( b ) * ( c ) )
#endif
#ifndef mac
#define msu( a, b, c ) ( ( a ) - ( b ) * ( c ) )
#endif

#ifndef WMOPS
/* DESACTIVATE the Counting Mechanism */
#define OP_COUNT_( op, n )
@@ -691,61 +683,76 @@ static int wmc_flag_ = 0;
/* Math Operations */
#define abs_    OP_COUNT_WRAPPER1_( ABS_( 1 ), abs )
#define fabs_   OP_COUNT_WRAPPER1_( ABS_( 1 ), fabs )
#define fabsf_  OP_COUNT_WRAPPER1_( ABS_( 1 ), fabsf )
#define labs_   OP_COUNT_WRAPPER1_( ABS_( 1 ), labs )
#define floor_  OP_COUNT_WRAPPER1_( MISC_( 1 ), floor )
#define floorf_ OP_COUNT_WRAPPER1_( MISC_( 1 ), floorf )
#define sqrt_   OP_COUNT_WRAPPER1_( SQRT_( 1 ), sqrt )
#define sqrtf_  OP_COUNT_WRAPPER1_( SQRT_( 1 ), sqrtf )
#define pow_    OP_COUNT_WRAPPER1_( POWER_( 1 ), pow )
#define powf_   OP_COUNT_WRAPPER1_( POWER_( 1 ), powf )
#define exp_    OP_COUNT_WRAPPER1_( POWER_( 1 ), exp )
#define expf_   OP_COUNT_WRAPPER1_( POWER_( 1 ), expf )
#define log_    OP_COUNT_WRAPPER1_( LOG_( 1 ), log )
#define logf_   OP_COUNT_WRAPPER1_( LOG_( 1 ), logf )
#define log10_  OP_COUNT_WRAPPER1_( LOG_( 1 ), log10 )
#define log10f_ OP_COUNT_WRAPPER1_( LOG_( 1 ), log10f )
#define cos_    OP_COUNT_WRAPPER1_( TRANS_( 1 ), cos )
#define cosf_   OP_COUNT_WRAPPER1_( TRANS_( 1 ), cosf )
#define sin_    OP_COUNT_WRAPPER1_( TRANS_( 1 ), sin )
#define sinf_   OP_COUNT_WRAPPER1_( TRANS_( 1 ), sinf )
#define tan_    OP_COUNT_WRAPPER1_( TRANS_( 1 ), tan )
#define tanf_   OP_COUNT_WRAPPER1_( TRANS_( 1 ), tanf )
#define acos_   OP_COUNT_WRAPPER1_( TRANS_( 1 ), acos )
#define acosf_  OP_COUNT_WRAPPER1_( TRANS_( 1 ), acosf )
#define asin_   OP_COUNT_WRAPPER1_( TRANS_( 1 ), asin )
#define asinf_  OP_COUNT_WRAPPER1_( TRANS_( 1 ), asinf )
#define atan_   OP_COUNT_WRAPPER1_( TRANS_( 1 ), atan )
#define atanf_  OP_COUNT_WRAPPER1_( TRANS_( 1 ), atanf )
#define atan2_  OP_COUNT_WRAPPER1_( TRANS_( 1 ), atan2 )
#define atan2f_ OP_COUNT_WRAPPER1_( TRANS_( 1 ), atan2f )
#define cosh_   OP_COUNT_WRAPPER1_( TRANS_( 1 ), cosh )
#define coshf_  OP_COUNT_WRAPPER1_( TRANS_( 1 ), coshf )
#define sinh_   OP_COUNT_WRAPPER1_( TRANS_( 1 ), sinh )
#define sinhf_  OP_COUNT_WRAPPER1_( TRANS_( 1 ), sinhf )
#define tanh_   OP_COUNT_WRAPPER1_( TRANS_( 1 ), tanh )
#define tanhf_  OP_COUNT_WRAPPER1_( TRANS_( 1 ), tanhf )
#define fmod_   OP_COUNT_WRAPPER1_( DIV_( 1 ), fmod )
/* these macros use any local macros already defined */
/* min/max and their Variants */
#define fmodf_  OP_COUNT_WRAPPER1_( DIV_( 1 ), fmodf )
#define frexp_  OP_COUNT_WRAPPER1_( MISC_( 2 ), frexp )
#define frexpf_ OP_COUNT_WRAPPER1_( MISC_( 2 ), frexpf )

/* the macros below are instrumented versions of user-defined macros that might be used in the source code 
/* representing some well-known and recognized mathematical operations (that are not defined in math.h) */
/* Note: the 'wmc_flag_=wmc_flag_' is used to avoid warning: left-hand operand of comma expression has no effect with gcc */

#define min_( a, b )     OP_COUNT_WRAPPER1_( MISC_( 1 ), min( ( a ), ( b ) ) )
#define max_( a, b )     OP_COUNT_WRAPPER1_( MISC_( 1 ), max( ( a ), ( b ) ) )
#define MIN_( a, b )     OP_COUNT_WRAPPER1_( MISC_( 1 ), MIN( ( a ), ( b ) ) )
#define MAX_( a, b )     OP_COUNT_WRAPPER1_( MISC_( 1 ), MAX( ( a ), ( b ) ) )
#define Min_( a, b )     OP_COUNT_WRAPPER1_( MISC_( 1 ), Min( ( a ), ( b ) ) )
#define Max_( a, b )     OP_COUNT_WRAPPER1_( MISC_( 1 ), Max( ( a ), ( b ) ) )
/* Square and its Variants */
#define sqr_( x )        OP_COUNT_WRAPPER1_( MULT_( 1 ), sqr( ( x ) ) )
#define Sqr_( x )        OP_COUNT_WRAPPER1_( MULT_( 1 ), Sqr( ( x ) ) )
#define SQR_( x )        OP_COUNT_WRAPPER1_( MULT_( 1 ), SQR( ( x ) ) )
#define square_( x )     OP_COUNT_WRAPPER1_( MULT_( 1 ), square( ( x ) ) )
#define Square_( x )     OP_COUNT_WRAPPER1_( MULT_( 1 ), Square( ( x ) ) )
#define SQUARE_( x )     OP_COUNT_WRAPPER1_( MULT_( 1 ), SQUARE( ( x ) ) )
/* Sign and its Variants */
#define sign_( x )       OP_COUNT_WRAPPER1_( MOVE_( 1 ), sign( ( x ) ) )
#define Sign_( x )       OP_COUNT_WRAPPER1_( MOVE_( 1 ), Sign( ( x ) ) )
#define SIGN_( x )       OP_COUNT_WRAPPER1_( MOVE_( 1 ), SIGN( ( x ) ) )
/* Square Root and its Variants */
#define sqrtf_( x ) OP_COUNT_WRAPPER1_( SQRT_( 1 ), sqrtf( ( x ) ) )
/* Invert Square Root and its Variants */
#define inv_sqrt_( x )   OP_COUNT_WRAPPER1_( SQRT_( 1 ), inv_sqrt( ( x ) ) )
/* Others */
#define inv_sqrtf_( x )  OP_COUNT_WRAPPER1_( SQRT_( 1 ), inv_sqrtf( ( x ) ) )
#define log_base_2_( x ) OP_COUNT_WRAPPER1_( ( LOG_( 1 ), MULT_( 1 ) ), log_base_2( ( x ) ) )
#define log2_( x   )     OP_COUNT_WRAPPER1_( ( LOG_( 1 ), MULT_( 1 ) ), log2( ( x ) ) )
#define log2f_( x   )    OP_COUNT_WRAPPER1_( ( LOG_( 1 ), MULT_( 1 ) ), log2f( ( x ) ) )
#define log2_f_( x )     OP_COUNT_WRAPPER1_( ( LOG_( 1 ), MULT_( 1 ) ), log2_f( ( x ) ) )
/* The 'wmc_flag_=wmc_flag_' is Used to Avoid: "warning: left-hand operand of comma expression has no effect"
   with Cygwin gcc Compiler */
#define _round_( x )     OP_COUNT_WRAPPER1_( wmc_flag_ = wmc_flag_, _round( ( x ) ) )
#define round_( x )      OP_COUNT_WRAPPER1_( wmc_flag_ = wmc_flag_, round( ( x ) ) )
#define round_f_( x )    OP_COUNT_WRAPPER1_( wmc_flag_ = wmc_flag_, round_f( ( x ) ) )
#define _squant_( x ) OP_COUNT_WRAPPER1_( wmc_flag_ = wmc_flag_, _squant( ( x ) ) )
/* Set Min/Max */
#define roundf_( x )     OP_COUNT_WRAPPER1_( wmc_flag_ = wmc_flag_, roundf( ( x ) ) )
#define set_min_( a, b ) OP_COUNT_WRAPPER3_( ( ADD_( 1 ), BRANCH_( 1 ), MOVE_( 1 ) ), set_min( ( a ), ( b ) ) )
#define set_max_( a, b ) OP_COUNT_WRAPPER3_( ( ADD_( 1 ), BRANCH_( 1 ), MOVE_( 1 ) ), set_max( ( a ), ( b ) ) )
/* mac & msu (Instrumented Versions) */
#define mac_( a, b, c ) OP_COUNT_WRAPPER1_( MAC_( 1 ), mac( a, b, c ) )
#define msu_( a, b, c ) OP_COUNT_WRAPPER1_( MAC_( 1 ), msu( a, b, c ) )

/* Functions */
#define func_( name, x ) OP_COUNT_WRAPPER1_( FUNC_( x ), name )
@@ -1438,3 +1445,4 @@ static __inline void incrGoto( void) {
#endif /* WMOPS_H */


Loading