[Bf-blender-cvs] SVN commit: /data/svn/repos/bf-blender [61615] trunk/lib/ darwin-9.x.universal/osl: OSL 1.6.9
Martijn Berger
martijn.berger at gmail.com
Tue Feb 2 23:30:24 CET 2016
Revision: 61615
https://developer.blender.org/rBL61615
Author: juicyfruit
Date: 2016-02-02 22:30:24 +0000 (Tue, 02 Feb 2016)
Log Message:
-----------
OSL 1.6.9
Modified Paths:
--------------
trunk/lib/darwin-9.x.universal/osl/CHANGES
trunk/lib/darwin-9.x.universal/osl/README.md
trunk/lib/darwin-9.x.universal/osl/bin/oslc
trunk/lib/darwin-9.x.universal/osl/bin/oslinfo
trunk/lib/darwin-9.x.universal/osl/doc/osl-languagespec.pdf
trunk/lib/darwin-9.x.universal/osl/include/OSL/accum.h
trunk/lib/darwin-9.x.universal/osl/include/OSL/dual.h
trunk/lib/darwin-9.x.universal/osl/include/OSL/dual_vec.h
trunk/lib/darwin-9.x.universal/osl/include/OSL/genclosure.h
trunk/lib/darwin-9.x.universal/osl/include/OSL/llvm_util.h
trunk/lib/darwin-9.x.universal/osl/include/OSL/oslcomp.h
trunk/lib/darwin-9.x.universal/osl/include/OSL/oslconfig.h
trunk/lib/darwin-9.x.universal/osl/include/OSL/oslexec.h
trunk/lib/darwin-9.x.universal/osl/include/OSL/oslversion.h
trunk/lib/darwin-9.x.universal/osl/include/OSL/rendererservices.h
trunk/lib/darwin-9.x.universal/osl/include/OSL/shaderglobals.h
trunk/lib/darwin-9.x.universal/osl/lib/liboslcomp.a
trunk/lib/darwin-9.x.universal/osl/lib/liboslexec.a
trunk/lib/darwin-9.x.universal/osl/lib/liboslquery.a
trunk/lib/darwin-9.x.universal/osl/shaders/emitter.osl
trunk/lib/darwin-9.x.universal/osl/shaders/emitter.oso
trunk/lib/darwin-9.x.universal/osl/shaders/glass.oso
trunk/lib/darwin-9.x.universal/osl/shaders/image.oso
trunk/lib/darwin-9.x.universal/osl/shaders/matte.oso
trunk/lib/darwin-9.x.universal/osl/shaders/metal.oso
trunk/lib/darwin-9.x.universal/osl/shaders/ubersurface.oso
Modified: trunk/lib/darwin-9.x.universal/osl/CHANGES
===================================================================
--- trunk/lib/darwin-9.x.universal/osl/CHANGES 2016-02-02 22:29:46 UTC (rev 61614)
+++ trunk/lib/darwin-9.x.universal/osl/CHANGES 2016-02-02 22:30:24 UTC (rev 61615)
@@ -1,4 +1,293 @@
+Changes:
+Release 1.6.9 -- 18 Nov 2015 (compared to 1.6.8)
+------------------------------------------------
+* Bug fix for code generation of struct parameters copied whole. #564
+* Fix Windows build issues. #561
+* Some changes that will allow us to build against OIIO 1.6 trunk (a few
+ declarations have changed there). #581, #582
+
+Release 1.6.8 -- 16 Jul 2015 (compared to 1.6.7)
+------------------------------------------------
+* Support shader parameters that are arrays of closures. (Thanks,
+ Ubisoft!) #544
+* New shader group ShadingSystem::getattribute() queries:
+ num_attributes_needed, attributes_needed, attribute_scopes, and
+ unknown_attributes_needed. Collectively, these let you find out
+ exactly which getattribute tokens a compiled shader group may request.
+ (Works like the similar queries for userdata tokens.)
+ (Thanks, Image Engine!) #537
+* Fix bugs when deserializing shader group strings with unsized arrays. #534
+* Fix bugs when serializing shader groups with unsized arrays. #539
+* Fix format() constant folding. #536
+* Fix bug with unconditional running of earlier layers -- could botch
+ certain parameter initialization. #541
+* Make sure we build correctly against LLVM 3.5.
+* When building against LLVM 3.5, abort the build and give a clear error
+ message if not also using USE_CPP11=1 (because LLVM3.5 requres C++11). #542
+* Fixes for clean VS2012 builds. #545
+* Fix static array initialization problem with VS2012.
+
+
+Release 1.6.7 -- 11 Jun 2015 (compared to 1.6.6)
+-----------------------------------------------
+* CMake option OSL_BUILD_TESTS=0 turns off building of test programs,
+ testshade, testrender. #522
+* CMake option USE_fPIC=1 turns on -fPIC flag for C++ compilation. #521
+* CMake option to disallow creation of OIIO::TextureSystem. #523
+* Alternate place to find stdosl.h. (mostly for Pixar) #524
+* Site customization file for Pixar. #524
+
+
+Release 1.6 (1.6.6) -- 26 May 2015 (compared to 1.5)
+-----------------------------------------------
+Language, standard libary, and compiler changes (for shader writers):
+* It is now supported to have shader parameters that are arrays of
+ unspecified length (like 'float foo[] = {...}'). Their length will be
+ fixed when they are assigned an instance value of fixed length, or when
+ connected to another layer's output parameter of fixed length. If there
+ is no instance value nor a connection, the length will be fixed to the
+ number of elements given in the default initializer. #481 #497 (1.6.4)
+* The "comma operator" now works in the way you would expect in other
+ C-like languages. #451 (1.6.2)
+* The "and", "or", and "not" keywords are synonyms for the &&, ||, and !
+ operators, respectively. (If this seems strange, note that this is
+ true of C++ as well.) #446 (1.6.2)
+* oslc will now silently ignore trailing commas in function or shader
+ parameter lists and metadata lists. #447 (1.6.2)
+* The "gabor" varieties of noise were found to have a serious mathematical
+ bug, which after fixing results in a change to the pattern. We are hoping
+ that they were rarely used, but beware a change in appearance. (1.6.1)
+* We have clarified that shader metadata may be arrays (still not structs
+ or closures) and fixed the implementation to support this (in addition
+ to several other ways that metadata was brittle). (1.6.2)
+* Spec clarification: emission() has units of radiance, so a surface
+ directly seen by the camera will directly reproduce the closure weight
+ in the final pixel, regardless of it being a surface or volume. Thus,
+ you don't need to weight it by PI. #427 (1.6.2)
+* oslc bug fixed in variable declaration + assignment of nested structs.
+ #453 (1.6.2)
+
+API changes, new options, new ShadingSystem features (for renderer writers):
+* New ShadingSystem attribute int "profile", if set to 1, will include
+ in the runtime statistics output a measure of how much total time was
+ spent executing shaders, as well as the identities and times of the 5
+ shader groups that spent the most time executing. Note that this
+ option is 0 (off) by default, since turning it on can add
+ significantly to total runtime for some scenes. #418 (1.6.2)
+* New per-ShaderGroup attributes:
+ * You can retrieve information about all closures that an optimized group
+ might create using new queries "num_closures_needed", "closures_needed",
+ "unknown_closures_needed". This could be useful for renderers by, for
+ example, noticing that a material can't possibly call the "transparent"
+ closure, and thus concluding that it must be opaque everywhere and thus
+ shadow rays need not execute shaders to determine opacity. (#400) (1.6.0)
+ * You can retrieve information about all "globals" (P, N, etc.) that an
+ optimized group needs using new queries "num_globals_needed" and
+ "globals_needed". This could be useful for renderers for which
+ computing those globals is very expensive; examining which are truly
+ needed and only computing those. (#401) (1.6.0)
+* It is now possible to specify per-group "renderer_outputs" in the form
+ "layername.paramname", thus designating a parameter of a specific layer
+ as a render output that should be preserved, but excluding identically
+ named output variables in other layers. #430 (1.6.2)
+* New ShadingSystem runtime option int "lazy_userdata", when set to
+ nonzero, causes userdata to be interpolated lazily (on demand) rather
+ than at the beginning of a shader that needs it. For some renderer
+ implementations, this may be a performance improvement. #441 (1.6.2)
+* New OSLCompiler::compile_buffer() method compiles OSL source in a
+ string into oso stored in a string. When combined with ShadingSystem::
+ LoadMemoryCompiledShader, this allows an application to go straight from
+ osl source code to executing shader without writing disk file or launching
+ a shell to invoke oslc. #444 (1.6.2)
+* OSLQuery: in the OSLQuery::Parameter structure, the 'validdefault' field
+ now reliably is true for a valid default value, false if no default value
+ could be statically determined (for example, if the param default is
+ the result of code that must run at runtime). (1.6.2)
+* Extend ShadingSystem::get_symbol() to retrieve the symbol from a
+ particular named layer (rather than always getting it from the last
+ layer in which the name is found). #458 (1.6.2)
+* New SS option "opt_merge_instances_with_userdata", which if set to 0 will
+ prevent instance merging for instances that access userdata. If you don't
+ know why you'd want this turned off, you don't want it turned off!
+ #459 (1.6.2)
+* New RendererServices::supports() function allows for future expansion
+ of querying (by the ShadingSystem) of features supported by a
+ particular renderer. #470 (1.6.2)
+* New ShadingSystem::execute() variety that takes a ShadingContext* rather
+ than a ShadingContext&. If you pass NULL for the context pointer, the
+ SS will automatically allocate (and eventually release) a context for
+ you. #471 (1.6.2)
+* New RendererServices API methods added that supply a handle-based
+ version of texture(), texture3d(), environment(), and get_texture_info(),
+ in addition to the existing name-based versions. Renderer implementations
+ will need to add these, if they overload the name-based ones. #472 (1.6.2)
+* RendererServices API methods for texture have been revised again, now
+ each variety takes a filename (will always be passed) and also a
+ TextureHandle* and TexturePerthread* (which may be NULL). Renderers
+ may use the name only if that's easiest, but also may use the handle when
+ supplied. #478 (1.6.3)
+* New ShadingSystem methods: find_symbol() and symbol_address() tease apart
+ the functionality of the (now deprecated) get_symbol(). The fairly
+ expensive name lookup is in find_symbol(), and it can be done once per
+ shader group (and reused for the lifetime of the group), while the
+ relatively inexpensive symbol_address() can be cheaply done after each
+ shader execution. If your renderer is currently using get_symbol() to
+ retrieve the shader output values after each shade, we strongly recommend
+ changing to the find_symbol() [once up front] and symbol_address() [once
+ per execution] combination for improved performance. #495 (1.6.4)
+
+Performance improvements:
+* Many noise() varieties have been sped up significantly on
+ architectures with SIMD vector instructions (such as SSE). Higher
+ speedups when returning vectors rather than scalars; higher speedups
+ when supplying derivatives as well, higher speedups the higher the
+ dimensionality of the domain. We're seeing 2x-3x improvement for
+ noise(point), depending on the specific variety, 3x-4x speedup for 4D
+ noise varieties. #415 #422 #423 (1.6.1, 1.6.2)
+* Change many transcendental functions (sin, cos, exp, etc) to use
+ approximations that are must faster than the 100% correct versions in
+ libm. The new ones may differ from the old in the last decimal place,
+ which is probably undesirable if programming ICBM guidance systems,
+ but seems fine for rendering when the result is many times faster to
+ evaluate those functions. You can turn it back to the fully precise and
+ slow way by building with OSL_FAST_MATH=0. #413 (1.6.0)
+* New runtime optimization of mix(a,a,x) -> a (even if none of them are
+ constant). #438 (1.6.2)
+* Fix performance regression: avoid incrementing profile-related stats on
+ every execution if profiling is disabled. (1.6.2)
+* When the runtime optimizer can figure out which textures are being
+ called, it will retrieve the handle once and generate code for
+ handle-based RendererServices callbacks, rather than name-based
+ ones. This speeds up texture-heavy shading by 5-10% by eliminating the
+ need for the name-to-handle lookups for every texture call. #472 (1.6.2)
+* New runtime optimization: constant folding of sincos(). #486 (1.6.4)
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list