|
Blender V5.0
|
#include <memory.h>
Inherited by device_only_memory< float >, device_vector< float >, device_vector< float2 >, device_vector< packed_float3 >, device_vector< float4 >, device_vector< uchar4 >, device_vector< TextureInfo >, device_vector< int4 >, device_vector< int >, device_vector< uint >, device_vector< packed_uint3 >, device_vector< KernelCurve >, device_vector< KernelCurveSegment >, device_vector< KernelObject >, device_vector< Transform >, device_vector< DecomposedTransform >, device_vector< AttributeMap >, device_vector< KernelLightDistribution >, device_vector< KernelLight >, device_vector< KernelLightTreeNode >, device_vector< KernelLightTreeEmitter >, device_vector< KernelParticle >, device_vector< KernelShader >, device_vector< KernelOctreeNode >, device_vector< KernelOctreeRoot >, 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 (const int elements) |
| virtual | ~device_memory () |
| void | swap_device (Device *new_device, const size_t new_device_size, device_ptr new_device_ptr) |
| void | restore_device () |
| bool | is_resident (Device *sub_device) const |
| bool | is_shared (Device *sub_device) const |
| 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 |
Public Attributes | |
| DataType | data_type |
| int | data_elements |
| size_t | data_size |
| size_t | device_size |
| size_t | data_width |
| size_t | data_height |
| MemoryType | type |
| const char * | name |
| string | name_storage |
| Device * | device |
| device_ptr | device_pointer |
| void * | host_pointer |
| void * | shared_pointer |
| int | shared_counter |
| bool | move_to_host = false |
Protected Member Functions | |
| device_memory (Device *device, const char *name, MemoryType type) | |
| void * | host_alloc (const size_t size) |
| void | device_alloc () |
| void | device_copy_to () |
| void | device_move_to_host () |
| void | device_copy_from (const size_t y, const size_t w, size_t h, const size_t elem) |
| void | device_zero () |
| void | host_and_device_free () |
| 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 220 of file cycles/device/memory.h.
|
virtual |
Definition at line 35 of file memory.cpp.
References assert, shared_counter, and shared_pointer.
|
delete |
|
deletenoexcept |
References device_memory().
|
protected |
Definition at line 12 of file memory.cpp.
References data_elements, data_height, data_size, data_type, data_width, Device, device, device_pointer, device_size, false, host_pointer, modified, name, name_storage, need_realloc_, nullptr, original_device, original_device_ptr, original_device_size, shared_counter, shared_pointer, and type.
|
protected |
Definition at line 74 of file memory.cpp.
References assert, device, device_pointer, MEM_GLOBAL, MEM_TEXTURE, and type.
Referenced by device_only_memory< T >::alloc_to_device().
|
protected |
Definition at line 94 of file memory.cpp.
References assert, device, MEM_GLOBAL, MEM_READ_ONLY, MEM_TEXTURE, type, w(), and y.
Referenced by device_vector< T >::copy_from_device(), and device_vector< T >::copy_from_device().
|
protected |
Definition at line 80 of file memory.cpp.
References device, and host_pointer.
Referenced by device_texture::copy_to_device(), and device_vector< T >::copy_to_device().
|
protected |
Definition at line 107 of file memory.cpp.
References device, and DEVICE_CPU.
|
protected |
Definition at line 87 of file memory.cpp.
References device, and host_pointer.
Referenced by GPUDevice::move_textures_to_host().
|
protected |
Definition at line 100 of file memory.cpp.
References data_size, and device.
Referenced by device_only_memory< T >::zero_to_device(), and device_vector< T >::zero_to_device().
|
protected |
Definition at line 41 of file memory.cpp.
References device, ptr, size(), and type.
Referenced by device_texture::alloc(), device_vector< T >::alloc(), GPUDevice::generic_free(), and device_vector< T >::resize().
|
protected |
Definition at line 56 of file memory.cpp.
References data_height, data_size, data_width, device, device_pointer, host_pointer, memory_size(), shared_pointer, and type.
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 >::resize(), device_vector< T >::steal_data(), and device_texture::~device_texture().
| bool device_memory::is_resident | ( | Device * | sub_device | ) | const |
Definition at line 132 of file memory.cpp.
References Device, device, and device_pointer.
Referenced by GPUDevice::generic_free(), and GPUDevice::move_textures_to_host().
| bool device_memory::is_shared | ( | Device * | sub_device | ) | const |
Definition at line 137 of file memory.cpp.
References Device, device, device_pointer, and shared_pointer.
Referenced by GPUDevice::generic_copy_to(), GPUDevice::generic_free(), and GPUDevice::move_textures_to_host().
|
inline |
Definition at line 226 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 222 of file cycles/device/memory.h.
References data_elements, data_size, data_type, and datatype_size().
Referenced by GPUDevice::generic_alloc(), GPUDevice::generic_copy_to(), GPUDevice::generic_free(), CPUDevice::global_alloc(), host_and_device_free(), CPUDevice::mem_alloc(), CPUDevice::mem_free(), CPUDevice::mem_zero(), and CPUDevice::tex_alloc().
|
delete |
References device_memory().
|
delete |
References device_memory().
| void device_memory::restore_device | ( | ) |
Definition at line 125 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, |
| const size_t | new_device_size, | ||
| device_ptr | new_device_ptr ) |
Definition at line 112 of file memory.cpp.
References Device, device, device_pointer, device_size, original_device, original_device_ptr, and original_device_size.
|
friend |
Definition at line 272 of file cycles/device/memory.h.
References CUDADevice.
Referenced by CUDADevice.
|
friend |
Definition at line 270 of file cycles/device/memory.h.
References Device.
Referenced by Device, device_memory(), device_only_memory< T >::device_only_memory(), device_texture::device_texture(), device_vector< T >::device_vector(), is_resident(), is_shared(), OneapiDevice, and swap_device().
|
friend |
Definition at line 271 of file cycles/device/memory.h.
References GPUDevice.
Referenced by GPUDevice.
|
friend |
Definition at line 274 of file cycles/device/memory.h.
References HIPDevice.
Referenced by HIPDevice.
|
friend |
Definition at line 275 of file cycles/device/memory.h.
References HIPRTDevice.
Referenced by HIPRTDevice.
|
friend |
Definition at line 276 of file cycles/device/memory.h.
References MetalDevice.
Referenced by MetalDevice.
|
friend |
Definition at line 277 of file cycles/device/memory.h.
References Device, device, name, OneapiDevice, size(), type, w(), and y.
Referenced by OneapiDevice.
|
friend |
Definition at line 273 of file cycles/device/memory.h.
References OptiXDevice.
Referenced by OptiXDevice.
| int device_memory::data_elements |
Definition at line 233 of file cycles/device/memory.h.
Referenced by device_texture::alloc(), device_memory(), 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 237 of file cycles/device/memory.h.
Referenced by device_texture::alloc(), device_vector< T >::alloc(), device_vector< T >::copy_from_device(), device_memory(), device_vector< T >::free(), GPUDevice::generic_alloc(), host_and_device_free(), GPUDevice::move_textures_to_host(), device_vector< T >::resize(), and device_vector< T >::steal_data().
| size_t device_memory::data_size |
Definition at line 234 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_memory(), device_zero(), device_only_memory< T >::free(), device_vector< T >::free(), CPUDevice::global_alloc(), host_and_device_free(), 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 232 of file cycles/device/memory.h.
Referenced by device_texture::alloc(), device_memory(), 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 236 of file cycles/device/memory.h.
Referenced by device_texture::alloc(), device_vector< T >::alloc(), device_vector< T >::copy_from_device(), device_memory(), device_vector< T >::free(), host_and_device_free(), device_vector< T >::resize(), and device_vector< T >::steal_data().
| Device* device_memory::device |
Definition at line 243 of file cycles/device/memory.h.
Referenced by DenoiserGPU::denoise_buffer(), device_alloc(), device_copy_from(), device_copy_to(), device_is_cpu(), device_memory(), device_move_to_host(), device_only_memory< T >::device_only_memory(), device_texture::device_texture(), device_vector< T >::device_vector(), device_zero(), host_alloc(), host_and_device_free(), is_resident(), is_shared(), MultiDevice::mem_alloc(), MultiDevice::mem_copy_from(), MultiDevice::mem_copy_to(), MultiDevice::mem_free(), MultiDevice::mem_move_to_host(), MultiDevice::mem_zero(), OneapiDevice, restore_device(), and swap_device().
| device_ptr device_memory::device_pointer |
Definition at line 244 of file cycles/device/memory.h.
Referenced by PathTraceWorkGPU::adaptive_sampling_convergence_check_count_active(), device_texture::alloc(), device_vector< T >::alloc(), device_alloc(), device_memory(), device_vector< T >::free(), GPUDevice::generic_alloc(), GPUDevice::generic_copy_to(), GPUDevice::generic_free(), CPUDevice::global_alloc(), CPUDevice::global_free(), host_and_device_free(), is_resident(), is_shared(), 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(), MultiDevice::mem_move_to_host(), CPUDevice::mem_zero(), MultiDevice::mem_zero(), device_vector< T >::resize(), restore_device(), PassAccessorGPU::run_film_convert_kernels(), device_vector< T >::steal_data(), swap_device(), CPUDevice::tex_alloc(), and CPUDevice::tex_free().
| size_t device_memory::device_size |
Definition at line 235 of file cycles/device/memory.h.
Referenced by device_memory(), 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_move_to_host(), 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 245 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(), device_memory(), device_move_to_host(), device_vector< T >::free(), GPUDevice::generic_alloc(), GPUDevice::generic_copy_to(), GPUDevice::generic_free(), CPUDevice::global_alloc(), host_and_device_free(), CPUDevice::mem_alloc(), device_vector< T >::resize(), device_vector< T >::steal_data(), and CPUDevice::tex_alloc().
|
protected |
Definition at line 303 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_memory(), device_vector< T >::device_vector(), device_vector< T >::free(), device_vector< T >::is_modified(), and device_vector< T >::tag_modified().
| bool device_memory::move_to_host = false |
Definition at line 249 of file cycles/device/memory.h.
Referenced by GPUDevice::generic_alloc(), GPUDevice::generic_free(), and GPUDevice::move_textures_to_host().
| const char* device_memory::name |
Definition at line 239 of file cycles/device/memory.h.
Referenced by device_memory(), device_only_memory< T >::device_only_memory(), device_texture::device_texture(), device_vector< T >::device_vector(), GPUDevice::generic_alloc(), CPUDevice::global_alloc(), CPUDevice::mem_alloc(), GPUDevice::move_textures_to_host(), OneapiDevice, and CPUDevice::tex_alloc().
| string device_memory::name_storage |
Definition at line 240 of file cycles/device/memory.h.
Referenced by device_memory().
|
protected |
Definition at line 302 of file cycles/device/memory.h.
Referenced by device_vector< T >::clear_modified(), device_memory(), 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 301 of file cycles/device/memory.h.
Referenced by device_memory(), restore_device(), and swap_device().
|
protected |
Definition at line 299 of file cycles/device/memory.h.
Referenced by device_memory(), restore_device(), and swap_device().
|
protected |
Definition at line 300 of file cycles/device/memory.h.
Referenced by device_memory(), restore_device(), and swap_device().
| int device_memory::shared_counter |
Definition at line 248 of file cycles/device/memory.h.
Referenced by device_memory(), GPUDevice::generic_alloc(), GPUDevice::generic_free(), and ~device_memory().
| void* device_memory::shared_pointer |
Definition at line 246 of file cycles/device/memory.h.
Referenced by device_memory(), GPUDevice::generic_alloc(), GPUDevice::generic_copy_to(), GPUDevice::generic_free(), host_and_device_free(), is_shared(), MultiDevice::mem_move_to_host(), and ~device_memory().
| MemoryType device_memory::type |
Definition at line 238 of file cycles/device/memory.h.
Referenced by device_alloc(), device_copy_from(), device_memory(), device_vector< T >::device_vector(), GPUDevice::generic_alloc(), host_alloc(), host_and_device_free(), CPUDevice::mem_alloc(), MultiDevice::mem_alloc(), CPUDevice::mem_copy_to(), MultiDevice::mem_copy_to(), CPUDevice::mem_free(), MultiDevice::mem_free(), MultiDevice::mem_move_to_host(), GPUDevice::move_textures_to_host(), and OneapiDevice.