|
Blender V4.5
|
#include <svm.h>
Inherits ShaderManager.
Public Member Functions | |
| SVMShaderManager () | |
| ~SVMShaderManager () override | |
| void | device_update_specific (Device *device, DeviceScene *dscene, Scene *scene, Progress &progress) override |
| void | device_free (Device *device, DeviceScene *dscene, Scene *scene) override |
| Public Member Functions inherited from ShaderManager | |
| virtual | ~ShaderManager () |
| virtual bool | use_osl () |
| void | device_update_pre (Device *device, DeviceScene *dscene, Scene *scene, Progress &progress) |
| void | device_update_post (Device *device, DeviceScene *dscene, Scene *scene, Progress &progress) |
| virtual uint64_t | get_attribute_id (ustring name) |
| virtual uint64_t | get_attribute_id (AttributeStandard std) |
| int | get_shader_id (Shader *shader, bool smooth=false) |
| uint | get_kernel_features (Scene *scene) |
| float | linear_rgb_to_gray (const float3 c) |
| float3 | rec709_to_scene_linear (const float3 c) |
| string | get_cryptomatte_materials (Scene *scene) |
| void | tag_update (Scene *scene, const uint32_t flag) |
| bool | need_update () const |
| void | init_xyz_transforms () |
Protected Member Functions | |
| void | device_update_shader (Scene *scene, Shader *shader, Progress &progress, array< int4 > *svm_nodes) |
| Protected Member Functions inherited from ShaderManager | |
| ShaderManager () | |
| template<std::size_t n> | |
| size_t | ensure_bsdf_table (DeviceScene *dscene, Scene *scene, const float(&table)[n]) |
| size_t | ensure_bsdf_table_impl (DeviceScene *dscene, Scene *scene, const float *table, const size_t n) |
| uint | get_graph_kernel_features (ShaderGraph *graph) |
| void | device_update_common (Device *device, DeviceScene *dscene, Scene *scene, Progress &progress) |
| void | device_free_common (Device *device, DeviceScene *dscene, Scene *scene) |
Additional Inherited Members | |
| Public Types inherited from ShaderManager | |
| enum | : uint32_t { SHADER_ADDED = (1 << 0) , SHADER_MODIFIED = (1 << 2) , UPDATE_ALL = ~0u , UPDATE_NONE = 0u } |
| Static Public Member Functions inherited from ShaderManager | |
| static unique_ptr< ShaderManager > | create (const int shadingsystem) |
| static void | add_default (Scene *scene) |
| Protected Types inherited from ShaderManager | |
| using | AttributeIDMap = unordered_map<ustring, uint64_t> |
| Protected Attributes inherited from ShaderManager | |
| uint32_t | update_flags |
| AttributeIDMap | unique_attribute_id |
| unordered_map< const float *, size_t > | bsdf_tables |
| thread_spin_lock | attribute_lock_ |
| float3 | xyz_to_r |
| float3 | xyz_to_g |
| float3 | xyz_to_b |
| float3 | rgb_to_y |
| float3 | white_xyz |
| float3 | rec709_to_r |
| float3 | rec709_to_g |
| float3 | rec709_to_b |
| bool | is_rec709 |
| Static Protected Attributes inherited from ShaderManager | |
| static thread_mutex | lookup_table_mutex |
Definition at line 28 of file scene/svm.h.
|
default |
|
overridedefault |
References progress.
|
overridevirtual |
Implements ShaderManager.
Definition at line 143 of file svm.cpp.
References ShaderManager::device_free_common(), device_vector< T >::free(), and DeviceScene::svm_nodes.
Referenced by device_update_specific().
|
protected |
Definition at line 31 of file svm.cpp.
References assert, Scene::background, SVMCompiler::background, SVMCompiler::compile(), SVMCompiler::Summary::full_report(), Background::get_shader(), Shader::graph, Node::name, progress, and VLOG_WORK.
Referenced by device_update_specific().
|
overridevirtual |
Implements ShaderManager.
Definition at line 51 of file svm.cpp.
References device_vector< T >::alloc(), Node::clear_modified(), device_free(), ShaderManager::device_update_common(), device_update_shader(), Shader::emission_sampling, EMISSION_SAMPLING_NONE, i, Shader::id, Scene::light_manager, ShaderManager::need_update(), progress, LightManager::SHADER_COMPILED, Scene::shaders, unique_ptr_vector< T >::size(), DeviceScene::svm_nodes, task_pool, time_dt(), timer, ShaderManager::update_flags, ShaderManager::UPDATE_NONE, Scene::update_stats, VLOG_INFO, int4::w, int4::x, int4::y, and int4::z.