Merge remote-tracking branch 'upstream/3.4' into merge-3.4
authorAlexander Alekhin <alexander.a.alekhin@gmail.com>
Sat, 13 Mar 2021 13:02:18 +0000 (13:02 +0000)
committerAlexander Alekhin <alexander.a.alekhin@gmail.com>
Sat, 13 Mar 2021 13:02:18 +0000 (13:02 +0000)
1  2 
doc/js_tutorials/js_setup/js_setup/js_setup.markdown
modules/calib3d/src/solvepnp.cpp
modules/core/src/system.cpp
modules/core/test/ocl/test_opencl.cpp
modules/dnn/src/layers/detection_output_layer.cpp
modules/dnn/src/layers/mvn_layer.cpp
modules/dnn/src/layers/resize_layer.cpp
platforms/js/build_js.py
platforms/js/opencv_js.config.py
samples/cpp/tutorial_code/calib3d/camera_calibration/camera_calibration.cpp
samples/dnn/virtual_try_on.py

@@@ -138,13 -138,7 +138,14 @@@ Building OpenCV.js from Sourc
      python ./platforms/js/build_js.py build_js --cmake_option="-DOPENCV_EXTRA_MODULES_PATH=opencv_contrib/modules"
      @endcode
  
 +-#  [optional] To enable OpenCV contrib modules append `--cmake_option="-DOPENCV_EXTRA_MODULES_PATH=/path/to/opencv_contrib/modules/"`
 +
 +    For example:
 +    @code{.bash}
 +    python ./platforms/js/build_js.py build_js --cmake_option="-DOPENCV_EXTRA_MODULES_PATH=opencv_contrib/modules"
 +    @endcode
 +
  Running OpenCV.js Tests
  ---------------------------------------
  
Simple merge
@@@ -588,20 -590,27 +591,31 @@@ struct HWFeature
      #ifdef __mips_msa
          have[CV_CPU_MSA] = true;
      #endif
-     // there's no need to check VSX availability in runtime since it's always available on ppc64le CPUs
-     have[CV_CPU_VSX] = (CV_VSX);
-     // TODO: Check VSX3 availability in runtime for other platforms
-     #if CV_VSX && defined __linux__
-         uint64 hwcap2 = getauxval(AT_HWCAP2);
-         have[CV_CPU_VSX3] = (hwcap2 & PPC_FEATURE2_ARCH_3_00);
+     #if (defined __ppc64__ || defined __PPC64__) && defined __linux__
+         unsigned int hwcap = getauxval(AT_HWCAP);
+         if (hwcap & PPC_FEATURE_HAS_VSX) {
+             hwcap = getauxval(AT_HWCAP2);
+             if (hwcap & PPC_FEATURE2_ARCH_3_00) {
+                 have[CV_CPU_VSX] = have[CV_CPU_VSX3] = true;
+             } else {
+                 have[CV_CPU_VSX] = (hwcap & PPC_FEATURE2_ARCH_2_07) != 0;
+             }
+         }
      #else
-         have[CV_CPU_VSX3] = (CV_VSX3);
+         // TODO: AIX, FreeBSD
+         #if CV_VSX || defined _ARCH_PWR8 || defined __POWER9_VECTOR__
+             have[CV_CPU_VSX] = true;
+         #endif
+         #if CV_VSX3 || defined __POWER9_VECTOR__
+             have[CV_CPU_VSX3] = true;
+         #endif
      #endif
  
 +    #if defined __riscv && defined __riscv_vector
 +        have[CV_CPU_RVV] = true;
 +    #endif
 +
          bool skip_baseline_check = false;
  #ifndef NO_GETENV
          if (getenv("OPENCV_SKIP_CPU_BASELINE_CHECK"))
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge