Blender V5.0
render_graph_finalize_test.cpp File Reference
#include <gtest/gtest.h>
#include "device/device.h"
#include "scene/colorspace.h"
#include "scene/scene.h"
#include "scene/shader_graph.h"
#include "scene/shader_nodes.h"
#include "util/array.h"
#include "util/log.h"
#include "util/stats.h"
#include "util/string.h"
#include "util/vector.h"

Go to the source code of this file.

Classes

class  CCL_NAMESPACE_BEGIN::ShaderNodeBuilder< T >
class  CCL_NAMESPACE_BEGIN::ShaderGraphBuilder
class  CCL_NAMESPACE_BEGIN::ScopedMockLog
class  RenderGraph

Namespaces

namespace  CCL_NAMESPACE_BEGIN

Functions

 TEST_F (RenderGraph, deduplicate_deep)
 TEST_F (RenderGraph, constant_fold_rgb_to_bw)
 TEST_F (RenderGraph, constant_fold_emission1)
 TEST_F (RenderGraph, constant_fold_emission2)
 TEST_F (RenderGraph, constant_fold_background1)
 TEST_F (RenderGraph, constant_fold_background2)
 TEST_F (RenderGraph, constant_fold_shader_add)
 TEST_F (RenderGraph, constant_fold_shader_mix)
 TEST_F (RenderGraph, constant_fold_invert)
 TEST_F (RenderGraph, constant_fold_invert_fac_0)
 TEST_F (RenderGraph, constant_fold_invert_fac_0_const)
 TEST_F (RenderGraph, constant_fold_mix_add)
 TEST_F (RenderGraph, constant_fold_mix_add_clamp)
 TEST_F (RenderGraph, constant_fold_part_mix_dodge_no_fac_0)
 TEST_F (RenderGraph, constant_fold_part_mix_light_no_fac_0)
 TEST_F (RenderGraph, constant_fold_part_mix_burn_no_fac_0)
 TEST_F (RenderGraph, constant_fold_part_mix_blend_clamped_no_fac_0)
 TEST_F (RenderGraph, constant_fold_part_mix_blend)
 TEST_F (RenderGraph, constant_fold_part_mix_sub_same_fac_bad)
 TEST_F (RenderGraph, constant_fold_part_mix_sub_same_fac_1)
static void build_mix_partial_test_graph (ShaderGraphBuilder &builder, NodeMix type, const float3 constval)
 TEST_F (RenderGraph, constant_fold_part_mix_add_0)
 TEST_F (RenderGraph, constant_fold_part_mix_sub_0)
 TEST_F (RenderGraph, constant_fold_part_mix_mul_1)
 TEST_F (RenderGraph, constant_fold_part_mix_div_1)
 TEST_F (RenderGraph, constant_fold_part_mix_mul_0)
 TEST_F (RenderGraph, constant_fold_part_mix_div_0)
 TEST_F (RenderGraph, constant_fold_separate_combine_rgb)
 TEST_F (RenderGraph, constant_fold_separate_combine_xyz)
 TEST_F (RenderGraph, constant_fold_separate_combine_hsv)
 TEST_F (RenderGraph, constant_fold_gamma)
 TEST_F (RenderGraph, constant_fold_gamma_part_0)
 TEST_F (RenderGraph, constant_fold_gamma_part_1)
 TEST_F (RenderGraph, constant_fold_bright_contrast)
 TEST_F (RenderGraph, constant_fold_blackbody)
 TEST_F (RenderGraph, constant_fold_math)
 TEST_F (RenderGraph, constant_fold_math_clamp)
