[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [55883] trunk/lib/darwin-9.x.universal/osl : OSX: up osl to 1.3

jens verwiebe info at jensverwiebe.de
Sun Apr 7 16:34:02 CEST 2013


Revision: 55883
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=55883
Author:   jensverwiebe
Date:     2013-04-07 14:34:02 +0000 (Sun, 07 Apr 2013)
Log Message:
-----------
OSX: up osl to 1.3

Modified Paths:
--------------
    trunk/lib/darwin-9.x.universal/osl/CHANGES
    trunk/lib/darwin-9.x.universal/osl/bin/oslc
    trunk/lib/darwin-9.x.universal/osl/doc/osl-languagespec.pdf
    trunk/lib/darwin-9.x.universal/osl/include/OSL/export.h
    trunk/lib/darwin-9.x.universal/osl/include/OSL/oslexec.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/stdosl.h

Added Paths:
-----------
    trunk/lib/darwin-9.x.universal/osl/README
    trunk/lib/darwin-9.x.universal/osl/README.md
    trunk/lib/darwin-9.x.universal/osl/bin/oslinfo
    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.osl
    trunk/lib/darwin-9.x.universal/osl/shaders/glass.oso
    trunk/lib/darwin-9.x.universal/osl/shaders/image.osl
    trunk/lib/darwin-9.x.universal/osl/shaders/image.oso
    trunk/lib/darwin-9.x.universal/osl/shaders/matte.osl
    trunk/lib/darwin-9.x.universal/osl/shaders/matte.oso
    trunk/lib/darwin-9.x.universal/osl/shaders/metal.osl
    trunk/lib/darwin-9.x.universal/osl/shaders/metal.oso
    trunk/lib/darwin-9.x.universal/osl/shaders/ubersurface.osl
    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	2013-04-07 14:28:28 UTC (rev 55882)
+++ trunk/lib/darwin-9.x.universal/osl/CHANGES	2013-04-07 14:34:02 UTC (rev 55883)
@@ -1,10 +1,29 @@
-Release 1.3.x - in progress (compared to 1.2)
+Release 1.3.0 - 14 Feb 2013 (compared to 1.2)
 ----------------------------------------------
+
 Language, standard libary, and compiler changes (for shader writers):
+
 * pointcloud_write() allows shaders to write data and save it as a point
   cloud.
+* spline now accepts a "constant" interpolation type, which interpolates
+  with discrete steps.
+* isconnected(var) returns true if var is a shader parameter and is
+  connected to an earlier layer. This is helpful in having shader logic
+  that can discern between a connected parameter versus a default.
+* Whole-array assignment is now supported.  That is, if A and B are arrays
+  of the same type and length(A) >= length(B), it is legal to write
+  A=B without needing to write a loop to copy each element separately.
+* stoi() and stof() convert strings to int or float types, respectively
+  (just like the identically-named functions in C++11).  These do properly
+  constant-fold during runtime optimization if their inputs can be deduced.
+* split() splits a string into tokens and stores them in the elements of an
+  array of strings (and does constant-fold!).
+* distance(point A, point B, point Q) gives the distance from Q to the
+  line segment joining A and B.  This was described by the OSL spec all
+  along, but somehow was not properly implemented.
 
 ShadingSystem API changes and new options (for renderer writers):
+
 * Default implementation of all the pointcloud_*() functions in
   RendererServices, if Partio is found at build time.
 * ShadingSystem attribute "compile_report" controls whether information
@@ -14,10 +33,21 @@
 * ShadingSystem attribute "countlayerexecs" adds debugging code to count
   the total number of shader layer executions (off by default; it slows
   shader execution down slightly, is only meant for debugging).
-  
+* Add a parameter to OSLCompiler::compile to specify the path to the
+  stdosl.h file.
+* New call: ShadingSystem::LoadMemoryCompiledShader() loads a shader with
+  OSO data from a memory buffer, rather than from a file.
+
 Performance improvements:
+
 * Reduce instance symbol memory use, lowering OSL-related memory by 1/2-2/3
   for large scenes.
+* Identical shader instances within a shader group are automatically
+  merged -- this can have substiantial performance and memory
+  improvements for very complex shader groups that may (inadvertently,
+  for convenience, or as an artifact of certain lookdev tools) have
+  multiple instances with identical input parameters and connections.
+  We have seen some shots that render up to 20% faster with this change.
 * Better constant-folding for pointcloud_get (if indices are known).
 * Speed up implementation of exp() for some Linux platform (works around
   a known glibc issue).
@@ -26,8 +56,19 @@
   cases to try to avoid having mix() unnecessarily trigger execution of
   earlier layers when one or both of its arguments is a connected shader
   param and the mix value turns out to be 0 or 1.
+* Runtime optimization now includes constant-folding of getattribute()
+  calls, for those attributes which are scene-wide (such as renderer options
+  that apply to the whole frame).
+* Improvements in the algorithm that tracks which symbols need to carry
+  derivatives around results in MUCH faster compile times for extremely
+  complex shaders.
+* Improve bad performance for shaders that call warning() prolifically, by
+  imposing a maximum number of shader warnings that are echoed back to the
+  renderer (controlled by ShadingSystem attribute "max_warnings_per_thread",
+  which defaults to 100; 0 means that there is no maximum).
 
 Bug fixes and minor improvements:
+
 * Fix incorrect oso output of matrix parameter initialization. (This did
   not affect shader execution, but could result in oslquery/oslinfo not
   reporting default matrix parameter values correctly.)
@@ -36,11 +77,35 @@
   function.
 * Parsing of oso files was broken for compiled shaders that had string
   metadata whose metadata value contained the '}' character.
+* Pointcloud function bug fixes: now robust to being passed empty filenames,
+  or calling pointcloud_get when count=0.
+* Fix crash with C preprocessor when #include fails or no shader function
+  is defined.
+* Improve error reporting when parsing oso, especially in improving the
+  error messages when an old renderer tries to load a .oso file created by
+  a "newer" oslc, and the oso contains new instruction opcodes that the
+  older renderer didn't know about.
+* oslc now gives a helpful error message, rather than hitting an assertion,
+  if you try to index into a non-array or non-component type.
+* Broken "XYZ" color space transformations because of confusion between
+  "xyz" and "XYZ" names.
+* oslc: correctly catch errors with integer literals that overflow.
+* oslc: proper error, rather than assertion, for 
+  'closure color * closure color'.
+* oslc: proper handling of preprocessor errors when stdosl.h is in a path 
+  containing spaces.
+* Fix bugs in the OSL exit() function.
+* Don't error/warn if metadata name masks a global scope name.
 
 Under the hood:
+
 * Simplify code generation of binary ops involving closures.
 
 Build & test system improvements and developer goodies:
+
+* Many, many fixes to enable building and correct running of OSL on
+  Windows.  Too many to list individually, let's just say that OSL 1.3
+  builds and runs pretty robustly on Windows, older versions did not.
 * Remove unused OpenGL and GLEW searching from CMake files.
 * Fix a variety of compiler warnings, particularly on newer compilers,
   32 bit platforms, and Windows.
@@ -56,8 +121,35 @@
 * Make/CMake STOP_ON_WARNING flag (set to 0 or 1) controls whether the
   build will stop upon any compiler warning (default) or if it should
   keep going (=0).
+* Fixed bad interaction between weave preprocessor, OIIO::Strutil::format,
+  and gcc 4.7.2.
+* Fixes for static linkage of liboslcomp.
+* Addressed compilation errors on g++ 4.7.2.
+* Improved logic and error reporting for finding OpenImageIO at build time.
+* Add support for linking to static LLVM libraries, and for specifying
+  a particular LLVM version to be used.
+* New BUILDSTATIC option for CMake/Make allows building of static OSL 
+  libraries.
+* Fixes to allow OSL to use LLVM 3.2.
+* Fixes to allow OSL to be compiled by clang 3.2.
+* Fixes to allow building on Windows with MinGW.
+* Fix for building from a chroot where the host may be, e.g., 64 bit, but
+  the target is 32 bit.
+* Minimize cmake output clutter for things that aren't errors, unless
+  VERBOSE=1.
+* Various fixes to get OSL building and running on FreeBSD.
+* Cmake/make option USE_LLVM_BITCODE to be able to force LLVM bitcode
+  compilation on or off (defaults to on for Windows, off for Unix/Linux).
 
+Documentation:
+* Clarify that documentation is licensed under Creative Commons 3.0 BY.
+* Clean up OSL Spec discussion of built-in material closures.
+* Overhaul the suggested metadata conventions in the OSL spec (now 
+  conforms to the conventions used by Katana).
 
+
+
+
 Release 1.2.1 - 6 Nov, 2012 (compared to 1.2.0)
 -----------------------------------------------
 * Fix incorrect oso output of matrix parameter initialization. (This did

Added: trunk/lib/darwin-9.x.universal/osl/README
===================================================================
--- trunk/lib/darwin-9.x.universal/osl/README	                        (rev 0)
+++ trunk/lib/darwin-9.x.universal/osl/README	2013-04-07 14:34:02 UTC (rev 55883)
@@ -0,0 +1,326 @@
+Contents of this file:
+
+  * Introduction
+  * How OSL is different
+  * What OSL consists of
+  * Building OSL
+  * Current state of the project and road map
+  * Contacts
+  * Credits
+
+
+Introduction
+------------
+
+Welcome to Open Shading Language!
+
+Open Shading Language (OSL) is a small but rich language for
+programmable shading in advanced renderers and other applications, ideal
+for describing materials, lights, displacement, and pattern generation.
+
+OSL was developed by Sony Pictures Imageworks for use in its in-house
+renderer used for feature film animation and visual effects. The
+language specification was developed with input by other visual effects
+and animation studios who also wish to use it.
+
+OSL is robust and production-proven, and was the exclusive shading
+system for big VFX films such as "Men in Black 3: and "The Amazing
+Spider-Man," animated features such as "Hotel Transylvania", and several
+other films currently in production.
+
+OSL is distributed under the "New BSD" license (see the "LICENSE" file
+that comes with the distribution).  In short, you are free to use it in
+your own applications, whether they are free or commercial, open or
+proprietary, as well as to modify the OSL code as you desire, provided
+that you retain the original copyright notices as described in the
+license.
+
+
+
+How OSL is different
+--------------------
+
+OSL has syntax similar to C, as well as other shading languages.
+However, it is specifically designed for advanced rendering algorithms
+and has features such as radiance closures, BSDFs, and deferred ray
+tracing as first-class concepts.
+
+OSL has several unique characteristics not found in other shading
+languages (certainly not all together).  Here are some things you will
+find are different in OSL compared to other languages:
+
+* Surface and volume shaders compute radiance closures, not final colors.
+
+  OSL's surface and volume shaders compute an explicit symbolic
+  description, called a "closure", of the way a surface or volume
+  scatters light, in units of radiance.  These radiance closures may be
+  evaluated in particular directions, sampled to find important
+  directions, or saved for later evaluation and re-evaluation.
+  This new approach is ideal for a physically-based renderer that
+  supports ray tracing and global illumination.
+
+  In contrast, other shading languages usually compute just a surface
+  color as visible from a particular direction.  These old shaders are

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list