diff options
author | Sergey Sharybin <sergey.vfx@gmail.com> | 2017-04-04 16:47:58 +0300 |
---|---|---|
committer | Sergey Sharybin <sergey.vfx@gmail.com> | 2017-04-04 16:47:58 +0300 |
commit | 7fc84d4e32e9188cd3c4b7b732f700a632099001 (patch) | |
tree | ebcaad453138c11c64d4dd0d7bf7c058327e6ca9 | |
parent | c8cff31922a1e1138929b8ccfdab744b106f8b09 (diff) | |
parent | 92aeb84fde6402c0d2e337b030c06cfd171f5ba1 (diff) |
Merge branch 'master' into blender2.8
-rwxr-xr-x | build_files/build_environment/install_deps.sh | 13 | ||||
-rw-r--r-- | build_files/buildbot/master.cfg | 32 | ||||
-rw-r--r-- | intern/cycles/blender/blender_shader.cpp | 22 | ||||
-rw-r--r-- | intern/cycles/blender/blender_sync.h | 1 | ||||
-rw-r--r-- | intern/cycles/blender/blender_util.h | 17 | ||||
-rw-r--r-- | source/blender/blenlib/intern/task.c | 2 |
6 files changed, 50 insertions, 37 deletions
diff --git a/build_files/build_environment/install_deps.sh b/build_files/build_environment/install_deps.sh index 261f7594d68..5fc059c5c15 100755 --- a/build_files/build_environment/install_deps.sh +++ b/build_files/build_environment/install_deps.sh @@ -355,7 +355,7 @@ OPENVDB_FORCE_REBUILD=false OPENVDB_SKIP=false # Alembic needs to be compiled for now -ALEMBIC_VERSION="1.6.0" +ALEMBIC_VERSION="1.7.1" ALEMBIC_VERSION_MIN=$ALEMBIC_VERSION ALEMBIC_FORCE_BUILD=false ALEMBIC_FORCE_REBUILD=false @@ -2228,9 +2228,6 @@ compile_ALEMBIC() { return fi - compile_HDF5 - PRINT "" - # To be changed each time we make edits that would modify the compiled result! alembic_magic=2 _init_alembic @@ -2258,6 +2255,12 @@ compile_ALEMBIC() { cmake_d="-D CMAKE_INSTALL_PREFIX=$_inst" + # Without Boost or TR1, Alembic requires C++11. + if [ "$USE_CXX11" != true ]; then + cmake_d="$cmake_d -D ALEMBIC_LIB_USES_BOOST=ON" + cmake_d="$cmake_d -D ALEMBIC_LIB_USES_TR1=OFF" + fi + if [ -d $INST/boost ]; then cmake_d="$cmake_d -D BOOST_ROOT=$INST/boost" cmake_d="$cmake_d -D USE_STATIC_BOOST=ON" @@ -2277,8 +2280,6 @@ compile_ALEMBIC() { cmake_d="$cmake_d -D USE_STATIC_HDF5=OFF" cmake_d="$cmake_d -D ALEMBIC_ILMBASE_LINK_STATIC=OFF" cmake_d="$cmake_d -D ALEMBIC_SHARED_LIBS=OFF" - cmake_d="$cmake_d -D ALEMBIC_LIB_USES_BOOST=ON" - cmake_d="$cmake_d -D ALEMBIC_LIB_USES_TR1=OFF" INFO "ILMBASE_ROOT=$INST/openexr" fi diff --git a/build_files/buildbot/master.cfg b/build_files/buildbot/master.cfg index 387e53593b3..c650cb8c302 100644 --- a/build_files/buildbot/master.cfg +++ b/build_files/buildbot/master.cfg @@ -4,10 +4,10 @@ # <pep8 compliant> # List of the branches being built automatically overnight -NIGHT_SCHEDULE_BRANCHES = [None] +NIGHT_SCHEDULE_BRANCHES = [None, "blender2.8"] # List of the branches available for force build -FORCE_SCHEDULE_BRANCHES = ["master", "gooseberry", "experimental-build"] +FORCE_SCHEDULE_BRANCHES = ["master", "blender2.8", "experimental-build"] """ Stock Twisted directory lister doesn't provide any information about last file @@ -127,7 +127,14 @@ def schedule_force_build(name): project=forcesched.FixedParameter(name="project", default="", hide=True)), # For now, hide other codebases. forcesched.CodebaseParameter(hide=True, codebase="blender-translations"), - forcesched.CodebaseParameter(hide=True, codebase="blender-addons"), + forcesched.CodebaseParameter( + codebase="blender-addons", + branch=forcesched.ChoiceStringParameter( + name="branch", choices=["master", "blender2.8"], default="master"), + repository=forcesched.FixedParameter(name="repository", default="", hide=True), + project=forcesched.FixedParameter(name="project", default="", hide=True), + revision=forcesched.FixedParameter(name="revision", default="", hide=True), + ), forcesched.CodebaseParameter(hide=True, codebase="blender-addons-contrib"), forcesched.CodebaseParameter(hide=True, codebase="blender-dev-tools"), forcesched.CodebaseParameter(hide=True, codebase="lib svn")], @@ -139,11 +146,15 @@ def schedule_build(name, hour, minute=0): scheduler_name = "nightly " + name if current_branch: scheduler_name += ' ' + current_branch + # Use special addons submodule branch when building blender2.8 branch. + addons_branch = "master" + if current_branch == "blender2.8": + addons_branch = "blender2.8" c['schedulers'].append(timed.Nightly(name=scheduler_name, codebases={ "blender": {"repository": ""}, "blender-translations": {"repository": "", "branch": "master"}, - "blender-addons": {"repository": "", "branch": "master"}, + "blender-addons": {"repository": "", "branch": addons_branch}, "blender-addons-contrib": {"repository": "", "branch": "master"}, "blender-dev-tools": {"repository": "", "branch": "master"}, "lib svn": {"repository": "", "branch": "trunk"}}, @@ -225,8 +236,7 @@ def git_step(branch=''): def git_submodules_update(): - command = ['git', 'submodule', 'foreach', '--recursive', - 'git', 'pull', 'origin', 'master'] + command = ['git', 'submodule', 'update', '--remote'] return ShellCommand(name='Submodules Update', command=command, description='updating', @@ -235,7 +245,10 @@ def git_submodules_update(): def lib_svn_step(dir): - return SVN(name='lib svn', + name = "lib svn" + if dir == "darwin": + name = "C++11 lib svn" + return SVN(name=name, baseURL='https://svn.blender.org/svnroot/bf-blender/%%BRANCH%%/lib/' + dir, codebase='lib svn', mode='update', @@ -264,6 +277,9 @@ def generic_builder(id, libdir='', branch='', rsync=False): f = BuildFactory() if libdir != '': f.addStep(lib_svn_step(libdir)) + # Special trick to make sure we always have all the libs. + if libdir.startswith("darwin"): + f.addStep(lib_svn_step("darwin")) for submodule in ('blender-translations', 'blender-addons', @@ -286,7 +302,7 @@ def generic_builder(id, libdir='', branch='', rsync=False): f.addStep(FileUpload(name='upload', slavesrc='buildbot_upload.zip', masterdest=filename, - maxsize=150 * 1024 * 1024, + maxsize=180 * 1024 * 1024, workdir='install')) f.addStep(MasterShellCommand(name='unpack', command=['python2.7', unpack_script, filename], diff --git a/intern/cycles/blender/blender_shader.cpp b/intern/cycles/blender/blender_shader.cpp index df21e2640bd..3f04f11aab4 100644 --- a/intern/cycles/blender/blender_shader.cpp +++ b/intern/cycles/blender/blender_shader.cpp @@ -27,7 +27,9 @@ #include "blender/blender_util.h" #include "util/util_debug.h" +#include "util/util_foreach.h" #include "util/util_string.h" +#include "util/util_set.h" #include "util/util_task.h" CCL_NAMESPACE_BEGIN @@ -1158,13 +1160,6 @@ static void add_nodes(Scene *scene, /* Sync Materials */ -void BlenderSync::sync_materials_simpligy(Shader *shader) -{ - ShaderGraph *graph = shader->graph; - graph->simplify(scene); - shader->tag_update(scene); -} - void BlenderSync::sync_materials(bool update_all) { shader_map.set_default(scene->default_surface); @@ -1173,6 +1168,7 @@ void BlenderSync::sync_materials(bool update_all) BL::BlendData::materials_iterator b_mat; TaskPool pool; + set<Shader*> updated_shaders; for(b_data.materials.begin(b_mat); b_mat != b_data.materials.end(); ++b_mat) { Shader *shader; @@ -1220,9 +1216,11 @@ void BlenderSync::sync_materials(bool update_all) * right before compiling. */ if(!preview) { - pool.push(function_bind(&BlenderSync::sync_materials_simpligy, - this, - shader)); + pool.push(function_bind(&ShaderGraph::simplify, graph, scene)); + /* NOTE: Update shaders out of the threads since those routines + * are accessing and writing to a global context. + */ + updated_shaders.insert(shader); } else { /* NOTE: Update tagging can access links which are being @@ -1234,6 +1232,10 @@ void BlenderSync::sync_materials(bool update_all) } pool.wait_work(); + + foreach(Shader *shader, updated_shaders) { + shader->tag_update(scene); + } } /* Sync World */ diff --git a/intern/cycles/blender/blender_sync.h b/intern/cycles/blender/blender_sync.h index 62e2f8f563a..36bedc505af 100644 --- a/intern/cycles/blender/blender_sync.h +++ b/intern/cycles/blender/blender_sync.h @@ -96,7 +96,6 @@ public: private: /* sync */ void sync_lamps(bool update_all); - void sync_materials_simpligy(Shader *shader); void sync_materials(bool update_all); void sync_objects(BL::SpaceView3D& b_v3d, float motion_time = 0.0f); void sync_motion(BL::RenderSettings& b_render, diff --git a/intern/cycles/blender/blender_util.h b/intern/cycles/blender/blender_util.h index 4d575330520..abdbb6be0fd 100644 --- a/intern/cycles/blender/blender_util.h +++ b/intern/cycles/blender/blender_util.h @@ -174,22 +174,19 @@ static inline void curvemapping_color_to_array(BL::CurveMapping& cumap, if(rgb_curve) { BL::CurveMap mapI = cumap.curves[3]; - for(int i = 0; i < size; i++) { - float t = min_x + (float)i/(float)(size-1) * range_x; - - data[i][0] = mapR.evaluate(mapI.evaluate(t)); - data[i][1] = mapG.evaluate(mapI.evaluate(t)); - data[i][2] = mapB.evaluate(mapI.evaluate(t)); + const float t = min_x + (float)i/(float)(size-1) * range_x; + data[i] = make_float3(mapR.evaluate(mapI.evaluate(t)), + mapG.evaluate(mapI.evaluate(t)), + mapB.evaluate(mapI.evaluate(t))); } } else { for(int i = 0; i < size; i++) { float t = min_x + (float)i/(float)(size-1) * range_x; - - data[i][0] = mapR.evaluate(t); - data[i][1] = mapG.evaluate(t); - data[i][2] = mapB.evaluate(t); + data[i] = make_float3(mapR.evaluate(t), + mapG.evaluate(t), + mapB.evaluate(t)); } } } diff --git a/source/blender/blenlib/intern/task.c b/source/blender/blenlib/intern/task.c index 17e20f8fa18..297d0f0b310 100644 --- a/source/blender/blenlib/intern/task.c +++ b/source/blender/blenlib/intern/task.c @@ -743,9 +743,7 @@ void BLI_task_pool_work_and_wait(TaskPool *pool) BLI_condition_notify_all(&scheduler->queue_cond); BLI_mutex_unlock(&scheduler->queue_mutex); - } - pool->is_suspended = false; } pool->do_work = true; |