|
Blender
V2.93
|
#include <device_memory.h>
Inherited by device_only_memory< float3 >, device_only_memory< float >, device_only_memory< int >, device_only_memory< unsigned int >, device_only_memory< uchar >, device_only_memory< char >, device_vector< float4 >, device_vector< uchar4 >, device_vector< float2 >, device_vector< KernelObject >, device_vector< float >, device_vector< KernelLight >, device_vector< DecomposedTransform >, device_vector< int >, device_vector< uchar >, device_vector< TextureInfo >, device_vector< Transform >, device_vector< KernelParticle >, device_vector< KernelShader >, device_vector< int4 >, device_vector< uint >, device_vector< uint4 >, device_vector< KernelLightDistribution >, 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 |
| 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 (device_memory &&other) noexcept | |
| device_memory (const device_memory &)=delete | |
| device_memory & | operator= (const 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 (int y, int w, int h, int elem) |
| void | device_zero () |
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 |
Definition at line 198 of file device_memory.h.
|
virtual |
Definition at line 86 of file device_memory.cpp.
References shared_counter, and shared_pointer.
|
protected |
Definition at line 24 of file device_memory.cpp.
|
protectednoexcept |
Definition at line 47 of file device_memory.cpp.
|
protecteddelete |
|
protected |
Definition at line 119 of file device_memory.cpp.
References device, device_pointer, Device::mem_alloc(), MEM_GLOBAL, MEM_TEXTURE, and type.
Referenced by device_only_memory< T >::alloc_to_device(), and device_pixels< T >::alloc_to_device().
|
protected |
Definition at line 139 of file device_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(), and device_pixels< T >::copy_from_device().
|
protected |
Definition at line 132 of file device_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 125 of file device_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 145 of file device_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 92 of file device_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 110 of file device_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().
| bool device_memory::is_resident | ( | Device * | sub_device | ) | const |
Definition at line 172 of file device_memory.cpp.
References device, device_pointer, and Device::is_resident().
|
inline |
Definition at line 204 of file device_memory.h.
References data_elements, data_type, and datatype_size().
Referenced by Device::draw_pixels(), and CPUDevice::mem_alloc_sub_ptr().
|
inline |
Definition at line 200 of file device_memory.h.
References data_elements, data_size, data_type, and datatype_size().
Referenced by ImageManager::collect_statistics(), CPUDevice::global_alloc(), host_free(), CPUDevice::mem_alloc(), CPUDevice::mem_zero(), and CPUDevice::tex_alloc().
|
protecteddelete |
| void device_memory::restore_device | ( | ) |
Definition at line 165 of file device_memory.cpp.
References device, device_pointer, device_size, original_device, original_device_ptr, and original_device_size.
Referenced by MultiDevice::map_neighbor_tiles(), and MultiDevice::unmap_neighbor_tiles().
| void device_memory::swap_device | ( | Device * | new_device, |
| size_t | new_device_size, | ||
| device_ptr | new_device_ptr | ||
| ) |
Definition at line 152 of file device_memory.cpp.
References device, device_pointer, device_size, original_device, original_device_ptr, and original_device_size.
Referenced by MultiDevice::map_neighbor_tiles(), and MultiDevice::unmap_neighbor_tiles().
|
friend |
Definition at line 236 of file device_memory.h.
|
friend |
Definition at line 237 of file device_memory.h.
| size_t device_memory::data_depth |
Definition at line 216 of file 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 211 of file 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 215 of file device_memory.h.
Referenced by Session::acquire_tile(), device_texture::alloc(), device_vector< T >::alloc(), device_vector< T >::copy_from_device(), 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 212 of file 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 210 of file device_memory.h.
Referenced by device_texture::alloc(), device_only_memory< T >::device_only_memory(), device_texture::device_texture(), device_vector< T >::device_vector(), Device::draw_pixels(), memory_elements_size(), and memory_size().
| size_t device_memory::data_width |
Definition at line 214 of file device_memory.h.
Referenced by Session::acquire_tile(), device_texture::alloc(), device_vector< T >::alloc(), device_vector< T >::copy_from_device(), 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 221 of file device_memory.h.
Referenced by Session::acquire_tile(), device_alloc(), device_copy_from(), device_copy_to(), device_free(), device_zero(), is_resident(), MultiDevice::map_neighbor_tiles(), MultiDevice::mem_alloc(), MultiDevice::mem_copy_from(), MultiDevice::mem_copy_to(), MultiDevice::mem_free(), MultiDevice::mem_zero(), device_vector< T >::move_device(), restore_device(), swap_device(), and MultiDevice::unmap_neighbor_tiles().
| device_ptr device_memory::device_pointer |
Definition at line 222 of file device_memory.h.
Referenced by Session::acquire_tile(), device_texture::alloc(), device_vector< T >::alloc(), device_pixels< T >::alloc_to_device(), RenderBuffers::copy_from_device(), Session::copy_to_display_buffer(), DenoiseTask::create_task(), device_alloc(), device_free(), GeometryManager::displace(), MultiDevice::draw_pixels(), CPUSplitKernelFunction::enqueue(), CPUSplitKernel::enqueue_split_kernel_data_init(), device_vector< T >::free(), device_vector< T >::give_data(), CPUDevice::global_alloc(), CPUDevice::global_free(), is_resident(), MultiDevice::map_neighbor_tiles(), Session::map_neighbor_tiles(), DenoiseTask::map_neighboring_tiles(), 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(), DenoisingTask::prefilter_color(), Session::render(), device_vector< T >::resize(), restore_device(), shade_background_pixels(), CPUSplitKernel::state_buffer_size(), device_vector< T >::steal_data(), Session::steal_tile(), swap_device(), CPUDevice::tex_alloc(), CPUDevice::tex_free(), and CPUDevice::thread_render().
| size_t device_memory::device_size |
Definition at line 213 of file device_memory.h.
Referenced by CPUDevice::global_alloc(), CPUDevice::global_free(), MultiDevice::map_neighbor_tiles(), 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 223 of file device_memory.h.
Referenced by device_texture::alloc(), device_vector< T >::alloc(), device_vector< T >::data(), device_copy_to(), Device::draw_pixels(), 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 264 of file 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 218 of file device_memory.h.
Referenced by CPUDevice::global_alloc(), CPUDevice::mem_alloc(), MultiDevice::mem_copy_to(), MultiDevice::mem_free(), MultiDevice::mem_zero(), and CPUDevice::tex_alloc().
|
protected |
Definition at line 263 of file 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 262 of file device_memory.h.
Referenced by restore_device(), and swap_device().
|
protected |
Definition at line 260 of file device_memory.h.
Referenced by restore_device(), and swap_device().
|
protected |
Definition at line 261 of file device_memory.h.
Referenced by restore_device(), and swap_device().
| int device_memory::shared_counter |
Definition at line 226 of file device_memory.h.
Referenced by ~device_memory().
| void* device_memory::shared_pointer |
Definition at line 224 of file device_memory.h.
Referenced by ~device_memory().
| MemoryType device_memory::type |
Definition at line 217 of file device_memory.h.
Referenced by device_alloc(), device_copy_from(), Device::draw_pixels(), MultiDevice::draw_pixels(), CPUDevice::mem_alloc(), MultiDevice::mem_alloc(), CPUDevice::mem_copy_to(), MultiDevice::mem_copy_to(), CPUDevice::mem_free(), and MultiDevice::mem_free().