[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [53274] trunk/lib/win64/osl: Windows x64 / OSL:

Thomas Dinges blender at dingto.org
Sat Dec 22 17:16:20 CET 2012


Revision: 53274
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=53274
Author:   dingto
Date:     2012-12-22 16:16:19 +0000 (Sat, 22 Dec 2012)
Log Message:
-----------
Windows x64 / OSL:
* Update OSL library with recent fixes. 

Modified Paths:
--------------
    trunk/lib/win64/osl/CHANGES
    trunk/lib/win64/osl/bin/oslc.exe
    trunk/lib/win64/osl/include/OSL/oslconfig.h
    trunk/lib/win64/osl/include/OSL/oslexec.h
    trunk/lib/win64/osl/lib/oslcomp.lib
    trunk/lib/win64/osl/lib/oslexec.lib
    trunk/lib/win64/osl/lib/oslquery.lib

Modified: trunk/lib/win64/osl/CHANGES
===================================================================
--- trunk/lib/win64/osl/CHANGES	2012-12-22 15:15:11 UTC (rev 53273)
+++ trunk/lib/win64/osl/CHANGES	2012-12-22 16:16:19 UTC (rev 53274)
@@ -1,8 +1,75 @@
 Release 1.3.x - in progress (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.
 
+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
+  should be sent to the renderer for each shading group as it compiles.
+  (The default is now to be more silent, set this to nonzero if you want
+  to see the old per-group status messages.)
+* 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).
+  
+Performance improvements:
+* Reduce instance symbol memory use, lowering OSL-related memory by 1/2-2/3
+  for large scenes.
+* 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).
+* Speed up of mix() by making it a built-in function (rather than defined
+  in stdosl.h) and doing aggressive constant folding on it. Also some special
+  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.
 
+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.)
+* Bug fix: oslinfo didn't print int metadata values properly.
+* oslc better error checking when calling a variable as if it were a
+  function.
+* Parsing of oso files was broken for compiled shaders that had string
+  metadata whose metadata value contained the '}' character.
 
+Under the hood:
+* Simplify code generation of binary ops involving closures.
+
+Build & test system improvements and developer goodies:
+* Remove unused OpenGL and GLEW searching from CMake files.
+* Fix a variety of compiler warnings, particularly on newer compilers,
+  32 bit platforms, and Windows.
+* Find LLVM correctly even when using "svn" LLVM versions.
+* Adjust failure threshold on some tests to account for minor platform
+  differences.
+* New minimum OIIO version: 1.1.
+* CMake fixes: Simplify searching for and using IlmBase, and remove
+  unneeded search for OpenEXR.
+* Find Partio (automatically, or using 'make PARTIO_HOME=...'), and if
+  found, use it to provide default RendererServices implementations of
+  all the pointcloud-related functions.
+* 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).
+
+
+Release 1.2.1 - 6 Nov, 2012 (compared to 1.2.0)
+-----------------------------------------------
+* 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.)
+* Build: remove unused OpenGL and GLEW searching from CMake files.
+* Build: Fix a variety of compiler warnings, particularly on newer compilers,
+  32 bit platforms, and Windows.
+* Build: Find LLVM correctly even when using "svn" LLVM versions.
+* Bug fix: oslinfo didn't print int metadata values properly.
+
+
 Release 1.2.0 - Aug 30, 2012 (compared to 1.1)
 ----------------------------------------------
 Note: this is more or less the production-hardened version of OSL that

Modified: trunk/lib/win64/osl/bin/oslc.exe
===================================================================
(Binary files differ)

Modified: trunk/lib/win64/osl/include/OSL/oslconfig.h
===================================================================
--- trunk/lib/win64/osl/include/OSL/oslconfig.h	2012-12-22 15:15:11 UTC (rev 53273)
+++ trunk/lib/win64/osl/include/OSL/oslconfig.h	2012-12-22 16:16:19 UTC (rev 53274)
@@ -50,9 +50,6 @@
 #include <OpenImageIO/texture.h>
 #include <OpenImageIO/typedesc.h>
 #include <OpenImageIO/ustring.h>
-#if (OIIO_VERSION < 10100)
-namespace OIIO = OIIO_NAMESPACE;
-#endif
 
 // Extensions to Imath
 #include "matrix22.h"

Modified: trunk/lib/win64/osl/include/OSL/oslexec.h
===================================================================
--- trunk/lib/win64/osl/include/OSL/oslexec.h	2012-12-22 15:15:11 UTC (rev 53273)
+++ trunk/lib/win64/osl/include/OSL/oslexec.h	2012-12-22 16:16:19 UTC (rev 53274)
@@ -75,9 +75,60 @@
                                   ErrorHandler *err=NULL);
     static void destroy (ShadingSystem *x);
 
