Blender  V2.93
Public Member Functions | Static Public Member Functions | Public Attributes | Protected Types | Protected Member Functions | Protected Attributes | Friends | List of all members
Device Class Referenceabstract

#include <device.h>

Inherited by CPUDevice, DummyDevice, and MultiDevice.

Public Member Functions

virtual ~Device () noexcept(false)
 
virtual const string & error_message ()
 
bool have_error ()
 
virtual void set_error (const string &error)
 
virtual bool show_samples () const
 
virtual BVHLayoutMask get_bvh_layout_mask () const =0
 
virtual int mem_sub_ptr_alignment ()
 
virtual void const_copy_to (const char *name, void *host, size_t size)=0
 
virtual void * osl_memory ()
 
virtual bool load_kernels (const DeviceRequestedFeatures &)
 
virtual bool wait_for_availability (const DeviceRequestedFeatures &)
 
virtual DeviceKernelStatus get_active_kernel_switch_state ()
 
virtual int get_split_task_count (DeviceTask &)
 
virtual void task_add (DeviceTask &task)=0
 
virtual void task_wait ()=0
 
virtual void task_cancel ()=0
 
virtual void draw_pixels (device_memory &mem, int y, int w, int h, int width, int height, int dx, int dy, int dw, int dh, bool transparent, const DeviceDrawParams &draw_params)
 
virtual void build_bvh (BVH *bvh, Progress &progress, bool refit)
 
virtual void release_optix_bvh (BVH *)
 
virtual void map_tile (Device *, RenderTile &)
 
virtual int device_number (Device *)
 
virtual void map_neighbor_tiles (Device *, RenderTileNeighbors &)
 
virtual void unmap_neighbor_tiles (Device *, RenderTileNeighbors &)
 
virtual bool is_resident (device_ptr, Device *sub_device)
 
virtual bool check_peer_access (Device *)
 

Static Public Member Functions

static Devicecreate (DeviceInfo &info, Stats &stats, Profiler &profiler, bool background=true)
 
static DeviceType type_from_string (const char *name)
 
static string string_from_type (DeviceType type)
 
static vector< DeviceTypeavailable_types ()
 
static vector< DeviceInfoavailable_devices (uint device_type_mask=DEVICE_MASK_ALL)
 
static DeviceInfo dummy_device (const string &error_msg="")
 
static string device_capabilities (uint device_type_mask=DEVICE_MASK_ALL)
 
static DeviceInfo get_multi_device (const vector< DeviceInfo > &subdevices, int threads, bool background)
 
static void tag_update ()
 
static void free_memory ()
 

Public Attributes

DeviceInfo info
 
Statsstats
 
Profilerprofiler
 

Protected Types

enum  { FALLBACK_SHADER_STATUS_NONE = 0 , FALLBACK_SHADER_STATUS_ERROR , FALLBACK_SHADER_STATUS_SUCCESS }
 

Protected Member Functions

 Device (DeviceInfo &info_, Stats &stats_, Profiler &profiler_, bool background)
 
bool bind_fallback_display_space_shader (const float width, const float height)
 
virtual device_ptr mem_alloc_sub_ptr (device_memory &, int, int)
 
virtual void mem_free_sub_ptr (device_ptr)
 
virtual void mem_alloc (device_memory &mem)=0
 
virtual void mem_copy_to (device_memory &mem)=0
 
virtual void mem_copy_from (device_memory &mem, int y, int w, int h, int elem)=0
 
virtual void mem_zero (device_memory &mem)=0
 
virtual void mem_free (device_memory &mem)=0
 

Protected Attributes

bool background
 
string error_msg
 
unsigned int vertex_buffer
 
int fallback_status
 
int fallback_shader_program
 
int image_texture_location
 
int fullscreen_location
 

Friends

class device_sub_ptr
 
class MultiDevice
 
class DeviceServer
 
class device_memory
 

Detailed Description

Definition at line 293 of file device.h.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
protected
Enumerator
FALLBACK_SHADER_STATUS_NONE 
FALLBACK_SHADER_STATUS_ERROR 
FALLBACK_SHADER_STATUS_SUCCESS 

Definition at line 297 of file device.h.

Constructor & Destructor Documentation

◆ Device()

Device::Device ( DeviceInfo info_,
Stats stats_,
Profiler profiler_,
bool  background 
)
inlineprotected

Definition at line 303 of file device.h.

◆ ~Device()

Device::~Device ( )
virtualnoexcept

Definition at line 82 of file device.cpp.

References background, fallback_shader_program, and vertex_buffer.

Member Function Documentation

◆ available_devices()

vector< DeviceInfo > Device::available_devices ( uint  device_type_mask = DEVICE_MASK_ALL)
static

