Tags: AcademySoftwareFoundation/OpenShadingLanguage
Tags
OSL v1.14.5.0 Release 1.14 (6 Apr 2025) -- compared to 1.13 ------------------------------------------------------------- - v1.14.4.0-beta1 - 4 Mar 2025 - v1.14.5.0 (non-beta release) - 6 Apr 2025 New minimum dependencies, toolchain, and compatibility changes: * **C++**: Raise C++ standard to 17 (from 14), gcc min to 9.3 (from 6.3), clang min to 5.0 [#1847](#1847) (1.14.2.0) * **Python**: Raise Python minimum to 3.7 (from 2.7), pybind11 to 2.7 (from 2.4) [#1855](#1855) (1.14.2.0) * **Imath**: Raise Imath minimum to 3.1 (from 2.4) [#1853](#1853) (1.14.2.0) * **CMake** Raise minimum to 3.19 [#1914](#1914) * **OpenImageIO**: Raise minimum to 2.5. [#1914](#1914) Note that it is likely that 1.14 is the last release family that will support OIIO 2.x, and beginning with next year's OSL release, OpenImageIO 3.0+ will be the new minimum. * **LLVM**: New minimum LLVM release is 11.0. [#1914](#1914) * **NO Boost**: Boost is no longer a dependency of OSL. ✏️ OSL Language, standard library, and oslc compiler (for shader writers): - *osl*: Add optional texture(), texture3d(), and environment() argument for "colorspace". This currently is not functional (should be fixed soon), but is legal to pass. [#1966](#1966) (1.14.5.0) - Fix bugs in vector2.h, vector4.h, color2.h, color4.h, docs [#1892](#1892) (1.14.3.0) - Fix the subsurface_bssrdf parameters to conform to MaterialX. [#1823](#1823) (by Christopher Kulla) (1.14.1.0) - *bsdf*: Anisotropic_vdf closure should not set IOR [#1870](#1870) (by Christopher Kulla) (1.14.3.0) - *bsdf*: Add hair_chiang_bsdf closure definition from MaterialX [#1891](#1891) (by Christopher Kulla) (1.14.3.0) ☀️ testshade/testrender/osltoy improvements - *testrender*: Implement new OpenPBR BRDFs: Oren-Nayar [#1817](#1817) (by Christopher Kulla) (1.14.1.0), sheen BRDF [#1819](#1819) (by Christopher Kulla) (1.14.1.0) - *testrender*: Modify testrender to work with triangle meshes [#1865](#1865) (by Christopher Kulla) (1.14.3.0) - *testrender*: Implement basic displacement shader support [#1898](#1898) (by Christopher Kulla) - *testrender*: Full OptiX support in testrender [#1896](#1896) [#1897](#1897) (by Tim Grant) (1.14.3.0) - *testrender*: Improvements to energy conservation between layered BSDFs [#1935](#1935) (by Jonathan Stone) - *osltoy*: Add command line and GUI ways to adjust include search paths [#1876](#1876) (by Maxwell Iverson) (1.14.3.0) ⛰️ API changes and new ShadingSystem features (for renderer writers): - The big switch to `ustringhash`: To better accommodate GPU execution, and to make the code and techniques less divergent between CPU and GPU code paths, we have changed the runtime representation of strings from `ustring` to `ustringhash` -- which is still a 64 bit token, but rather than the address of the unique characters, which may change from run to run and harm the OptiX/CUDA PTX cache performance, it is the deterministic hash of the characters. Thus, not just the runtime, but all of the interfaces of RendererServices and other APIs that the renderers use to set up and communicate with the ShadingSystem, now have been changed to expect ustringhash instead of ustring. [#1732](#1732) (by Steena Monteiro) (1.14.0.0) - Add API for building interpolated getter free functions. [#1765](#1765) (by Thibault Vergne) (1.14.0.0) - Switch `shade_image()` to use current OIIO::paropt [#1843](#1843) (1.14.1.1) - Free functions for texturing, point clouds, and trace [#1852](#1852) (by Curtis Black) (1.14.3.0) - Switch to a 2-level namespace [#1922](#1922) - Add ShadingSystem query to ask if attribute derivatives are requested. [#1932](#1932) (by Curtis Black) (and subsequent OptiX related fixes in [#1951](#1951)) - RendererServices API for renderer to cache key/value pairs. This is currently used to cache ptx generation for OptiX/GPU rendering. [#1938](#1938) [#1954](#1954) (by Chris Hellmuth) 🚀 SIMD batched shading mode - Codegen bug for compref with varying index [#1776](#1776) (by Alex Wells) (1.14.1.0) - Add support for b4_SSE2 batched mode. [#1825](#1825) (by johnfea) (1.14.2.0) - *fix*: Assume BatchedRendererServices texture derivatives are in st space. [#1828](#1828) (by sfriedmapixar) (1.14.2.0) 🚀 OptiX GPU rendering - Fix NVPTX TargetMachine leak, etc. [#1763](#1763) (by Tim Grant) (1.14.0.0) - Fix GPU interpolated param initialization [#1791](#1791) (by Chris Hellmuth) (1.14.1.0) - Add `lazytrace` ShadingSystem option to avoid combinatoric optixTrace inlining: when enabled, run layers with trace ops unconditionally at the start of shader evaluation. This costs some potential performance in cases where the trace layer would never be evaluated, but removes all the compilation penalties that the inlining was presenting. [#1815](#1815) (by Chris Hellmuth) (1.14.1.0) - Mock gpu pointcloud_search calls with empty custom attributes [#1859](#1859) (by Chris Hellmuth) (1.14.2.0) - Fully implement and fix the OptiX path in testrender and testshade [#1896](#1896) [#1897](#1897) (by Tim Grant) (1.14.3.0) - RendererServices API for renderer to cache key/value pairs. This is currently used to cache ptx generation for OptiX/GPU rendering. [#1938](#1938) (by Chris Hellmuth) - Generate symbol derivatives for outputs when requested [#1916](#1916) (by Lukas Stockner) 🐛/🔧 Internals: fixes, improvements, and developer concerns - Mute partio error prints [#1774](#1774) (by olegul) (1.14.1.0) - calculatenormal needs to use the fliphandedness global [#1783](#1783) (by sfriedmapixar) (1.14.1.0) - Print closure missing error message at compile time instead of run time. [#1781](#1781) (by sfriedmapixar) (1.14.1.0) - Make isconnected() work with downstream renderer "connections." [#1782](#1782) (by sfriedmapixar) (1.14.1.0) - *int*: Change OSL_CONSTEXPR14 to constexpr [#1805](#1805) (1.14.1.0) - Remove unnecessary ustring lookup [#1824](#1824) (by Chris Hellmuth) (1.14.1.0) - Make backfacing shadeop indicate backfacing shader-global is needed [#1827](#1827) (by sfriedmapixar) (1.14.1.0) - Reparameter string needed to be ustringhash [#1841](#1841) (by Chris Hellmuth) (1.14.1.0) - Some modernization of osl.imageio [#1840](#1840) (1.14.1.1) - Typo in dual.h made invalid template DualStorage [#1871](#1871) (1.14.3.0) - Prevent NaN from cropping up in testshade for icx (or anyone else) [#1874](#1874) (1.14.3.0) - *testrender*: Fix GPU regression with bad destruction order [#1814](#1814) (1.14.1.0) - *fix*: False positives when utilizing OSL's "debug_uninit" feature [#1947](#1947) (by Alex Wells) (1.14.4.0) - *fix*: Interpolated int attributes wrong for batch shading [#1949](#1949) (by Alex Wells) (1.14.4.0) - *int*: Proper forwarding of osofmt() for correct C++20 support [#1923](#1923) (1.14.4.0) 🏗 Build/test/CI and platform ports * CMake build system and scripts: - Add options to use static Cuda libraries (controlled by CMake variable `CUDA_PREFER_STATIC_LIBS`) [#1772](#1772) (1.14.1.0) - Remove a lot of old SPI build cruft [#1778](#1778) (1.14.1.0) - Simplify oslquery library include and link needs [#1787](#1787) (1.14.1.0) - Propagate cpp version: when building against an OIIO that needs C++17, OSL will need to be build with C++17, too. [#1797](#1797) (1.14.1.0) - Eliminate boost as a dependency: [#1802](#1802) (by Christopher Kulla) (1.14.1.0) [#1808](#1808) (by Christopher Kulla) (1.14.1.0) - Default to C++17 mode (but for now, C++14 is still supported by setting `CMAKE_CXX_STANDARD`). [#1818](#1818) (1.14.1.0) - CMake: replace deprecated add_definitions with preferred add_compile_definitions [#1821](#1821) (1.14.2.0) - Port set_utils and dependency_utils from oiio cmake scripts [#1845](#1845) (1.14.2.0) - Fix testrender OptiX build [#1869](#1869) (by Tim Grant) (1.14.3.0) - Work around Imath UB in bvh code was problematic using icx [#1882](#1882) (1.14.3.0) - Reduce shared dependencies between liboslcomp and liboslexec [#1890](#1890) (by Christopher Kulla) (1.14.3.0) - Add option for build profiling with clang -ftime-trace [#1909](#1909) (1.14.3.0) - Link error on Windows due to shared symbols [#1918](#1918) (by Brecht Van Lommel) - Unbreak osl-unittest.h for OptiX [#1926](#1926) * Dependency and toolchain version support: - Support for LLVM 18. [#1773](#1773) (by مهدي شينون (Mehdi Chinoune)) (1.14.1.0) [#1803](#1803) (1.14.1.0) - LLVM 18 compat issue - include libclangAPINotes [#1812](#1812) (1.14.1.1) - Various fixes to deal with deprecations in the development branch and upcoming 3.0 release of OpenImageIO: [#1788](#1788), [#1806](#1806), [#1834](#1834), [#1838](#1838), [#1842](#1842), [#1844](#1844) [#1884](#1884) - Use new OIIO ustringhash decode methods when available [#1792](#1792) (by Chris Hellmuth) (1.14.1.0) - Adjust to OIIO change to IC/TS API [#1848](#1848) [#1850](#1850) (1.14.2.0) - Various adjustments for OIIO 3.0 becoming the release [#1881](#1881) [#1885](#1885) [#1888](#1888) [#1901](#1901) (1.14.3.0) - Fix LLVM find package picking up system-wide libraries [#1866](#1866) (by Sergey Sharybin) (1.14.3.0) - Support for LLVM 19 [#1873](#1873) (1.14.3.0) - Raise dependencies: cmake 3.19, OIIO 2.5, LLVM 11 [#1914](#1914) - Adjust osltoy for Qt 6.8 [#1936](#1936) - Fix libclang link order [#1946](#1946) (1.14.4.0) - Support for CMake 4.0 [#1960](#1960) (1.14.5.0) * Testing and Continuous integration (CI) systems: - *testrender*: Fix testrender GPU regression with bad destruction order [#1814](#1814) (1.14.1.0) - *tests*: Update ref output for OptiX execution order variance [#1816](#1816) (1.14.1.0) - *tests*: Update ref output for render-microfacet with OptiX [#1927](#1927) - *tests*: For CI only, trim PWD from the oslc -M output [#1924](#1924) - *tests*: Fix shell command quoting to work the same on Unix and Windows [#1925](#1925) - *tests*: Env variable OSL_TESTSUITE_THRESH_SCALE scales test thresholds [#1934](#1934) - *tests*: Update some optix ref images and comparison thresholds [#1937](#1937) - *ci*: Test against LLVM 17 [#1760](#1760) (1.14.0.0) - *ci*: Increase timeout for slow MacOS-13 runner [#1775](#1775) (1.14.1.0) - *ci*: Fix broken Macos-13 CI [#1780](#1780) (1.14.1.0) - *ci*: Allow triggering CI workflow from web [#1779](#1779) (1.14.1.0) - *ci*: Lock down to OIIO 2.5 for icc tests [#1799](#1799) (1.14.1.0) - *ci*: Print commit hash of locally built dependencies [#1798](#1798) (1.14.1.0) - *ci*: Suppress leak sanitizer warnings about internals of robin_hash [#1807](#1807) (1.14.1.0) - *ci*: Mods to CI to deal with OIIO master raising dependency mins [#1833](#1833) (1.14.1.0) - *ci*: Fix GHA CI after they upgraded nodejs [#1837](#1837) (1.14.1.0) - *ci*: Deal with CentOS 7 EOL and disappearance of yum mirrors [#1839](#1839) (1.14.1.0) - *ci*: Unbreak CI for OIIO auto-build of OCIO for icx case [#1849](#1849) (1.14.2.0) - *ci*: Add VFX Platform 2024 to CI [#1854](#1854) (1.14.2.0) - *ci*: Deal with OIIO renaming its master -> main [#1867](#1867) (1.14.3.0) - *ci*: Fixup to broken clang-format test [#1883](#1883) (1.14.3.0) - *ci*: Bump to latest upload-artifact action. [#1900](#1900) (1.14.3.0) - *ci*: Fix broken CI for ASWF 2021 and 2022 containers [#1905](#1905) (1.14.3.0) - *ci*: Bump to latest version of upload-artifact action [#1915](#1915) - *ci*: Break out reusable build steps [#1919](#1919) - *ci*: Windows CI support (take 1) [#1930](#1930) - *ci*: Move away from soon-to-be-deprecated ubuntu-20.04 GHA runner [#1941](#1941) (1.14.4.0) - *ci*: Improve clang-format check [#1950](#1950) (1.14.4.0) - *ci*: Update cache action to modern version [#1953](#1953) (1.14.4.0) - *ci*: Unbreak CI on Mac by not letting it install llvm 20 [#1962](#1962) (1.14.5.0) * Platform support: - *Mac ARM*: Test with Mac ARM runner [#1770](#1770) (1.14.1.0) - *Mac ARM*: Make finding bison work better on Apple Silicon Macs + homebrew [#1822](#1822) (1.14.1.1) - *Mac*: Use macOS sysroot, arch, minversion for generating bitcode [#1928](#1928) (by Brecht Van Lommel) 📚 Documentation - Get rid of old LaTeX documentation [#1970](#1970) (1.14.5.0) - Fix links to RTD docs from github landing page [#1768](#1768) (1.14.0.0) - Clarify behavior of `round()`: OSL uses "round away from zero" policy for input values exactly half way between two integers, matching C/C++ standard round(). But we were not clear about it in the docs. [#1767](#1767) (1.14.1.0) - More detail about supported platforms in INSTALL.md [#1796](#1796) (1.14.1.0) - Fix outdated or wrong repo URLs [#1811](#1811) (1.14.1.0) - Fixes to documentation of new oren_nayar_diffuse_bsdf parameters [#1820](#1820) (1.14.1.0) - Fix typo in stdlib.md [#1877](#1877) (by Alexey Smolenchuk) (1.14.3.0) - Update some URLs to our new vanity URLs [#1902](#1902) (1.14.3.0) - Updated README.md Documentation section. [#1907](#1907) (by Mitch Prater) (1.14.3.0) - Fix typo in the name of the argument "maxdist" of `trace` [#1933](#1933) (by AidanWelch) - Fix typo in Arrays and better document 1D arrays only [#1939](#1939) (by Sparsh Nair) - Fix typo in substr documentation [#1956](#1956) (by Alexey Smolenchuk) (1.14.5.0) - Document the optional "colorspace" parameter for texture funcs [#1969](#1969) (1.14.5.0) 🏢 Project Administration - Account for duplicate emails in the .mailmap [#1759](#1759) (1.14.0.0) - Releases trigger automatic announcements to the Slack channel. [#1766](#1766) [#1777](#1777) (by John Mertic) (1.14.1.0) - Raise our code formatting standard to clang-format 17 [#1761](#1761) (1.14.0.0) - Improve release related docs [#1911](#1911) (1.14.3.0) - Add code reviewing guide [#1908](#1908) (1.14.3.0) - Sign release artifacts [#1913](#1913) (1.14.3.0)
Release 1.13.12.0 -- 4 Dec 2024 (compared to 1.13.11.0) --------------------------------------------------------- - *bsdfs*: Anisotropic_vdf closure should not set IOR [#1870](#1870) (by Christopher Kulla) - *shaders*: Bugs in vector2.h, vector4.h, color2.h, color4.h, docs [#1892](#1892) - *build*: Support for LLVM 19 [#1873](#1873) - *build*: Fix LLVM find package picking up system-wide libraries [#1866](#1866) (by Sergey Sharybin) - *build*: Fixes for supporting OIIO 3.0 [#1881](#1881) [#1885](#1885) [#1888](#1888) - *fix*: Typo in dual.h made invalid template DualStorage [#1871](#1871) - *ci*: Add VFX Platform 2024 to CI [#1854](#1854) - *ci*: Deal with OIIO renaming its master -> main [#1867](#1867) - *ci*: Various adjustments for OIIO 3.0 becoming the release [#1901](#1901) - *ci*: Fix broken CI for ASWF 2021 and 2022 containers (#1905) - *ci*: Only test against maximum OpenImageIO 2.5.17.0 (because it doesn't yet build properly against OIIO 3.0)
ci: Advance ABI check commit after version bump Signed-off-by: Larry Gritz <lg@larrygritz.com>
Stage v1.13.11.0 Signed-off-by: Larry Gritz <lg@larrygritz.com>
Stage v1.13.10.0 Signed-off-by: Larry Gritz <lg@larrygritz.com>
PreviousNext