[Bf-blender-cvs] [0161dd62b2] cycles_split_kernel: Cycles: Zero split kernel state memory outside of kernel
Commit: 0161dd62b21a040b990b11e7c2afafe199bcdf14 Author: Mai Lavelle Date: Thu Jan 26 00:05:55 2017 -0500 Branches: cycles_split_kernel https://developer.blender.org/rB0161dd62b21a040b990b11e7c2afafe199bcdf14 Cycles: Zero split kernel state memory outside of kernel Fixes problem seen with CUDA. The global work size wasn't large enough for the data_init kernel to zero the full buffers, so now its done from the host. === M intern/cycles/device/device_split_kernel.cpp M intern/cycles/device/device_split_kernel.h M intern/cycles/kernel/split/kernel_data_init.h === diff --git a/intern/cycles/device/device_split_kernel.cpp b/intern/cycles/device/device_split_kernel.cpp index e47b65b459..57f2809f08 100644 --- a/intern/cycles/device/device_split_kernel.cpp +++ b/intern/cycles/device/device_split_kernel.cpp @@ -194,6 +194,12 @@ bool DeviceSplitKernel::path_trace(DeviceTask *task, return false; } + /* reset state memory here as global size for data_init +* kernel might not be large enough to do in kernel +*/ + device->mem_zero(work_pool_wgs); + device->mem_zero(split_data); + if(!device->enqueue_split_kernel_data_init(KernelDimensions(global_size, local_size), subtile, num_global_elements, diff --git a/intern/cycles/device/device_split_kernel.h b/intern/cycles/device/device_split_kernel.h index 92dfb7f099..7c9db7fbd1 100644 --- a/intern/cycles/device/device_split_kernel.h +++ b/intern/cycles/device/device_split_kernel.h @@ -50,7 +50,7 @@ private: * memory. */ device_memory kgbuffer; - device_memory split_data; + device_vector split_data; device_vector ray_state; device_memory queue_index; /* Array of size num_queues * sizeof(int) that tracks the size of each queue. */ @@ -61,7 +61,7 @@ private: double avg_time_per_sample; /* Work pool with respect to each work group. */ - device_memory work_pool_wgs; + device_vector work_pool_wgs; /* clos_max value for which the kernels have been loaded currently. */ int current_max_closure; diff --git a/intern/cycles/kernel/split/kernel_data_init.h b/intern/cycles/kernel/split/kernel_data_init.h index 56a334d384..10f90c5196 100644 --- a/intern/cycles/kernel/split/kernel_data_init.h +++ b/intern/cycles/kernel/split/kernel_data_init.h @@ -127,12 +127,6 @@ void KERNEL_FUNCTION_FULL_NAME(data_init)( int thread_index = ccl_global_id(1) * ccl_global_size(0) + ccl_global_id(0); - /* Initialize work_pools */ - if(thread_index < kernel_num_work_pools(kg)) { - work_pools[thread_index] = 0; - } - ccl_barrier(CCL_LOCAL_MEM_FENCE); - /* Initialize queue data and queue index. */ if(thread_index < queuesize) { /* Initialize active ray queue. */ @@ -193,19 +187,9 @@ void KERNEL_FUNCTION_FULL_NAME(data_init)( rng_state += (rng_state_offset_x + tile_x) + (rng_state_offset_y + tile_y) * rng_state_stride; - - /* Initialise per_sample_output_buffers to all zeros. */ ccl_global float *per_sample_output_buffers = kernel_split_state.per_sample_output_buffers; per_sample_output_buffers += ((tile_x + (tile_y * stride)) + (my_sample_tile)) * kernel_data.film.pass_stride; - int per_sample_output_buffers_iterator = 0; - for(per_sample_output_buffers_iterator = 0; - per_sample_output_buffers_iterator < kernel_data.film.pass_stride; - per_sample_output_buffers_iterator++) - { - per_sample_output_buffers[per_sample_output_buffers_iterator] = 0.0f; - } - /* Initialize random numbers and ray. */ kernel_path_trace_setup(kg, rng_state, ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [01527197aa] master: Alembic: fix compile error on Linux.
Commit: 01527197aa4868030c40e72b81286fa2718572c5 Author: Kévin Dietrich Date: Thu Jan 26 06:18:07 2017 +0100 Branches: master https://developer.blender.org/rB01527197aa4868030c40e72b81286fa2718572c5 Alembic: fix compile error on Linux. === M source/blender/alembic/CMakeLists.txt === diff --git a/source/blender/alembic/CMakeLists.txt b/source/blender/alembic/CMakeLists.txt index ad85f79ef2..a6e0be6a7f 100644 --- a/source/blender/alembic/CMakeLists.txt +++ b/source/blender/alembic/CMakeLists.txt @@ -39,14 +39,10 @@ set(INC set(INC_SYS ${ALEMBIC_INCLUDE_DIRS} + ${BOOST_INCLUDE_DIR} ${HDF5_INCLUDE_DIRS} ${OPENEXR_INCLUDE_DIRS} ) -if(APPLE OR WIN32) - list(APPEND INC_SYS - ${BOOST_INCLUDE_DIR} - ) -endif() set(SRC intern/abc_archive.cc ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [b91edd61d0] master: Fix T50287: Blender crashes when open a blend that contains an alembic file.
Commit: b91edd61d07555649dff6ec43275130fd06b3659 Author: Kévin Dietrich Date: Thu Jan 26 06:16:33 2017 +0100 Branches: master https://developer.blender.org/rBb91edd61d07555649dff6ec43275130fd06b3659 Fix T50287: Blender crashes when open a blend that contains an alembic file. Missed in rB62a2ed97b. === M source/blender/blenloader/intern/readfile.c === diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c index 61f1965734..4396fa218b 100644 --- a/source/blender/blenloader/intern/readfile.c +++ b/source/blender/blenloader/intern/readfile.c @@ -3244,6 +3244,11 @@ static void direct_link_constraints(FileData *fd, ListBase *lb) con->flag |= CONSTRAINT_SPACEONCE; break; } + case CONSTRAINT_TYPE_TRANSFORM_CACHE: + { + bTransformCacheConstraint *data = con->data; + data->reader = NULL; + } } } } ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [99e8618202] render-layers: Remove scene layer and collection from context
Commit: 99e8618202e8393a363377078faa9b3c0cfc905d Author: Dalai Felinto Date: Wed Jan 25 16:57:23 2017 +0100 Branches: render-layers https://developer.blender.org/rB99e8618202e8393a363377078faa9b3c0cfc905d Remove scene layer and collection from context === M source/blender/blenkernel/BKE_context.h M source/blender/blenkernel/intern/context.c === diff --git a/source/blender/blenkernel/BKE_context.h b/source/blender/blenkernel/BKE_context.h index 70f9fa3dfc..649d142d1c 100644 --- a/source/blender/blenkernel/BKE_context.h +++ b/source/blender/blenkernel/BKE_context.h @@ -251,8 +251,6 @@ int CTX_data_mode_enum(const bContext *C); void CTX_data_main_set(bContext *C, struct Main *bmain); void CTX_data_scene_set(bContext *C, struct Scene *bmain); -void CTX_data_scene_collection_set(bContext *C, struct SceneCollection *sc); -void CTX_data_scene_layer_set(bContext *C, struct SceneLayer *sl); int CTX_data_selected_editable_objects(const bContext *C, ListBase *list); int CTX_data_selected_editable_bases(const bContext *C, ListBase *list); diff --git a/source/blender/blenkernel/intern/context.c b/source/blender/blenkernel/intern/context.c index 592adfc578..f31b844155 100644 --- a/source/blender/blenkernel/intern/context.c +++ b/source/blender/blenkernel/intern/context.c @@ -79,8 +79,6 @@ struct bContext { struct { struct Main *main; struct Scene *scene; - struct SceneLayer *render_layer; - struct SceneCollection *scene_collection; int recursion; int py_init; /* true if python is initialized */ @@ -908,7 +906,10 @@ SceneLayer *CTX_data_scene_layer(const bContext *C) return sl; } else { - return C->data.render_layer; + Scene *scene = CTX_data_scene(C); + /* temporary, waiting for workspace or scene active layer */ + TODO_LAYER_CONTEXT; + return scene->render_layers.last; } } @@ -928,15 +929,11 @@ SceneCollection *CTX_data_scene_collection(const bContext *C) if (BKE_scene_layer_has_collection(sl, sc)) { return sc; } - else { - /* fallback */ - LayerCollection *lc = BKE_layer_collection_active(sl); - return lc->scene_collection; - } - } - else { - return C->data.scene_collection; } + + /* fallback */ + LayerCollection *lc = BKE_layer_collection_active(sl); + return lc->scene_collection; } int CTX_data_mode_enum(const bContext *C) @@ -1005,26 +1002,6 @@ const char *CTX_data_mode_string(const bContext *C) void CTX_data_scene_set(bContext *C, Scene *scene) { C->data.scene = scene; - TODO_LAYER_CONTEXT - - /* render_layer comes from workspace (or even viewport) actually -* this is only while we wait for workspace changes to be merged -*/ - CTX_data_scene_layer_set(C, scene->render_layers.last); -} - -void CTX_data_scene_collection_set(bContext *C, SceneCollection *sc) -{ - C->data.scene_collection = sc; -} - -void CTX_data_scene_layer_set(bContext *C, SceneLayer *sl) -{ - C->data.render_layer = sl; - - /* update the related data */ - LayerCollection *lc = BKE_layer_collection_active(sl); - CTX_data_scene_collection_set(C, lc->scene_collection); } ToolSettings *CTX_data_tool_settings(const bContext *C) ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [e346927111] render-layers: Remove unused panels (layer_passes and layer_options)
Commit: e3469271110da75f8c213a5505c2bfcdb77331b2 Author: Dalai Felinto Date: Wed Jan 25 18:02:58 2017 +0100 Branches: render-layers https://developer.blender.org/rBe3469271110da75f8c213a5505c2bfcdb77331b2 Remove unused panels (layer_passes and layer_options) === M release/scripts/startup/bl_ui/properties_render_layer.py === diff --git a/release/scripts/startup/bl_ui/properties_render_layer.py b/release/scripts/startup/bl_ui/properties_render_layer.py index 639e6fa6c9..45c93dd933 100644 --- a/release/scripts/startup/bl_ui/properties_render_layer.py +++ b/release/scripts/startup/bl_ui/properties_render_layer.py @@ -71,103 +71,6 @@ class RENDERLAYER_PT_layers(RenderLayerButtonsPanel, Panel): col.prop(rd, "use_single_layer", icon_only=True) -class RENDERLAYER_PT_layer_options(RenderLayerButtonsPanel, Panel): -bl_label = "Layer" -COMPAT_ENGINES = {'BLENDER_RENDER'} - -def draw(self, context): -layout = self.layout - -scene = context.scene -rd = scene.render -rl = rd.layers.active - -split = layout.split() - -col = split.column() -col.prop(scene, "layers", text="Scene") -col.label(text="") -col.prop(rl, "light_override", text="Lights") -col.prop(rl, "material_override", text="Material") - -col = split.column() -col.prop(rl, "layers", text="Layer") -col.prop(rl, "layers_zmask", text="Mask Layer") - -layout.separator() -layout.label(text="Include:") - -split = layout.split() - -col = split.column() -col.prop(rl, "use_zmask") -row = col.row() -row.prop(rl, "invert_zmask", text="Negate") -row.active = rl.use_zmask -col.prop(rl, "use_all_z") - -col = split.column() -col.prop(rl, "use_solid") -col.prop(rl, "use_halo") -col.prop(rl, "use_ztransp") - -col = split.column() -col.prop(rl, "use_sky") -col.prop(rl, "use_edge_enhance") -col.prop(rl, "use_strand") -if bpy.app.build_options.freestyle: -row = col.row() -row.prop(rl, "use_freestyle") -row.active = rd.use_freestyle - - -class RENDERLAYER_PT_layer_passes(RenderLayerButtonsPanel, Panel): -bl_label = "Passes" -bl_options = {'DEFAULT_CLOSED'} -COMPAT_ENGINES = {'BLENDER_RENDER'} - -@staticmethod -def draw_pass_type_buttons(box, rl, pass_type): -# property names -use_pass_type = "use_pass_" + pass_type -exclude_pass_type = "exclude_" + pass_type -# draw pass type buttons -row = box.row() -row.prop(rl, use_pass_type) -row.prop(rl, exclude_pass_type, text="") - -def draw(self, context): -layout = self.layout - -scene = context.scene -rd = scene.render -rl = rd.layers.active - -split = layout.split() - -col = split.column() -col.prop(rl, "use_pass_combined") -col.prop(rl, "use_pass_z") -col.prop(rl, "use_pass_vector") -col.prop(rl, "use_pass_normal") -col.prop(rl, "use_pass_uv") -col.prop(rl, "use_pass_mist") -col.prop(rl, "use_pass_object_index") -col.prop(rl, "use_pass_material_index") -col.prop(rl, "use_pass_color") - -col = split.column() -col.prop(rl, "use_pass_diffuse") -self.draw_pass_type_buttons(col, rl, "specular") -self.draw_pass_type_buttons(col, rl, "shadow") -self.draw_pass_type_buttons(col, rl, "emit") -self.draw_pass_type_buttons(col, rl, "ambient_occlusion") -self.draw_pass_type_buttons(col, rl, "environment") -self.draw_pass_type_buttons(col, rl, "indirect") -self.draw_pass_type_buttons(col, rl, "reflection") -self.draw_pass_type_buttons(col, rl, "refraction") - - class RENDERLAYER_UL_renderviews(UIList): def draw_item(self, context, layout, data, item, icon, active_data, active_propname, index): # assert(isinstance(item, bpy.types.SceneRenderView) ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [dd61b7d346] render-layers: Add scene active layer
Commit: dd61b7d346fe8ead3405c9168c43919ac4187049 Author: Dalai Felinto Date: Wed Jan 25 18:02:09 2017 +0100 Branches: render-layers https://developer.blender.org/rBdd61b7d346fe8ead3405c9168c43919ac4187049 Add scene active layer === M release/scripts/startup/bl_ui/properties_render_layer.py M source/blender/blenkernel/intern/context.c M source/blender/blenkernel/intern/layer.c M source/blender/blenloader/intern/versioning_280.c M source/blender/editors/render/render_shading.c M source/blender/makesdna/DNA_layer_types.h M source/blender/makesdna/DNA_scene_types.h M source/blender/makesrna/intern/rna_scene.c M tests/python/bl_render_layer.py === diff --git a/release/scripts/startup/bl_ui/properties_render_layer.py b/release/scripts/startup/bl_ui/properties_render_layer.py index 9b8bc237db..639e6fa6c9 100644 --- a/release/scripts/startup/bl_ui/properties_render_layer.py +++ b/release/scripts/startup/bl_ui/properties_render_layer.py @@ -35,7 +35,7 @@ class RenderLayerButtonsPanel: class RENDERLAYER_UL_renderlayers(UIList): def draw_item(self, context, layout, data, item, icon, active_data, active_propname, index): -# assert(isinstance(item, bpy.types.SceneRenderLayer) +# assert(isinstance(item, bpy.types.SceneLayer) layer = item if self.layout_type in {'DEFAULT', 'COMPACT'}: layout.prop(layer, "name", text="", icon_value=icon, emboss=False) @@ -62,7 +62,7 @@ class RENDERLAYER_PT_layers(RenderLayerButtonsPanel, Panel): row = layout.row() col = row.column() -col.template_list("RENDERLAYER_UL_renderlayers", "", rd, "layers", rd.layers, "active_index", rows=2) +col.template_list("RENDERLAYER_UL_renderlayers", "", scene, "render_layers", scene.render_layers, "active_index", rows=2) col = row.column() sub = col.column(align=True) diff --git a/source/blender/blenkernel/intern/context.c b/source/blender/blenkernel/intern/context.c index f31b844155..8025732efe 100644 --- a/source/blender/blenkernel/intern/context.c +++ b/source/blender/blenkernel/intern/context.c @@ -907,9 +907,9 @@ SceneLayer *CTX_data_scene_layer(const bContext *C) } else { Scene *scene = CTX_data_scene(C); - /* temporary, waiting for workspace or scene active layer */ - TODO_LAYER_CONTEXT; - return scene->render_layers.last; + sl = BLI_findlink(>render_layers, scene->active_layer); + BLI_assert(sl); + return sl; } } diff --git a/source/blender/blenkernel/intern/layer.c b/source/blender/blenkernel/intern/layer.c index 40cba30437..f7b396b11c 100644 --- a/source/blender/blenkernel/intern/layer.c +++ b/source/blender/blenkernel/intern/layer.c @@ -57,7 +57,13 @@ static void object_bases_Iterator_next(Iterator *iter, const int flag); */ SceneLayer *BKE_scene_layer_add(Scene *scene, const char *name) { + if (!name) { + name = DATA_("Render Layer"); + } + SceneLayer *sl = MEM_callocN(sizeof(SceneLayer), "Scene Layer"); + sl->flag |= SCENE_LAYER_RENDER; + BLI_addtail(>render_layers, sl); /* unique name */ @@ -85,9 +91,11 @@ bool BKE_scene_layer_remove(Main *bmain, Scene *scene, SceneLayer *sl) } BLI_remlink(>render_layers, sl); + BKE_scene_layer_free(sl); MEM_freeN(sl); + scene->active_layer = 0; /* TODO WORKSPACE: set active_layer to 0 */ for (Scene *sce = bmain->scene.first; sce; sce = sce->id.next) { diff --git a/source/blender/blenloader/intern/versioning_280.c b/source/blender/blenloader/intern/versioning_280.c index 6706a33b6b..28952795b4 100644 --- a/source/blender/blenloader/intern/versioning_280.c +++ b/source/blender/blenloader/intern/versioning_280.c @@ -78,6 +78,8 @@ void blo_do_versions_after_linking_280(Main *main) } } + scene->active_layer = 0; + if (!BKE_scene_uses_blender_game(scene)) { for (SceneRenderLayer *srl = scene->r.layers.first; srl; srl = srl->next) { @@ -107,6 +109,10 @@ void blo_do_versions_after_linking_280(Main *main) /* TODO: passes, samples, mask_layesr, exclude, ... */ } + + if (BLI_findlink(>render_layers, scene->r.actlay)) { + scene->active_layer = scene->r.actlay; + } } SceneLayer *sl = BKE_scene_layer_add(scene, "Render
[Bf-blender-cvs] [64f5afdb89] master: [Cycles/MSVC/Testing] Fix broken test code.
Commit: 64f5afdb89bbf3831e97d76a178acee1d9524452 Author: lazydodo Date: Wed Jan 25 09:36:41 2017 -0700 Branches: master https://developer.blender.org/rB64f5afdb89bbf3831e97d76a178acee1d9524452 [Cycles/MSVC/Testing] Fix broken test code. Currently the tests don't run on windows for the following reasons 1) render_graph_finalize has an linking issue due missing a bunch of libraries (not sure why this is not an issue for linux) 2) This one is more interesting, in test/python/cmakelists.txt ${TEST_BLENDER_EXE_BARE} and ${TEST_BLENDER_EXE} are flat out wrong, but for some reason this doesn't matter for most tests, cause ctest will actually go out and look for the executable and fix the path for you *BUT* only for the command, if you use them in any of the parameters it'll happily pass on the wrong path. 3) on linux you can just run a .py file, windows is not as awesome and needs to be told to run it with pyton. 4) had to use the NAME/COMMAND long form of add_test otherwise $ doesn't get expanded, why? beats me. 5) missing idiff.exe for msvc2015/x64 in the libs folder. This patch addresses 1-4 , but given I have no working Linux build environment, I'm unsure if it'll break anything there 5 has been fixed in rBL61751 Reviewers: juicyfruit, brecht, sergey Reviewed By: sergey Subscribers: Blendify Tags: #cycles, #automated_testing Differential Revision: https://developer.blender.org/D2367 === M build_files/cmake/Modules/GTestTesting.cmake M build_files/cmake/macros.cmake M build_files/cmake/platform/platform_win32_msvc.cmake M intern/cycles/test/CMakeLists.txt M make.bat M tests/gtests/CMakeLists.txt M tests/gtests/blenlib/BLI_string_test.cc M tests/gtests/testing/CMakeLists.txt M tests/python/CMakeLists.txt === diff --git a/build_files/cmake/Modules/GTestTesting.cmake b/build_files/cmake/Modules/GTestTesting.cmake index 96c06ef8eb..0732e10133 100644 --- a/build_files/cmake/Modules/GTestTesting.cmake +++ b/build_files/cmake/Modules/GTestTesting.cmake @@ -45,7 +45,7 @@ macro(BLENDER_SRC_GTEST_EX NAME SRC EXTRA_LIBS DO_ADD_TEST) RUNTIME_OUTPUT_DIRECTORY_DEBUG "${TESTS_OUTPUT_DIR}" INCLUDE_DIRECTORIES "${TEST_INC}") if(${DO_ADD_TEST}) - add_test(${NAME}_test ${TESTS_OUTPUT_DIR}/${NAME}_test) + add_test(NAME ${NAME}_test COMMAND ${TESTS_OUTPUT_DIR}/${NAME}_test WORKING_DIRECTORY $) endif() endif() endmacro() diff --git a/build_files/cmake/macros.cmake b/build_files/cmake/macros.cmake index 2e3a190706..09428953a4 100644 --- a/build_files/cmake/macros.cmake +++ b/build_files/cmake/macros.cmake @@ -416,14 +416,7 @@ function(setup_liblinks target_link_libraries(${target} ${OPENCOLORIO_LIBRARIES}) endif() if(WITH_OPENSUBDIV OR WITH_CYCLES_OPENSUBDIV) - if(WIN32 AND NOT UNIX) - file_list_suffix(OPENSUBDIV_LIBRARIES_DEBUG "${OPENSUBDIV_LIBRARIES}" "_d") - target_link_libraries_debug(${target} "${OPENSUBDIV_LIBRARIES_DEBUG}") - target_link_libraries_optimized(${target} "${OPENSUBDIV_LIBRARIES}") - unset(OPENSUBDIV_LIBRARIES_DEBUG) - else() target_link_libraries(${target} ${OPENSUBDIV_LIBRARIES}) - endif() endif() if(WITH_OPENVDB) target_link_libraries(${target} ${OPENVDB_LIBRARIES} ${TBB_LIBRARIES}) diff --git a/build_files/cmake/platform/platform_win32_msvc.cmake b/build_files/cmake/platform/platform_win32_msvc.cmake index 3b50351a13..1a266df779 100644 --- a/build_files/cmake/platform/platform_win32_msvc.cmake +++ b/build_files/cmake/platform/platform_win32_msvc.cmake @@ -446,10 +446,14 @@ if(WITH_MOD_CLOTH_ELTOPO) endif() if(WITH_OPENSUBDIV OR WITH_CYCLES_OPENSUBDIV) - set(OPENSUBDIV_INCLUDE_DIR ${LIBDIR}/opensubdiv/include) - set(OPENSUBDIV_LIBPATH ${LIBDIR}/opensubdiv/lib) - set(OPENSUBDIV_LIBRARIES ${OPENSUBDIV_LIBPATH}/osdCPU.lib ${OPENSUBDIV_LIBPATH}/osdGPU.lib) - find_package(OpenSubdiv) +set(OPENSUBDIV_INCLUDE_DIR ${LIBDIR}/opensubdiv/include) +set(OPENSUBDIV_LIBPATH ${LIBDIR}/opensubdiv/lib) +set(OPENSUBDIV_LIBRARIESoptimized ${OPENSUBDIV_LIBPATH}/osdCPU.lib +optimized ${OPENSUBDIV_LIBPATH}/osdGPU.lib +debug ${OPENSUBDIV_LIBPATH}/osdCPU_d.lib +debug ${OPENSUBDIV_LIBPATH}/osdGPU_d.lib +) +windows_find_package(OpenSubdiv) endif() if(WITH_SDL) diff --git a/intern/cycles/test/CMakeLists.txt b/intern/cycles/test/CMakeLists.txt index
[Bf-blender-cvs] SVN commit: /data/svn/repos/bf-blender [61782] trunk/lib/tests/layers/layers_object_copy_duplicate.json: Unittest file for render layers (2.8)
Revision: 61782 https://developer.blender.org/rBL61782 Author: dfelinto Date: 2017-01-25 17:36:50 +0100 (Wed, 25 Jan 2017) Log Message: --- Unittest file for render layers (2.8) Added Paths: --- trunk/lib/tests/layers/layers_object_copy_duplicate.json Added: trunk/lib/tests/layers/layers_object_copy_duplicate.json === --- trunk/lib/tests/layers/layers_object_copy_duplicate.json (rev 0) +++ trunk/lib/tests/layers/layers_object_copy_duplicate.json2017-01-25 16:36:50 UTC (rev 61782) @@ -0,0 +1,613 @@ +[ +"Master Collection", +{ +"collections": { +"1": { +"collections": { +"sub-zero": { +"collections": { +"scorpion": { +"collections": {}, +"filter": "", +"filter_objects": [], +"name": "scorpion", +"objects": [ +"T.3c", +"T.3c.001" +] +} +}, +"filter": "", +"filter_objects": [], +"name": "sub-zero", +"objects": [ +"T.3b" +] +} +}, +"filter": "", +"filter_objects": [], +"name": "1", +"objects": [ +"T.1a" +] +}, +"2": { +"collections": {}, +"filter": "", +"filter_objects": [], +"name": "2", +"objects": [ +"T.2a" +] +}, +"3": { +"collections": {}, +"filter": "", +"filter_objects": [], +"name": "3", +"objects": [ +"T.3,5a", +"T.3d", +"T.3c", +"T.3b", +"T.3a", +"T.3c.001" +] +}, +"4": { +"collections": {}, +"filter": "", +"filter_objects": [], +"name": "4", +"objects": [ +"T.4a" +] +}, +"5": { +"collections": {}, +"filter": "", +"filter_objects": [], +"name": "5", +"objects": [ +"T.3,5a", +"T.5a" +] +} +}, +"filter": "", +"filter_objects": [], +"name": "Master Collection", +"objects": [] +} +]{ +"1,2": { +"active_object": "", +"collections": { +"1": { +"collections": { +"sub-zero": { +"collections": { +"scorpion": { +"collections": {}, +"is_folded": true, +"is_selectable": true, +"is_visible": true, +"name": "scorpion", +"objects": [ +"T.3c", +"T.3c.001" +] +} +}, +"is_folded": true, +"is_selectable": true, +"is_visible": true, +"name": "sub-zero", +"objects": [ +"T.3b" +] +} +}, +"is_folded": true, +"is_selectable": true, +"is_visible": true, +"name": "1", +"objects": [ +"T.1a" +] +}, +"2": { +"collections": {}, +"is_folded": true, +"is_selectable": true, +"is_visible": true, +"name": "2", +"objects": [ +"T.2a" +] +} +}, +"engine": "BLENDER_RENDER", +"name": "1,2", +"objects": [ +"T.1a", +"T.2a", +"T.3b", +"T.3c", +"T.3c.001" +] +}, +"1-3": { +"active_object": "", +"collections": { +
[Bf-blender-cvs] [e5482f986c] master: Fix T50115: stereoscopic video file memory leak
Commit: e5482f986cab62f77eec441df80fb622cbb5f177 Author: Dalai Felinto Date: Wed Jan 25 15:15:37 2017 +0100 Branches: master https://developer.blender.org/rBe5482f986cab62f77eec441df80fb622cbb5f177 Fix T50115: stereoscopic video file memory leak === M source/blender/render/intern/source/pipeline.c === diff --git a/source/blender/render/intern/source/pipeline.c b/source/blender/render/intern/source/pipeline.c index aff0d2cf15..52eca5f700 100644 --- a/source/blender/render/intern/source/pipeline.c +++ b/source/blender/render/intern/source/pipeline.c @@ -3440,7 +3440,7 @@ bool RE_WriteRenderViewsMovie( ok = mh->append_movie(movie_ctx_arr[0], rd, preview ? scene->r.psfra : scene->r.sfra, scene->r.cfra, (int *) ibuf_arr[2]->rect, ibuf_arr[2]->x, ibuf_arr[2]->y, "", reports); - for (i = 0; i < 2; i++) { + for (i = 0; i < 3; i++) { /* imbuf knows which rects are not part of ibuf */ IMB_freeImBuf(ibuf_arr[i]); } ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [ced20b74e5] master: Fix T50032: Wrong render result when same image is used with and without alpha
Commit: ced20b74e58f3dd33840f2a62f6f1f19714b35d7 Author: Sergey Sharybin Date: Wed Jan 25 14:02:59 2017 +0100 Branches: master https://developer.blender.org/rBced20b74e58f3dd33840f2a62f6f1f19714b35d7 Fix T50032: Wrong render result when same image is used with and without alpha === M intern/cycles/blender/blender_shader.cpp M intern/cycles/render/image.cpp M intern/cycles/render/image.h M intern/cycles/render/nodes.cpp === diff --git a/intern/cycles/blender/blender_shader.cpp b/intern/cycles/blender/blender_shader.cpp index f63f94ab37..f6ec015e1b 100644 --- a/intern/cycles/blender/blender_shader.cpp +++ b/intern/cycles/blender/blender_shader.cpp @@ -640,7 +640,8 @@ static ShaderNode *add_node(Scene *scene, image->filename.string(), image->builtin_data, get_image_interpolation(b_image_node), - get_image_extension(b_image_node)); + get_image_extension(b_image_node), + image->use_alpha); } } image->color_space = (NodeImageColorSpace)b_image_node.color_space(); @@ -686,7 +687,8 @@ static ShaderNode *add_node(Scene *scene, env->filename.string(), env->builtin_data, get_image_interpolation(b_env_node), - EXTENSION_REPEAT); + EXTENSION_REPEAT, + env->use_alpha); } } env->color_space = (NodeImageColorSpace)b_env_node.color_space(); @@ -823,7 +825,8 @@ static ShaderNode *add_node(Scene *scene, point_density->filename.string(), point_density->builtin_data, point_density->interpolation, - EXTENSION_CLIP); + EXTENSION_CLIP, + true); } node = point_density; diff --git a/intern/cycles/render/image.cpp b/intern/cycles/render/image.cpp index ab830b19c5..fd8a126220 100644 --- a/intern/cycles/render/image.cpp +++ b/intern/cycles/render/image.cpp @@ -258,12 +258,14 @@ static bool image_equals(ImageManager::Image *image, const string& filename, void *builtin_data, InterpolationType interpolation, - ExtensionType extension) + ExtensionType extension, + bool use_alpha) { return image->filename == filename && image->builtin_data == builtin_data && image->interpolation == interpolation && - image->extension == extension; + image->extension == extension && + image->use_alpha == use_alpha; } int ImageManager::add_image(const string& filename, @@ -305,7 +307,8 @@ int ImageManager::add_image(const string& filename, filename, builtin_data, interpolation, - extension)) + extension, + use_alpha)) { if(img->frame != frame) { img->frame = frame; @@ -377,7 +380,8 @@ void ImageManager::remove_image(int flat_slot) void ImageManager::remove_image(const string& filename, void *builtin_data, InterpolationType interpolation, -ExtensionType extension) +ExtensionType extension, +bool use_alpha) { size_t slot; @@ -387,7 +391,8 @@ void ImageManager::remove_image(const string& filename, filename, builtin_data, interpolation, - extension)) + extension, + use_alpha)) { remove_image(type_index_to_flattened_slot(slot, (ImageDataType)type)); return; @@ -403,7 +408,8 @@
[Bf-blender-cvs] [e29a6f739d] master: Fix T50512: Linked Backround scene with animation not updating with new depsgraph
Commit: e29a6f739de36f4d33cd37181a946345bd26503d Author: Sergey Sharybin Date: Wed Jan 25 12:30:29 2017 +0100 Branches: master https://developer.blender.org/rBe29a6f739de36f4d33cd37181a946345bd26503d Fix T50512: Linked Backround scene with animation not updating with new depsgraph Was missing relations for the set scenes. Perhaps not ideal solution, but should be good enough for now. === M source/blender/depsgraph/intern/builder/deg_builder_relations_scene.cc === diff --git a/source/blender/depsgraph/intern/builder/deg_builder_relations_scene.cc b/source/blender/depsgraph/intern/builder/deg_builder_relations_scene.cc index 5742941735..af9eda1b5c 100644 --- a/source/blender/depsgraph/intern/builder/deg_builder_relations_scene.cc +++ b/source/blender/depsgraph/intern/builder/deg_builder_relations_scene.cc @@ -70,7 +70,7 @@ namespace DEG { void DepsgraphRelationBuilder::build_scene(Main *bmain, Scene *scene) { if (scene->set) { - // TODO: link set to scene, especially our timesource... + build_scene(bmain, scene->set); } /* scene objects */ ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [e4de6e87e1] master: Depsgraph: Do ID tag outside of build_scene
Commit: e4de6e87e1bb91c072ac2bb800214de006942801 Author: Sergey Sharybin Date: Wed Jan 25 12:28:27 2017 +0100 Branches: master https://developer.blender.org/rBe4de6e87e1bb91c072ac2bb800214de006942801 Depsgraph: Do ID tag outside of build_scene Otherwise it was possible to get ID tags cleared in the middle of DEG construction when there are set scenes used. === M source/blender/depsgraph/intern/builder/deg_builder_nodes.cc M source/blender/depsgraph/intern/builder/deg_builder_nodes.h M source/blender/depsgraph/intern/builder/deg_builder_nodes_scene.cc M source/blender/depsgraph/intern/builder/deg_builder_relations.cc M source/blender/depsgraph/intern/builder/deg_builder_relations.h M source/blender/depsgraph/intern/builder/deg_builder_relations_scene.cc M source/blender/depsgraph/intern/depsgraph_build.cc === diff --git a/source/blender/depsgraph/intern/builder/deg_builder_nodes.cc b/source/blender/depsgraph/intern/builder/deg_builder_nodes.cc index e312c4e0dc..3a9ae490c0 100644 --- a/source/blender/depsgraph/intern/builder/deg_builder_nodes.cc +++ b/source/blender/depsgraph/intern/builder/deg_builder_nodes.cc @@ -320,6 +320,23 @@ OperationDepsNode *DepsgraphNodeBuilder::find_operation_node( /* Build functions for entity nodes */ +void DepsgraphNodeBuilder::begin_build(Main *bmain) { + /* LIB_TAG_DOIT is used to indicate whether node for given ID was already +* created or not. This flag is being set in add_id_node(), so functions +* shouldn't bother with setting it, they only might query this flag when +* needed. +*/ + BKE_main_id_tag_all(bmain, LIB_TAG_DOIT, false); + /* XXX nested node trees are not included in tag-clearing above, +* so we need to do this manually. +*/ + FOREACH_NODETREE(bmain, nodetree, id) { + if (id != (ID *)nodetree) { + nodetree->id.tag &= ~LIB_TAG_DOIT; + } + } FOREACH_NODETREE_END +} + void DepsgraphNodeBuilder::build_group(Scene *scene, Base *base, Group *group) diff --git a/source/blender/depsgraph/intern/builder/deg_builder_nodes.h b/source/blender/depsgraph/intern/builder/deg_builder_nodes.h index 9cb8bc5d45..803110c9c8 100644 --- a/source/blender/depsgraph/intern/builder/deg_builder_nodes.h +++ b/source/blender/depsgraph/intern/builder/deg_builder_nodes.h @@ -72,6 +72,8 @@ struct DepsgraphNodeBuilder { DepsgraphNodeBuilder(Main *bmain, Depsgraph *graph); ~DepsgraphNodeBuilder(); + void begin_build(Main *bmain); + RootDepsNode *add_root_node(); IDDepsNode *add_id_node(ID *id); TimeSourceDepsNode *add_time_source(ID *id); diff --git a/source/blender/depsgraph/intern/builder/deg_builder_nodes_scene.cc b/source/blender/depsgraph/intern/builder/deg_builder_nodes_scene.cc index bcd4bc5144..99e6169223 100644 --- a/source/blender/depsgraph/intern/builder/deg_builder_nodes_scene.cc +++ b/source/blender/depsgraph/intern/builder/deg_builder_nodes_scene.cc @@ -65,20 +65,6 @@ namespace DEG { void DepsgraphNodeBuilder::build_scene(Main *bmain, Scene *scene) { - /* LIB_TAG_DOIT is used to indicate whether node for given ID was already -* created or not. This flag is being set in add_id_node(), so functions -* shouldn't bother with setting it, they only might query this flag when -* needed. -*/ - BKE_main_id_tag_all(bmain, LIB_TAG_DOIT, false); - /* XXX nested node trees are not included in tag-clearing above, -* so we need to do this manually. -*/ - FOREACH_NODETREE(bmain, nodetree, id) { - if (id != (ID *)nodetree) - nodetree->id.tag &= ~LIB_TAG_DOIT; - } FOREACH_NODETREE_END - /* scene ID block */ add_id_node(>id); diff --git a/source/blender/depsgraph/intern/builder/deg_builder_relations.cc b/source/blender/depsgraph/intern/builder/deg_builder_relations.cc index b5272d3acf..644f74e006 100644 --- a/source/blender/depsgraph/intern/builder/deg_builder_relations.cc +++ b/source/blender/depsgraph/intern/builder/deg_builder_relations.cc @@ -339,6 +339,22 @@ void DepsgraphRelationBuilder::add_forcefield_relations(const OperationKey , /* Functions to build relations between entities */ +void DepsgraphRelationBuilder::begin_build(Main *bmain) +{ + /* LIB_TAG_DOIT is used to indicate whether node for given ID was already +* created or not. +*/ + BKE_main_id_tag_all(bmain, LIB_TAG_DOIT, false); + /* XXX nested node trees are notr included in tag-clearing above, +* so we need to do this manually. +*/ + FOREACH_NODETREE(bmain, nodetree, id) { +
[Bf-blender-cvs] [95e9790704] render-layers: Fix compile error
Commit: 95e9790704c61cb26171f4c7c84673eacd5ac3bd Author: Clément Foucault Date: Wed Jan 25 12:21:43 2017 +0100 Branches: render-layers https://developer.blender.org/rB95e9790704c61cb26171f4c7c84673eacd5ac3bd Fix compile error === M source/blender/editors/mesh/mesh_navmesh.c === diff --git a/source/blender/editors/mesh/mesh_navmesh.c b/source/blender/editors/mesh/mesh_navmesh.c index 3910ef40fd..cc6a5d578a 100644 --- a/source/blender/editors/mesh/mesh_navmesh.c +++ b/source/blender/editors/mesh/mesh_navmesh.c @@ -460,6 +460,7 @@ static Object *createRepresentation(bContext *C, struct recast_polyMesh *pmesh, static int navmesh_create_exec(bContext *C, wmOperator *op) { + Scene *scene = CTX_data_scene(C); SceneLayer *sl = CTX_data_scene_layer(C); LinkNode *obs = NULL; Base *navmeshBase = NULL; ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [c727bc7743] blender-v2.78b-release: Fix T50517: Rendering expecting time is negative
Commit: c727bc7743442609cecf52644d6e235e0f82493b Author: Sergey Sharybin Date: Wed Jan 25 11:18:12 2017 +0100 Branches: blender-v2.78b-release https://developer.blender.org/rBc727bc7743442609cecf52644d6e235e0f82493b Fix T50517: Rendering expecting time is negative === M intern/cycles/render/tile.cpp === diff --git a/intern/cycles/render/tile.cpp b/intern/cycles/render/tile.cpp index e59d0c843a..a493c3fa1c 100644 --- a/intern/cycles/render/tile.cpp +++ b/intern/cycles/render/tile.cpp @@ -157,7 +157,7 @@ void TileManager::set_samples(int num_samples_) divider >>= 1; } - state.total_pixel_samples = pixel_samples + get_num_effective_samples() * params.width*params.height; + state.total_pixel_samples = pixel_samples + (uint64_t)get_num_effective_samples() * params.width*params.height; } } ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [8ea09252c8] master: Fix T50517: Rendering expecting time is negative
Commit: 8ea09252c8261c7057a130763c7f44bd45c9f9d2 Author: Sergey Sharybin Date: Wed Jan 25 11:18:12 2017 +0100 Branches: master https://developer.blender.org/rB8ea09252c8261c7057a130763c7f44bd45c9f9d2 Fix T50517: Rendering expecting time is negative === M intern/cycles/render/tile.cpp === diff --git a/intern/cycles/render/tile.cpp b/intern/cycles/render/tile.cpp index e59d0c843a..a493c3fa1c 100644 --- a/intern/cycles/render/tile.cpp +++ b/intern/cycles/render/tile.cpp @@ -157,7 +157,7 @@ void TileManager::set_samples(int num_samples_) divider >>= 1; } - state.total_pixel_samples = pixel_samples + get_num_effective_samples() * params.width*params.height; + state.total_pixel_samples = pixel_samples + (uint64_t)get_num_effective_samples() * params.width*params.height; } } ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [212e5d60d3] render-layers: Merge remote-tracking branch 'origin/blender2.8' into render-layers
Commit: 212e5d60d38ad951369d56cd6b1730c0e3022011 Author: Dalai Felinto Date: Wed Jan 25 10:17:38 2017 +0100 Branches: render-layers https://developer.blender.org/rB212e5d60d38ad951369d56cd6b1730c0e3022011 Merge remote-tracking branch 'origin/blender2.8' into render-layers === === ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [99cfad6a01] blender2.8: Convert MBC_ API to Mesh (instead of derived mesh) and move it to mesh_render
Commit: 99cfad6a015715a090fa2e1d808196dd1a02b390 Author: Dalai Felinto Date: Wed Jan 25 09:16:29 2017 +0100 Branches: blender2.8 https://developer.blender.org/rB99cfad6a015715a090fa2e1d808196dd1a02b390 Convert MBC_ API to Mesh (instead of derived mesh) and move it to mesh_render This includes a few fixes in the MBC_ api. The idea here is for this to be the only interface the render engines will deal with for the meshes. If we need to expose special options for sculpting engine we refactor this accordingly. But for now we are shaping this in a per-case base. Note: * We still need to hook up to the depsgraph to force clear/update of batch_cache when mesh changes (I'm waiting for Sergey Sharybin's depsgraph update for this though) * Also ideally we could/should use BMesh directly instead of DerivedMesh, but this will do for now. Note 2: In the end I renamed the `BKE_mesh_render` functions to `static mesh_render`. We can re-expose them as BKE_* later once we need it. Reviewers: merwin Subscribers: fclem Differential Revision: https://developer.blender.org/D2476 === M source/blender/blenkernel/BKE_DerivedMesh.h A source/blender/blenkernel/BKE_mesh_render.h M source/blender/blenkernel/CMakeLists.txt M source/blender/blenkernel/intern/DerivedMesh.c M source/blender/blenkernel/intern/mesh.c A source/blender/blenkernel/intern/mesh_render.c M source/blender/editors/space_view3d/drawobject.c M source/blender/gpu/gawain/batch.h M source/blender/makesdna/DNA_mesh_types.h === diff --git a/source/blender/blenkernel/BKE_DerivedMesh.h b/source/blender/blenkernel/BKE_DerivedMesh.h index 059f7309cf..784c76bffd 100644 --- a/source/blender/blenkernel/BKE_DerivedMesh.h +++ b/source/blender/blenkernel/BKE_DerivedMesh.h @@ -145,10 +145,6 @@ typedef DMDrawOption (*DMSetDrawOptions)(void *userData, int index); typedef DMDrawOption (*DMSetDrawOptionsMappedTex)(void *userData, int origindex, int mat_nr); typedef DMDrawOption (*DMSetDrawOptionsTex)(struct MTexPoly *mtexpoly, const bool has_vcol, int matnr); -/* Cleanup callback type */ -typedef void (*DMCleanupBatchCache)(void *batchCache); -void DM_set_batch_cleanup_callback(DMCleanupBatchCache); - typedef enum DMDrawFlag { DM_DRAW_USE_COLORS = (1 << 0), DM_DRAW_ALWAYS_SMOOTH = (1 << 1), @@ -176,6 +172,8 @@ typedef enum DMDirtyFlag { /* check this with modifier dependsOnNormals callback to see if normals need recalculation */ DM_DIRTY_NORMALS = 1 << 2, + + DM_MESH_BATCH_CACHE = 1 << 3, } DMDirtyFlag; typedef struct DerivedMesh DerivedMesh; @@ -187,7 +185,6 @@ struct DerivedMesh { int deformedOnly; /* set by modifier stack if only deformed from original */ BVHCache *bvhCache; struct GPUDrawObject *drawObject; - void *batchCache; DerivedMeshType type; float auto_bump_scale; DMDirtyFlag dirty; diff --git a/source/blender/blenkernel/BKE_mesh_render.h b/source/blender/blenkernel/BKE_mesh_render.h new file mode 100644 index 00..8a2b3f9d9e --- /dev/null +++ b/source/blender/blenkernel/BKE_mesh_render.h @@ -0,0 +1,42 @@ +/* + * * BEGIN GPL LICENSE BLOCK * + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * The Original Code is Copyright (C) 2017 by Blender Foundation. + * All rights reserved. + * + * Contributor(s): Blender Foundation, Mike Erwin, Dalai Felinto + * + * * END GPL LICENSE BLOCK * + */ +#ifndef __BKE_MESH_RENDER_H__ +#define __BKE_MESH_RENDER_H__ + +/** \file BKE_mesh_render.h + * \ingroup bke + */ + +struct Batch; +struct Mesh; + +void BKE_mesh_batch_cache_free(struct Mesh *me); +struct Batch *BKE_mesh_batch_cache_get_all_edges(struct Mesh *me); +struct Batch *BKE_mesh_batch_cache_get_all_triangles(struct Mesh *me); +struct Batch *BKE_mesh_batch_cache_get_all_verts(struct Mesh *me); +struct Batch *BKE_mesh_batch_cache_get_fancy_edges(struct Mesh *me); +struct Batch *BKE_mesh_batch_cache_get_overlay_edges(struct Mesh *me); + +#endif /* __BKE_MESH_RENDER_H__ */ diff --git a/source/blender/blenkernel/CMakeLists.txt b/source/blender/blenkernel/CMakeLists.txt