◆ available_types()

vector< DeviceType > Device::available_types ( )
static

Definition at line 469 of file device.cpp.

References DEVICE_CPU, DEVICE_CUDA, DEVICE_NETWORK, DEVICE_OPENCL, DEVICE_OPTIX, and types.

Referenced by get_device_types_func(), main(), and options_parse().

◆ bind_fallback_display_space_shader()

bool Device::bind_fallback_display_space_shader ( const float  width,
const float  height 
)
protected

◆ build_bvh()

void Device::build_bvh ( BVH bvh,
Progress progress,
bool  refit 
)
virtual

◆ check_peer_access()

virtual bool Device::check_peer_access ( Device )
inlinevirtual

Definition at line 458 of file device.h.

Referenced by MultiDevice::MultiDevice().

◆ const_copy_to()

virtual void Device::const_copy_to ( const char *  name,
void *  host,
size_t  size 
)
pure virtual

◆ create()

Device * Device::create ( DeviceInfo info,
Stats stats,
Profiler profiler,
bool  background = true 
)
static

◆ device_capabilities()

string Device::device_capabilities ( uint  device_type_mask = DEVICE_MASK_ALL)
static

◆ device_number()

virtual int Device::device_number ( Device )
inlinevirtual

Reimplemented in MultiDevice.

Definition at line 441 of file device.h.

Referenced by Session::acquire_tile().

◆ draw_pixels()

void Device::draw_pixels ( device_memory mem,
int  y,
int  w,
int  h,
int  width,
int  height,
int  dx,
int  dy,
int  dw,
int  dh,
bool  transparent,
const DeviceDrawParams draw_params 
)
virtual

◆ dummy_device()

DeviceInfo Device::dummy_device ( const string &  error_msg = "")
static

Definition at line 565 of file device.cpp.

References DEVICE_DUMMY, DeviceInfo::error_msg, error_msg, info, and DeviceInfo::type.

Referenced by blender_device_info().

◆ error_message()

virtual const string& Device::error_message ( )
inlinevirtual

◆ free_memory()

void Device::free_memory ( )
static

Definition at line 687 of file device.cpp.

References vector< value_type, allocator_type >::free_memory().

Referenced by exit_func(), and tag_update().

◆ get_active_kernel_switch_state()

virtual DeviceKernelStatus Device::get_active_kernel_switch_state ( )
inlinevirtual

◆ get_bvh_layout_mask()

virtual BVHLayoutMask Device::get_bvh_layout_mask ( ) const
pure virtual

◆ get_multi_device()

DeviceInfo Device::get_multi_device ( const vector< DeviceInfo > &  subdevices,
int  threads,
bool  background 
)
static

◆ get_split_task_count()

virtual int Device::get_split_task_count ( DeviceTask )
inlinevirtual

Reimplemented in MultiDevice, and CPUDevice.

Definition at line 403 of file device.h.

Referenced by MultiDevice::get_split_task_count().

◆ have_error()

bool Device::have_error ( )
inline

Definition at line 342 of file device.h.

References error_message().

Referenced by Scene::device_update(), DeviceSplitKernel::path_trace(), and set_error().

◆ is_resident()

virtual bool Device::is_resident ( device_ptr  ,
Device sub_device 
)
inlinevirtual

Reimplemented in MultiDevice.

Definition at line 452 of file device.h.

Referenced by device_memory::is_resident().

◆ load_kernels()

virtual bool Device::load_kernels ( const DeviceRequestedFeatures )
inlinevirtual

Reimplemented in CPUDevice, and MultiDevice.

Definition at line 380 of file device.h.

Referenced by Denoiser::Denoiser(), MultiDevice::load_kernels(), and Scene::load_kernels().

◆ map_neighbor_tiles()

virtual void Device::map_neighbor_tiles ( Device ,
RenderTileNeighbors  
)
inlinevirtual

Reimplemented in MultiDevice.

Definition at line 445 of file device.h.

Referenced by Session::map_neighbor_tiles().

◆ map_tile()

virtual void Device::map_tile ( Device ,
RenderTile  
)
inlinevirtual

Reimplemented in MultiDevice.

Definition at line 438 of file device.h.

Referenced by DenoiseTask::acquire_tile(), and Session::acquire_tile().

◆ mem_alloc()

virtual void Device::mem_alloc ( device_memory mem)
protectedpure virtual

◆ mem_alloc_sub_ptr()

virtual device_ptr Device::mem_alloc_sub_ptr ( device_memory ,
int  ,
int   
)
inlineprotectedvirtual

Reimplemented in CPUDevice.

Definition at line 324 of file device.h.

Referenced by device_sub_ptr::device_sub_ptr().

