97 void add_node(
const int a = 0,
const int b = 0,
const int c = 0,
const int d = 0);
static DBVT_INLINE btScalar size(const btDbvtVolume &a)
SIMD_FORCE_INLINE const btScalar & z() const
Return the z value.
SIMD_FORCE_INLINE const btScalar & w() const
Return the w value.
ShaderGraph * current_graph
void compile_type(Shader *shader, ShaderGraph *graph, ShaderType type)
void find_aov_nodes_and_dependencies(ShaderNodeSet &aov_nodes, ShaderGraph *graph, CompilerState *state)
SVMCompiler(Scene *scene)
int stack_assign_if_not_equal(ShaderInput *input, const float value)
array< int4 > current_svm_nodes
int stack_find_offset(const int size)
void generate_closure_node(ShaderNode *node, CompilerState *state)
void compile(Shader *shader, array< int4 > &svm_nodes, const int index, Summary *summary=nullptr)
void generate_node(ShaderNode *node, ShaderNodeSet &done)
uint encode_uchar4(const uint x, const uint y=0, const uint z=0, const uint w=0)
int stack_assign_if_linked(ShaderInput *input)
void stack_clear_users(ShaderNode *node, ShaderNodeSet &done)
int stack_size(SocketType::Type type)
void find_dependencies(ShaderNodeSet &dependencies, const ShaderNodeSet &done, ShaderInput *input, ShaderNode *skip_node=nullptr)
void stack_clear_temporary(ShaderNode *node)
uint attribute_standard(ustring name)
void add_node(ShaderNodeType type, const int a=0, const int b=0, const int c=0)
void stack_link(ShaderInput *input, ShaderOutput *output)
void generate_aov_node(ShaderNode *node, CompilerState *state)
void generate_svm_nodes(const ShaderNodeSet &nodes, CompilerState *state)
uint closure_mix_weight_offset()
bool is_linked(ShaderInput *input)
void generate_multi_closure(ShaderNode *root_node, ShaderNode *node, CompilerState *state)
uint get_bump_state_offset()
uint attribute(ustring name)
void stack_clear_offset(SocketType::Type type, const int offset)
std::atomic_int * svm_node_types_used
void generated_shared_closure_nodes(ShaderNode *root_node, ShaderNode *node, CompilerState *state, const ShaderNodeSet &shared)
int stack_assign(ShaderOutput *output)
void device_update_shader(Scene *scene, Shader *shader, Progress &progress, array< int4 > *svm_nodes)
void device_free(Device *device, DeviceScene *dscene, Scene *scene) override
void device_update_specific(Device *device, DeviceScene *dscene, Scene *scene, Progress &progress) override
~SVMShaderManager() override
#define CCL_NAMESPACE_END
set< ShaderNode *, ShaderNodeIDComparator > ShaderNodeSet
ShaderNodeSet closure_done
vector< bool > nodes_done_flag
CompilerState(ShaderGraph *graph)
Stack & operator=(const Stack &other)
int users[SVM_STACK_SIZE]
Stack(const Stack &other)
double time_generate_volume
double time_generate_surface
double time_generate_bump
string full_report() const
double time_generate_displacement