-    /// Set an attribute controlling the texture system.  Return true
+    /// Set an attribute controlling the shading system.  Return true
     /// if the name and type were recognized and the attrib was set.
-    /// Documented attributes:
+    /// Documented attributes are as follows:
+    /// 1. Attributes that should be exposed to users:
+    ///    int statistics:level   Automatically print OSL statistics (0).
+    ///    string searchpath:shader  Colon-separated path to search for .oso
+    ///    string colorspace      Name of RGB color space ("Rec709")
+    ///    int range_checking     Generate extra code for component & array
+    ///                              range checking (1)
+    ///    int debugnan           Add extra (expensive) code to pinpoint
+    ///                              when NaN/Inf happens (0).
+    ///    int compile_report     Issue info messages to the renderer for
+    ///                              every shader compiled (0).
+    /// 2. Attributes that should be set by applications/renderers that
+    /// incorporate OSL:
+    ///    string commonspace     Name of "common" coord system ("world")
+    ///    string[] raytypes      Array of ray type names
+    ///    int unknown_coordsys_error  Should errors be issued when unknown
+    ///                                   coord system names are used?
+    ///    int strict_messages    Issue error if a message is set after
+    ///                              being queried (1).
+    ///    int lazylayers         Evaluate shader layers only when their
+    ///                              outputs are first needed (1)
+    ///    int lazyglobals        Run layers lazily even if they write to
+    ///                              globals (0)
+    ///    int greedyjit          Optimize and compile all shaders up front,
+    ///                              versus only as needed (0).
+    ///    int lockgeom           Default 'lockgeom' value for shader params
+    ///                              that don't specify it (0).  Lockgeom
+    ///                              means a param CANNOT be overridden by
+    ///                              interpolated geometric parameters.
+    ///    int countlayerexecs    Add extra code to count total layers run
+    /// 3. Attributes that that are intended for developers debugging
+    /// liboslexec itself:
+    /// These attributes may be helpful for liboslexec developers or
+    /// for debugging, but probably not for using OSL in production:
+    ///    int debug              Set debug output level (0)
+    ///    int clearmemory        Zero out working memory before each shade (0)
+    ///    int optimize           Runtime optimization level (2)
+    ///       And there are several int options that, if set to 0, will turn
+    ///       off individual classes of runtime optimizations:
+    ///         opt_constant_param, opt_constant_fold, opt_stale_assign,
+    ///         opt_elide_useless_ops, opt_elide_unconnected_outputs,
+    ///         opt_peephole, opt_coalesce_temps, opt_assign, opt_mix
+    ///         opt_merge_instances, opt_fold_getattribute
+    ///    int llvm_optimize      Which of several LLVM optimize strategies (0)
+    ///    int llvm_debug         Turn on extra LLVM debug info (0)
+    ///    int max_local_mem_KB   Error if shader group needs more than this
+    ///                              much local storage to execute (1024K)
+    ///    string debug_groupname Name of shader group -- debug only this one
+    ///    string debug_layername Name of shader layer -- debug only this one
+    ///    int optimize_nondebug  If 1, fully optimize shaders that are not
+    ///                              designated as the debug shaders.
+    ///    string only_groupname  Compile only this one group (skip all others)
     ///
     virtual bool attribute (const std::string &name, TypeDesc type,
                             const void *val) = 0;
@@ -129,6 +180,11 @@
         return ok;
     }
 
+    /// Load compiled shader (oso) from a memory buffer, overriding
+    /// shader lookups in the shader search path
+    virtual bool LoadMemoryCompiledShader (const char *shadername,
+                                           const char *buffer)=0;
+
     /// Set a parameter of the next shader.
     ///
     virtual bool Parameter (const char *name, TypeDesc t, const void *val)
@@ -168,11 +224,6 @@
     virtual bool ConnectShaders (const char *srclayer, const char *srcparam,
                                  const char *dstlayer, const char *dstparam)=0;
     
-    // Load OSO data from memory buffer, overriding shader lookups in the
-    // shader search path
-    virtual bool LoadMemoryShader (const char *shadername,
-                                   const char *buffer)=0;
-
     /// Return a reference-counted (but opaque) reference to the current
     /// shading attribute state maintained by the ShadingSystem.
     virtual ShadingAttribStateRef state () = 0;
@@ -416,6 +467,13 @@
     /// specified (object == ustring()), then the renderer should search *first*
     /// for the attribute on the currently shaded object, and next, if
     /// unsuccessful, on the currently shaded "scene". 
+    ///

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list