◆ mem_copy_from()

virtual void Device::mem_copy_from ( device_memory mem,
int  y,
int  w,
int  h,
int  elem 
)
protectedpure virtual

◆ mem_copy_to()

virtual void Device::mem_copy_to ( device_memory mem)
protectedpure virtual

◆ mem_free()

virtual void Device::mem_free ( device_memory mem)
protectedpure virtual

◆ mem_free_sub_ptr()

virtual void Device::mem_free_sub_ptr ( device_ptr  )
inlineprotectedvirtual

Definition at line 330 of file device.h.

Referenced by device_sub_ptr::~device_sub_ptr().

◆ mem_sub_ptr_alignment()

virtual int Device::mem_sub_ptr_alignment ( )
inlinevirtual

Definition at line 365 of file device.h.

References MIN_ALIGNMENT_CPU_DATA_TYPES.

Referenced by DenoisingTask::setup_denoising_buffer().

◆ mem_zero()

virtual void Device::mem_zero ( device_memory mem)
protectedpure virtual

◆ osl_memory()

virtual void* Device::osl_memory ( )
inlinevirtual

Reimplemented in MultiDevice, and CPUDevice.

Definition at line 374 of file device.h.

References NULL.

Referenced by GeometryManager::device_free(), and GeometryManager::update_osl_attributes().

◆ release_optix_bvh()

virtual void Device::release_optix_bvh ( BVH )
inlinevirtual

Definition at line 430 of file device.h.

◆ set_error()

virtual void Device::set_error ( const string &  error)
inlinevirtual

Definition at line 346 of file device.h.

References error(), error_msg, and have_error().

Referenced by DeviceSplitKernel::path_trace().

◆ show_samples()

virtual bool Device::show_samples ( ) const
inlinevirtual

Reimplemented in MultiDevice, and CPUDevice.

Definition at line 354 of file device.h.

Referenced by Session::update_status_time().

◆ string_from_type()

string Device::string_from_type ( DeviceType  type)
static

◆ tag_update()

void Device::tag_update ( )
static

Definition at line 682 of file device.cpp.

References free_memory().

Referenced by debug_flags_reset_func(), and debug_flags_update_func().

◆ task_add()

virtual void Device::task_add ( DeviceTask task)
pure virtual

◆ task_cancel()

virtual void Device::task_cancel ( )
pure virtual

◆ task_wait()

virtual void Device::task_wait ( )
pure virtual

◆ type_from_string()

DeviceType Device::type_from_string ( const char *  name)
static

◆ unmap_neighbor_tiles()

virtual void Device::unmap_neighbor_tiles ( Device ,
RenderTileNeighbors  
)
inlinevirtual

Reimplemented in MultiDevice.

Definition at line 448 of file device.h.

Referenced by Session::unmap_neighbor_tiles().

◆ wait_for_availability()

virtual bool Device::wait_for_availability ( const DeviceRequestedFeatures )
inlinevirtual

Reimplemented in MultiDevice.

Definition at line 389 of file device.h.

Referenced by Scene::update(), and MultiDevice::wait_for_availability().

Friends And Related Function Documentation

◆ device_memory

friend class device_memory
friend

Definition at line 488 of file device.h.

◆ device_sub_ptr

friend class device_sub_ptr
friend

Definition at line 294 of file device.h.

◆ DeviceServer

friend class DeviceServer
friend

Definition at line 487 of file device.h.

◆ MultiDevice

friend class MultiDevice
friend

Definition at line 486 of file device.h.

Member Data Documentation

◆ background

bool Device::background
protected

Definition at line 314 of file device.h.

Referenced by create(), get_multi_device(), MultiDevice::MultiDevice(), and ~Device().

◆ error_msg

string Device::error_msg
protected

◆ fallback_shader_program

int Device::fallback_shader_program
protected

Definition at line 319 of file device.h.

Referenced by bind_fallback_display_space_shader(), draw_pixels(), and ~Device().

◆ fallback_status

int Device::fallback_status
protected

Definition at line 319 of file device.h.

Referenced by bind_fallback_display_space_shader().

◆ fullscreen_location

int Device::fullscreen_location
protected

Definition at line 320 of file device.h.

Referenced by bind_fallback_display_space_shader().

◆ image_texture_location

int Device::image_texture_location
protected

Definition at line 320 of file device.h.

Referenced by bind_fallback_display_space_shader().

◆ info

DeviceInfo Device::info

◆ profiler

Profiler& Device::profiler

◆ stats

Stats& Device::stats

◆ vertex_buffer

unsigned int Device::vertex_buffer
protected

Definition at line 318 of file device.h.

Referenced by draw_pixels(), and ~Device().


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