|
Blender V4.3
|
#include <memory.h>
Inherited by device_only_memory< float >, device_vector< TextureInfo >, device_vector< int4 >, device_vector< int >, device_vector< uint >, device_vector< float2 >, device_vector< packed_float3 >, device_vector< packed_uint3 >, device_vector< KernelCurve >, device_vector< float4 >, device_vector< KernelCurveSegment >, device_vector< KernelObject >, device_vector< Transform >, device_vector< DecomposedTransform >, device_vector< float >, device_vector< AttributeMap >, device_vector< uchar4 >, device_vector< KernelLightDistribution >, device_vector< KernelLight >, device_vector< KernelLightTreeNode >, device_vector< KernelLightTreeEmitter >, device_vector< KernelParticle >, device_vector< KernelShader >, device_vector< IntegratorQueueCounter >, device_vector< KernelWorkTile >, device_vector< half4 >, device_only_memory< T >, device_texture, and device_vector< T >.
Public Member Functions | |
| size_t | memory_size () |
| size_t | memory_elements_size (int elements) |
| virtual | ~device_memory () |
| void | swap_device (Device *new_device, size_t new_device_size, device_ptr new_device_ptr) |
| void | restore_device () |
| bool | is_resident (Device *sub_device) const |
Public Attributes | |
| DataType | data_type |
| int | data_elements |
| size_t | data_size |
| size_t | device_size |
| size_t | data_width |
| size_t | data_height |
| size_t | data_depth |
| MemoryType | type |
| const char * | name |
| std::string | name_storage |
| Device * | device |
| device_ptr | device_pointer |
| void * | host_pointer |
| void * | shared_pointer |
| int | shared_counter |
Protected Member Functions | |
| device_memory (Device *device, const char *name, MemoryType type) | |
| device_memory (const device_memory &)=delete | |
| device_memory (device_memory &&other) noexcept=delete | |
| device_memory & | operator= (const device_memory &)=delete |
| device_memory & | operator= (device_memory &&)=delete |
| void * | host_alloc (size_t size) |
| void | host_free () |
| void | device_alloc () |
| void | device_free () |
| void | device_copy_to () |
| void | device_copy_from (size_t y, size_t w, size_t h, size_t elem) |
| void | device_zero () |
| bool | device_is_cpu () |
Protected Attributes | |
| device_ptr | original_device_ptr |
| size_t | original_device_size |
| Device * | original_device |
| bool | need_realloc_ |
| bool | modified |
Friends | |
| class | Device |
| class | GPUDevice |
| class | CUDADevice |
| class | OptiXDevice |
| class | HIPDevice |
| class | HIPRTDevice |
| class | MetalDevice |
| class | OneapiDevice |
Definition at line 222 of file cycles/device/memory.h.
|
virtual |
Definition at line 36 of file memory.cpp.
References shared_counter, and shared_pointer.
|
protected |
Definition at line 12 of file memory.cpp.
References name_storage.
|
protecteddelete |
|
protecteddeletenoexcept |
|
protected |
Definition at line 69 of file memory.cpp.
References device, device_pointer, Device::mem_alloc(), MEM_GLOBAL, and MEM_TEXTURE.
Referenced by device_only_memory< T >::alloc_to_device().
|
protected |
Definition at line 89 of file memory.cpp.
References device, Device::mem_copy_from(), MEM_GLOBAL, MEM_READ_ONLY, MEM_TEXTURE, and w().
Referenced by device_vector< T >::copy_from_device(), and device_vector< T >::copy_from_device().
|
protected |
Definition at line 82 of file memory.cpp.
References device, host_pointer, and Device::mem_copy_to().
Referenced by device_texture::copy_to_device(), device_vector< T >::copy_to_device(), and GPUDevice::move_textures_to_host().
|
protected |
Definition at line 75 of file memory.cpp.
References device, device_pointer, and Device::mem_free().
Referenced by device_texture::alloc(), device_vector< T >::alloc(), device_only_memory< T >::alloc_to_device(), device_only_memory< T >::free(), device_vector< T >::free(), device_vector< T >::give_data(), device_vector< T >::move_device(), device_vector< T >::resize(), device_vector< T >::steal_data(), and device_texture::~device_texture().
|
protected |
Definition at line 102 of file memory.cpp.
References device, DEVICE_CPU, Device::info, and DeviceInfo::type.
|
protected |
Definition at line 95 of file memory.cpp.
References data_size, device, and Device::mem_zero().
Referenced by device_only_memory< T >::zero_to_device(), and device_vector< T >::zero_to_device().
|
protected |
Definition at line 42 of file memory.cpp.
References MIN_ALIGNMENT_CPU_DATA_TYPES, ptr, util_aligned_malloc(), and util_guarded_mem_alloc().
Referenced by device_texture::alloc(), device_vector< T >::alloc(), and device_vector< T >::resize().
|
protected |
Definition at line 60 of file memory.cpp.
References host_pointer, memory_size(), util_aligned_free(), and util_guarded_mem_free().
Referenced by device_texture::alloc(), device_vector< T >::alloc(), device_vector< T >::free(), GPUDevice::generic_alloc(), device_vector< T >::resize(), device_vector< T >::steal_data(), and device_texture::~device_texture().
| bool device_memory::is_resident | ( | Device * | sub_device | ) | const |
Definition at line 127 of file memory.cpp.
References device, device_pointer, and Device::is_resident().
Referenced by GPUDevice::move_textures_to_host().
|
inline |
Definition at line 228 of file cycles/device/memory.h.
References data_elements, data_type, and datatype_size().
Referenced by CPUDevice::mem_alloc_sub_ptr().
|
inline |
Definition at line 224 of file cycles/device/memory.h.
References data_elements, data_size, data_type, and datatype_size().
Referenced by PathTraceWorkGPU::enqueue_reset(), GPUDevice::generic_alloc(), GPUDevice::generic_copy_to(), CPUDevice::global_alloc(), host_free(), CPUDevice::mem_alloc(), CPUDevice::mem_zero(), and CPUDevice::tex_alloc().
|
protecteddelete |
|
protecteddelete |
| void device_memory::restore_device | ( | ) |
Definition at line 120 of file memory.cpp.
References device, device_pointer, device_size, original_device, original_device_ptr, and original_device_size.
| void device_memory::swap_device | ( | Device * | new_device, |
| size_t | new_device_size, | ||
| device_ptr | new_device_ptr ) |
Definition at line 107 of file memory.cpp.
References device, device_pointer, device_size, original_device, original_device_ptr, and original_device_size.
|
friend |
Definition at line 263 of file cycles/device/memory.h.
|
friend |
Definition at line 261 of file cycles/device/memory.h.
|
friend |
Definition at line 262 of file cycles/device/memory.h.
|
friend |
Definition at line 265 of file cycles/device/memory.h.
|
friend |
Definition at line 266 of file cycles/device/memory.h.
|
friend |
Definition at line 267 of file cycles/device/memory.h.
|
friend |
Definition at line 268 of file cycles/device/memory.h.
|
friend |
Definition at line 264 of file cycles/device/memory.h.
| size_t device_memory::data_depth |
Definition at line 240 of file cycles/device/memory.h.
Referenced by device_texture::alloc(), device_vector< T >::alloc(), device_vector< T >::free(), device_vector< T >::give_data(), device_vector< T >::resize(), and device_vector< T >::steal_data().
| int device_memory::data_elements |
Definition at line 235 of file cycles/device/memory.h.
Referenced by device_texture::alloc(), GeometryManager::create_volume_mesh(), device_only_memory< T >::device_only_memory(), device_texture::device_texture(), device_vector< T >::device_vector(), memory_elements_size(), and memory_size().
| size_t device_memory::data_height |
Definition at line 239 of file cycles/device/memory.h.
Referenced by device_texture::alloc(), device_vector< T >::alloc(), device_vector< T >::copy_from_device(), PathTraceWorkGPU::copy_to_display_naive(), device_vector< T >::free(), GPUDevice::generic_alloc(), device_vector< T >::give_data(), GPUDevice::move_textures_to_host(), device_vector< T >::resize(), and device_vector< T >::steal_data().
| size_t device_memory::data_size |
Definition at line 236 of file cycles/device/memory.h.
Referenced by device_texture::alloc(), device_vector< T >::alloc(), device_only_memory< T >::alloc_to_device(), device_vector< T >::copy_to_device(), device_zero(), device_only_memory< T >::free(), device_vector< T >::free(), device_vector< T >::give_data(), CPUDevice::global_alloc(), memory_size(), device_vector< T >::operator[](), device_vector< T >::resize(), device_vector< T >::size(), and device_vector< T >::steal_data().
| DataType device_memory::data_type |
Definition at line 234 of file cycles/device/memory.h.
Referenced by device_texture::alloc(), device_only_memory< T >::device_only_memory(), device_texture::device_texture(), device_vector< T >::device_vector(), memory_elements_size(), and memory_size().
| size_t device_memory::data_width |
Definition at line 238 of file cycles/device/memory.h.
Referenced by device_texture::alloc(), device_vector< T >::alloc(), device_vector< T >::copy_from_device(), PathTraceWorkGPU::copy_to_display_naive(), device_vector< T >::free(), device_vector< T >::give_data(), device_vector< T >::resize(), and device_vector< T >::steal_data().
| Device* device_memory::device |
Definition at line 246 of file cycles/device/memory.h.
Referenced by DenoiserGPU::denoise_buffer(), device_alloc(), device_copy_from(), device_copy_to(), device_free(), device_is_cpu(), device_zero(), is_resident(), MultiDevice::mem_alloc(), MultiDevice::mem_copy_from(), MultiDevice::mem_copy_to(), MultiDevice::mem_free(), MultiDevice::mem_zero(), device_vector< T >::move_device(), restore_device(), and swap_device().
| device_ptr device_memory::device_pointer |
Definition at line 247 of file cycles/device/memory.h.
Referenced by PathTraceWorkGPU::adaptive_sampling_convergence_check_count_active(), device_texture::alloc(), device_vector< T >::alloc(), PathTraceWorkGPU::alloc_integrator_path_split(), PathTraceWorkGPU::alloc_integrator_queue(), PathTraceWorkGPU::alloc_integrator_sorting(), PathTraceWorkGPU::compact_paths(), PathTraceWorkGPU::compute_queued_paths(), PathTraceWorkGPU::compute_sorted_queued_paths(), RenderBuffers::copy_from_device(), PathTraceWorkGPU::copy_to_display_naive(), DenoiserGPU::DenoiseContext::DenoiseContext(), device_alloc(), device_free(), PathTraceWorkGPU::enqueue_path_iteration(), PathTraceWorkGPU::enqueue_work_tiles(), device_vector< T >::free(), GPUDevice::generic_alloc(), GPUDevice::generic_copy_to(), GPUDevice::generic_free(), device_vector< T >::give_data(), CPUDevice::global_alloc(), CPUDevice::global_free(), is_resident(), CPUDevice::mem_alloc(), MultiDevice::mem_alloc(), CPUDevice::mem_alloc_sub_ptr(), MultiDevice::mem_copy_from(), CPUDevice::mem_copy_to(), MultiDevice::mem_copy_to(), CPUDevice::mem_free(), MultiDevice::mem_free(), CPUDevice::mem_zero(), MultiDevice::mem_zero(), device_vector< T >::resize(), restore_device(), PassAccessorGPU::run_film_convert_kernels(), PathTraceWorkGPU::shadow_catcher_count_possible_splits(), device_vector< T >::steal_data(), swap_device(), CPUDevice::tex_alloc(), and CPUDevice::tex_free().
| size_t device_memory::device_size |
Definition at line 237 of file cycles/device/memory.h.
Referenced by GPUDevice::generic_alloc(), GPUDevice::generic_free(), CPUDevice::global_alloc(), CPUDevice::global_free(), CPUDevice::mem_alloc(), MultiDevice::mem_alloc(), MultiDevice::mem_copy_to(), CPUDevice::mem_free(), MultiDevice::mem_free(), MultiDevice::mem_zero(), GPUDevice::move_textures_to_host(), restore_device(), swap_device(), CPUDevice::tex_alloc(), and CPUDevice::tex_free().
| void* device_memory::host_pointer |
Definition at line 248 of file cycles/device/memory.h.
Referenced by device_texture::alloc(), device_vector< T >::alloc(), device_vector< T >::data(), device_vector< T >::data(), device_copy_to(), PathTraceWorkGPU::enqueue_reset(), device_vector< T >::free(), GPUDevice::generic_alloc(), GPUDevice::generic_copy_to(), GPUDevice::generic_free(), device_vector< T >::give_data(), CPUDevice::global_alloc(), host_free(), CPUDevice::mem_alloc(), CPUDevice::mem_free(), device_vector< T >::resize(), device_vector< T >::steal_data(), and CPUDevice::tex_alloc().
|
protected |
Definition at line 302 of file cycles/device/memory.h.
Referenced by device_vector< T >::alloc(), device_vector< T >::clear_modified(), device_vector< T >::copy_to_device_if_modified(), device_vector< T >::device_vector(), device_vector< T >::free(), device_vector< T >::is_modified(), and device_vector< T >::tag_modified().
| const char* device_memory::name |
Definition at line 242 of file cycles/device/memory.h.
Referenced by GPUDevice::generic_alloc(), CPUDevice::global_alloc(), CPUDevice::mem_alloc(), GPUDevice::move_textures_to_host(), and CPUDevice::tex_alloc().
| std::string device_memory::name_storage |
Definition at line 243 of file cycles/device/memory.h.
Referenced by device_memory().
|
protected |
Definition at line 301 of file cycles/device/memory.h.
Referenced by device_vector< T >::clear_modified(), device_vector< T >::device_vector(), device_vector< T >::free(), device_vector< T >::free_if_need_realloc(), device_vector< T >::need_realloc(), and device_vector< T >::tag_realloc().
|
protected |
Definition at line 300 of file cycles/device/memory.h.
Referenced by restore_device(), and swap_device().
|
protected |
Definition at line 298 of file cycles/device/memory.h.
Referenced by restore_device(), and swap_device().
|
protected |
Definition at line 299 of file cycles/device/memory.h.
Referenced by restore_device(), and swap_device().
| int device_memory::shared_counter |
Definition at line 251 of file cycles/device/memory.h.
Referenced by GPUDevice::generic_alloc(), GPUDevice::generic_free(), and ~device_memory().
| void* device_memory::shared_pointer |
Definition at line 249 of file cycles/device/memory.h.
Referenced by GPUDevice::generic_alloc(), GPUDevice::generic_copy_to(), GPUDevice::generic_free(), and ~device_memory().
| MemoryType device_memory::type |
Definition at line 241 of file cycles/device/memory.h.
Referenced by GPUDevice::generic_alloc(), CPUDevice::mem_alloc(), MultiDevice::mem_alloc(), CPUDevice::mem_copy_to(), MultiDevice::mem_copy_to(), CPUDevice::mem_free(), MultiDevice::mem_free(), and GPUDevice::move_textures_to_host().