[Bf-blender-cvs] [7610395cbc4] temp_cryptomatte: Cleanup: Removed unrelated AOV code, made Cryptomatte work with OpenCL

Stefan Werner noreply at git.blender.org
Fri Jul 6 16:42:01 CEST 2018


Commit: 7610395cbc4c4395bb668e14ff971809c01a80e6
Author: Stefan Werner
Date:   Fri Jul 6 16:36:27 2018 +0200
Branches: temp_cryptomatte
https://developer.blender.org/rB7610395cbc4c4395bb668e14ff971809c01a80e6

Cleanup: Removed unrelated AOV code, made Cryptomatte work with OpenCL

===================================================================

M	intern/cycles/blender/addon/engine.py
M	intern/cycles/blender/addon/properties.py
M	intern/cycles/blender/addon/ui.py
M	intern/cycles/blender/blender_shader.cpp
M	intern/cycles/blender/blender_sync.cpp
M	intern/cycles/kernel/CMakeLists.txt
M	intern/cycles/kernel/kernel_passes.h
M	intern/cycles/kernel/svm/svm.h
M	intern/cycles/kernel/svm/svm_types.h
M	intern/cycles/render/graph.cpp
M	intern/cycles/render/graph.h
M	intern/cycles/render/nodes.cpp
M	intern/cycles/render/nodes.h
M	intern/cycles/render/svm.cpp
M	intern/cycles/render/svm.h
M	source/blender/blenkernel/BKE_node.h
M	source/blender/blenkernel/intern/node.c
M	source/blender/editors/space_node/drawnode.c
M	source/blender/makesdna/DNA_node_types.h
M	source/blender/makesrna/intern/rna_nodetree.c
M	source/blender/nodes/CMakeLists.txt
M	source/blender/nodes/NOD_shader.h
M	source/blender/nodes/NOD_static_types.h
M	source/blender/nodes/shader/nodes/node_shader_aov_output.c

===================================================================

diff --git a/intern/cycles/blender/addon/engine.py b/intern/cycles/blender/addon/engine.py
index 0b550faae34..28fd833e296 100644
--- a/intern/cycles/blender/addon/engine.py
+++ b/intern/cycles/blender/addon/engine.py
@@ -252,12 +252,6 @@ def register_passes(engine, scene, srl):
         engine.register_pass(scene, srl, "Denoising Image",           3, "RGB", 'COLOR')
         engine.register_pass(scene, srl, "Denoising Image Variance",  3, "RGB", 'COLOR')
 
-    for aov in crl.aovs:
-        if(aov.type == 'COLOR'):
-            engine.register_pass(scene, srl, aov.name, 3, "RGB", 'COLOR')
-        else:
-            engine.register_pass(scene, srl, aov.name, 1, "X", 'VALUE')
-
     if(crl.use_pass_crypto_object):
         for i in range(0, crl.pass_crypto_depth, 2):
             engine.register_pass(scene, srl, "AOV uCryptoObject" + '{:02d}'.format(i), 4, "RGBA", 'COLOR')
diff --git a/intern/cycles/blender/addon/properties.py b/intern/cycles/blender/addon/properties.py
index 71068bda6c4..c5bf6daf83f 100644
--- a/intern/cycles/blender/addon/properties.py
+++ b/intern/cycles/blender/addon/properties.py
@@ -140,11 +140,6 @@ enum_texture_limit = (
     ('8192', "8192", "Limit texture size to 8192 pixels", 7),
     )
 
-enum_aov_types = (
-    ('VALUE', "Value", "Write a Value pass", 0),
-    ('COLOR', "Color", "Write a color pass", 1),
-    )
-
 class CyclesRenderSettings(bpy.types.PropertyGroup):
     @classmethod
     def register(cls):
@@ -1162,12 +1157,6 @@ def update_render_passes(self, context):
         rl = rd.layers.active
         rl.update_render_passes()
 
-class CyclesAOVSettings(bpy.types.PropertyGroup):
-    @classmethod
-    def register(cls):
-        cls.name = StringProperty(name="Name", update=update_render_passes)
-        cls.type = EnumProperty(name="Type", update=update_render_passes, items=enum_aov_types, default='COLOR')
-
 def update_render_passes(self, context):
     scene = context.scene
     rd = scene.render
@@ -1281,8 +1270,6 @@ class CyclesRenderLayerSettings(bpy.types.PropertyGroup):
                 default=False,
                 update=update_render_passes,
         )
