diff --git a/3rdparty/simdlib/CMakeLists.txt b/3rdparty/simdlib/CMakeLists.txt index 7056b6d382..49b7273c10 100644 --- a/3rdparty/simdlib/CMakeLists.txt +++ b/3rdparty/simdlib/CMakeLists.txt @@ -1,5 +1,8 @@ project(${SIMD_LIBRARY}) +# SIMD_VERSION should math the version set in Simd/SimdVersion.h +set(SIMD_VERSION "4.9.109" PARENT_SCOPE) + vp_include_directories(${CMAKE_CURRENT_SOURCE_DIR}) set(COMMON_CXX_FLAGS "${CMAKE_CXX_FLAGS}") diff --git a/CMakeLists.txt b/CMakeLists.txt index a97bd70bcc..b0b8331c42 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1777,7 +1777,7 @@ status(" \\- Use ZLIB:" USE_ZLIB THEN "yes (ver ${ZLIB_VERS status(" Use OpenCV:" USE_OPENCV THEN "yes (ver ${OpenCV_VERSION})" ELSE "no") status(" Use stb_image (built-in):" WITH_STBIMAGE THEN "yes (ver ${STBIMAGE_VERSION})" ELSE "no") status(" Use TinyEXR (built-in):" WITH_TINYEXR THEN "yes (ver ${TINYEXR_VERSION})" ELSE "no") -status(" Use simdlib (built-in):" WITH_SIMDLIB THEN "yes" ELSE "no") +status(" Use simdlib (built-in):" WITH_SIMDLIB THEN "yes (ver ${SIMD_VERSION})" ELSE "no") status(" Use npz I/O (built-in):" WITH_MINIZ THEN "yes" ELSE "no") status("") status(" Real robots: ") @@ -1863,10 +1863,10 @@ status(" Use json (nlohmann system):" USE_NLOHMANN_JSON THEN "yes (ver ${nlo endif() status("") status(" Optimization: ") -status(" Use OpenMP:" USE_OPENMP THEN "yes" ELSE "no") +status(" Use OpenMP:" USE_OPENMP THEN "yes (ver ${OpenMP_CXX_VERSION})" ELSE "no") status(" Use std::thread:" USE_THREADS THEN "yes" ELSE "no") status(" Use pthread:" USE_PTHREAD THEN "yes" ELSE "no") -status(" Use simdlib (built-in):" WITH_SIMDLIB THEN "yes" ELSE "no") +status(" Use simdlib (built-in):" WITH_SIMDLIB THEN "yes (ver ${SIMD_VERSION})" ELSE "no") status("") status(" DNN: ") status(" Use CUDA Toolkit:" USE_TENSORRT AND CUDA_FOUND THEN "yes (ver ${CUDA_VERSION})" ELSE "no") @@ -1875,7 +1875,7 @@ status(" Use TensorRT:" USE_TENSORRT THEN "yes (ver ${TENSORR # ========================== documentation ========================== status("") status(" Documentation: ") -status(" Use doxygen:" DOXYGEN_FOUND THEN "yes" ELSE "no") +status(" Use doxygen:" DOXYGEN_FOUND THEN "yes (ver ${DOXYGEN_VERSION})" ELSE "no") status(" \\- Use mathjax:" USE_MATHJAX THEN "yes" ELSE "no") # ========================== samples and tests ========================== diff --git a/ChangeLog.txt b/ChangeLog.txt index 05179dc2b8..f85f39e125 100644 --- a/ChangeLog.txt +++ b/ChangeLog.txt @@ -44,6 +44,8 @@ ViSP 3.x.x (Version in development) . Update tinyexr 3rdparty to 1.0.9 release . Update stb_image 3rdparty to 2.30 version . Update Catch2 3rdparty to 3.7.1 version + . Add compatibility with Yolo v11 in vpDetectorDNNOpenCV a wrapper over the OpenCV DNN module that allows + to detect objects - Applications . Migrate eye-to-hand tutorials in apps - Tutorials diff --git a/modules/ar/src/panda3d-simulator/vpPanda3DGeometryRenderer.cpp b/modules/ar/src/panda3d-simulator/vpPanda3DGeometryRenderer.cpp index a9d65345ed..5f8d211f4b 100644 --- a/modules/ar/src/panda3d-simulator/vpPanda3DGeometryRenderer.cpp +++ b/modules/ar/src/panda3d-simulator/vpPanda3DGeometryRenderer.cpp @@ -198,16 +198,22 @@ void vpPanda3DGeometryRenderer::getRender(vpImage &normals, vpImage(m_renderParameters.getImageWidth()); for (unsigned int i = 0; i < m_renderParameters.getImageHeight(); ++i) { const float *const rowData = data - i * rowIncrement; vpRGBf *normalRow = normals[top + i]; float *depthRow = depth[top + i]; -#pragma omp simd - for (unsigned int j = 0; j < m_renderParameters.getImageWidth(); ++j) { - normalRow[left + j].R = (rowData[j * 4]); - normalRow[left + j].G = (rowData[j * 4 + 1]); - normalRow[left + j].B = (rowData[j * 4 + 2]); - depthRow[left + j] = (rowData[j * 4 + 3]); +#if defined(VISP_HAVE_OPENMP) +#pragma omp parallel for +#endif + for (int j = 0; j < image_width; ++j) { + int left_j = left + j; + int j_4 = j * 4; + normalRow[left_j].R = (rowData[j_4]); + normalRow[left_j].G = (rowData[j_4 + 1]); + normalRow[left_j].B = (rowData[j_4 + 2]); + depthRow[left_j] = (rowData[j_4 + 3]); } } }