Releases: AcademySoftwareFoundation/OpenShadingLanguage
Releases · AcademySoftwareFoundation/OpenShadingLanguage
OSL 1.11.14.0
Release 1.11.14 -- 10 May 2021 (compared to 1.11.13)
- oslc/OSLCompiler: Check for errors when when writing oso (for example,
disk volume full). #1360 - Fix crash generating closure function calls with LLVM 11. #1361
- Build: LLVM 12 compatibility. #1351
- Build: Support for CMake 3.20 #1354
- Build: Be robust to certain OpenEXR 2.x config fies. #1356
- Build: Fixes to deal with newer OIIO builds that are C++14.
OSL 1.11.13.0
OSL 1.11.12.0
Release 1.11.12 -- 1 Mar 2021 (compared to 1.11.11)
- Build: Changes for smooth compile against upcoming Imath 3.0. #1332 #1341
- Build: We weren't properly hiding non-public symbols. #1337
- CI: Cleanup and get rid of the last Travis vestiges. #1334
- CI: Speed up CI runs by using GHA cache + ccache. #1335
- CI: Separate CI process into several individual "steps." #1338
OSL 1.11.11.0
Release 1.11.11 -- 1 Feb 2021 (compared to 1.11.10)
- Build: Make the CMake build system more friendly to being a subproject.
#1304 - Build: Improve dependency on Imath/OpenEXR include files.
- CI: Fixes to Mac CI. #1315
- Docs: Update CLAs, Charter, GOVERNANCE, particularly after acceptance of
new CLAs and moving the repo to the ASWF GitHub account. #1308 #1240 #1314 - Internals: Switch from deprecated call to OIIO::parallel_image to the new
version. #1317
OSL 1.11.10.0
Release 1.11.10 -- 1 Dec 2020 (compared to 1.11.9)
OSL 1.11.9.0
Release 1.11.9 -- 1 Nov 2020 (compared to 1.11.8)
- Build properly against Cuda 11 and OptiX 7.1. #1232
- Windows compile fixes. #1263 #1285
- PugiXML build fixes on some systems. #1262
- Fix asymptomatic potential runtime optimizer bug where certain
multi-component values were not correctly recognized as nonzero. #1266 - Fix false positive with "debug_uninit" where certain while loops might be
flagged as using uninitialized values when in fact they were not. #1252 - Slightly optimize by not copying output params to layers that will not be
used. #1253 - Internals: use the
finalkeyword in certain internal classes where
applicable. #1260 - Cuda/OptiX back end: Add
__CUDADEVRT_INTERNAL__define to bitcode
generation, needed to avoid duplicate cudaMalloc symbols with CUDA9+ #1271 - Fix build break against recent OIIO master change where m_mutex field was
removed from ImageInput. #1281
OSL 1.11.8.0
Release 1.11.8 -- 1 Oct 2020 (compared to 1.11.7)
- Fix broken derivatives of the optional "alpha" return of texture calls
when the normal color channels return don't have their derivatives used
but the alpha does. #1258 - Building vs Python: instead of defaulting to searching for python 2.7
specifically and needing to set PYTHON_VERSION if you want (or have) a
different one, default to whichever version is found. If multiple versions
of Python are on the system, you can still use the PYTHON_VERSION cmake
variable to disambiguate which one you want. #1249 - For the experimental OptiX support, explicitly set the OptiX pipeline
stack size (fixes some bugs). #1254 - ShadingSystem statistics output (which is printed with
testshade --help,
by the way) now includes information about the SIMD capabilities specified
at OSL build time, those available at runtime, and the versions of LLVM,
OIIO, and Imath used. This should help in debugging and issue reporting
by making it easy to know certain build time choices just by running
testshade. #1258
OSL 1.11.7.3
Release 1.11 -- 1 Sept 2020 (compared to 1.10)
ASWF adoption changes:
- GOVERNANCE.md and ASWF/Technical-Charter.md document the project
governance and how the Technical Steering Committee works. An archive of
meeting minutes can be found in ASWF/meetings. #1137 (1.11.5) - All the copyright notices now read "Copyright Contributors to the Open
Shading Language Project," all files now have proper SPDX identifiers
instead of long boilerplate notices, and 3rd party included code now has
its licenses documented in the LICENSE-THIRD-PARTY.md file. #1145 (1.11.5) - The official mail list has switched to https://lists.aswf.io/g/osl-dev
#1167
Dependency and standards changes:
- LLVM 7.0-10.0: Support for LLVM 4, 5, and 6 have been dropped. Support
for LLVM 8, 9, and 10 have been added. Note that using LLVM 10 requires
building for C++14 or later, because LLVM 10's APIs no longer support
C++11. #981 #1046 #1058 #1128 #1152 #1162 #1206 - OpenImageIO 2.0-2.2: Support for OIIO 1.8 has been dropped; a minimum of
OIIO 2.0 is needed to build OSL. (Additionally, a minimum of OIIO 2.1 is
strongly recommended for anyone using the SIMD batch shading mode.) #1038
(1.11.0) - CMake minimum is now 3.12. #1072 (1.11.1)
OSL Language and oslc compiler:
- New syntax to reference color and point/vector/normal components as
named struct components, such as C.r, C.g, C.b, or P.x, P.y, P.z.
#1049 (1.11.0) - oslc compilation speed-ups with faster retrieval of source lines when
pasted into oso output. #938 (1.11.0) - Writing to function parameters not marked as
outputwas only
recently properly recognized as an error (it was documented as illegal
all along). Now we demote to a warning, treating it as a full error was
too disruptive. #944 (1.10.3/1.11.0) - Improve oso output efficiency. #938 (1.10.3/1.11.0)
- Fix bug related to counting the proper number of values used for
array default value initialization. #948 (1.10.3/1.11.0) - Slight modification to the formatting of floating point values in the oso
to ensure full precision preservation for float values. #949 (1.10.3/1.11.0) - Fix crash when encountering empty-expression
for (;;). #951 (1.10.3/1.11.0) - Fix bug in code generation of certain
whileloops that directly
tested a variable as a zero/nonzero test, such as:whereas the following had worked (they should have been identical):i = 3; while (i) --i;#947 (1.10.3/1.11.0)i = 3; while (i != 0) --i; - Improve warnings about ill-advised use of the comma operator.
#978 (1.10.4/1.11.0) - Fix an assertion/crash when passing initialization-lists as parameters to
a function, where the function argument expected was as array. #983
(1.10.4/1.11.0) - Fix an assertion/crash for certain type constructors of structs, where the
struct name was not declared. (This is an incorrect shader, but of course
should have issued an error, not crashed.) #988 (1.10.4/1.11.0) - Improve oslc type error detection for variable declarations with init
expressions. Note that this may flag some warnings and errors that went
undetected before, involving initialization assignments of incompatible
types. #991, #993 (1.10.5/1.11.0) - Allow shader parameters with empty brace initializers, such as:
Un-lengthed arrays, if they aren't connected or given a concrete instance
shader foo ( float myarray[] = {} )
value, still default to length 1 (we don't allow 0-length arrays, that's a
whole other can of worms), but this is now treated as equivalent to
= { default_value }(0 for int or float, "" for string). #967 (1.11.0) - More correct handling of escaped string literals (such as "\tfoo\n")
in string and also in string metadata. #1073 (1.11.1) - New command line argument
oslc --embed-sourceembeds the preprocessed
source code in the.osofile itself (helpful for certain debugging
situations). #1081 (1.11.3) - oslc can generate dependency files, honoring the -M, -MM, -MD, -MMD, -MF,
and -MT flags with similar meanings to gcc and clang. #1085 #1107 (1.11.3)
Example:$ oslc -MMD test.osl Compiled test.osl -> test.oso $ cat test.d test.oso: test.osl \ dist/macosx/share/OSL/shaders/color2.h \ dist/macosx/share/OSL/shaders/stdosl.h - New shader-level metadata:
[[ int range_checking=0 ]]disables the
automatic generation of range checking code for the shader. #1112 (1.11.4) - Support has been added for
pointcloud_get()to be able to retrieve
per-point string data from point clouds. #1157 (1.11.5) - Shader
outputparameters that are marked[[ int lockgeom=1 ]]will
automatically bind to any identically-named userdata, just like non-output
parameters have always done. #1200 (1.11.6)
OSL Standard library:
- Extend linearstep() and smooth_linearstep() to work with color, point,
vector, and normal types (previously restricted to float). #994
(1.10.5/1.11.0) - Extend
transformc()to understand translating between linear and sRGB
color spaces. #1013 (1.11.0) cbrt()cube root was added to the standard library. #1164 #1166 (1.11.6)
API changes, new options, new ShadingSystem features (for renderer writers):
ShadingSystem::convert_value()will now allow promotion of int or
float tofloat[4]. #940 (1.11.0)- Removed the varieties of
RendererServices::texture(),texture3d(), and
environment()that lack theerrormessageparameter and had been marked
as deprecated since OSL 1.8. #945 (1.11.0) - Deprecate the auto-allocation of contexts and per-thread-info. Certain
calls that took aContext*pointer that were allowed to be NULL now
by convention require the renderer to pass a valid context. #958 (1.11.0) - ShadingSystem: thread-safe/reentrant shader specification via new
varieties ofParameter(),Shader(),ConnectShaders(), and
ShaderGroupEnd()that take an explicitShaderGroupreference and are
therefore "stateless" and thread-safe. If you exclusively use these new
methods for shader specification, it's possible for multiple threads to
specify shader groups simultaneously. #984, #985, #986, #1000 (1.11.0)
#1067 (1.11.1) - New ShadingSystem options:
- "opt_warnings" enables warnings about things that couldn't be
optimized and may be performance issues. #1010 (1.11.0) - "gpu_opt_error" enables full error status of the subset of those
warnings that are also hard no-go's when executing on GPUs. #1010
(1.11.0) - "lazyerror", if set to 0, will unconditionally (and non-lazily) run
any shader layers that still containerror()calls after
optimization, so that error messages can't be elided by optimizations
causing the layer to be eliminated or never run. When "opt_warnings"
is enabled, warnings will be issued about shaders that couldn't
optimize away all of their error calls. Note that the default value is
1, giving the old behavior or lazily evaluating shader layers that
contain error calls. #1191 (1.11.5)
- "opt_warnings" enables warnings about things that couldn't be
RendererServices::get_texture_handle()has changed slightly to require
aShadingConntext*parameter, andget_texture_info()has changed to
have a parameter allowing the caller to provide atexture_thread_info
handle and a context, as well as to provide a pointer to a ustring where
error messages should be placed. #1033 (1.11.0)- The LLVM JIT optimization level (controlled by the
llvm_optimizeshading
system attribute) now defaults to 1, not 0. That should be the best
performance while still having reasonable JIT times. #1114 (1.11.4) - We no longer automatically build the MaterialX shaders (you need to set
build option OSL_BUILD_MATERIALX to ON). This will eventually be deprecated
entirely. #1136 (1.11.5) - Helper varieties of ShadingSystem::Parameter() and ReParameter() that
handle the common cases of a single float, int, or string. #1195 #1196
(1.11.6) ShaingSystem::optimize_group()now takes an optional parameter that
allows the caller to only do the optimize step without the JIT step.
#1226 (1.11.71)
Continued work on experimental SIMD batched shading mode:
- Continued work on SIMD-friendly math and noise: #1108 (1.11.4)
- Support in LLVM_Util for various wide (SIMD) data types. #1175 (1.11.6)
Continued work on experimental OptiX rendering:
- Build option
USE_OPTIX=1enable experimental OptiX support. - testshade and testrender now take
--optixflags to run tests on OptiX.
You can also force either to run in OptiX mode with environment variable
TESTSHADE_OPTIX=1. #996 #1001 #1003 - Various fixes to how strings are represented on the Cuda side. #973 (1.11.0)
- More complete support of all the noise varieties. #980 (1.11.0)
- Got
spline()function working. #974 #1011 (1.11.0) - Work towards getting texture calls working. #974 (1.11.0)
- printf works for multiple values. #1007 (1.11.0)
- Work on color-related functions. #1012 (1.11.0)
- Support for native OSL closures. #1028 #1029 (1.11.0)
- Work on matrix ops. #1054 (1.11.1)
- Allow init ops. #1059 (1.11.1)
- Fixes to string closure params. #1061 (1.11.1)
- Add support for OptiX 7 #1111 #1203 (1.11.6)
Performance improvements:
- Constant fold array accesses even if they are out of bounds. #1035 (1.11.0)
- Speed up the
concat()OSL function, the new implementation is very
careful to avoid extra copies and unnecessary allocations. #1104,#1105
(1.11.3) - Shader performance improved slightly by better inlining during the JIT.
#1114 (1.11.4) - Range checking of matrix component access is skipped for certain cases
where it was unnecessary. #1174 (1.11.6) - LLVM JIT+optimize t...
OSL 1.11.7.2-RC2
Release candidate for 1.11. The branch is frozen for release. If no critical bugs are identified, we anticipate a full release on Sept 1, 2020.
OSL 1.11.7.1-RC1
Release candidate for 1.11 release. This branch is now frozen for all but critical bugs, with an expected 1.11 release on 1 Sept 2020.