Blender V5.0
DeviceQueue Class Referenceabstract

#include <queue.h>

Public Member Functions

virtual ~DeviceQueue ()
virtual int num_concurrent_states (const size_t state_size) const =0
virtual int num_concurrent_busy_states (const size_t state_size) const =0
virtual int num_sort_partitions (int max_num_paths, uint max_scene_shaders) const
virtual bool supports_local_atomic_sort () const
virtual void init_execution ()=0
virtual bool enqueue (DeviceKernel kernel, const int work_size, const DeviceKernelArguments &args)=0
virtual bool synchronize ()=0
virtual void zero_to_device (device_memory &mem)=0
virtual void copy_to_device (device_memory &mem)=0
virtual void copy_from_device (device_memory &mem)=0
virtual unique_ptr< DeviceGraphicsInteropgraphics_interop_create ()
virtual void * native_queue ()

Public Attributes

Devicedevice = nullptr

Protected Member Functions

 DeviceQueue (Device *device)
void debug_init_execution ()
void debug_enqueue_begin (DeviceKernel kernel, const int work_size)
void debug_enqueue_end ()
void debug_synchronize ()
string debug_active_kernels ()

Protected Attributes

DeviceKernelMask last_kernels_enqueued_ = {false}
double last_sync_time_ = 0.0
map< DeviceKernelMask, double > stats_kernel_time_
bool is_per_kernel_performance_ = false

Detailed Description

Definition at line 89 of file device/queue.h.

Constructor & Destructor Documentation

◆ ~DeviceQueue()

DeviceQueue::~DeviceQueue ( )
virtual

◆ DeviceQueue()

CCL_NAMESPACE_BEGIN DeviceQueue::DeviceQueue ( Device * device)
explicitprotected

Definition at line 16 of file queue.cpp.

References DCHECK_NE, device, and is_per_kernel_performance_.

Member Function Documentation

◆ copy_from_device()

virtual void DeviceQueue::copy_from_device ( device_memory & mem)
pure virtual

◆ copy_to_device()

virtual void DeviceQueue::copy_to_device ( device_memory & mem)
pure virtual

◆ debug_active_kernels()

string DeviceQueue::debug_active_kernels ( )
protected

Definition at line 96 of file queue.cpp.

References device_kernel_mask_as_string(), and last_kernels_enqueued_.

◆ debug_enqueue_begin()

void DeviceQueue::debug_enqueue_begin ( DeviceKernel kernel,
const int work_size )
protected

◆ debug_enqueue_end()

void DeviceQueue::debug_enqueue_end ( )
protected

Definition at line 70 of file queue.cpp.

References is_per_kernel_performance_, LOG_IS_ON, LOG_LEVEL_TRACE, and synchronize().

◆ debug_init_execution()

void DeviceQueue::debug_init_execution ( )
protected

Definition at line 51 of file queue.cpp.

References last_kernels_enqueued_, last_sync_time_, LOG_IS_ON, LOG_LEVEL_TRACE, and time_dt().

◆ debug_synchronize()

void DeviceQueue::debug_synchronize ( )
protected

◆ enqueue()

virtual bool DeviceQueue::enqueue ( DeviceKernel kernel,
const int work_size,
const DeviceKernelArguments & args )
pure virtual

References work_size.

◆ graphics_interop_create()

virtual unique_ptr< DeviceGraphicsInterop > DeviceQueue::graphics_interop_create ( )
inlinevirtual

Definition at line 160 of file device/queue.h.

References LOG_FATAL.

◆ init_execution()

virtual void DeviceQueue::init_execution ( )
pure virtual

◆ native_queue()

virtual void * DeviceQueue::native_queue ( )
inlinevirtual

Definition at line 169 of file device/queue.h.

◆ num_concurrent_busy_states()

virtual int DeviceQueue::num_concurrent_busy_states ( const size_t state_size) const
pure virtual

◆ num_concurrent_states()

virtual int DeviceQueue::num_concurrent_states ( const size_t state_size) const
pure virtual

◆ num_sort_partitions()

virtual int DeviceQueue::num_sort_partitions ( int max_num_paths,
uint max_scene_shaders ) const
inlinevirtual

Definition at line 104 of file device/queue.h.

References max.

◆ supports_local_atomic_sort()

virtual bool DeviceQueue::supports_local_atomic_sort ( ) const
inlinevirtual

Definition at line 120 of file device/queue.h.

◆ synchronize()

virtual bool DeviceQueue::synchronize ( )
pure virtual

Referenced by debug_enqueue_end().

◆ zero_to_device()

virtual void DeviceQueue::zero_to_device ( device_memory & mem)
pure virtual

Member Data Documentation

◆ device

Device* DeviceQueue::device = nullptr

Definition at line 167 of file device/queue.h.

Referenced by DeviceQueue().

◆ is_per_kernel_performance_

bool DeviceQueue::is_per_kernel_performance_ = false
protected

Definition at line 193 of file device/queue.h.

Referenced by debug_enqueue_end(), DeviceQueue(), and ~DeviceQueue().

◆ last_kernels_enqueued_

DeviceKernelMask DeviceQueue::last_kernels_enqueued_ = {false}
protected

◆ last_sync_time_

double DeviceQueue::last_sync_time_ = 0.0
protected

Definition at line 188 of file device/queue.h.

Referenced by debug_init_execution(), and debug_synchronize().

◆ stats_kernel_time_

map<DeviceKernelMask, double> DeviceQueue::stats_kernel_time_
protected

Definition at line 190 of file device/queue.h.

Referenced by debug_synchronize(), and ~DeviceQueue().


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