[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