static void build_math_partial_test_graph (ShaderGraphBuilder &builder, NodeMathType type, const float constval)
 TEST_F (RenderGraph, constant_fold_part_math_add_0)
 TEST_F (RenderGraph, constant_fold_part_math_sub_0)
 TEST_F (RenderGraph, constant_fold_part_math_mul_1)
 TEST_F (RenderGraph, constant_fold_part_math_div_1)
 TEST_F (RenderGraph, constant_fold_part_math_mul_0)
 TEST_F (RenderGraph, constant_fold_part_math_div_0)
 TEST_F (RenderGraph, constant_fold_part_math_pow_0)
 TEST_F (RenderGraph, constant_fold_part_math_pow_1)
 TEST_F (RenderGraph, constant_fold_vector_math)
static void build_vecmath_partial_test_graph (ShaderGraphBuilder &builder, NodeVectorMathType type, const float3 constval)
 TEST_F (RenderGraph, constant_fold_part_vecmath_add_0)
 TEST_F (RenderGraph, constant_fold_part_vecmath_sub_0)
 TEST_F (RenderGraph, constant_fold_part_vecmath_cross_0)
 TEST_F (RenderGraph, constant_fold_bump)
 TEST_F (RenderGraph, constant_fold_bump_no_input)
template<class T>
void init_test_curve (array< T > &buffer, T start, T end, const int steps)
 TEST_F (RenderGraph, constant_fold_rgb_curves)
 TEST_F (RenderGraph, constant_fold_rgb_curves_fac_0)
 TEST_F (RenderGraph, constant_fold_rgb_curves_fac_0_const)
 TEST_F (RenderGraph, constant_fold_vector_curves)
 TEST_F (RenderGraph, constant_fold_vector_curves_fac_0)
 TEST_F (RenderGraph, constant_fold_rgb_ramp)
 TEST_F (RenderGraph, constant_fold_rgb_ramp_flat)
 TEST_F (RenderGraph, constant_fold_convert_float_color_float)
 TEST_F (RenderGraph, constant_fold_convert_color_vector_color)
 TEST_F (RenderGraph, constant_fold_convert_color_float_color)
 TEST_F (RenderGraph, stochastic_sample_math_multiply)
 TEST_F (RenderGraph, not_stochastic_sample_math_power)
 TEST_F (RenderGraph, stochastic_sample_principled_volume_mix)

Function Documentation

◆ build_math_partial_test_graph()

void build_math_partial_test_graph ( ShaderGraphBuilder & builder,
NodeMathType type,
const float constval )
static

Definition at line 1032 of file render_graph_finalize_test.cpp.

References NODE_MATH_ADD.

Referenced by TEST_F(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), and TEST_F().

◆ build_mix_partial_test_graph()

void build_mix_partial_test_graph ( ShaderGraphBuilder & builder,
NodeMix type,
const float3 constval )
static

Definition at line 653 of file render_graph_finalize_test.cpp.

References NODE_MIX_ADD.

Referenced by TEST_F(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), and TEST_F().

◆ build_vecmath_partial_test_graph()

void build_vecmath_partial_test_graph ( ShaderGraphBuilder & builder,
NodeVectorMathType type,
const float3 constval )
static

Definition at line 1193 of file render_graph_finalize_test.cpp.

References NODE_VECTOR_MATH_ADD.

Referenced by TEST_F(), TEST_F(), and TEST_F().

◆ init_test_curve()

template<class T>
void init_test_curve ( array< T > & buffer,
T start,
T end,
const int steps )

Definition at line 1287 of file render_graph_finalize_test.cpp.

References i, mix, array< T, alignment >::resize(), and T.

Referenced by TEST_F(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), and TEST_F().

◆ TEST_F() [1/63]

TEST_F ( RenderGraph ,
constant_fold_background1  )

Definition at line 323 of file render_graph_finalize_test.cpp.

References log, and zero_float3().

◆ TEST_F() [2/63]

TEST_F ( RenderGraph ,
constant_fold_background2  )

Definition at line 334 of file render_graph_finalize_test.cpp.

References log.

◆ TEST_F() [3/63]

TEST_F ( RenderGraph ,
constant_fold_blackbody  )

Definition at line 974 of file render_graph_finalize_test.cpp.

References log.

◆ TEST_F() [4/63]

