Blender V4.3
device_vector< T > Class Template Reference

#include <memory.h>

Inherits device_memory.

Public Member Functions

 device_vector (Device *device, const char *name, MemoryType type)
virtual ~device_vector ()
Talloc (size_t width, size_t height=0, size_t depth=0)
Tresize (size_t width, size_t height=0, size_t depth=0)
void steal_data (array< T > &from)
void give_data (array< T > &to)
void free ()
void free_if_need_realloc (bool force_free)
bool is_modified () const
bool need_realloc ()
void tag_modified ()
void tag_realloc ()
size_t size () const
Tdata ()
const Tdata () const
Toperator[] (size_t i)
void copy_to_device ()
void copy_to_device_if_modified ()
void clear_modified ()
void copy_from_device ()
void copy_from_device (size_t y, size_t w, size_t h)
void zero_to_device ()
void move_device (Device *new_device)
Public Member Functions inherited from device_memory
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

Protected Member Functions

size_t size (size_t width, size_t height, size_t depth)
Protected Member Functions inherited from device_memory
 device_memory (Device *device, const char *name, MemoryType type)
 device_memory (const device_memory &)=delete
 device_memory (device_memory &&other) noexcept=delete
device_memoryoperator= (const device_memory &)=delete
device_memoryoperator= (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 ()

Additional Inherited Members

Public Attributes inherited from device_memory
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
Devicedevice
device_ptr device_pointer
void * host_pointer
void * shared_pointer
int shared_counter
Protected Attributes inherited from device_memory
device_ptr original_device_ptr
size_t original_device_size
Deviceoriginal_device
bool need_realloc_
bool modified

Detailed Description

template<typename T>
class device_vector< T >

Definition at line 368 of file cycles/device/memory.h.

Constructor & Destructor Documentation

◆ device_vector()

◆ ~device_vector()

template<typename T>
virtual device_vector< T >::~device_vector ( )
inlinevirtual

Definition at line 381 of file cycles/device/memory.h.

References free().

Member Function Documentation

◆ alloc()

◆ clear_modified()

◆ copy_from_device() [1/2]

template<typename T>
void device_vector< T >::copy_from_device ( )
inline

◆ copy_from_device() [2/2]

template<typename T>
void device_vector< T >::copy_from_device ( size_t y,
size_t w,
size_t h )
inline

Definition at line 554 of file cycles/device/memory.h.

References device_memory::device_copy_from(), T, w(), and y.

◆ copy_to_device()

◆ copy_to_device_if_modified()

template<typename T>
void device_vector< T >::copy_to_device_if_modified ( )
inline

◆ data() [1/2]

◆ data() [2/2]

template<typename T>
const T * device_vector< T >::data ( ) const
inline

Definition at line 516 of file cycles/device/memory.h.

References device_memory::host_pointer, and T.

◆ free()

◆ free_if_need_realloc()

template<typename T>
void device_vector< T >::free_if_need_realloc ( bool force_free)
inline

◆ give_data()

◆ is_modified()

template<typename T>
bool device_vector< T >::is_modified ( ) const
inline

Definition at line 485 of file cycles/device/memory.h.

References device_memory::modified.

◆ move_device()

template<typename T>
void device_vector< T >::move_device ( Device * new_device)
inline

◆ need_realloc()

◆ operator[]()

template<typename T>
T & device_vector< T >::operator[] ( size_t i)
inline

Definition at line 521 of file cycles/device/memory.h.

References data(), device_memory::data_size, and T.

◆ resize()

◆ size() [1/2]

◆ size() [2/2]

template<typename T>
size_t device_vector< T >::size ( size_t width,
size_t height,
size_t depth )
inlineprotected

Definition at line 573 of file cycles/device/memory.h.

◆ steal_data()

◆ tag_modified()

template<typename T>
void device_vector< T >::tag_modified ( )
inline

◆ tag_realloc()

template<typename T>
void device_vector< T >::tag_realloc ( )
inline

◆ zero_to_device()

template<typename T>
void device_vector< T >::zero_to_device ( )
inline

Definition at line 559 of file cycles/device/memory.h.

References device_memory::device_zero().


The documentation for this class was generated from the following file: