diff options
author | Brecht Van Lommel <brecht@blender.org> | 2020-10-27 13:40:42 +0300 |
---|---|---|
committer | Brecht Van Lommel <brecht@blender.org> | 2020-10-27 13:40:42 +0300 |
commit | 30f626fe4cd62f406468ef0ff2169694424b1a29 (patch) | |
tree | d428586cd3a6e689ab1e2f5a4222d1e0eb77ada7 /intern/cycles/test | |
parent | 17381c7b90eb3acde53eca013ae5a5a55699f17d (diff) |
Revert "Cycles API: encapsulate Node socket members"
This reverts commit 527f8b32b32187f754e5b176db6377736f9cb8ff. It is causing
motion blur test failures and crashes in some renders, reverting until this is
fixed.
Diffstat (limited to 'intern/cycles/test')
-rw-r--r-- | intern/cycles/test/render_graph_finalize_test.cpp | 174 |
1 files changed, 86 insertions, 88 deletions
diff --git a/intern/cycles/test/render_graph_finalize_test.cpp b/intern/cycles/test/render_graph_finalize_test.cpp index 3eaec982d09..4639fc6d0dd 100644 --- a/intern/cycles/test/render_graph_finalize_test.cpp +++ b/intern/cycles/test/render_graph_finalize_test.cpp @@ -64,11 +64,9 @@ template<typename T> class ShaderNodeBuilder { return *this; } - template<typename V> ShaderNodeBuilder &set_param(const string &input_name, V value) + template<typename T2, typename V> ShaderNodeBuilder &set(V T2::*pfield, V value) { - const SocketType *input_socket = node_->type->find_input(ustring(input_name.c_str())); - EXPECT_NE((void *)NULL, input_socket); - node_->set(*input_socket, value); + static_cast<T *>(node_)->*pfield = value; return *this; } @@ -123,8 +121,8 @@ class ShaderGraphBuilder { /* Common input/output boilerplate. */ ShaderGraphBuilder &add_attribute(const string &name) { - return (*this).add_node( - ShaderNodeBuilder<AttributeNode>(*graph_, name).set_param("attribute", ustring(name))); + return (*this).add_node(ShaderNodeBuilder<AttributeNode>(*graph_, name) + .set(&AttributeNode::attribute, ustring(name))); } ShaderGraphBuilder &output_closure(const string &from) @@ -212,12 +210,12 @@ TEST_F(RenderGraph, deduplicate_deep) builder.add_node(ShaderNodeBuilder<GeometryNode>(graph, "Geometry1")) .add_node(ShaderNodeBuilder<GeometryNode>(graph, "Geometry2")) - .add_node(ShaderNodeBuilder<ValueNode>(graph, "Value1").set_param("value", 0.8f)) - .add_node(ShaderNodeBuilder<ValueNode>(graph, "Value2").set_param("value", 0.8f)) + .add_node(ShaderNodeBuilder<ValueNode>(graph, "Value1").set(&ValueNode::value, 0.8f)) + .add_node(ShaderNodeBuilder<ValueNode>(graph, "Value2").set(&ValueNode::value, 0.8f)) .add_node(ShaderNodeBuilder<NoiseTextureNode>(graph, "Noise1")) .add_node(ShaderNodeBuilder<NoiseTextureNode>(graph, "Noise2")) .add_node(ShaderNodeBuilder<MixNode>(graph, "Mix") - .set_param("mix_type", NODE_MIX_BLEND) + .set(&MixNode::type, NODE_MIX_BLEND) .set("Fac", 0.5f)) .add_connection("Geometry1::Parametric", "Noise1::Vector") .add_connection("Value1::Value", "Noise1::Scale") @@ -424,8 +422,8 @@ TEST_F(RenderGraph, constant_fold_mix_add) builder .add_node(ShaderNodeBuilder<MixNode>(graph, "MixAdd") - .set_param("mix_type", NODE_MIX_ADD) - .set_param("use_clamp", false) + .set(&MixNode::type, NODE_MIX_ADD) + .set(&MixNode::use_clamp, false) .set("Fac", 0.8f) .set("Color1", make_float3(0.3f, 0.5f, 0.7f)) .set("Color2", make_float3(0.4f, 0.8f, 0.9f))) @@ -445,8 +443,8 @@ TEST_F(RenderGraph, constant_fold_mix_add_clamp) builder .add_node(ShaderNodeBuilder<MixNode>(graph, "MixAdd") - .set_param("mix_type", NODE_MIX_ADD) - .set_param("use_clamp", true) + .set(&MixNode::type, NODE_MIX_ADD) + .set(&MixNode::use_clamp, true) .set("Fac", 0.8f) .set("Color1", make_float3(0.3f, 0.5f, 0.7f)) .set("Color2", make_float3(0.4f, 0.8f, 0.9f))) @@ -467,8 +465,8 @@ TEST_F(RenderGraph, constant_fold_part_mix_dodge_no_fac_0) builder.add_attribute("Attribute1") .add_attribute("Attribute2") .add_node(ShaderNodeBuilder<MixNode>(graph, "Mix") - .set_param("mix_type", NODE_MIX_DODGE) - .set_param("use_clamp", false) + .set(&MixNode::type, NODE_MIX_DODGE) + .set(&MixNode::use_clamp, false) .set("Fac", 0.0f)) .add_connection("Attribute1::Color", "Mix::Color1") .add_connection("Attribute2::Color", "Mix::Color2") @@ -489,8 +487,8 @@ TEST_F(RenderGraph, constant_fold_part_mix_light_no_fac_0) builder.add_attribute("Attribute1") .add_attribute("Attribute2") .add_node(ShaderNodeBuilder<MixNode>(graph, "Mix") - .set_param("mix_type", NODE_MIX_LIGHT) - .set_param("use_clamp", false) + .set(&MixNode::type, NODE_MIX_LIGHT) + .set(&MixNode::use_clamp, false) .set("Fac", 0.0f)) .add_connection("Attribute1::Color", "Mix::Color1") .add_connection("Attribute2::Color", "Mix::Color2") @@ -511,8 +509,8 @@ TEST_F(RenderGraph, constant_fold_part_mix_burn_no_fac_0) builder.add_attribute("Attribute1") .add_attribute("Attribute2") .add_node(ShaderNodeBuilder<MixNode>(graph, "Mix") - .set_param("mix_type", NODE_MIX_BURN) - .set_param("use_clamp", false) + .set(&MixNode::type, NODE_MIX_BURN) + .set(&MixNode::use_clamp, false) .set("Fac", 0.0f)) .add_connection("Attribute1::Color", "Mix::Color1") .add_connection("Attribute2::Color", "Mix::Color2") @@ -533,8 +531,8 @@ TEST_F(RenderGraph, constant_fold_part_mix_blend_clamped_no_fac_0) builder.add_attribute("Attribute1") .add_attribute("Attribute2") .add_node(ShaderNodeBuilder<MixNode>(graph, "Mix") - .set_param("mix_type", NODE_MIX_BLEND) - .set_param("use_clamp", true) + .set(&MixNode::type, NODE_MIX_BLEND) + .set(&MixNode::use_clamp, true) .set("Fac", 0.0f)) .add_connection("Attribute1::Color", "Mix::Color1") .add_connection("Attribute2::Color", "Mix::Color2") @@ -559,22 +557,22 @@ TEST_F(RenderGraph, constant_fold_part_mix_blend) .add_attribute("Attribute2") /* choose left */ .add_node(ShaderNodeBuilder<MixNode>(graph, "MixBlend1") - .set_param("mix_type", NODE_MIX_BLEND) - .set_param("use_clamp", false) + .set(&MixNode::type, NODE_MIX_BLEND) + .set(&MixNode::use_clamp, false) .set("Fac", 0.0f)) .add_connection("Attribute1::Color", "MixBlend1::Color1") .add_connection("Attribute2::Color", "MixBlend1::Color2") /* choose right */ .add_node(ShaderNodeBuilder<MixNode>(graph, "MixBlend2") - .set_param("mix_type", NODE_MIX_BLEND) - .set_param("use_clamp", false) + .set(&MixNode::type, NODE_MIX_BLEND) + .set(&MixNode::use_clamp, false) .set("Fac", 1.0f)) .add_connection("Attribute1::Color", "MixBlend2::Color2") .add_connection("Attribute2::Color", "MixBlend2::Color1") /* both inputs folded to Attribute1 */ .add_node(ShaderNodeBuilder<MixNode>(graph, "MixBlend3") - .set_param("mix_type", NODE_MIX_BLEND) - .set_param("use_clamp", false)) + .set(&MixNode::type, NODE_MIX_BLEND) + .set(&MixNode::use_clamp, false)) .add_connection("Attribute1::Fac", "MixBlend3::Fac") .add_connection("MixBlend1::Color", "MixBlend3::Color1") .add_connection("MixBlend2::Color", "MixBlend3::Color2") @@ -594,8 +592,8 @@ TEST_F(RenderGraph, constant_fold_part_mix_sub_same_fac_bad) builder.add_attribute("Attribute") .add_node(ShaderNodeBuilder<MixNode>(graph, "Mix") - .set_param("mix_type", NODE_MIX_SUB) - .set_param("use_clamp", true) + .set(&MixNode::type, NODE_MIX_SUB) + .set(&MixNode::use_clamp, true) .set("Fac", 0.5f)) .add_connection("Attribute::Color", "Mix::Color1") .add_connection("Attribute::Color", "Mix::Color2") @@ -615,8 +613,8 @@ TEST_F(RenderGraph, constant_fold_part_mix_sub_same_fac_1) builder.add_attribute("Attribute") .add_node(ShaderNodeBuilder<MixNode>(graph, "Mix") - .set_param("mix_type", NODE_MIX_SUB) - .set_param("use_clamp", true) + .set(&MixNode::type, NODE_MIX_SUB) + .set(&MixNode::use_clamp, true) .set("Fac", 1.0f)) .add_connection("Attribute::Color", "Mix::Color1") .add_connection("Attribute::Color", "Mix::Color2") @@ -637,12 +635,12 @@ static void build_mix_partial_test_graph(ShaderGraphBuilder &builder, .add_attribute("Attribute") /* constant on the left */ .add_node(ShaderNodeBuilder<MixNode>(builder.graph(), "Mix_Cx_Fx") - .set_param("mix_type", type) - .set_param("use_clamp", false) + .set(&MixNode::type, type) + .set(&MixNode::use_clamp, false) .set("Color1", constval)) .add_node(ShaderNodeBuilder<MixNode>(builder.graph(), "Mix_Cx_F1") - .set_param("mix_type", type) - .set_param("use_clamp", false) + .set(&MixNode::type, type) + .set(&MixNode::use_clamp, false) .set("Color1", constval) .set("Fac", 1.0f)) .add_connection("Attribute::Fac", "Mix_Cx_Fx::Fac") @@ -650,12 +648,12 @@ static void build_mix_partial_test_graph(ShaderGraphBuilder &builder, .add_connection("Attribute::Color", "Mix_Cx_F1::Color2") /* constant on the right */ .add_node(ShaderNodeBuilder<MixNode>(builder.graph(), "Mix_xC_Fx") - .set_param("mix_type", type) - .set_param("use_clamp", false) + .set(&MixNode::type, type) + .set(&MixNode::use_clamp, false) .set("Color2", constval)) .add_node(ShaderNodeBuilder<MixNode>(builder.graph(), "Mix_xC_F1") - .set_param("mix_type", type) - .set_param("use_clamp", false) + .set(&MixNode::type, type) + .set(&MixNode::use_clamp, false) .set("Color2", constval) .set("Fac", 1.0f)) .add_connection("Attribute::Fac", "Mix_xC_Fx::Fac") @@ -663,16 +661,16 @@ static void build_mix_partial_test_graph(ShaderGraphBuilder &builder, .add_connection("Attribute::Color", "Mix_xC_F1::Color1") /* results of actual tests simply added up to connect to output */ .add_node(ShaderNodeBuilder<MixNode>(builder.graph(), "Out12") - .set_param("mix_type", NODE_MIX_ADD) - .set_param("use_clamp", true) + .set(&MixNode::type, NODE_MIX_ADD) + .set(&MixNode::use_clamp, true) .set("Fac", 1.0f)) .add_node(ShaderNodeBuilder<MixNode>(builder.graph(), "Out34") - .set_param("mix_type", NODE_MIX_ADD) - .set_param("use_clamp", true) + .set(&MixNode::type, NODE_MIX_ADD) + .set(&MixNode::use_clamp, true) .set("Fac", 1.0f)) .add_node(ShaderNodeBuilder<MixNode>(builder.graph(), "Out1234") - .set_param("mix_type", NODE_MIX_ADD) - .set_param("use_clamp", true) + .set(&MixNode::type, NODE_MIX_ADD) + .set(&MixNode::use_clamp, true) .set("Fac", 1.0f)) .add_connection("Mix_Cx_Fx::Color", "Out12::Color1") .add_connection("Mix_Cx_F1::Color", "Out12::Color2") @@ -900,8 +898,8 @@ TEST_F(RenderGraph, constant_fold_gamma_part_0) .add_connection("Attribute::Color", "Gamma_xC::Color") /* output sum */ .add_node(ShaderNodeBuilder<MixNode>(graph, "Out") - .set_param("mix_type", NODE_MIX_ADD) - .set_param("use_clamp", true) + .set(&MixNode::type, NODE_MIX_ADD) + .set(&MixNode::use_clamp, true) .set("Fac", 1.0f)) .add_connection("Gamma_Cx::Color", "Out::Color1") .add_connection("Gamma_xC::Color", "Out::Color2") @@ -930,8 +928,8 @@ TEST_F(RenderGraph, constant_fold_gamma_part_1) .add_connection("Attribute::Color", "Gamma_xC::Color") /* output sum */ .add_node(ShaderNodeBuilder<MixNode>(graph, "Out") - .set_param("mix_type", NODE_MIX_ADD) - .set_param("use_clamp", true) + .set(&MixNode::type, NODE_MIX_ADD) + .set(&MixNode::use_clamp, true) .set("Fac", 1.0f)) .add_connection("Gamma_Cx::Color", "Out::Color1") .add_connection("Gamma_xC::Color", "Out::Color2") @@ -990,8 +988,8 @@ TEST_F(RenderGraph, constant_fold_math) builder .add_node(ShaderNodeBuilder<MathNode>(graph, "Math") - .set_param("math_type", NODE_MATH_ADD) - .set_param("use_clamp", false) + .set(&MathNode::type, NODE_MATH_ADD) + .set(&MathNode::use_clamp, false) .set("Value1", 0.7f) .set("Value2", 0.9f)) .output_value("Math::Value"); @@ -1009,8 +1007,8 @@ TEST_F(RenderGraph, constant_fold_math_clamp) builder .add_node(ShaderNodeBuilder<MathNode>(graph, "Math") - .set_param("math_type", NODE_MATH_ADD) - .set_param("use_clamp", true) + .set(&MathNode::type, NODE_MATH_ADD) + .set(&MathNode::use_clamp, true) .set("Value1", 0.7f) .set("Value2", 0.9f)) .output_value("Math::Value"); @@ -1030,20 +1028,20 @@ static void build_math_partial_test_graph(ShaderGraphBuilder &builder, .add_attribute("Attribute") /* constant on the left */ .add_node(ShaderNodeBuilder<MathNode>(builder.graph(), "Math_Cx") - .set_param("math_type", type) - .set_param("use_clamp", false) + .set(&MathNode::type, type) + .set(&MathNode::use_clamp, false) .set("Value1", constval)) .add_connection("Attribute::Fac", "Math_Cx::Value2") /* constant on the right */ .add_node(ShaderNodeBuilder<MathNode>(builder.graph(), "Math_xC") - .set_param("math_type", type) - .set_param("use_clamp", false) + .set(&MathNode::type, type) + .set(&MathNode::use_clamp, false) .set("Value2", constval)) .add_connection("Attribute::Fac", "Math_xC::Value1") /* output sum */ .add_node(ShaderNodeBuilder<MathNode>(builder.graph(), "Out") - .set_param("math_type", NODE_MATH_ADD) - .set_param("use_clamp", true)) + .set(&MathNode::type, NODE_MATH_ADD) + .set(&MathNode::use_clamp, true)) .add_connection("Math_Cx::Value", "Out::Value1") .add_connection("Math_xC::Value", "Out::Value2") .output_value("Out::Value"); @@ -1180,7 +1178,7 @@ TEST_F(RenderGraph, constant_fold_vector_math) builder .add_node(ShaderNodeBuilder<VectorMathNode>(graph, "VectorMath") - .set_param("math_type", NODE_VECTOR_MATH_SUBTRACT) + .set(&VectorMathNode::type, NODE_VECTOR_MATH_SUBTRACT) .set("Vector1", make_float3(1.3f, 0.5f, 0.7f)) .set("Vector2", make_float3(-1.7f, 0.5f, 0.7f))) .output_color("VectorMath::Vector"); @@ -1200,17 +1198,17 @@ static void build_vecmath_partial_test_graph(ShaderGraphBuilder &builder, .add_attribute("Attribute") /* constant on the left */ .add_node(ShaderNodeBuilder<VectorMathNode>(builder.graph(), "Math_Cx") - .set_param("math_type", type) + .set(&VectorMathNode::type, type) .set("Vector1", constval)) .add_connection("Attribute::Vector", "Math_Cx::Vector2") /* constant on the right */ .add_node(ShaderNodeBuilder<VectorMathNode>(builder.graph(), "Math_xC") - .set_param("math_type", type) + .set(&VectorMathNode::type, type) .set("Vector2", constval)) .add_connection("Attribute::Vector", "Math_xC::Vector1") /* output sum */ .add_node(ShaderNodeBuilder<VectorMathNode>(builder.graph(), "Out") - .set_param("math_type", NODE_VECTOR_MATH_ADD)) + .set(&VectorMathNode::type, NODE_VECTOR_MATH_ADD)) .add_connection("Math_Cx::Vector", "Out::Vector1") .add_connection("Math_xC::Vector", "Out::Vector2") .output_color("Out::Vector"); @@ -1314,9 +1312,9 @@ TEST_F(RenderGraph, constant_fold_rgb_curves) builder .add_node(ShaderNodeBuilder<RGBCurvesNode>(graph, "Curves") - .set_param("curves", curve) - .set_param("min_x", 0.1f) - .set_param("max_x", 0.9f) + .set(&CurvesNode::curves, curve) + .set(&CurvesNode::min_x, 0.1f) + .set(&CurvesNode::max_x, 0.9f) .set("Fac", 0.5f) .set("Color", make_float3(0.3f, 0.5f, 0.7f))) .output_color("Curves::Color"); @@ -1338,9 +1336,9 @@ TEST_F(RenderGraph, constant_fold_rgb_curves_fac_0) builder.add_attribute("Attribute") .add_node(ShaderNodeBuilder<RGBCurvesNode>(graph, "Curves") - .set_param("curves", curve) - .set_param("min_x", 0.1f) - .set_param("max_x", 0.9f) + .set(&CurvesNode::curves, curve) + .set(&CurvesNode::min_x, 0.1f) + .set(&CurvesNode::max_x, 0.9f) .set("Fac", 0.0f)) .add_connection("Attribute::Color", "Curves::Color") .output_color("Curves::Color"); @@ -1362,9 +1360,9 @@ TEST_F(RenderGraph, constant_fold_rgb_curves_fac_0_const) builder .add_node(ShaderNodeBuilder<RGBCurvesNode>(graph, "Curves") - .set_param("curves", curve) - .set_param("min_x", 0.1f) - .set_param("max_x", 0.9f) + .set(&CurvesNode::curves, curve) + .set(&CurvesNode::min_x, 0.1f) + .set(&CurvesNode::max_x, 0.9f) .set("Fac", 0.0f) .set("Color", make_float3(0.3f, 0.5f, 0.7f))) .output_color("Curves::Color"); @@ -1386,9 +1384,9 @@ TEST_F(RenderGraph, constant_fold_vector_curves) builder .add_node(ShaderNodeBuilder<VectorCurvesNode>(graph, "Curves") - .set_param("curves", curve) - .set_param("min_x", 0.1f) - .set_param("max_x", 0.9f) + .set(&CurvesNode::curves, curve) + .set(&CurvesNode::min_x, 0.1f) + .set(&CurvesNode::max_x, 0.9f) .set("Fac", 0.5f) .set("Vector", make_float3(0.3f, 0.5f, 0.7f))) .output_color("Curves::Vector"); @@ -1410,9 +1408,9 @@ TEST_F(RenderGraph, constant_fold_vector_curves_fac_0) builder.add_attribute("Attribute") .add_node(ShaderNodeBuilder<VectorCurvesNode>(graph, "Curves") - .set_param("curves", curve) - .set_param("min_x", 0.1f) - .set_param("max_x", 0.9f) + .set(&CurvesNode::curves, curve) + .set(&CurvesNode::min_x, 0.1f) + .set(&CurvesNode::max_x, 0.9f) .set("Fac", 0.0f)) .add_connection("Attribute::Vector", "Curves::Vector") .output_color("Curves::Vector"); @@ -1437,11 +1435,11 @@ TEST_F(RenderGraph, constant_fold_rgb_ramp) builder .add_node(ShaderNodeBuilder<RGBRampNode>(graph, "Ramp") - .set_param("ramp", curve) - .set_param("ramp_alpha", alpha) - .set_param("interpolate", true) + .set(&RGBRampNode::ramp, curve) + .set(&RGBRampNode::ramp_alpha, alpha) + .set(&RGBRampNode::interpolate, true) .set("Fac", 0.56f)) - .add_node(ShaderNodeBuilder<MixNode>(graph, "Mix").set_param("mix_type", NODE_MIX_ADD)) + .add_node(ShaderNodeBuilder<MixNode>(graph, "Mix").set(&MixNode::type, NODE_MIX_ADD)) .add_connection("Ramp::Color", "Mix::Color1") .add_connection("Ramp::Alpha", "Mix::Color2") .output_color("Mix::Color"); @@ -1466,11 +1464,11 @@ TEST_F(RenderGraph, constant_fold_rgb_ramp_flat) builder .add_node(ShaderNodeBuilder<RGBRampNode>(graph, "Ramp") - .set_param("ramp", curve) - .set_param("ramp_alpha", alpha) - .set_param("interpolate", false) + .set(&RGBRampNode::ramp, curve) + .set(&RGBRampNode::ramp_alpha, alpha) + .set(&RGBRampNode::interpolate, false) .set("Fac", 0.56f)) - .add_node(ShaderNodeBuilder<MixNode>(graph, "Mix").set_param("mix_type", NODE_MIX_ADD)) + .add_node(ShaderNodeBuilder<MixNode>(graph, "Mix").set(&MixNode::type, NODE_MIX_ADD)) .add_connection("Ramp::Color", "Mix::Color1") .add_connection("Ramp::Alpha", "Mix::Color2") .output_color("Mix::Color"); @@ -1512,7 +1510,7 @@ TEST_F(RenderGraph, constant_fold_convert_color_vector_color) builder.add_attribute("Attribute") .add_node(ShaderNodeBuilder<VectorMathNode>(graph, "VecAdd") - .set_param("math_type", NODE_VECTOR_MATH_ADD) + .set(&VectorMathNode::type, NODE_VECTOR_MATH_ADD) .set("Vector2", make_float3(0, 0, 0))) .add_connection("Attribute::Color", "VecAdd::Vector1") .output_color("VecAdd::Vector"); @@ -1533,7 +1531,7 @@ TEST_F(RenderGraph, constant_fold_convert_color_float_color) builder.add_attribute("Attribute") .add_node(ShaderNodeBuilder<MathNode>(graph, "MathAdd") - .set_param("math_type", NODE_MATH_ADD) + .set(&MathNode::type, NODE_MATH_ADD) .set("Value2", 0.0f)) .add_connection("Attribute::Color", "MathAdd::Value1") .output_color("MathAdd::Value"); |