TEST_F ( RenderGraph ,
constant_fold_bright_contrast  )

Definition at line 957 of file render_graph_finalize_test.cpp.

References log, and make_float3().

◆ TEST_F() [5/63]

TEST_F ( RenderGraph ,
constant_fold_bump  )

Definition at line 1263 of file render_graph_finalize_test.cpp.

References log.

◆ TEST_F() [6/63]

TEST_F ( RenderGraph ,
constant_fold_bump_no_input  )

Definition at line 1278 of file render_graph_finalize_test.cpp.

References log.

◆ TEST_F() [7/63]

TEST_F ( RenderGraph ,
constant_fold_convert_color_float_color  )

Definition at line 1510 of file render_graph_finalize_test.cpp.

References log, and NODE_MATH_ADD.

◆ TEST_F() [8/63]

TEST_F ( RenderGraph ,
constant_fold_convert_color_vector_color  )

Definition at line 1489 of file render_graph_finalize_test.cpp.

References log, make_float3(), and NODE_VECTOR_MATH_ADD.

◆ TEST_F() [9/63]

TEST_F ( RenderGraph ,
constant_fold_convert_float_color_float  )

Definition at line 1471 of file render_graph_finalize_test.cpp.

References log.

◆ TEST_F() [10/63]

TEST_F ( RenderGraph ,
constant_fold_emission1  )

Definition at line 297 of file render_graph_finalize_test.cpp.

References log, and zero_float3().

◆ TEST_F() [11/63]

TEST_F ( RenderGraph ,
constant_fold_emission2  )

Definition at line 308 of file render_graph_finalize_test.cpp.

References log.

◆ TEST_F() [12/63]

TEST_F ( RenderGraph ,
constant_fold_gamma  )

Definition at line 885 of file render_graph_finalize_test.cpp.

References log, and make_float3().

◆ TEST_F() [13/63]

TEST_F ( RenderGraph ,
constant_fold_gamma_part_0  )

Definition at line 901 of file render_graph_finalize_test.cpp.

References log, NODE_MIX_ADD, and zero_float3().

◆ TEST_F() [14/63]

TEST_F ( RenderGraph ,
constant_fold_gamma_part_1  )

Definition at line 929 of file render_graph_finalize_test.cpp.

References log, NODE_MIX_ADD, and one_float3().

◆ TEST_F() [15/63]

TEST_F ( RenderGraph ,
constant_fold_invert  )

Definition at line 400 of file render_graph_finalize_test.cpp.

References log, and make_float3().

◆ TEST_F() [16/63]

TEST_F ( RenderGraph ,
constant_fold_invert_fac_0  )

Definition at line 417 of file render_graph_finalize_test.cpp.

References log.

◆ TEST_F() [17/63]

TEST_F ( RenderGraph ,
constant_fold_invert_fac_0_const  )

Definition at line 433 of file render_graph_finalize_test.cpp.

References log, and make_float3().

◆ TEST_F() [18/63]

TEST_F ( RenderGraph ,
constant_fold_math  )

Definition at line 995 of file render_graph_finalize_test.cpp.

References log, and NODE_MATH_ADD.

◆ TEST_F() [19/63]

TEST_F ( RenderGraph ,
constant_fold_math_clamp  )

Definition at line 1013 of file render_graph_finalize_test.cpp.

References log, and NODE_MATH_ADD.

◆ TEST_F() [20/63]

TEST_F ( RenderGraph ,
constant_fold_mix_add  )

Definition at line 450 of file render_graph_finalize_test.cpp.

References log, make_float3(), and NODE_MIX_ADD.

◆ TEST_F() [21/63]

TEST_F ( RenderGraph ,
constant_fold_mix_add_clamp  )

Definition at line 470 of file render_graph_finalize_test.cpp.

References log, make_float3(), and NODE_MIX_ADD.

◆ TEST_F() [22/63]

TEST_F ( RenderGraph ,
constant_fold_part_math_add_0  )

◆ TEST_F() [23/63]

