Please ignore this patch.
Regards, Bhavna Hariharan On Wed, Aug 2, 2017 at 9:47 PM, <[email protected]> wrote: > # HG changeset patch > # User Bhavna Hariharan <[email protected]> > # Date 1501680985 -19800 > # Wed Aug 02 19:06:25 2017 +0530 > # Node ID 041fcaf820659d504d887cfaa239a02988812c14 > # Parent d11482e5fedbcdaf62ee3c6872f43827d99ad181 > Fix testbench crash with dhdr10 enabled > > __rdtsc() was being defined multiple times causing failure in testbench. > This patch renames the function and duplicates the REPORT_SPEEDUP macro > that > supports GNU compiler. > > Display warning when dhdr10 is enabled with MSVC version that does not > support c++11. > > diff -r d11482e5fedb -r 041fcaf82065 source/CMakeLists.txt > --- a/source/CMakeLists.txt Mon Jul 24 11:15:38 2017 +0530 > +++ b/source/CMakeLists.txt Wed Aug 02 19:06:25 2017 +0530 > @@ -184,6 +184,9 @@ > endif() > # this option is to enable the inclusion of dynamic HDR10 library to the > libx265 compilation > option(ENABLE_HDR10_PLUS "Enable dynamic HDR10 compilation" OFF) > +if(MSVC AND (MSVC_VERSION LESS 1800) AND ENABLE_HDR10_PLUS) > + message(FATAL_ERROR "MSVC version 12.0 or above required to support > hdr10plus") > +endif() > if(GCC) > add_definitions(-Wall -Wextra -Wshadow) > add_definitions(-D__STDC_LIMIT_MACROS=1) > diff -r d11482e5fedb -r 041fcaf82065 source/dynamicHDR10/ > metadataFromJson.cpp > --- a/source/dynamicHDR10/metadataFromJson.cpp Mon Jul 24 11:15:38 2017 > +0530 > +++ b/source/dynamicHDR10/metadataFromJson.cpp Wed Aug 02 19:06:25 2017 > +0530 > @@ -34,8 +34,6 @@ > #include "BasicStructures.h" > #include "SeiMetadataDictionary.h" > > -#define M_PI 3.14159265358979323846 > - > using namespace SeiMetadataDictionary; > > class metadataFromJson::DynamicMetaIO > diff -r d11482e5fedb -r 041fcaf82065 source/test/testharness.h > --- a/source/test/testharness.h Mon Jul 24 11:15:38 2017 +0530 > +++ b/source/test/testharness.h Wed Aug 02 19:06:25 2017 +0530 > @@ -70,7 +70,7 @@ > #include <intrin.h> > #elif defined(__GNUC__) > /* fallback for older GCC/MinGW */ > -static inline uint32_t __rdtsc(void) > +static inline uint32_t rdtsc(void) > { > uint32_t a = 0; > > @@ -92,6 +92,41 @@ > // Adapted from checkasm.c, runs each optimized primitive four times, > measures rdtsc > // and discards invalid times. Repeats 1000 times to get a good > average. Then measures > // the C reference with fewer runs and reports X factor and average > cycles. > + > +// Duplicate macro to avoid conflict with in-built function __rdtsc() > +#if defined(__GNUC__) > +#define REPORT_SPEEDUP(RUNOPT, RUNREF, ...) \ > + { \ > + uint32_t cycles = 0; int runs = 0; \ > + RUNOPT(__VA_ARGS__); \ > + for (int ti = 0; ti < BENCH_RUNS; ti++) { \ > + uint32_t t0 = (uint32_t)rdtsc(); \ > + RUNOPT(__VA_ARGS__); \ > + RUNOPT(__VA_ARGS__); \ > + RUNOPT(__VA_ARGS__); \ > + RUNOPT(__VA_ARGS__); \ > + uint32_t t1 = (uint32_t)rdtsc() - t0; \ > + if (t1 * runs <= cycles * 4 && ti > 0) { cycles += t1; > runs++; } \ > + } \ > + uint32_t refcycles = 0; int refruns = 0; \ > + RUNREF(__VA_ARGS__); \ > + for (int ti = 0; ti < BENCH_RUNS / 4; ti++) { \ > + uint32_t t0 = (uint32_t)rdtsc(); \ > + RUNREF(__VA_ARGS__); \ > + RUNREF(__VA_ARGS__); \ > + RUNREF(__VA_ARGS__); \ > + RUNREF(__VA_ARGS__); \ > + uint32_t t1 = (uint32_t)rdtsc() - t0; \ > + if (t1 * refruns <= refcycles * 4 && ti > 0) { refcycles += > t1; refruns++; } \ > + } \ > + x265_emms(); \ > + float optperf = (10.0f * cycles / runs) / 4; \ > + float refperf = (10.0f * refcycles / refruns) / 4; \ > + printf("\t%3.2fx ", refperf / optperf); \ > + printf("\t %-8.2lf \t %-8.2lf\n", optperf, refperf); \ > + } > + > +#else > #define REPORT_SPEEDUP(RUNOPT, RUNREF, ...) \ > { \ > uint32_t cycles = 0; int runs = 0; \ > @@ -123,6 +158,7 @@ > printf("\t %-8.2lf \t %-8.2lf\n", optperf, refperf); \ > } > > +#endif > extern "C" { > #if X265_ARCH_X86 > int PFX(stack_pagealign)(int (*func)(), int align); >
_______________________________________________ x265-devel mailing list [email protected] https://mailman.videolan.org/listinfo/x265-devel
