Skip to content

Commit d1f126c

Browse files
authored
Merge branch 'AcademySoftwareFoundation:main' into CUDA
2 parents d53f122 + 94ec2de commit d1f126c

57 files changed

Lines changed: 3497 additions & 428 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/ci.yml

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -406,20 +406,22 @@ jobs:
406406
# like this test to have minimal missing dependencies.
407407
required_deps: all
408408
optional_deps: 'CUDAToolkit;DCMTK;JXL;Nuke;OpenCV;OpenGL;OpenVDB;R3DSDK'
409-
- desc: bleeding edge gcc14 C++23 py3.12 OCIO/libtiff/exr-main avx2
409+
- desc: bleeding edge gcc15 C++23 py3.12 OCIO/libtiff/exr-main avx2
410410
nametag: linux-bleeding-edge
411411
runner: ubuntu-24.04
412-
cc_compiler: gcc-14
413-
cxx_compiler: g++-14
412+
# cc_compiler: gcc-15
413+
# cxx_compiler: g++-15
414414
cxx_std: 23
415-
fmt_ver: master
415+
fmt_ver: main
416416
opencolorio_ver: main
417417
openexr_ver: main
418418
pybind11_ver: master
419419
python_ver: "3.12"
420420
simd: avx2,f16c
421421
benchmark: 1
422-
setenvs: export LIBJPEGTURBO_VERSION=main
422+
gcc_action_ver: 15
423+
setenvs: export OIIO_CC=gcc-15 OIIO_CXX=g++-15
424+
LIBJPEGTURBO_VERSION=main
423425
LIBPNG_VERSION=master
424426
LIBRAW_VERSION=master
425427
LIBTIFF_VERSION=master
@@ -432,6 +434,9 @@ jobs:
432434
FREETYPE_VERSION=master
433435
OpenImageIO_DEPENDENCY_BUILD_ALLOW_UNVERIFIED_TAGS=ON
434436
QT_VERSION=0 INSTALL_OPENCV=0 USE_OPENVDB=0
437+
UHDR_CMAKE_C_COMPILER=gcc
438+
UHDR_CMAKE_CXX_COMPILER=g++
439+
OPENCOLORIO_CXX=c++
435440
# The installed OpenVDB has a TLS conflict with Python 3.8
436441
# Ensure we are testing all the deps we think we are. We would
437442
# like this test to have minimal missing dependencies.

.github/workflows/wheel.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,7 @@ jobs:
8787
if: |
8888
${{ github.event_name != 'schedule' || github.event.repository.fork == false }}
8989
strategy:
90+
fail-fast: false
9091
matrix:
9192
include:
9293
# -------------------------------------------------------------------
@@ -295,6 +296,7 @@ jobs:
295296
if: |
296297
github.event_name != 'schedule' || github.event.repository.fork == false
297298
strategy:
299+
fail-fast: false
298300
matrix:
299301
include:
300302
# -------------------------------------------------------------------
@@ -383,6 +385,7 @@ jobs:
383385
if: |
384386
github.event_name != 'schedule' || github.event.repository.fork == false
385387
strategy:
388+
fail-fast: false
386389
matrix:
387390
include:
388391
# -------------------------------------------------------------------
@@ -462,6 +465,7 @@ jobs:
462465
if: |
463466
github.event_name != 'schedule' || github.event.repository.fork == false
464467
strategy:
468+
fail-fast: false
465469
matrix:
466470
include:
467471
# -------------------------------------------------------------------

CHANGES.md

Lines changed: 106 additions & 8 deletions
Large diffs are not rendered by default.

CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,7 @@ else ()
112112
endif ()
113113
option (${PROJ_NAME}_BUILD_TOOLS "Build the command-line tools" ON)
114114
option (${PROJ_NAME}_BUILD_TESTS "Build the unit tests" ON)
115+
set_option (OIIO_USE_HWY "Enable experimental Google Highway SIMD optimizations (if Highway is available)" OFF VERBOSE)
115116
set (OIIO_LIBNAME_SUFFIX "" CACHE STRING
116117
"Optional name appended to ${PROJECT_NAME} libraries that are built")
117118
option (BUILD_OIIOUTIL_ONLY "If ON, will build *only* libOpenImageIO_Util" OFF)

CREDITS.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ by first name.
44
If you know of somebody that I missed or have corrections, please email:
55
lg@openimageio.org
66

7+
* Aamir Raza
78
* Aaron Colwell
89
* Adam Mains
910
* Akihiro Yamasaki

