[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [52254] trunk/lib/win64: Windows x64 MSVC:

Thomas Dinges blender at dingto.org
Thu Nov 15 22:12:14 CET 2012


Revision: 52254
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=52254
Author:   dingto
Date:     2012-11-15 21:12:06 +0000 (Thu, 15 Nov 2012)
Log Message:
-----------
Windows x64 MSVC:
* Static OSL 1.2 libraries (blender-fixes branch). 
* Flex/Bison files, dependencies needed when building new OSL libs. 

Added Paths:
-----------
    trunk/lib/win64/osl/
    trunk/lib/win64/osl/CHANGES
    trunk/lib/win64/osl/bin/
    trunk/lib/win64/osl/bin/oslc.exe
    trunk/lib/win64/osl/build.bat
    trunk/lib/win64/osl/flex_bison/
    trunk/lib/win64/osl/flex_bison/bin/
    trunk/lib/win64/osl/flex_bison/bin/data/
    trunk/lib/win64/osl/flex_bison/bin/data/bison.m4
    trunk/lib/win64/osl/flex_bison/bin/data/c-skel.m4
    trunk/lib/win64/osl/flex_bison/bin/data/c.m4
    trunk/lib/win64/osl/flex_bison/bin/data/m4sugar/
    trunk/lib/win64/osl/flex_bison/bin/data/m4sugar/foreach.m4
    trunk/lib/win64/osl/flex_bison/bin/data/m4sugar/m4sugar.m4
    trunk/lib/win64/osl/flex_bison/bin/data/yacc.c
    trunk/lib/win64/osl/flex_bison/bin/win_bison.exe
    trunk/lib/win64/osl/flex_bison/bin/win_flex.exe
    trunk/lib/win64/osl/flex_bison/include/
    trunk/lib/win64/osl/flex_bison/include/FlexLexer.h
    trunk/lib/win64/osl/include/
    trunk/lib/win64/osl/include/OSL/
    trunk/lib/win64/osl/include/OSL/Imathx.h
    trunk/lib/win64/osl/include/OSL/accum.h
    trunk/lib/win64/osl/include/OSL/dual.h
    trunk/lib/win64/osl/include/OSL/dual_vec.h
    trunk/lib/win64/osl/include/OSL/export.h
    trunk/lib/win64/osl/include/OSL/genclosure.h
    trunk/lib/win64/osl/include/OSL/matrix22.h
    trunk/lib/win64/osl/include/OSL/optautomata.h
    trunk/lib/win64/osl/include/OSL/oslclosure.h
    trunk/lib/win64/osl/include/OSL/oslcomp.h
    trunk/lib/win64/osl/include/OSL/oslconfig.h
    trunk/lib/win64/osl/include/OSL/oslexec.h
    trunk/lib/win64/osl/include/OSL/oslquery.h
    trunk/lib/win64/osl/include/OSL/oslversion.h
    trunk/lib/win64/osl/lib/
    trunk/lib/win64/osl/lib/oslcomp.lib
    trunk/lib/win64/osl/lib/oslexec.lib
    trunk/lib/win64/osl/lib/oslquery.lib

Added: trunk/lib/win64/osl/CHANGES
===================================================================
--- trunk/lib/win64/osl/CHANGES	                        (rev 0)
+++ trunk/lib/win64/osl/CHANGES	2012-11-15 21:12:06 UTC (rev 52254)
@@ -0,0 +1,287 @@
+Release 1.3.x - in progress (compared to 1.2)
+----------------------------------------------
+
+
+
+Release 1.2.0 - Aug 30, 2012 (compared to 1.1)
+----------------------------------------------
+Note: this is more or less the production-hardened version of OSL that
+was used to complete Men in Black 3, The Amazing Spider-Man, and Hotel
+Transylvania.
+
+New tools/utilities:
+* New program "testrender" is a tiny ray-tracing renderer that uses OSL
+  for shading.  Features are very minimal (only spheres are permitted at
+  this time) and there has been no attention to performance, but it
+  demonstrates how the OSL libraries may be integrated into a working
+  renderer, what interfaces the renderer needs to supply, and how the
+  BSDFs/radiance closures should be evaluated and integrated (including
+  with multiple importance sampling).
+* shaders/ubersurface.osl is an example of a general purpose surface
+  shader.
+
+Language, standard libary, and compiler changes:
+* texture()/texture3d() support for subimage/face selection by name as
+  well as by numeric index.
+* getattribute() performs automatic type conversions that mostly
+  correspond to the kind of automatic type casting you would get from
+  ordinary assignments in OSL.  For example, getattribute("attrib",mycolor)
+  used to fail if "attrib" turned out to be a float rather than a color;
+  but now it succeeds and copies the float value to all three channels
+  of mycolor.
+
+ShadingSystem API changes and new options:
+* Remove unused 'size' parameter from the register_closure API.
+
+Optimization improvements:
+* Constant-fold pointcloud_search calls when the position is a constant if
+  the search returns few enough results, by doing the query at optimization
+  time and putting the results into new constant arrays.
+* Matrix parameters initialized by m=matrix(constA,constB,...) now 
+  statically initialize, and no longer need to run initialization code
+  each time the shader executes.
+
+Bug fixes and minor improvements:
+* Fix pointcloud_search to optionally take a 'sort' parameter, as
+  originally documented.
+* Unit tests weren't properly run as part of the testsuite.
+* Track local+temp memory usage of optimized shaders and consider it an 
+  error if a shader needs more than a maximum amount at runtime, set with
+  the "max_local_mem_KB" attribute.
+* Add pointcloud statistics.
+* Fix derivative error for sincos() when the inputs have no derivatives but
+  the outputs do.
+* Bug fix to vector-returning Gabor noise (it could previously generate
+  different values for different platforms).
+* printf() of closures built from other closures allows for proper
+  recursive printing of the closure tree.
+
+Build & test system improvements and developer goodies:
+* Simplify the namespace scheme.
+* Remove support for certain old dependencies: OIIO versions < 0.10,
+  LLVM < 3.0, and Boost < 1.40.
+* Lots of little fixes to solve compiler warnings on various compilers.
+* Support for newer OSX releases, particularly if /usr/bin/cpp-4.2 is not
+  found.
+* Better support for Boost::wave (portable C preprocessor replacement).
+  Build with 'make USE_BOOST_WAVE=1' to force Wave use instead of system
+  cpp.
+* You can select a custom LLVM namespace with 'make LLVM_NAMESPACE=...'.
+* Symbols that are not part of the OSL public APIs are now hidden from the
+  linker in Linux/OSX if the CMake variable HIDE_SYMBOLS is on.
+* New Makefile/CMake option LLVM_STATIC can be used to use static LLVM
+  libraries rather than the default dynamic libraries.
+* Support for LLVM 3.1.
+* Support for building with Clang 3.1 (lots of warning fixes).
+* Makefile/CMake variable EXTRA_CPP_DEFINITIONS allows you to inject
+  additional compiler flags that you may need to customize the build for
+  your site or a choice of unusual compiler.
+* Add support for 'PROFILE=1' builds that are appropriate for use with
+  a profile.
+
+
+
+Release 1.1.0 - Mar 14, 2012 (compared to 1.0.0)
+------------------------------------------------
+Language, standard libary, and compiler changes:
+* Allow closures as parameters to closures.
+* New constants: M_2PI, M_4PI
+* Generic noise: noise("noisetype",coords,...)
+* Gabor noise (anisotropic, automatically antialiased) via noise("gabor").
+* Fix mod/fmod discrepancy: fmod() now matches C, mod() always returns a
+  positive result like in RSL.
+* Allow "if (closure): and "if (!closure)" to test if a closure is empty
+  or not.
+* New optional parameter to trace(): "traceset" allows you to specify a
+  named geometry set for tracing.
+
+ShadingSystem API changes and new options:
+* New "greedyjit" option will optimize & JIT all shader groups up front,
+  concurrently, without locking.
+* Add a way to name shader groups.
+* attribute("options",...) lets you set a bunch of options at once.
+* Options to enable/disable individual optimizations (mostly useful for
+  debugging)
+
+Optimization improvements:
+* Allow block alias tracking on non-constants when it's safe.
+* Track "stale" values to eliminate pointless assignments.
+* Eliminate redundant "useparam" ops.
+* Assignments to output parameters that are not connected to any
+  downstream layers are now eliminated.
+* More aggressive elision of ops that only write to symbols that won't
+  be subsequently used.
+* More careful identification and removal of parameters (input and output)
+  that are both unused in the shader and not connected downstream.
+
+Bug fixes and minor improvements:
+* Minor blackbody fixes.
+* Bug fix: don't mark constants as having their derivatives taken.
+* Clamp splineinverse() for out-of-knot-range x input.
+* Bug fix: the optimization of "a=b; a=c" was incorrect if c was an
+  alias for a (it incorrectly eliminated the first assignment).
+* Bug fix: work around LLVM thread safety issues during JIT.
+* Bug fix: symbol_data() wasn't returning the right address for non-heap
+  parameters.
+* Bug fix: optimization errors related to break, continue, and return not
+  properly marking the next instruction as a new basic block.
+* Bug fix: luminance() with derivatives didn't work.
+* Bug fix: in code generation of structure initializers.
+* Improved error messages from ConnectShaders.
+* Bug fix: type checking bug could case non-exactly-matching polymorphic 
+  functions to coerce a return value even when that was not intended.
+* Type checking improvements: Make sure point-point is a vector
+  expression, and point+vector & point-vector are point expressions.
+
+Build & test system improvements and developer goodies:
+* testsuite overhauls:
+    - run each test both optimized and not
+    - generate all tests in build, not directly in ./testsuite
+    - greatly simplify the run.py scripts
+* Much more detailed debugging logs of the optimization process.
+* Upgrade to clang/llvm 3.0.
+* Lots of infrastructure to make debugging the optimizer easier.
+  Including new options debug_groupname, debug_layername, only_groupname.
+* Improved the build system's LLVM-finding logic.
+* Fix warnings from gcc 4.6.
+
+
+
+Release 1.0.0 - Oct 12, 2011
+----------------------------
+* Modified testshade (and the underlying SimpleRender class) to handle
+  several standard named coordinate systems such as "camera", "screen",
+  "NDC", "raster."
+* blackbody() and wavelength_color().
+* New ShadingSystem configuration attribute: "colorspace" lets you explain
+  to OSL what RGB really means (e.g., "Rec709", "sRGB", "NTSC", etc.).
+  The luminance(), blackbody(), wavelength_color, and conversion to/from
+  XYZ now takes this into account correctly.
+* rotate()  (always in spec, never implemented)
+
+
+
+Release 0.6.2 - Sept 29, 2011
+-----------------------------
+* Statistics overhaul -- added optimization stats, eliminated unused ones.
+* Allow a shader parameter to mask a global built-in function with
+  only a warning, and improve scope conflict errors by pointing out the
+  file and line of the previous definition.
+* Altered the RendererServices API to add transform_points() method, which
+  allows renderers to support nonlinear transformations (i.e., those that
+  are not expressible as a 4x4 matrix).
+* Issue a renderer error when unknown coordinate system names are used
+  (can be turned of by setting the new ShadingSystem attribute 
+  "unknown_coordsys_error" to false).
+* New OSL built-in function: splineinverse().
+
+
+Release 0.6.1 - Sept 20, 2011
+-----------------------------
+* Be more aggressive in freeing shader instance memory that's no longer
+  needed after optimization and LLVM JIT.  This greatly reduces
+  OSL-related memory consumption for scenes with large numbers of very
+  complicated shading networks.
+* Add Dz() which is helpful for apps that use OSL to shade volumes.  At
+  present, we only correctly compute Dz(P), all other Dz() queries
+  return 0.
+* Additional statistics on how many instances and groups compile, and
+  how many are empty after all optimizations are performed.
+* Make sure all the relevant statistics can be queried via
+  ShadingSystem::getattribute.
+
+
+Release 0.6.0 - Sept 9, 2011
+----------------------------
+* ShadeExec API overhaul -- an app using it no longer needs
+  ShadingSystemImpl internal knowledge.
+* Thread-parallel runtime optimization and LLVM JIT of different shader
+  groups.
+* Optimizations: runtime constant folding of arraylength and regex_search,
+  new instruction 'arraycopy' will copy an entire array at once.
+* Renamed patterns.h to oslutil.h.
+* Do not generate unnecessary code when optional texture parameters are set
+  to their default values.
+* Restore long-lost ability for layers to run unconditionally (not lazily)
+  if they were marked as "non-lazy" (for example, if they write to globals.
+* Make the "debugnan" attribute work again -- when turned on, code will
+  be inserted after every op to be sure that no NaN or Inf values are
+  generated, and also verify that shader inputs (globals) don't have NaN
+  or Inf values passed in by the renderer.  A similar facility existed a
+  long time ago, but we lost that functionality when we switched from
+  the interpreter to LLVM.

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list