Blender Git Commits

Blender Git "object_nodes" branch commits.

Page: 7 / 23

April 5, 2016, 07:17 (GMT)
Implement bvm internal function caching and spin lock (missing from previous commit).
April 4, 2016, 17:28 (GMT)
Use function caching in the same way for BVM as for LLVM.

The previous way of acquiring functions from the cache was actually not threadsafe.
To do this efficiently the cache locking, lookup and potential update is now done
inside the API functions to prevent race conditions on the cache.
April 4, 2016, 15:34 (GMT)
Experimental (and very messy) code for JIT compiling and running a simple stub function for texnodes on the LLVM backend.
April 1, 2016, 08:22 (GMT)
Use a _bvm postfix to distinguish the "gen_XXX_function" and "eval" API methods by backend.
April 1, 2016, 07:23 (GMT)
Generalization of the function cache feature to support both bvm and llvm backends.

This code is not very elegant atm, but it does the job. Have to see how internal code
management of LLVM (modules) plays into this, the function cache then could become
redundant.
March 31, 2016, 14:39 (GMT)
Partial revert: Use only BVMFunction stub type as a handle for all backends.

API functions are still distinguished by backend.
March 31, 2016, 14:35 (GMT)
Use the BVM postfix to distinguish 'Function' in bvm backend from future LLVM functions.
March 31, 2016, 14:14 (GMT)
Fix incorrect stub type name for texnodes.
March 31, 2016, 11:00 (GMT)
Added llvm_engine files for managing global LLVM initialization and ExecutionEngine.
March 30, 2016, 15:08 (GMT)
Rename BVMFunction to BVMFunctionBVM in the C API.

The awkward double shorthand "BVM" has two meanings here:
* BVM*** is short prefix for "BlenVM" (to be changed later?).
* ***FunctionBVM means a function in the bvm backend implementation (see FunctionLLVM etc.)

This should be cleaned up later, by chosing a more sensible name for the overall code module.
March 30, 2016, 14:41 (GMT)
Cleanup: replace namespace bvm with namespace blenvm in comments.
March 30, 2016, 14:22 (GMT)
Own file for function cache API.
March 30, 2016, 13:07 (GMT)
Moved the modules directory to the blenvm base level, so modules can be shared code.

The idea is to use modules code for all the various backends to avoid lots of duplicate code.
This is similar to how the same code is used in Cycles for CPU and CUDA backends.
March 30, 2016, 11:48 (GMT)
Added blenvm_llvm submodule for implementing the LLVM backend to the blenvm node system.
March 30, 2016, 10:10 (GMT)
Support LLVM header includes.

These were not needed by Blender yet, because LLVM is only used indirectly
through dependencies, which use their own build settings for LLVM include paths.
March 30, 2016, 07:54 (GMT)
Renamed bvm_typedesc to typedesc: It's not actually specific to the bvm backend.
March 29, 2016, 16:48 (GMT)
Restructuring: Remove the 'bvm' prefix from files that are not directly concerned with the bvm backend.

The naming here is a bit confusing: BlenVM is the name used for the overall code module. BVM can be a shorthand
for BlenVM, but is also the name of the backend for SVM-like code interpreter. General purpose code (such as
node graph and util files) should avoid the bvm prefix. BlenVM as the overall name for the code module is kept
for now, but may be replaced at a later point.

Note that currently one bad-level-include from non-bvm to bvm code remains, for the Value class used in nodes.
Values should ultimately be a backend-agnostic class for storing literal values (node inputs).
March 29, 2016, 14:45 (GMT)
Merge branch 'master' into object_nodes
March 9, 2016, 16:25 (GMT)
Cleanup: Moved value class into own file, away from pure type declarations.
March 6, 2016, 14:48 (GMT)
Merge branch 'master' into object_nodes
By: Miika HämäläinenLast update: Nov-07-2014 14:18MiikaHweb | 2003-2021