-        cls.aovs = bpy.props.CollectionProperty(type=CyclesAOVSettings)
-        cls.active_aov = IntProperty(default=0)
         cls.use_pass_crypto_object = BoolProperty(
                 name="CryptoMatte Object",
                 description="CryptoMatte Object pass",
@@ -1486,7 +1473,6 @@ def register():
     bpy.utils.register_class(CyclesCurveSettings)
     bpy.utils.register_class(CyclesDeviceSettings)
     bpy.utils.register_class(CyclesPreferences)
-    bpy.utils.register_class(CyclesAOVSettings)
     bpy.utils.register_class(CyclesRenderLayerSettings)
 
 
@@ -1503,5 +1489,4 @@ def unregister():
     bpy.utils.unregister_class(CyclesCurveSettings)
     bpy.utils.unregister_class(CyclesDeviceSettings)
     bpy.utils.unregister_class(CyclesPreferences)
-    bpy.utils.unregister_class(CyclesAOVSettings)
     bpy.utils.unregister_class(CyclesRenderLayerSettings)
diff --git a/intern/cycles/blender/addon/ui.py b/intern/cycles/blender/addon/ui.py
index b477acb9d5e..25b0b9b7856 100644
--- a/intern/cycles/blender/addon/ui.py
+++ b/intern/cycles/blender/addon/ui.py
@@ -428,52 +428,6 @@ class CYCLES_RENDER_PT_performance(CyclesButtonsPanel, Panel):
         row.active = not cscene.debug_use_spatial_splits
         row.prop(cscene, "debug_bvh_time_steps")
 
-class CyclesRender_AOV_add(bpy.types.Operator):
-    """Add an AOV pass"""
-    bl_idname="scenerenderlayer.aov_add"
-    bl_label="Add AOV"
-
-    def execute(self, context):
-        scene = context.scene
-        rd = scene.render
-        rl = rd.layers.active
-        crl = rl.cycles
-
-        crl.aovs.add()
-
-        rl.update_render_passes()
-        return {'FINISHED'}
-
-class CyclesRender_AOV_delete(bpy.types.Operator):
-    """Delete an AOV pass"""
-    bl_idname="scenerenderlayer.aov_delete"
-    bl_label="Delete AOV"
-
-    def execute(self, context):
-        scene = context.scene
-        rd = scene.render
-        rl = rd.layers.active
-        crl = rl.cycles
-
-        crl.aovs.remove(crl.active_aov)
-
-        rl.update_render_passes()
-        return {'FINISHED'}
-
-class CyclesAOVList(bpy.types.UIList):
-    def draw_item(self, context, layout, data, item, icon, active_data, active_propname):
-        row = layout.row()
-        row.label("", icon='RENDER_RESULT')
-        split = row.split(percentage=0.65, align=True)
-        split.prop(item, "name", text="")
-        split.prop(item, "type", text="")
-        col = layout.column()
-        col.label(text="Viewport Resolution:")
-        split = col.split()
-        split.prop(rd, "preview_pixel_size", text="")
-        split.prop(cscene, "preview_start_resolution")
-
-
 class CYCLES_RENDER_PT_layer_options(CyclesButtonsPanel, Panel):
     bl_label = "Layer"
     bl_context = "render_layer"
@@ -595,14 +549,6 @@ class CYCLES_RENDER_PT_layer_passes(CyclesButtonsPanel, Panel):
         row = layout.row(align=True)
         row.prop(crl, "pass_crypto_depth")
 
-        layout.label("AOVs:")
-        row = layout.row()
-        row.template_list("CyclesAOVList", "", crl, "aovs", crl, "active_aov")
-        sub = row.column(align=True)
-        sub.operator("scenerenderlayer.aov_add", icon='ZOOMIN', text="")
-        sub.operator("scenerenderlayer.aov_delete", icon='ZOOMOUT', text="")
-		
-
 class CYCLES_RENDER_PT_views(CyclesButtonsPanel, Panel):
     bl_label = "Views"
     bl_context = "render_layer"
diff --git a/intern/cycles/blender/blender_shader.cpp b/intern/cycles/blender/blender_shader.cpp
index a48039fb15f..cd6c9f319db 100644
--- a/intern/cycles/blender/blender_shader.cpp
+++ b/intern/cycles/blender/blender_shader.cpp
@@ -825,12 +825,6 @@ static ShaderNode *add_node(Scene *scene,
 		uvm->from_dupli = b_uvmap_node.from_dupli();
 		node = uvm;
 	}
-	else if(b_node.is_a(&RNA_ShaderNodeAOVOutput)) {
-		BL::ShaderNodeAOVOutput b_aovout_node(b_node);
-		AOVOutputNode *aov = new AOVOutputNode();
-		aov->name = ustring(b_aovout_node.aov());
-		node = aov;
-	}
 	else if(b_node.is_a(&RNA_ShaderNodeTexPointDensity)) {
 		BL::ShaderNodeTexPointDensity b_point_density_node(b_node);
 		PointDensityTextureNode *point_density = new PointDensityTextureNode();
diff --git a/intern/cycles/blender/blender_sync.cpp b/intern/cycles/blender/blender_sync.cpp
index 635bedf69f0..b53f1b06f10 100644
--- a/intern/cycles/blender/blender_sync.cpp
+++ b/intern/cycles/blender/blender_sync.cpp
@@ -567,9 +567,6 @@ void BlenderSync::sync_film(BL::RenderLayer& b_rlay,
 			if(pass_type != PASS_NONE)
 				passes.add(pass_type);
 		}
-
-		/* make Crypto passes appear before user defined AOVs
-			* that way, their indices are known */
 		
 		int crypto_depth = std::min(16, get_int(crp, "pass_crypto_depth")) / 2;
 		scene->film->use_cryptomatte = crypto_depth;
@@ -609,15 +606,6 @@ void BlenderSync::sync_film(BL::RenderLayer& b_rlay,
 		if(get_boolean(crp, "pass_crypto_accurate")) {
 			scene->film->use_cryptomatte |= CRYPT_ACCURATE;
 		}
-		
-		RNA_BEGIN(&crp, b_aov, "aovs") {
-			bool is_color = RNA_enum_get(&b_aov, "type");
-			string name = get_string(b_aov, "name");
-			AOV aov = {ustring(name), 9999, is_color ? AOV_RGB : AOV_FLOAT};
-			passes.add(aov);
-			string passname = string_printf("AOV %s", name.c_str());
-			b_engine.add_pass(passname.c_str(), is_color? 3: 1, is_color? "RGB": "X", b_srlay.name().c_str(), 0);
-		} RNA_END
 
 		PointerRNA crp = RNA_pointer_get(&b_srlay.ptr, "cycles");
 		if(get_boolean(crp, "denoising_store_passes") &&
diff --git a/intern/cycles/kernel/CMakeLists.txt b/intern/cycles/kernel/CMakeLists.txt
index 10251cfc7a6..bd51bc4d371 100644
--- a/intern/cycles/kernel/CMakeLists.txt
+++ b/intern/cycles/kernel/CMakeLists.txt
@@ -160,7 +160,6 @@ set(SRC_CLOSURE_HEADERS
 set(SRC_SVM_HEADERS
 	svm/svm.h
 	svm/svm_attribute.h
-	svm/svm_aov.h
 	svm/svm_blackbody.h
 	svm/svm_bump.h
 	svm/svm_camera.h
diff --git a/intern/cycles/kernel/kernel_passes.h b/intern/cycles/kernel/kernel_passes.h
index 5df00923efc..584bf94cd37 100644
--- a/intern/cycles/kernel/kernel_passes.h
+++ b/intern/cycles/kernel/kernel_passes.h
@@ -81,8 +81,8 @@ ccl_device_inline void kernel_write_id_slots(ccl_global float *buffer, int num_s
 	}
 
 	for(int slot = 0; slot < num_slots; slot++) {
-		float *slot_id = (&buffer[slot*ID_SLOT_SIZE + 0]);
-		float *slot_weight = &buffer[slot*ID_SLOT_SIZE + 1];
+		ccl_global float *slot_id = (&buffer[slot*ID_SLOT_SIZE + 0]);
+		ccl_global float *slot_weight = &buffer[slot*ID_SLOT_SIZE + 1];
 
 		/* If the loop reaches an empty slot, the ID isn't in any slot yet - so add it! */
 		if(*slot_weight == 0.0f) {
diff --git a/intern/cycles/kernel/svm/svm.h b/intern/cycles/kernel/svm/svm.h
index 20907436be1..01ca705d808 100644
--- a/intern/cycles/kernel/svm/svm.h
+++ b/intern/cycles/kernel/svm/svm.h
@@ -182,7 +182,6 @@ CCL_NAMESPACE_END
 #include "kernel/svm/svm_vector_transform.h"
 #include "kernel/svm/svm_voxel.h"
 #include "kernel/svm/svm_bump.h"
-#include "kernel/svm/svm_aov.h"
 
 CCL_NAMESPACE_BEGIN
 
@@ -460,17 +459,6 @@ ccl_device_noinline void svm_eval_nodes(KernelGlobals *kg,
 			case NODE_BLACKBODY:
 				svm_node_blackbody(kg, sd, stack, node.y, node.z);
 				break;
-			case NODE_AOV_WRITE_FLOAT3:
-				svm_node_aov_write_float3(kg, state, stack, node.y, node.z, buffer);
-				break;
-			case NODE_AOV_WRITE_FLOAT:
-				svm_node_aov_write_float(kg, state, stack, node.y, node.z, buffer);
-				break;
-			case NODE_END_IF_NO_AOVS:
-				if(state->written_aovs == ~0) {
-					return;
-				}
-				break;
 #  endif  /* __EXTRA_NODES__ */
 #  if NODES_FEATURE(NODE_FEATURE_VOLUME)
 			case NODE_TEX_VOXEL:
diff --git a/intern/cycles/kernel/svm/svm_types.h b/intern/cycles/kernel/svm/svm_types.h
index 3254f1b55b4..7fb82bc502a 100644
--- a/intern/cycles/kernel/svm/svm_types.h
+++ b/intern/cycles/kernel/svm/svm_types.h
@@ -132,9 +132,6 @@ typedef enum ShaderNodeType {
 	NODE_TEX_VOXEL,
 	NODE_ENTER_BUMP_EVAL,
 	NODE_LEAVE_BUMP_EVAL,
-	NODE_END_IF_NO_AOVS,
-	NODE_AOV_WRITE_FLOAT,
-	NODE_AOV_WRITE_FLOAT3,
 } ShaderNodeType;
 
 typedef enum NodeAttributeType {
diff --git a/intern/cycles/render/graph.cpp b/intern/cycles/render/graph.cpp
index aa7aa6fbc

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list