TEST_F ( RenderGraph ,
constant_fold_part_math_div_0  )

◆ TEST_F() [24/63]

TEST_F ( RenderGraph ,
constant_fold_part_math_div_1  )

◆ TEST_F() [25/63]

TEST_F ( RenderGraph ,
constant_fold_part_math_mul_0  )

◆ TEST_F() [26/63]

TEST_F ( RenderGraph ,
constant_fold_part_math_mul_1  )

◆ TEST_F() [27/63]

TEST_F ( RenderGraph ,
constant_fold_part_math_pow_0  )

◆ TEST_F() [28/63]

TEST_F ( RenderGraph ,
constant_fold_part_math_pow_1  )

◆ TEST_F() [29/63]

TEST_F ( RenderGraph ,
constant_fold_part_math_sub_0  )

◆ TEST_F() [30/63]

TEST_F ( RenderGraph ,
constant_fold_part_mix_add_0  )

◆ TEST_F() [31/63]

TEST_F ( RenderGraph ,
constant_fold_part_mix_blend  )

Definition at line 575 of file render_graph_finalize_test.cpp.

References log, and NODE_MIX_BLEND.

◆ TEST_F() [32/63]

TEST_F ( RenderGraph ,
constant_fold_part_mix_blend_clamped_no_fac_0  )

Definition at line 553 of file render_graph_finalize_test.cpp.

References log, and NODE_MIX_BLEND.

◆ TEST_F() [33/63]

TEST_F ( RenderGraph ,
constant_fold_part_mix_burn_no_fac_0  )

Definition at line 532 of file render_graph_finalize_test.cpp.

References log, and NODE_MIX_BURN.

◆ TEST_F() [34/63]

TEST_F ( RenderGraph ,
constant_fold_part_mix_div_0  )

◆ TEST_F() [35/63]

TEST_F ( RenderGraph ,
constant_fold_part_mix_div_1  )

◆ TEST_F() [36/63]

TEST_F ( RenderGraph ,
constant_fold_part_mix_dodge_no_fac_0  )

Definition at line 490 of file render_graph_finalize_test.cpp.

References log, and NODE_MIX_DODGE.

◆ TEST_F() [37/63]

TEST_F ( RenderGraph ,
constant_fold_part_mix_light_no_fac_0  )

Definition at line 511 of file render_graph_finalize_test.cpp.

References log, and NODE_MIX_LIGHT.

◆ TEST_F() [38/63]

TEST_F ( RenderGraph ,
constant_fold_part_mix_mul_0  )

◆ TEST_F() [39/63]

TEST_F ( RenderGraph ,
constant_fold_part_mix_mul_1  )

◆ TEST_F() [40/63]

TEST_F ( RenderGraph ,
constant_fold_part_mix_sub_0  )

◆ TEST_F() [41/63]

TEST_F ( RenderGraph ,
constant_fold_part_mix_sub_same_fac_1  )

Definition at line 633 of file render_graph_finalize_test.cpp.

References log, and NODE_MIX_SUB.

◆ TEST_F() [42/63]

TEST_F ( RenderGraph ,
constant_fold_part_mix_sub_same_fac_bad  )

Definition at line 613 of file render_graph_finalize_test.cpp.

References log, and NODE_MIX_SUB.

◆ TEST_F() [43/63]

TEST_F ( RenderGraph ,
constant_fold_part_vecmath_add_0  )

◆ TEST_F() [44/63]

TEST_F ( RenderGraph ,
constant_fold_part_vecmath_cross_0  )

◆ TEST_F() [45/63]

TEST_F ( RenderGraph ,
constant_fold_part_vecmath_sub_0  )

◆ TEST_F() [46/63]

TEST_F ( RenderGraph ,
constant_fold_rgb_curves  )

Definition at line 1300 of file render_graph_finalize_test.cpp.

References init_test_curve(), log, and make_float3().

◆ TEST_F() [47/63]

