Skip to content

Commit f7292fc

Browse files
committed
CHANGES
[ci skip]
1 parent 41dbdae commit f7292fc

File tree

2 files changed

+115
-2
lines changed

2 files changed

+115
-2
lines changed

CHANGES.md

Lines changed: 110 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,18 +15,63 @@ Dependency and standards changes:
1515
* **Boost >= 1.55**
1616

1717
Language features:
18+
* New preprocessor symbols: OSL_VERSION_MAJOR, OSL_VERSION_MINOR,
19+
OSL_VERSION_PATCH, and OSL_VERSION (e.g. 10900 for 1.9.0) reveal the
20+
OSL release at shader compile time. #747 (1.9.0)
21+
* Structure constructors: If you have a struct `S` comprising fields with
22+
types T1, T2, ..., you may now have an expression `S(T1 v2,T2 v2,...)` that
23+
constructs and returns an `S` with those field values, much in the same
24+
way that you can say `color(a,b,c)` to construct a color out of components
25+
a, b, c. #751 (1.9.0)
26+
* User-defined operator overloading: If you make a new (struct) type, it
27+
is possible to define overloaded operators, like this:
28+
29+
struct vec2 { float x; float y; };
30+
31+
vec2 __operator__add__ (vec2 a, vec2 b) { return vec2(a.x+b.x, ay+b.y); }
32+
33+
vec2 a, b, c;
34+
a = b + c; // chooses __operator__add__()
35+
36+
This can be done with any of the operators, see the OSL Language Spec PDF
37+
for details. #753 (1.9.0)
1838

1939
Standard library additions/changes:
40+
* `getattribute ("osl:version", intvar)` at runtime can reveal the OSL
41+
version on which the shader is being executed. #747 (1.9.0)
42+
* `pointcloud_search()/pointcloud_get()` have more flexibility in what type
43+
of data it may retrieve: you can now retrieve arrays, if that is what is
44+
stored per-point in the point cloud (for example, a `float[4]`).
45+
#752 (1.9.0)
2046

2147
API changes, new options, new ShadingSystem features (for renderer writers):
2248
* ShadingSystem API changes:
49+
* New `set_raytypes()` call sets the known raytypes (on and off) for
50+
a shader group for subsequent optimization. This lets you combine ray
51+
specialization with lazy compilation. #733 (1.9.0)
52+
* `Parameter()` is now less strict about type checking when setting
53+
parameter instance values. In particular, it's now ok to pass a
54+
`float` value to a "triple" (color, point, etc.) parameter, and to
55+
pass one kind of triple when a different kind of triple was the
56+
declared parameter type. In this respect, the rules now more closely
57+
resample what we always allowed for `ConnectShaders`. #750 (1.9.0)
2358
* ShadingSystem attribute additions/changes:
59+
* `Shader()` will now accept the name of the shader as if it were the
60+
filename, with trailing `.oso`, and it will be automatically stripped
61+
off. #741 (1.9.0)
62+
* `convert_value()` now allows conversions between `float[3]` and triple
63+
values. #754 (1.9.0)
2464
* Shader group attribute additions/changes:
2565
* RendererServices:
2666

2767
Performance improvements:
68+
* Shader JIT time is improved by about 10% as a result of pre-declaring
69+
certain function addresses instead of relying on LLVM to use dlsym() calls
70+
to find them within the executable. #732 (1.9.0)
71+
* The runtime cost of range checking array accesses has been reduced by
72+
about 50%. #739 (1.9.0)
2873