INSTALL.md

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -17,16 +17,16 @@ NEW or CHANGED MINIMUM dependencies since the last major release are **bold**.
1717
* C++17 or higher (also builds with C++20 and C++23)
1818
* The default build mode is C++17. This can be controlled by via the
1919
CMake configuration flag: `-DCMAKE_CXX_STANDARD=20`, etc.
20-
* Compilers: gcc 9.3 - 14.2, clang 10 - 22, MSVS 2017 - 2022 (v19.14
20+
* Compilers: gcc 9.3 - 15.2, clang 10 - 22, MSVS 2017 - 2026 (v19.14
2121
and up), Intel OneAPI C++ compiler 2022+.
22-
* CMake >= 3.18.2 (tested through 4.1)
22+
* CMake >= 3.18.2 (tested through 4.3)
2323
* Imath >= 3.1 (tested through 3.2 and main)
2424
* OpenEXR >= 3.1 (tested through 3.4 and main)
2525
* libTIFF >= 4.0 (tested through 4.7 and master)
2626
* OpenColorIO >= 2.3 (tested through 2.5 and main)
2727
* libjpeg >= 8 (tested through jpeg9e), or libjpeg-turbo >= 2.1 (tested
2828
through 3.1)
29-
* zlib >= 1.2.7 (tested through 1.3.1)
29+
* zlib >= 1.2.7 (tested through 1.3.2)
3030
* **[fmtlib](https://github.com/fmtlib/fmt) >= 9.0** (tested through 12.1 and master).
3131
If not found at build time, this will be automatically downloaded and built.
3232
* [Robin-map](https://github.com/Tessil/robin-map) (unknown minimum, tested
@@ -36,14 +36,14 @@ NEW or CHANGED MINIMUM dependencies since the last major release are **bold**.
3636
### Optional dependencies -- features may be disabled if not found
3737
* If you are building the `iv` viewer (which will be disabled if any of
3838
these are not found):
39-
* Qt5 >= 5.6 (tested through 5.15) or Qt6 (tested through 6.9)
39+
* Qt5 >= 5.6 (tested through 5.15) or Qt6 (tested through 6.11)
4040
* OpenGL
4141
* If you are building the Python bindings or running the testsuite:
4242
* Python >= 3.9 (tested through 3.13).
4343
* pybind11 >= 2.7 (tested through 3.0)
44-
* NumPy (tested through 2.2.4)
44+
* NumPy (tested through 2.4.4)
4545
* If you want support for PNG files:
46-
* libPNG >= 1.6.0 (tested though 1.6.50)
46+
* libPNG >= 1.6.0 (tested though 1.6.56)
4747
* If you want support for camera "RAW" formats:
4848
* LibRaw >= 0.20 (tested though 0.22.0 and master)
4949
* If you want support for a wide variety of video formats:
@@ -52,20 +52,20 @@ NEW or CHANGED MINIMUM dependencies since the last major release are **bold**.
5252
* OpenJpeg >= 2.0 (tested through 2.5.4; we recommend 2.4 or higher
5353
for multithreading support)
5454
* If you want support for OpenVDB files:
55-
* OpenVDB >= 9.0 (tested through 12.1).
55+
* OpenVDB >= 9.0 (tested through 13.0).
5656
* If you want to use TBB as the thread pool:
5757
* TBB >= 2018 (tested through 2021 and OneTBB)
5858
* If you want support for converting to and from OpenCV data structures,
5959
or for capturing images from a camera:
60-
* OpenCV 4.x (tested through 4.12)
60+
* OpenCV 4.x (tested through 4.13)
6161
* If you want support for GIF images:
62-
* giflib >= 5.0 (tested through 5.2.2)
62+
* giflib >= 5.0 (tested through 6.1.2)
6363
* If you want support for HEIF/HEIC or AVIF images:
6464
* libheif >= 1.11 (1.16 required for correct orientation support and
65-
1.17 required for monochrome HEIC support; tested through 1.21.1)
65+
1.17 required for monochrome HEIC support; tested through 1.21.2)
6666
* libheif must be built with an AV1 encoder/decoder for AVIF support.
6767
* If you want support for DICOM medical image files:
68-
* DCMTK >= 3.6.1 (tested through 3.6.9)
68+
* DCMTK >= 3.6.1 (tested through 3.7.0)
6969
* If you want support for WebP images:
7070
* WebP >= 1.1 (tested through 1.6)
7171
* If you want support for Ptex:
@@ -75,9 +75,9 @@ NEW or CHANGED MINIMUM dependencies since the last major release are **bold**.
7575
* If you want to be able to read "ultra-HDR" embedded in JPEG files:
7676
* libultrahdr >= 1.3 (tested through 1.4)
7777
* If you want support for JPEG XL images:
78-
* libjxl >= 0.10.1 (tested through 0.11.1)
78+
* libjxl >= 0.10.1 (tested through 0.11.2)
7979
* If you want support for j2c files:
80-
* OpenJPH >= 0.21.2 (tested through 0.23)
80+
* OpenJPH >= 0.21.2 (tested through 0.26)
8181
* We use PugiXML for XML parsing. There is a version embedded in the OIIO
8282
tree, but if you want to use an external, system-installed version (as
8383
may be required by some software distributions with policies against

docs/dev/Architecture.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,10 @@ objects. These algorithms include simple operations like copying, resizing,
117117
and compositing images, as well as more complex operations like color
118118
conversions, resizing, filtering, etc.
119119

120+
Some performance-critical `ImageBufAlgo` implementations have SIMD-accelerated
121+
paths using Google Highway. For implementation details and guidance for adding
122+
new kernels, see `docs/dev/ImageBufAlgo_Highway.md`.
123+
120124
## Image caching: TextureSystem and ImageCache
121125

122126
There are situations where ImageBuf is still not the right abstraction,

0 commit comments

Comments
 (0)