@@ -15,18 +15,63 @@ Dependency and standards changes:
15
15
* ** Boost >= 1.55**
16
16
17
17
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)
18
38
19
39
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)
20
46
21
47
API changes, new options, new ShadingSystem features (for renderer writers):
22
48
* 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)
23
58
* 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)
24
64
* Shader group attribute additions/changes:
25
65
* RendererServices:
26
66
27
67
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)
28
73
29
- Bug fixes and other improvements:
74
+ Bug fixes and other improvements (internals) :
30
75
* Avoid division by 0 when computing derivatives in pointcloud_search.
31
76
#710 (1.9.0/1.8.7)
32
77
* Avoid subtle use-after-free memory error in dictionary_find().
@@ -39,6 +84,35 @@ Bug fixes and other improvements:
39
84
calls to ` getmessage("trace",...) ` . #722 (1.9.0/1.8.7)
40
85
* Runtime optimizer is sped up by avoiding some string operations related
41
86
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)
42
116
43
117
Build & test system improvements and developer goodies:
44
118
* C++11 is the new language baseline. #704 , #707
@@ -76,10 +150,45 @@ Build & test system improvements and developer goodies:
76
150
* Added an easy way to invoke clang-tidy on all the files. #728
77
151
* All internal references to our public headers have been changed to the
78
152
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)
79
161
80
162
Documentation:
163
+ * Fixed unclear explanation about structures with nested arrays. (1.9.0)
81
164
82
165
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
83
192
84
193
Release 1.8.7 -- 1 Apr 2017 (compared to 1.8.6)
85
194
--------------------------------------------------
0 commit comments