Releases: AcademySoftwareFoundation/OpenShadingLanguage
v1.13.12.0
Release 1.13.12.0 -- 4 Dec 2024 (compared to 1.13.11.0)
- bsdfs: Anisotropic_vdf closure should not set IOR #1870 (by Christopher Kulla)
- shaders: Bugs in vector2.h, vector4.h, color2.h, color4.h, docs #1892
- build: Support for LLVM 19 #1873
- build: Fix LLVM find package picking up system-wide libraries #1866 (by Sergey Sharybin)
- build: Fixes for supporting OIIO 3.0 #1881 #1885 #1888
- fix: Typo in dual.h made invalid template DualStorage #1871
- ci: Add VFX Platform 2024 to CI #1854
- ci: Deal with OIIO renaming its master -> main #1867
- ci: Various adjustments for OIIO 3.0 becoming the release #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)
NOTE: v1.13.12.0 does NOT build against OpenImageIO 3.0. We may yet make a future 1.13.x compatible with OIIO 3.x, but if you need OIIO 3.x you may need to switch to OSL 1.14, which will imminently have a beta release.
Release: OSL v1.13.11.0
Release 1.13.11.0 -- 1 Sep 2024 (compared to 1.13.10.0)
- fix/batched: Assume BatchedRendererServices texture derivatives are in st space. #1828 (by sfriedmapixar) (1.13.10.0)
- fix: Make backfacing shadeop indicate backfacing shader-global is needed #1827 (by sfriedmapixar) (1.13.10.0)
- deps: Handle various OpenImageIO deprecations and changes in the run-up to OIIO 3.0 #1834 #1806 #1838 #1842 #1850 (1.13.10.0)
- deps: Adjust to OIIO change to IC/TS API #1848 (1.13.10.0)
- deps: Llvm 18 compat issue - include libclangAPINotes #1812 (1.13.10.0)
- deps: Make finding bison work better on Apple Silicon Macs + homebrew #1822 (1.13.10.0)
- ci: Mods to CI to deal with OIIO master raising dependency mins #1833 (1.13.10.0)
- ci: Deal with CentOS 7 EOL and disappearance of yum mirrors #1839 (1.13.10.0)
- ci: Fix GHA CI after they upgraded nodejs #1837 (1.13.10.0)
- admin: Change release notice icon to use the icon vs the normal logo so it shows up better #1777 (by John Mertic) (1.13.10.0)
OSL v1.13.10.0
OSL v1.13.9.0
Release 1.13.9.0 -- 1 May 2024 (compared to 1.13.8.0)
- deps: Support for LLVM-18 #1773 (by مهدي شينون (Mehdi Chinoune) #1803 (by Larry Gritz)
- fix: Make isconnected() work with downstream renderer "connections." #1782 (by sfriedmapixar)
- cleanup: Change OSL_CONSTEXPR14 to constexpr #1805
- internals build: Fix ifdef typo #1804
- build: Propagate cpp version #1797
- build: Print commit hash of locally built dependencies #1798
- ci: Lock down to OIIO 2.5 for icc tests #1799
- ci: Suppress leak sanitizer warnings about internals of robin_hash #1807
- docs: More detail about supported platforms in INSTALL.md #1796
OSL v1.13.8.0
Release 1.13.8.0 -- 1 Apr 2024 (compared to 1.13.7.0)
- fix(batched): Codegen bug for compref with varying index for batched shading #1776 (by Alex Wells)
- fix: Calculatenormal needs fliphandedness #1783 (by sfriedmapixar)
- fix: Print closure missing error message at compile time instead of run time. #1781 (by sfriedmapixar)
- int: Change long-deprecated OIIO macro to new one #1788
- ci: Fix broken Macos-13 CI #1780
OSL v1.13.7.0
OSL v1.13.6.1
This is the first official supported release of the 1.13 series. The 1.12 series is now considered obsolete and will receive patches only occasionally, and for the most critical fixes.
Release 1.13 -- Feb 1, 2024 (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 - The minimum version OpenImageIO has been raised from 2.2 to 2.4. #1591 #1722
- The minimum CMake dependency has been raised from 3.12 to 3.15
#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):
- 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 (by cmstein) (1.13.2.1)
- Expose llvm groupdata size as a shadergroup attribute
#1642 (by Chris Hellmuth) (1.13.4.0) - RendererServices API for letting get_texture_handle consider colorspace
#1641 (1.13.4.0) - Make "compile_report" attribute an int instead of just 0/1. Passing 1 makes
a brief report, values >1 are more verbose. (Zero still prints no report.)
#1654 (1.13.4.0) - Switch
lockgeom
tointerpolated
andinteractive
. Thelockgeom=0
was confusing. Now we useinterpolated=1
to mean "don't optimize it away
because it might be interpolated across the geometry and thus won't have
the same value at all points being shaded," and the subtly different
interactive=1
to mean "don't optimize it away because although it will
always take on the same value at all points at the same time, the user
might want to interactively adjust the value and we don't want to have
to recompile the shader group if that happens."
#1662 (1.13.4.0) - Add type information for needed attributes. #1650 (by Curtis Black) (1.13.4.0)
- Add API for building attribute getter free functions.
#1704 (by Curtis Black) (1.13.5.0) - Rs fmt specification - Journaling Algorithm for error, warning, fprintf
#1702 (by Steena Monteiro) #1711 #1715 (1.13.5.0)
🚀 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)
- Fix crash when adding a default initialized closure. #1624
(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 (by danieldresser-ie) (1.13.2.1)
- Fix Force LLVM Boolean #1717 (by Alex Wells)
- Batched pointcloud if "index" is not passed #1753 (by Alex Wells)
🚀 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
extra level of indirection to global variables is removed, and strings are
simply represented in ordinary variables as the hash of their characters.
#1531 (1.13.0.0) #1553 (1.13.0.1) - Better PTX cache hit rate by eliminating several sources of not being
strictly deterministic in the PTX text we were generating. #1566 #1570
(1.13.0.1) - Fix PTX symbol visibility issues. #1609 (1.13.2.0)
- Hide more code that is only used for OptiX mode, when OptiX is disabled.
#1608 (1.13.2.0) - Remove dependency on OptiX SDK for building core OSL with OptiX support. You
can now build OSL with OptiX support enabled even if you don't have the
OptiX SDK headers present at build time. But you will still need them to
build your OptiX-based application that uses OSL for GPU rendering. #1627
(1.13.2.0/1.12.8.0) - GPU/OptiX support of ReParameter #1686 (1.13.4.0)
- Fix userdata derivatives for interpolated params on GPU #1685 (by Pascal Lecocq) (1.13.4.0)
- Enable userdata derivatives for interpolated params on GPU
#1657 (by Chris Hellmuth) (1.13.4.0) - Move qualifying GroupData params onto stack for higher performance.
#1710 (by Chris Hellmuth) (1.13.5.0) - Handle mixed string casting that plagues optix codegen #1718 (1.13.5.0)
- Add missing members to ShaderGlobals in rend_lib.h #1721 (by Tim Grant) (1.13.5.0)
- OptiX direct callable API that owns groupdata buffer
#1683 (by Chris Hellmuth) (1.13.5.0) - OptiX PTX pipeline overhaul #1680 (by Tim Grant) (1.13.5.0)
- Perf: Don't insert redundant run layer calls inside a basic block
#1665 #1669 #1672 (by Chris Hellmuth) (1.13.4.0) - Fix NVPTX TargetMachine leak, etc. #1763 (by Tim Grant)
🐛/🔧 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 (1.13.4.0)
- Set up ray types for testrender #1648 (1.13.4.0)
- Fix userdata binding corner case #1673 (by Alejandro Conty) (1.13.4.0)
- Fix constant float values being converted to ints #1674 (by Declan Russell) (1.13.4.0)
- Don't try to ReParameter symbols not in the group #1693 (by Alejandro Conty) (1.13.5.0)
- Have ReParameter only copy data when it changes #1698 (1.13.5.0)
- Avoid deprecated OSLQuery ctr in test example #1699 (1.13.5.0)
- Zero derivs for interactive params when needed #1700 (by Alejandro Conty) (1.13.5.0)
- oslc bug fix: shader params whose default values involve "init ops" could be
incorrectly initialized if their values came from instance parameters set to
zero. #1578 (1.13.0.2) - oslc: Add missing
fmod()
variants #1643 (1.13.4.0) - Simple constant folding of binary expressions now happen on the oslc side
#1653 (1.13.4.0) - platform.h:
- Make sure that std::hash is defined for ustring and ustringhash. #1599
(1.13.1.1) - Deprecate LLVMUtil::internalize_module_functions. #1606 (1.13.1.0)
- Work toward always representing strings in shaders as ustringhash rather
than ustring: phase 1 #1603 phase2 #1612 (1.13.2.0) #1726 (1.13.5.0) - Remove unnecessary setting of locale::global #1636 (by danieldresser-ie) (1.13.2.1)
- Fully define bitcast template [#1635](https://github.com/AcademySo...
OSL v1.13.6.0 BETA 1
This is the first beta release of OSL 1.13. We are shooting for January 15 for an official production-ready 1.13 release. Please test and let us know if there are any problems. Once out of beta, this will be the officially supported stable release for 2024.
If all goes well, there will be no additional non-back-compatible changes, but it's possible for this to happen until the "beta" designation is removed, so use some caution. Preliminary release notes are below:
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 - The minimum version OpenImageIO has been raised from 2.2 to 2.4. #1591 #1722
- The minimum CMake dependency has been raised from 3.12 to 3.15
#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):
- 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 (by cmstein) (1.13.2.1)
- Expose llvm groupdata size as a shadergroup attribute
#1642 (by Chris Hellmuth) (1.13.4.0) - RendererServices API for letting get_texture_handle consider colorspace
#1641 (1.13.4.0) - Make "compile_report" attribute an int instead of just 0/1. Passing 1 makes
a brief report, values >1 are more verbose. (Zero still prints no report.)
#1654 (1.13.4.0) - Switch
lockgeom
tointerpolated
andinteractive
. Thelockgeom=0
was confusing. Now we useinterpolated=1
to mean "don't optimize it away
because it might be interpolated across the geometry and thus won't have
the same value at all points being shaded," and the subtly different
interactive=1
to mean "don't optimize it away because although it will
always take on the same value at all points at the same time, the user
might want to interactively adjust the value and we don't want to have
to recompile the shader group if that happens."
#1662 (1.13.4.0) - Add type information for needed attributes. #1650 (by Curtis Black) (1.13.4.0)
- Add API for building attribute getter free functions.
#1704 (by Curtis Black) (1.13.5.0) - Rs fmt specification - Journaling Algorithm for error, warning, fprintf
#1702 (by Steena Monteiro) #1711 #1715 (1.13.5.0)
🚀 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)
- Fix crash when adding a default initialized closure. #1624
(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 (by danieldresser-ie) (1.13.2.1)
- Fix Force LLVM Boolean #1717 (by Alex Wells)
- Batched pointcloud if "index" is not passed #1753 (by Alex Wells)
🚀 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
extra level of indirection to global variables is removed, and strings are
simply represented in ordinary variables as the hash of their characters.
#1531 (1.13.0.0) #1553 (1.13.0.1) - Better PTX cache hit rate by eliminating several sources of not being
strictly deterministic in the PTX text we were generating. #1566 #1570
(1.13.0.1) - Fix PTX symbol visibility issues. #1609 (1.13.2.0)
- Hide more code that is only used for OptiX mode, when OptiX is disabled.
#1608 (1.13.2.0) - Remove dependency on OptiX SDK for building core OSL with OptiX support. You
can now build OSL with OptiX support enabled even if you don't have the
OptiX SDK headers present at build time. But you will still need them to
build your OptiX-based application that uses OSL for GPU rendering. #1627
(1.13.2.0/1.12.8.0) - GPU/OptiX support of ReParameter #1686 (1.13.4.0)
- Fix userdata derivatives for interpolated params on GPU #1685 (by Pascal Lecocq) (1.13.4.0)
- Enable userdata derivatives for interpolated params on GPU
#1657 (by Chris Hellmuth) (1.13.4.0) - Move qualifying GroupData params onto stack for higher performance.
#1710 (by Chris Hellmuth) (1.13.5.0) - Handle mixed string casting that plagues optix codegen #1718 (1.13.5.0)
- Add missing members to ShaderGlobals in rend_lib.h #1721 (by Tim Grant) (1.13.5.0)
- OptiX direct callable API that owns groupdata buffer
#1683 (by Chris Hellmuth) (1.13.5.0) - OptiX PTX pipeline overhaul #1680 (by Tim Grant) (1.13.5.0)
- Perf: Don't insert redundant run layer calls inside a basic block
#1665 #1669 #1672 (by Chris Hellmuth) (1.13.4.0)
🐛/🔧 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 (1.13.4.0)
- Set up ray types for testrender #1648 (1.13.4.0)
- Fix userdata binding corner case #1673 (by Alejandro Conty) (1.13.4.0)
- Fix constant float values being converted to ints #1674 (by Declan Russell) (1.13.4.0)
- Don't try to ReParameter symbols not in the group #1693 (by Alejandro Conty) (1.13.5.0)
- Have ReParameter only copy data when it changes #1698 (1.13.5.0)
- Avoid deprecated OSLQuery ctr in test example #1699 (1.13.5.0)
- Zero derivs for interactive params when needed #1700 (by Alejandro Conty) (1.13.5.0)
- oslc bug fix: shader params whose default values involve "init ops" could be
incorrectly initialized if their values came from instance parameters set to
zero. #1578 (1.13.0.2) - oslc: Add missing
fmod()
variants #1643 (1.13.4.0) - Simple constant folding of binary expressions now happen on the oslc side
#1653 (1.13.4.0) - platform.h:
- Make sure that std::hash is defined for ustring and ustringhash. #1599
(1.13.1.1) - Deprecate LLVMUtil::internalize_module_functions. #1606 (1.13.1.0)
- Work toward always representing strings in shaders as ustringhash rather
than ustring: phase 1 #1603 phase2 #1612 (1.13.2.0) #1726 (1.13.5.0) - Remove unnecessary setting of local...
OSL v1.12.14.0
OSL v1.12.13.0
Release 1.12.13.0 -- 1 July 2023 (compared to 1.12.12.0)
- fix: Fix constant float values being converted to ints #1674 (by Declan Russell)
- build Fix builds when USE_PYTHON=OFF #1675 (by Declan Russell)
- build Changes to support fmt 10.0 #1691
- cleanup Switch deprecated oiio simd names to modern #1679
- testing: Avoid deprecated OSLQuery ctr in test example #1699
- ci: Fix package name for icc #1690
- ci: Add VFX Platform 2023 tests using new ASWF containers #1696
- ci: Switch oiio obsolete branch names to immutable tags #1701
- docs Improve documentation of
trace
function #1671 (by AidanWelch) - docs README.md: added filmography and Siggraph OSL course info. #1692 #1694 (by Mitch Prater)
- docs Amend the filmography #1695
- docs Fix incorrect links in CONTRIBUTING #1688