|
Blender V4.3
|
Namespaces | |
| namespace | build |
| namespace | procedure_optimization |
| namespace | tests |
Classes | |
| class | BranchInstruction |
| class | CallInstruction |
| struct | ConstParameter |
| class | Context |
| class | ContextBuilder |
| class | CustomMF_Constant |
| class | CustomMF_DefaultOutput |
| class | CustomMF_GenericConstant |
| class | CustomMF_GenericConstantArray |
| class | CustomMF_GenericCopy |
| class | DataType |
| class | DestructInstruction |
| class | DummyInstruction |
| class | Instruction |
| class | InstructionCursor |
| struct | InstructionIndices |
| class | InstructionScheduler |
| class | MultiFunction |
| struct | NextInstructionInfo |
| struct | Parameter |
| class | Params |
| class | ParamsBuilder |
| struct | ParamTag |
| class | ParamType |
| class | Procedure |
| class | ProcedureBuilder |
| class | ProcedureDotExport |
| class | ProcedureExecutor |
| class | ReturnInstruction |
| struct | Signature |
| class | SignatureBuilder |
| class | ValueAllocator |
| class | Variable |
| class | VariableState |
| class | VariableStates |
| struct | VariableValue |
| struct | VariableValue_GVArray |
| struct | VariableValue_GVectorArray |
| struct | VariableValue_GVVectorArray |
| struct | VariableValue_OneSingle |
| struct | VariableValue_OneVector |
| struct | VariableValue_Span |
Typedefs | |
| using | ExecutionHints = MultiFunction::ExecutionHints |
| using | IndicesSplitVectors = std::array<Vector<int64_t>, 2> |
Enumerations | |
| enum class | ParamCategory { SingleInput , VectorInput , SingleOutput , VectorOutput , SingleMutable , VectorMutable } |
| enum class | InstructionType { Call , Branch , Destruct , Dummy , Return } |
| enum class | ParamFlag { None = 0 , SupportsUnusedOutput = 1 << 0 } |
Functions | |
| ENUM_OPERATORS (ParamFlag, ParamFlag::SupportsUnusedOutput) | |
| static bool | supports_threading_by_slicing_params (const MultiFunction &fn) |
| static int64_t | compute_grain_size (const ExecutionHints &hints, const IndexMask &mask) |
| static int64_t | compute_alignment (const int64_t grain_size) |
| static void | add_sliced_parameters (const Signature &signature, Params &full_params, const IndexRange slice_range, ParamsBuilder &r_sliced_params) |
| static bool | evaluate_as_one (Span< VariableState * > param_variable_states, const IndexMask &mask, const IndexMask &full_mask) |
| static void | gather_parameter_variable_states (const MultiFunction &fn, const CallInstruction &instruction, VariableStates &variable_states, MutableSpan< VariableState * > r_param_variable_states) |
| static void | fill_params__one (const MultiFunction &fn, const IndexMask &mask, ParamsBuilder ¶ms, VariableStates &variable_states, const Span< VariableState * > param_variable_states) |
| static void | fill_params (const MultiFunction &fn, const IndexMask &mask, ParamsBuilder ¶ms, VariableStates &variable_states, const Span< VariableState * > param_variable_states) |
| static void | execute_call_instruction (const CallInstruction &instruction, const IndexMask &mask, VariableStates &variable_states, const Context &context) |
Definition at line 12 of file multi_function.cc.
| using blender::fn::multi_function::IndicesSplitVectors = std::array<Vector<int64_t>, 2> |
Definition at line 22 of file multi_function_procedure_executor.cc.
|
strong |
Every instruction has exactly one of these types.
| Enumerator | |
|---|---|
| Call | |
| Branch | |
| Destruct | |
| Dummy | |
| Return | |
Definition at line 25 of file FN_multi_function_procedure.hh.
|
strong |
| Enumerator | |
|---|---|
| SingleInput | |
| VectorInput | |
| SingleOutput | |
| VectorOutput | |
| SingleMutable | |
| VectorMutable | |
Definition at line 27 of file FN_multi_function_param_type.hh.
|
strong |
| Enumerator | |
|---|---|
| None | |
| SupportsUnusedOutput | If set, the multi-function parameter can be accessed using Params::uninitialized_single_output_if_required which can result in better performance because the output does not have to be computed when it is not needed. |
Definition at line 20 of file FN_multi_function_signature.hh.
|
static |
Definition at line 68 of file multi_function.cc.
References blender::fn::multi_function::ParamsBuilder::add_ignored_single_output(), blender::fn::multi_function::ParamsBuilder::add_readonly_single_input(), blender::fn::multi_function::ParamsBuilder::add_single_mutable(), blender::fn::multi_function::ParamsBuilder::add_uninitialized_single_output(), BLI_assert_unreachable, blender::fn::multi_function::ParamType::category(), blender::GMutableSpan::is_empty(), blender::fn::multi_function::Signature::params, blender::fn::multi_function::Params::readonly_single_input(), blender::fn::multi_function::Params::single_mutable(), SingleInput, SingleMutable, SingleOutput, blender::GMutableSpan::slice(), blender::GVArray::slice(), SupportsUnusedOutput, blender::fn::multi_function::Params::uninitialized_single_output(), blender::fn::multi_function::Params::uninitialized_single_output_if_required(), VectorInput, VectorMutable, and VectorOutput.
Referenced by blender::fn::multi_function::MultiFunction::call_auto().
Definition at line 58 of file multi_function.cc.
Referenced by blender::fn::multi_function::MultiFunction::call_auto().
|
static |
Definition at line 40 of file multi_function.cc.
References blender::fn::multi_function::MultiFunction::ExecutionHints::allocates_array, BLI_system_thread_count(), blender::fn::multi_function::MultiFunction::ExecutionHints::min_grain_size, and blender::fn::multi_function::MultiFunction::ExecutionHints::uniform_execution_time.
Referenced by blender::fn::multi_function::MultiFunction::call_auto().
| blender::fn::multi_function::ENUM_OPERATORS | ( | ParamFlag | , |
| ParamFlag::SupportsUnusedOutput | ) |
|
static |
Definition at line 969 of file multi_function_procedure_executor.cc.
References blender::index_mask::IndexMask::size(), and state.
Referenced by execute_call_instruction().
|
static |
Definition at line 1037 of file multi_function_procedure_executor.cc.
References BLI_assert_unreachable, blender::fn::multi_function::MultiFunction::call(), blender::fn::multi_function::MultiFunction::call_auto(), evaluate_as_one(), fill_params(), fill_params__one(), blender::fn::multi_function::CallInstruction::fn(), blender::fn::multi_function::VariableStates::full_mask(), gather_parameter_variable_states(), blender::fn::multi_function::MultiFunction::param_amount(), params, and blender::Vector< T, InlineBufferCapacity, Allocator >::resize().
Referenced by blender::fn::multi_function::ProcedureExecutor::call().
|
static |
Definition at line 1019 of file multi_function_procedure_executor.cc.
References blender::fn::multi_function::VariableStates::add_as_param(), blender::fn::multi_function::MultiFunction::param_indices(), blender::fn::multi_function::MultiFunction::param_type(), and params.
Referenced by execute_call_instruction().
|
static |
Definition at line 1001 of file multi_function_procedure_executor.cc.
References blender::fn::multi_function::VariableStates::add_as_param__one(), blender::fn::multi_function::MultiFunction::param_indices(), blender::fn::multi_function::MultiFunction::param_type(), and params.
Referenced by execute_call_instruction().
|
static |
Definition at line 984 of file multi_function_procedure_executor.cc.
References blender::fn::multi_function::VariableStates::get_variable_state(), blender::fn::multi_function::MultiFunction::param_indices(), and blender::fn::multi_function::CallInstruction::params().
Referenced by execute_call_instruction().
|
static |
Definition at line 24 of file multi_function.cc.
References blender::fn::multi_function::ParamType::data_type(), ELEM, blender::fn::multi_function::ParamType::interface_type(), blender::fn::multi_function::DataType::is_vector(), blender::fn::multi_function::ParamType::Mutable, blender::fn::multi_function::ParamType::Output, blender::fn::multi_function::MultiFunction::param_indices(), and blender::fn::multi_function::MultiFunction::param_type().
Referenced by blender::fn::multi_function::MultiFunction::call_auto().