TEST_F ( RenderGraph ,
constant_fold_rgb_curves_fac_0  )

Definition at line 1323 of file render_graph_finalize_test.cpp.

References init_test_curve(), log, and make_float3().

◆ TEST_F() [48/63]

TEST_F ( RenderGraph ,
constant_fold_rgb_curves_fac_0_const  )

Definition at line 1346 of file render_graph_finalize_test.cpp.

References init_test_curve(), log, and make_float3().

◆ TEST_F() [49/63]

TEST_F ( RenderGraph ,
constant_fold_rgb_ramp  )

Definition at line 1415 of file render_graph_finalize_test.cpp.

References init_test_curve(), log, make_float3(), and NODE_MIX_ADD.

◆ TEST_F() [50/63]

TEST_F ( RenderGraph ,
constant_fold_rgb_ramp_flat  )

Definition at line 1443 of file render_graph_finalize_test.cpp.

References init_test_curve(), log, make_float3(), and NODE_MIX_ADD.

◆ TEST_F() [51/63]

TEST_F ( RenderGraph ,
constant_fold_rgb_to_bw  )

Definition at line 279 of file render_graph_finalize_test.cpp.

References log, and make_float3().

◆ TEST_F() [52/63]

TEST_F ( RenderGraph ,
constant_fold_separate_combine_hsv  )

Definition at line 861 of file render_graph_finalize_test.cpp.

References log, make_float3(), and NODE_COMBSEP_COLOR_HSV.

◆ TEST_F() [53/63]

TEST_F ( RenderGraph ,
constant_fold_separate_combine_rgb  )

Definition at line 813 of file render_graph_finalize_test.cpp.

References log, make_float3(), and NODE_COMBSEP_COLOR_RGB.

◆ TEST_F() [54/63]

TEST_F ( RenderGraph ,
constant_fold_separate_combine_xyz  )

Definition at line 837 of file render_graph_finalize_test.cpp.

References log, and make_float3().

◆ TEST_F() [55/63]

TEST_F ( RenderGraph ,
constant_fold_shader_add  )

Definition at line 348 of file render_graph_finalize_test.cpp.

References log.

◆ TEST_F() [56/63]

TEST_F ( RenderGraph ,
constant_fold_shader_mix  )

Definition at line 372 of file render_graph_finalize_test.cpp.

References log.

◆ TEST_F() [57/63]

TEST_F ( RenderGraph ,
constant_fold_vector_curves  )

Definition at line 1369 of file render_graph_finalize_test.cpp.

References init_test_curve(), log, and make_float3().

◆ TEST_F() [58/63]

TEST_F ( RenderGraph ,
constant_fold_vector_curves_fac_0  )

Definition at line 1392 of file render_graph_finalize_test.cpp.

References init_test_curve(), log, and make_float3().

◆ TEST_F() [59/63]

TEST_F ( RenderGraph ,
constant_fold_vector_math  )

Definition at line 1175 of file render_graph_finalize_test.cpp.

References log, make_float3(), and NODE_VECTOR_MATH_SUBTRACT.

◆ TEST_F() [60/63]

TEST_F ( RenderGraph ,
deduplicate_deep  )

Definition at line 248 of file render_graph_finalize_test.cpp.

References EXPECT_EQ(), log, and NODE_MIX_BLEND.

◆ TEST_F() [61/63]

TEST_F ( RenderGraph ,
not_stochastic_sample_math_power  )

Definition at line 1549 of file render_graph_finalize_test.cpp.

References log, and NODE_MATH_POWER.

◆ TEST_F() [62/63]

TEST_F ( RenderGraph ,
stochastic_sample_math_multiply  )

Definition at line 1530 of file render_graph_finalize_test.cpp.

References log, and NODE_MATH_MULTIPLY.

◆ TEST_F() [63/63]

TEST_F ( RenderGraph ,
stochastic_sample_principled_volume_mix  )

Definition at line 1568 of file render_graph_finalize_test.cpp.

References log.