From 0d9ab3c4951f90a45d99ea97bee0738106f4db28 Mon Sep 17 00:00:00 2001 From: Larry Gritz Date: Sun, 3 Dec 2023 17:30:23 +0900 Subject: [PATCH] Stage for v1.13.6.0 (beta 1) Signed-off-by: Larry Gritz --- .github/workflows/ci.yml | 3 +- CHANGES.md | 70 +++++++++++++++++++++++++++++++--------- CMakeLists.txt | 6 ++-- INSTALL.md | 12 +++---- README.md | 40 +++++++++++++++-------- 5 files changed, 92 insertions(+), 39 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 0bb0605b7..a553c9566 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -255,7 +255,7 @@ jobs: fmt_ver: 10.1.1 pybind11_ver: v2.10.0 skip_tests: 1 - abi_check: 8374278a07d88358a6931dc2492f98ca49b21038 + abi_check: 1726df72a9841df93bc74a5184d78cacb44b585d setenvs: export OSL_CMAKE_FLAGS="-DOSL_BUILD_TESTS=0 -DBUILD_TESTING=OFF -DUSE_QT=0" OPENIMAGEIO_CMAKE_FLAGS="-DUSE_PYTHON=0" CMAKE_BUILD_TYPE=RelWithDebInfo @@ -326,6 +326,7 @@ jobs: run: | mkdir -p abi_standard/build pushd abi_standard + export LD_LIBRARY_PATH="${PWD}/build/lib:${LD_LIBRARY_PATH}" src/build-scripts/ci-build.bash popd - name: Check ABI diff --git a/CHANGES.md b/CHANGES.md index 08f22c896..36e869b97 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -1,20 +1,27 @@ -Release 1.13 -- October?? 2023 ?? (compared to 1.12) --------------------------------------------------- -### Dependency and standards requirements changes: -* OptiX 6.0 support has been removed. For GPU rendering with OptiX, a minimum - of OptiX 7.0 is required. +Release 1.13 -- beta 1: December 20, 2023 (compared to 1.12) +------------------------------------------------------------- + +### New minimum dependencies and compatibility changes: + +* For GPU/OptiX mode, OptiX 6.0 support has been removed. For GPU rendering + with OptiX, a minimum of OptiX 7.0 is required, and the Cuda minimum has + been raised to 9.0 [#1737](https://github.com/AcademySoftwareFoundation/OpenImageIO/pull/1737) * The minimum version OpenImageIO has been raised from 2.2 to 2.4. [#1591](https://github.com/AcademySoftwareFoundation/OpenShadingLanguage/pull/1591) [#1722](https://github.com/AcademySoftwareFoundation/OpenShadingLanguage/pull/1722) - (to 2.3 in 1.13.0.3, to 2.4 in 1.13.4.0) -* Raise minimum CMake dependency from 3.12 to 3.15 [#1724](https://github.com/AcademySoftwareFoundation/OpenShadingLanguage/pull/1724) (1.13.5.0) -* Raise minimum Imath/OpenEXR from 2.3 to 2.4. +* The minimum CMake dependency has been raised from 3.12 to 3.15 + [#1724](https://github.com/AcademySoftwareFoundation/OpenShadingLanguage/pull/1724) (1.13.5.0) +* The minimum Imath/OpenEXR has been raised from 2.3 to 2.4. (Note: OSL 1.13 + is probably the last major release family that will support Imath/OpenEXR + 2.x.) ### OSL Language and oslc compiler: + * There have been no substantive changes to the OSL language in this release. -### API changes, new options, new ShadingSystem features (for renderer writers): +### ⛰️ API changes, new options, new ShadingSystem features (for renderer writers): + * A new `shadingStateUniform` pointer field was added to ShaderGlobals for planned future expansion and improved GPU support. #1585 (1.13.1.0) * Adding relaxed type-equivalency to ReParameter() [#1639](https://github.com/AcademySoftwareFoundation/OpenShadingLanguage/pull/1639) (by cmstein) (1.13.2.1) @@ -40,7 +47,8 @@ Release 1.13 -- October?? 2023 ?? (compared to 1.12) * Rs fmt specification - Journaling Algorithm for error, warning, fprintf [#1702](https://github.com/AcademySoftwareFoundation/OpenShadingLanguage/pull/1702) (by Steena Monteiro) [#1711](https://github.com/AcademySoftwareFoundation/OpenShadingLanguage/pull/1711) [#1715](https://github.com/AcademySoftwareFoundation/OpenShadingLanguage/pull/1715) (1.13.5.0) -### SIMD batched shading mode +### 🚀 SIMD batched shading mode + * Fix some array overruns (asymptomatic, but still potentially buggy) in common_ancestor_between. #1577 (1.13.0.2) * Fix issue with closure keyword parameters. #1620 (1.13.2.0/1.12.8.0) @@ -48,8 +56,11 @@ Release 1.13 -- October?? 2023 ?? (compared to 1.12) (1.13.2.0/1.12.8.0) * Fix support for closures with array types. #1630 (1.13.2.0/1.12.8.0) * Fix bug with masked wide llvm_gen_closure() [#1637](https://github.com/AcademySoftwareFoundation/OpenShadingLanguage/pull/1637) (by danieldresser-ie) (1.13.2.1) +* Fix Force LLVM Boolean [#1717](https://github.com/AcademySoftwareFoundation/OpenImageIO/pull/1717) (by Alex Wells) +* Batched pointcloud if "index" is not passed [#1753](https://github.com/AcademySoftwareFoundation/OpenImageIO/pull/1753) (by Alex Wells) + +### 🚀 OptiX GPU rendering -### OptiX GPU rendering * OptiX 6.0 support has been removed. For GPU rendering with OptiX, a minimum of OptiX 7.0 is required. * Big overhaul/simplification of how strings are represented on the GPU: the @@ -81,7 +92,8 @@ Release 1.13 -- October?? 2023 ?? (compared to 1.12) * Perf: Don't insert redundant run layer calls inside a basic block [#1665](https://github.com/AcademySoftwareFoundation/OpenShadingLanguage/pull/1665) [#1669](https://github.com/AcademySoftwareFoundation/OpenShadingLanguage/pull/1669) [#1672](https://github.com/AcademySoftwareFoundation/OpenShadingLanguage/pull/1672) (by Chris Hellmuth) (1.13.4.0) -### 🐛 Fixes and other improvements (internals) +### 🐛/🔧 Internals: fixes, improvements, and developer concerns + * Fix memory leak in oslc ASTvariable_declaration. #1576 (1.13.0.2) * Fix memory leaks in LPE code in error conditions. #1593 #1594 (1.13.0.3) * Fix mismatched strides when calling OCIO for transformc with derivs [#1646](https://github.com/AcademySoftwareFoundation/OpenShadingLanguage/pull/1646) (1.13.4.0) @@ -98,8 +110,6 @@ Release 1.13 -- October?? 2023 ?? (compared to 1.12) * oslc: Add missing `fmod()` variants [#1643](https://github.com/AcademySoftwareFoundation/OpenShadingLanguage/pull/1643) (1.13.4.0) * Simple constant folding of binary expressions now happen on the oslc side [#1653](https://github.com/AcademySoftwareFoundation/OpenShadingLanguage/pull/1653) (1.13.4.0) - -### 🔧 Internals and developer concerns * platform.h: * New `OSL_ALLOCA` macro to allocate on the stack. #1589 (1.13.0.3) * Define OSL::bitcast utility. #1610 (1.13.2.0) @@ -115,8 +125,12 @@ Release 1.13 -- October?? 2023 ?? (compared to 1.12) * Give ShadingSystemImpl a handy use_optix() method [#1682](https://github.com/AcademySoftwareFoundation/OpenShadingLanguage/pull/1682) (1.13.4.0) * Fix default fmt logic changing in latest openimageio release [#1725](https://github.com/AcademySoftwareFoundation/OpenShadingLanguage/pull/1725) (1.13.5.0) * The recently added SS::find_symloc can have const args [#1723](https://github.com/AcademySoftwareFoundation/OpenShadingLanguage/pull/1723) (1.13.5.0) +* SymOverrideInfo bitfields should be the same type [#1745](https://github.com/AcademySoftwareFoundation/OpenImageIO/pull/1745) +* Fix wrong offset of MxSheen param [#1751](https://github.com/AcademySoftwareFoundation/OpenImageIO/pull/1751) (by Rasmus Bonnedal) +* Make get_texture_info robust to empty shaderglobals param [#1731](https://github.com/AcademySoftwareFoundation/OpenImageIO/pull/1731) ### 🏗 Build/test/CI and platform ports + * CMake build system and scripts: * The version number is now a cache variable, and so can be overridden at build time using `-DOSL_VERSION=...`. Use with extreme caution! #1579 @@ -127,8 +141,9 @@ Release 1.13 -- October?? 2023 ?? (compared to 1.12) * Fix incorrect CMake variable name to control symbol visibility [#1681](https://github.com/AcademySoftwareFoundation/OpenShadingLanguage/pull/1681) (1.13.4.0) * Change cmake option `USE_OPTIX` -> `OSL_USE_OPTIX` [#1668](https://github.com/AcademySoftwareFoundation/OpenShadingLanguage/pull/1668) (1.13.4.0) - * Fix duplicate osl lexing symbols when building as static libraries + * Fix duplicate osl lexing symbols when building as static libraries [#1709](https://github.com/AcademySoftwareFoundation/OpenShadingLanguage/pull/1709) (by Brecht Van Lommel) (1.13.5.0) + * Better cmake verbose behavior [#1752](https://github.com/AcademySoftwareFoundation/OpenImageIO/pull/1752) * Dependency version support: * Fix some issues that came up with the new icx 2022.0 compiler. #1601 (1.13.1.0) @@ -140,6 +155,12 @@ Release 1.13 -- October?? 2023 ?? (compared to 1.12) * Qt6 compatibility [#1655](https://github.com/AcademySoftwareFoundation/OpenShadingLanguage/pull/1655) (1.13.4.0) * Fix warnings about Qt compilation and enums [#1661](https://github.com/AcademySoftwareFoundation/OpenShadingLanguage/pull/1661) (1.13.4.0) * Changes to support fmt 10.0 [#1691](https://github.com/AcademySoftwareFoundation/OpenShadingLanguage/pull/1691) (1.13.5.0) + * Raise OpenEXR minimum to 2.4 [#1734](https://github.com/AcademySoftwareFoundation/OpenImageIO/pull/1734) + * Fix Partio build errors on pointcloud functions for MSVC [#1757](https://github.com/AcademySoftwareFoundation/OpenImageIO/pull/1757) (by Alex Wells) + * Bump Cuda minimum to 9.0 [#1737](https://github.com/AcademySoftwareFoundation/OpenImageIO/pull/1737) + * LLVM 16 and 17 support: LLVM opaque pointers support [#1728](https://github.com/AcademySoftwareFoundation/OpenImageIO/pull/1728), + LLVM new pass manager support [#1729](https://github.com/AcademySoftwareFoundation/OpenImageIO/pull/1729), + finish LLVM 16 and 17 support [#1730](https://github.com/AcademySoftwareFoundation/OpenImageIO/pull/1730) (all by Brecht Van Lommel) * Testing and Continuous integration (CI) systems: * Dynamic analysis using address and leak sanitizers. #1581 (1.13.0.3) * `testshade --help` now prints TextureSystem options and all hardware @@ -158,20 +179,39 @@ Release 1.13 -- October?? 2023 ?? (compared to 1.12) [#1660](https://github.com/AcademySoftwareFoundation/OpenShadingLanguage/pull/1660) (by Massimo Paladin) (1.13.4.0) * *ci*: Simplify build_llvm.bash script [#1703](https://github.com/AcademySoftwareFoundation/OpenShadingLanguage/pull/1703) (1.13.5.0) * Test interactive parameter initialization in optix testrender [#1687](https://github.com/AcademySoftwareFoundation/OpenShadingLanguage/pull/1687) (by Chris Hellmuth) (1.13.5.0) + * Fix GPU job not actually enabling OptiX [#1738](https://github.com/AcademySoftwareFoundation/OpenImageIO/pull/1738) (by Brecht Van Lommel) + * Fix python-oslquery test failure on macOS [#1739](https://github.com/AcademySoftwareFoundation/OpenImageIO/pull/1739) (by Brecht Van Lommel) + * Disable MacOS-11 CI [#1746](https://github.com/AcademySoftwareFoundation/OpenImageIO/pull/1746) + * Skip analysis and scorecard workflows on push if only docs changed [#1744](https://github.com/AcademySoftwareFoundation/OpenImageIO/pull/1744) + * For clarity, use the term 'runner' instead of 'os' [#1743](https://github.com/AcademySoftwareFoundation/OpenImageIO/pull/1743) + * Test ABI compliance [#1748](https://github.com/AcademySoftwareFoundation/OpenImageIO/pull/1748) + * Fix tests passing when test commands fail [#1733](https://github.com/AcademySoftwareFoundation/OpenImageIO/pull/1733) (by Brecht Van Lommel) * Platform support: * Include `immintrin.h` only when needed. #1605 (1.13.1.0) * Changed snprintf formatting to satisfy some compilers. [#1640](https://github.com/AcademySoftwareFoundation/OpenShadingLanguage/pull/1640) (by pellerington) (1.13.4.0) * Fix some windows GPU build errors [#1638](https://github.com/AcademySoftwareFoundation/OpenShadingLanguage/pull/1638) (by Declan Russell) (1.13.4.0) * Fix for Apple clang 14+ warnings [#1697](https://github.com/AcademySoftwareFoundation/OpenShadingLanguage/pull/1697) (1.13.5.0) + * Fix struct align/pack for MSVC [#1754](https://github.com/AcademySoftwareFoundation/OpenImageIO/pull/1754) (by Rasmus Bonnedal) + * Refactor icc/icx specific pragma macros [#1756](https://github.com/AcademySoftwareFoundation/OpenImageIO/pull/1756) (by Alex Wells) ### 📚 Documentation + +* First stab at ReadTheDocs -- new [Experimental OSL Documentation on + ReadTheDocs](https://openshadinglanguage.readthedocs.io/) + is still a little rough, but eventually will be our primary documentation. + [#1736](https://github.com/AcademySoftwareFoundation/OpenImageIO/pull/1736) * `doc/RELEASING.md` documents our release process and versioning policies. #1572 (1.13.0.2) * Improve documentation of `trace` function [#1671](https://github.com/AcademySoftwareFoundation/OpenShadingLanguage/pull/1671) (by AidanWelch) (1.13.4.0) * Update CONTRIBUTING [#1689](https://github.com/AcademySoftwareFoundation/OpenShadingLanguage/pull/1689) (1.13.5.0) * Update logos [#1705](https://github.com/AcademySoftwareFoundation/OpenShadingLanguage/pull/1705), Move logos and add an icon-only logo [#1707](https://github.com/AcademySoftwareFoundation/OpenShadingLanguage/pull/1707) (1.13.5.0) +### 🏢 Project Administration + +* Alert slack "release-announcements" channel upon OSL release [#1740](https://github.com/AcademySoftwareFoundation/OpenImageIO/pull/1740) [#1749](https://github.com/AcademySoftwareFoundation/OpenImageIO/pull/1749) +* Update pull request template [#1741](https://github.com/AcademySoftwareFoundation/OpenImageIO/pull/1741) + --- --- diff --git a/CMakeLists.txt b/CMakeLists.txt index efb21ca13..8af6f88fe 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -4,7 +4,7 @@ cmake_minimum_required (VERSION 3.15) -set (OSL_VERSION "1.13.5.0") +set (OSL_VERSION "1.13.6.0") set (OSL_VERSION_OVERRIDE "" CACHE STRING "Version override (use with caution)!") mark_as_advanced (OSL_VERSION_OVERRIDE) @@ -18,12 +18,12 @@ project (OSL VERSION ${OSL_VERSION} set (PROJ_NAME ${PROJECT_NAME}) # short name string (TOLOWER ${PROJ_NAME} PROJ_NAME_LOWER) # short name lower case string (TOUPPER ${PROJ_NAME} PROJ_NAME_UPPER) # short name upper case -set (PROJECT_VERSION_RELEASE_TYPE "dev" CACHE STRING +set (PROJECT_VERSION_RELEASE_TYPE "beta1" CACHE STRING "Build type, for example: dev, beta2, RC1 (empty string for normal release)") set (${PROJECT_NAME}_VERSION_RELEASE_TYPE ${PROJECT_VERSION_RELEASE_TYPE}) set (PROJECT_AUTHORS "Contributors to the Open Shading Language project") option (${PROJECT_NAME}_SUPPORTED_RELEASE - "Set ON for supported release branch, OFF for master" OFF) + "Set ON for supported release branch, OFF for master" ON) if (${PROJECT_NAME}_SUPPORTED_RELEASE) set (${PROJECT_NAME}_DEV_RELEASE OFF) else () diff --git a/INSTALL.md b/INSTALL.md index 03b898c18..c6c1d5cb1 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -40,16 +40,15 @@ NEW or CHANGED dependencies since the last major release are **bold**. $OpenImageIO_ROOT/lib to be in your LD_LIBRARY_PATH (or DYLD_LIBRARY_PATH on OS X). -* [LLVM](http://www.llvm.org) 9, 10, 11, 12, 13, 14, or 15, including - clang libraries. LLVM 16 doesn't work yet, we need to make changes - on the OSL side to be compatible. +* [LLVM](http://www.llvm.org) 9, 10, 11, 12, 13, 14, 15, or 16, including + clang libraries. * (optional) For GPU rendering on NVIDIA GPUs: * [OptiX](https://developer.nvidia.com/rtx/ray-tracing/optix) 7.0 or higher. * [Cuda](https://developer.nvidia.com/cuda-downloads) 9.0 or higher. It is recommended that you use 11.0 or higher. -* [Boost](https://www.boost.org) 1.55 or newer (tested through boost 1.82) +* [Boost](https://www.boost.org) 1.55 or newer (tested through boost 1.83) * [Ilmbase or Imath](https://github.com/AcademySoftwareFoundation/Imath) 2.4 or newer (recommended: 3.1 or higher; tested through 3.2) NOTE: It is likely that 1.13 is the last release that will support @@ -68,9 +67,10 @@ NEW or CHANGED dependencies since the last major release are **bold**. * Python >= 2.7 (tested against 2.7, 3.7, 3.8, 3.9, 3.10) NOTE: It is likely that 1.13 is the last release that will support Python 2.7. - * pybind11 >= 2.4.2 (Tested through 2.10) + * pybind11 >= 2.4.2 (Tested through 2.11. Note that pybind11 v2.10+ does + not support Python < 3.6.) * NumPy -* (optional) Qt5 >= 5.6 or Qt6 (tested Qt5 through 5.15 and Qt6 through 6.4). +* (optional) Qt5 >= 5.6 or Qt6 (tested Qt5 through 5.15 and Qt6 through 6.6). If not found at build time, the `osltoy` application will be disabled. diff --git a/README.md b/README.md index 290dfdc27..5b92e58bd 100644 --- a/README.md +++ b/README.md @@ -452,7 +452,18 @@ The OSL language specification can be found at distribution) or in the share/doc/OSL/osl-languagespec.pdf file of an installed binary distribution. -For those interested in learning to program in OSL, there is the +[Experimental OSL Documentation on ReadTheDocs](https://openshadinglanguage.readthedocs.io/) +This will be the future documentation. It's probably as complete as the PDF, +but it needs some proofreading, so the PDF is still considered the +authoritative source for now. But some time soon, the old PDF specification +will be deprecated in favor of +this online documentation. + +There is also a [PDF +version](https://readthedocs.org/projects/openshadinglanguage/downloads/pdf/latest/). + +For those interested in learning to program shaders in OSL, there is the [Siggraph 2022 Educator's Forum](https://dl.acm.org/doi/proceedings/10.1145/3532724) [OSL Shaders for RenderMan](https://dl.acm.org/doi/abs/10.1145/3532724.3535604) course, which uses RenderMan in the examples and @@ -515,19 +526,20 @@ The current project leadership is documented in the Many people have contributed features, bug fixes, and other changes to OSL over the years: Steve Agland, Shane Ambler, Martijn Berger, Farchad -Bidgolirad, Nicholas Bishop, Solomon Boulos, Stefan Bruens, Stefan Büttner, -Matthaus G. Chajdas, Clark Chen, Alejandro Conty, Damien Courtois, Dieter De -Baets, Thomas Dinges, Daniel Dresser, Mads Drøschler, Peter Ellerington, Luke -Emrose, Louis Feng, Mark Final, Henri Fousse, Stephen Friedman, Syoyo Fujita, -Tim Grant, Larry Gritz, Nicolas Guiard, Euan Haahr, Derek Haase, Sven-Hendrik -Haase, John Haddon, Niklas Harrysson, Daniel Heckenberg, Chris Hellmuth, -Adrien Herubel, Dan Horák, Thiago Ize, Matt Johnson, Ronan Keryell, Chris -Kulla, Elvic Liang, Max Liani, Adam Martinez, John Mertic, Bastien Montagne, -Steena Monteiro, Patrick Mours, Alexis Oblet, Erich Ocean, Mikko Ohtamaa, Jino -Park, Alexei Pawlow, Jay Reynolds, Declan Russell, Benoit Ruiz, Patrick -Scheibe, Alex Schworer, Jonathan Scruggs, Sergey Sharybin, Mark Sisson, Sandip -Shukla, Cliff Stein, Stephan Steinbach, Luya Tshimbalanga, Esteban Tovagliari, -Brecht Van Lommel, Alexander von Knorring, Alex Wells, Roman Zulak. (Listed +Bidgolirad, Nicholas Bishop, Curtis Black, Rasmus Bonnedal, Solomon Boulos, +Stefan Bruens, Stefan Büttner, Matthaus G. Chajdas, Clark Chen, Alejandro +Conty, Damien Courtois, Dieter De Baets, Thomas Dinges, Daniel Dresser, Mads +Drøschler, Peter Ellerington, Luke Emrose, Louis Feng, Mark Final, Henri +Fousse, Stephen Friedman, Syoyo Fujita, Tim Grant, Larry Gritz, Nicolas +Guiard, Euan Haahr, Derek Haase, Sven-Hendrik Haase, John Haddon, Niklas +Harrysson, Daniel Heckenberg, Chris Hellmuth, Adrien Herubel, Dan Horák, +Thiago Ize, Matt Johnson, Ronan Keryell, Chris Kulla, Elvic Liang, Max Liani, +Adam Martinez, John Mertic, Bastien Montagne, Steena Monteiro, Patrick Mours, +Alexis Oblet, Erich Ocean, Mikko Ohtamaa, Jino Park, Alexei Pawlow, Jay +Reynolds, Declan Russell, Benoit Ruiz, Patrick Scheibe, Alex Schworer, +Jonathan Scruggs, Sergey Sharybin, Mark Sisson, Sandip Shukla, Cliff Stein, +Stephan Steinbach, Luya Tshimbalanga, Esteban Tovagliari, Brecht Van Lommel, +Alexander von Knorring, Aidan Welch, Alex Wells, Roman Zulak. (Listed alphabetically; if we've left anybody out, it is inadvertent, please let us know.)