You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
OpenImageIO: Raise minimum to 2.5. #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.
✏️ 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 (1.14.5.0)
Fix bugs in vector2.h, vector4.h, color2.h, color4.h, docs #1892 (1.14.3.0)
Fix the subsurface_bssrdf parameters to conform to MaterialX. #1823 (by Christopher Kulla) (1.14.1.0)
bsdf: Anisotropic_vdf closure should not set IOR #1870 (by Christopher Kulla) (1.14.3.0)
bsdf: Add hair_chiang_bsdf closure definition from MaterialX #1891 (by Christopher Kulla) (1.14.3.0)
☀️ testshade/testrender/osltoy improvements
testrender: Implement new OpenPBR BRDFs: Oren-Nayar #1817 (by Christopher Kulla) (1.14.1.0), sheen BRDF #1819 (by Christopher Kulla) (1.14.1.0)
testrender: Modify testrender to work with triangle meshes #1865 (by Christopher Kulla) (1.14.3.0)
testrender: Implement basic displacement shader support #1898 (by Christopher Kulla)
testrender: Full OptiX support in testrender #1896#1897 (by Tim Grant) (1.14.3.0)
testrender: Improvements to energy conservation between layered BSDFs #1935 (by Jonathan Stone)
osltoy: Add command line and GUI ways to adjust include search paths #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 (by Steena Monteiro) (1.14.0.0)
Add API for building interpolated getter free functions. #1765 (by Thibault Vergne) (1.14.0.0)
Switch shade_image() to use current OIIO::paropt #1843 (1.14.1.1)
Free functions for texturing, point clouds, and trace #1852 (by Curtis Black) (1.14.3.0)
Add ShadingSystem query to ask if attribute derivatives are requested. #1932 (by Curtis Black) (and subsequent OptiX related fixes in #1951)
RendererServices API for renderer to cache key/value pairs. This is currently used to cache ptx generation for OptiX/GPU rendering. #1938#1954 (by Chris Hellmuth)
🚀 SIMD batched shading mode
Codegen bug for compref with varying index #1776 (by Alex Wells) (1.14.1.0)
Add support for b4_SSE2 batched mode. #1825 (by johnfea) (1.14.2.0)
fix: Assume BatchedRendererServices texture derivatives are in st space. #1828 (by sfriedmapixar) (1.14.2.0)
🚀 OptiX GPU rendering
Fix NVPTX TargetMachine leak, etc. #1763 (by Tim Grant) (1.14.0.0)
Fix GPU interpolated param initialization #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 (by Chris Hellmuth) (1.14.1.0)
Mock gpu pointcloud_search calls with empty custom attributes #1859 (by Chris Hellmuth) (1.14.2.0)
Fully implement and fix the OptiX path in testrender and testshade #1896#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 (by Chris Hellmuth)
Generate symbol derivatives for outputs when requested #1916 (by Lukas Stockner)
🐛/🔧 Internals: fixes, improvements, and developer concerns
Mute partio error prints #1774 (by olegul) (1.14.1.0)
calculatenormal needs to use the fliphandedness global #1783 (by sfriedmapixar) (1.14.1.0)
Print closure missing error message at compile time instead of run time. #1781 (by sfriedmapixar) (1.14.1.0)
Make isconnected() work with downstream renderer "connections." #1782 (by sfriedmapixar) (1.14.1.0)
int: Change OSL_CONSTEXPR14 to constexpr #1805 (1.14.1.0)
Remove unnecessary ustring lookup #1824 (by Chris Hellmuth) (1.14.1.0)
Make backfacing shadeop indicate backfacing shader-global is needed #1827 (by sfriedmapixar) (1.14.1.0)
Reparameter string needed to be ustringhash #1841 (by Chris Hellmuth) (1.14.1.0)
Some modernization of osl.imageio #1840 (1.14.1.1)
Typo in dual.h made invalid template DualStorage #1871 (1.14.3.0)
Prevent NaN from cropping up in testshade for icx (or anyone else) #1874 (1.14.3.0)
testrender: Fix GPU regression with bad destruction order #1814 (1.14.1.0)
fix: False positives when utilizing OSL's "debug_uninit" feature #1947 (by Alex Wells) (1.14.4.0)
fix: Interpolated int attributes wrong for batch shading #1949 (by Alex Wells) (1.14.4.0)
int: Proper forwarding of osofmt() for correct C++20 support #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 (1.14.1.0)
Remove a lot of old SPI build cruft #1778 (1.14.1.0)
Simplify oslquery library include and link needs #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 (1.14.1.0)
Eliminate boost as a dependency: #1802 (by Christopher Kulla) (1.14.1.0) #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 (1.14.1.0)
CMake: replace deprecated add_definitions with preferred add_compile_definitions #1821 (1.14.2.0)
Port set_utils and dependency_utils from oiio cmake scripts #1845 (1.14.2.0)
Fix testrender OptiX build #1869 (by Tim Grant) (1.14.3.0)
Work around Imath UB in bvh code was problematic using icx #1882 (1.14.3.0)
Reduce shared dependencies between liboslcomp and liboslexec #1890 (by Christopher Kulla) (1.14.3.0)
Add option for build profiling with clang -ftime-trace #1909 (1.14.3.0)
Link error on Windows due to shared symbols #1918 (by Brecht Van Lommel)
Support for LLVM 18. #1773 (by مهدي شينون (Mehdi Chinoune)) (1.14.1.0) #1803 (1.14.1.0)
LLVM 18 compat issue - include libclangAPINotes #1812 (1.14.1.1)
Various fixes to deal with deprecations in the development branch and
upcoming 3.0 release of OpenImageIO: #1788, #1806, #1834, #1838, #1842, #1844#1884
Use new OIIO ustringhash decode methods when available #1792 (by Chris Hellmuth) (1.14.1.0)
Adjust to OIIO change to IC/TS API #1848#1850 (1.14.2.0)
Various adjustments for OIIO 3.0 becoming the release #1881#1885#1888#1901 (1.14.3.0)
ci: Update cache action to modern version #1953 (1.14.4.0)
ci: Unbreak CI on Mac by not letting it install llvm 20 #1962 (1.14.5.0)
Platform support:
Mac ARM: Test with Mac ARM runner #1770 (1.14.1.0)
Mac ARM: Make finding bison work better on Apple Silicon Macs + homebrew #1822 (1.14.1.1)
Mac: Use macOS sysroot, arch, minversion for generating bitcode #1928 (by Brecht Van Lommel)
📚 Documentation
Get rid of old LaTeX documentation #1970 (1.14.5.0)
Fix links to RTD docs from github landing page #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 (1.14.1.0)
More detail about supported platforms in INSTALL.md #1796 (1.14.1.0)