29-
Bug fixes and other improvements:
74+
Bug fixes and other improvements (internals):
3075
* Avoid division by 0 when computing derivatives in pointcloud_search.
3176
#710 (1.9.0/1.8.7)
3277
* Avoid subtle use-after-free memory error in dictionary_find().
@@ -39,6 +84,35 @@ Bug fixes and other improvements:
3984
calls to `getmessage("trace",...)`. #722 (1.9.0/1.8.7)
4085
* Runtime optimizer is sped up by avoiding some string operations related
4186
to searching for render outputs when none are registered. (1.9.0)
87+
* Searching for stdosl.h now works uniformly whether it's oslc itself, or
88+
apps that use OSLCompiler, and in all cases are better about guessing
89+
where the header is located even when `$OSLHOME` environment variable is
90+
not set. #737 (1.9.0)
91+
* Internals: Fix the handling of alignment for closure structs. #740 (1.9.0)
92+
* oslc: fix internal memory leak of ASTNode's. #743 (1.9.0)
93+
* testshade improvements:
94+
* New option `--texoptions` lets you directly set extra TextureSystem
95+
options for tests. #744 (1.9.0)
96+
* Fix that allows you to set a parameters that is an array-of-strings.
97+
#745 (1.9.0)
98+
* Rename `--scalest/--offsetst` to `--scaleuv/--offsetuv` to properly
99+
reflect that they alter u and v (there is no s, t). #757 (1.9.0)
100+
* `--print` prints the value of all saved outputs. #757 (1.9.0)
101+
* Automatically convert to sRGB when saving outputs to JPEG, PNG, or GIF
102+
images, to make them more "web ready." #757 (1.9.0)
103+
* `--runstats` is more careful about not including the time to write
104+
output images in the main shader run time statistic. #757 (1.9.0)
105+
* Rename `-od` option to `-d` to match oiiotool and maketx. #757 (1.9.0)
106+
* testrender: Automatically convert to sRGB when saving outputs to JPEG,
107+
PNG, or GIF images, to make them more "web ready." #757 (1.9.0)
108+
109+
* Slight efficiency improvement when you call texture functions with the
110+
optional `"subimage"` parameter and pass the empty string (which means
111+
the first subimage, equivalent to not passing `"subimage"` at all).
112+
#749 (1.9.0)
113+
* oslc bug fixes where in some circumstances polymorphic overloaded
114+
functions or operators could not be properly distinguished if their
115+
parameters were differing `struct` types. #755 (1.9.0)
42116

43117
Build & test system improvements and developer goodies:
44118
* C++11 is the new language baseline. #704, #707
@@ -76,10 +150,45 @@ Build & test system improvements and developer goodies:
76150
* Added an easy way to invoke clang-tidy on all the files. #728
77151
* All internal references to our public headers have been changed to the
78152
form #include <OSL/foo.h>, and not "OSL/foo.h" or "foo.h". #728
153+
* The namespace has been changed somewhat, is now only one level deep and
154+
contains the version, eliminating version clashes within the same
155+
executable. You still refer to namespace "OSL", it's an alias for the
156+
real versioned (and potentially customized) one. #732 (1.9.0)
157+
* Symbol visibility is now properly restricted for certain "C" linkage
158+
functions needed for availability by the LLVM-generated code. And overall,
159+
the HIDE_SYMBOLS build mode is now on by default. #732 (1.9.0)
160+
* More robust finding of external PugiXML headers. (1.9.0)
79161

80162
Documentation:
163+
* Fixed unclear explanation about structures with nested arrays. (1.9.0)
81164

82165

166+
Release 1.8.9 -- 1 Jun 2017 (compared to 1.8.8)
167+
--------------------------------------------------
168+
* Minor speedup when passing blank subimage name:
169+
texture (..., "subimage", "", ...)
170+
#749
171+
* Fix namespace clash after recent OIIO (master branch) PugiXML version
172+
upgrade.
173+
* Several testshade changes: renamed options --scalest/--offsetst to
174+
--scaleuv/--offsetuv to more closely say what they really do;
175+
rename -od to -d to match how oiiotool and maketx call the same
176+
option; automatically convert to sRGB when instructed to save an
177+
output image as JPEG, GIF, or PNG; -runstats is more careful with
178+
timing to not include image output in shader run time; new --print
179+
option prints outputs to console (don't use with large images!). #757
180+
181+
Release 1.8.8 -- 1 May 2017 (compared to 1.8.7)
182+
--------------------------------------------------
183+
* New ShadingSystem::set_raytypes() can be used to configure default ray
184+
types for subsequent lazy optimization of the group upon first execution.
185+
#733
186+
* Hide symbol visibility for extern "C" linkage osl_* functions that LLVM
187+
needs. #732
188+
* New oslc-time macros OSL_VERSION, OSL_VERSION_MAJOR, OSL_VERSION_MINOR,
189+
OSL_VERSION_PATCH lets you easily test OSL version while compiling your
190+
shader. You can also find out at runtime with getattribute("osl:version").
191+
#747
83192

84193
Release 1.8.7 -- 1 Apr 2017 (compared to 1.8.6)
85194
--------------------------------------------------

README.md

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -273,11 +273,15 @@ Films using OSL (grouped by year of release date):
273273
Kingsglaive: Final Fantasy XV,
274274
Storks,
275275
Miss Peregrine's Home for Peculiar Children, Assassin's Creed
276-
* **(2017) / upcoming**
276+
* **(2017)**
277277
Lego Batman,
278278
The Great Wall,
279279
A Cure for Wellness,
280280
Logan
281+
Power Rangers
282+
Life
283+
Smurfs: The Lost Village
284+
The Fate of the Furious
281285
...
282286

283287

0 commit comments

Comments
 (0)