Blender
V3.3
|
#include <memory.h>
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 |
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 | CUDADevice |
class | OptiXDevice |
class | HIPDevice |
class | MetalDevice |
Definition at line 212 of file cycles/device/memory.h.
|
virtual |
Definition at line 34 of file memory.cpp.
References shared_counter, and shared_pointer.
|
protected |
Definition at line 11 of file memory.cpp.
|
protecteddelete |
|
protecteddeletenoexcept |
|
protected |
Definition at line 67 of file memory.cpp.
References device, device_pointer, Device::mem_alloc(), MEM_GLOBAL, MEM_TEXTURE, and type.
Referenced by device_only_memory< T >::alloc_to_device().
|
protected |
Definition at line 87 of file memory.cpp.
References device, Device::mem_copy_from(), MEM_GLOBAL, MEM_READ_ONLY, MEM_TEXTURE, type, w(), and y.
Referenced by device_vector< T >::copy_from_device().
|
protected |
Definition at line 80 of file memory.cpp.
References device, host_pointer, and Device::mem_copy_to().
Referenced by device_vector< T >::copy_to_device(), and device_texture::copy_to_device().
|
protected |
Definition at line 73 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 100 of file memory.cpp.
References device, DEVICE_CPU, Device::info, and DeviceInfo::type.
|
protected |
Definition at line 93 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 40 of file memory.cpp.
References MIN_ALIGNMENT_CPU_DATA_TYPES, ptr, size(), 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 58 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(), device_vector< T >::resize(), device_vector< T >::steal_data(), and device_texture::~device_texture().
Definition at line 125 of file memory.cpp.
References device, device_pointer, and Device::is_resident().
|
inline |
Definition at line 218 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 214 of file cycles/device/memory.h.
References data_elements, data_size, data_type, and datatype_size().
Referenced by PathTraceWorkGPU::enqueue_reset(), 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 118 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 105 of file memory.cpp.
References device, device_pointer, device_size, original_device, original_device_ptr, and original_device_size.
|
friend |
Definition at line 250 of file cycles/device/memory.h.
|
friend |
Definition at line 252 of file cycles/device/memory.h.
|
friend |
Definition at line 253 of file cycles/device/memory.h.
|
friend |
Definition at line 251 of file cycles/device/memory.h.
size_t device_memory::data_depth |
Definition at line 230 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 225 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 229 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().
size_t device_memory::data_size |
Definition at line 226 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 224 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 228 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 235 of file cycles/device/memory.h.
Referenced by DeviceDenoiser::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 236 of file cycles/device/memory.h.
Referenced by 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(), device_alloc(), device_free(), PathTraceWorkGPU::enqueue_path_iteration(), PathTraceWorkGPU::enqueue_work_tiles(), device_vector< T >::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 227 of file cycles/device/memory.h.
Referenced by 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(), restore_device(), swap_device(), CPUDevice::tex_alloc(), and CPUDevice::tex_free().
void* device_memory::host_pointer |
Definition at line 237 of file cycles/device/memory.h.
Referenced by device_texture::alloc(), device_vector< T >::alloc(), device_vector< T >::data(), device_copy_to(), PathTraceWorkGPU::enqueue_reset(), device_vector< T >::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 287 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 232 of file cycles/device/memory.h.
Referenced by CPUDevice::global_alloc(), CPUDevice::mem_alloc(), and CPUDevice::tex_alloc().
|
protected |
Definition at line 286 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 285 of file cycles/device/memory.h.
Referenced by restore_device(), and swap_device().
|
protected |
Definition at line 283 of file cycles/device/memory.h.
Referenced by restore_device(), and swap_device().
|
protected |
Definition at line 284 of file cycles/device/memory.h.
Referenced by restore_device(), and swap_device().
int device_memory::shared_counter |
Definition at line 240 of file cycles/device/memory.h.
Referenced by ~device_memory().
void* device_memory::shared_pointer |
Definition at line 238 of file cycles/device/memory.h.
Referenced by ~device_memory().
MemoryType device_memory::type |
Definition at line 231 of file cycles/device/memory.h.
Referenced by device_alloc(), device_copy_from(), CPUDevice::mem_alloc(), MultiDevice::mem_alloc(), CPUDevice::mem_copy_to(), MultiDevice::mem_copy_to(), CPUDevice::mem_free(), and MultiDevice::mem_free().