Blender  V2.93
Classes | Public Member Functions | Public Attributes | List of all members
MultiDevice Class Reference

Inherits Device.

Classes

struct  SubDevice
 

Public Member Functions

 MultiDevice (DeviceInfo &info, Stats &stats, Profiler &profiler, bool background_)
 
 ~MultiDevice ()
 
const string & error_message () override
 
virtual bool show_samples () const override
 
virtual BVHLayoutMask get_bvh_layout_mask () const override
 
bool load_kernels (const DeviceRequestedFeatures &requested_features) override
 
bool wait_for_availability (const DeviceRequestedFeatures &requested_features) override
 
DeviceKernelStatus get_active_kernel_switch_state () override
 
void build_bvh (BVH *bvh, Progress &progress, bool refit) override
 
virtual void * osl_memory () override
 
bool is_resident (device_ptr key, Device *sub_device) override
 
SubDevicefind_matching_mem_device (device_ptr key, SubDevice &sub)
 
SubDevicefind_suitable_mem_device (device_ptr key, const vector< SubDevice * > &island)
 
device_ptr find_matching_mem (device_ptr key, SubDevice &sub)
 
void mem_alloc (device_memory &mem) override
 
void mem_copy_to (device_memory &mem) override
 
void mem_copy_from (device_memory &mem, int y, int w, int h, int elem) override
 
void mem_zero (device_memory &mem) override
 
void mem_free (device_memory &mem) override
 
void const_copy_to (const char *name, void *host, size_t size) override
 
void draw_pixels (device_memory &rgba, int y, int w, int h, int width, int height, int dx, int dy, int dw, int dh, bool transparent, const DeviceDrawParams &draw_params) override
 
void map_tile (Device *sub_device, RenderTile &tile) override
 
int device_number (Device *sub_device) override
 
void map_neighbor_tiles (Device *sub_device, RenderTileNeighbors &neighbors) override
 
void unmap_neighbor_tiles (Device *sub_device, RenderTileNeighbors &neighbors) override
 
int get_split_task_count (DeviceTask &task) override
 
void task_add (DeviceTask &task) override
 
void task_wait () override
 
void task_cancel () override
 
- Public Member Functions inherited from Device
virtual ~Device () noexcept(false)
 
bool have_error ()
 
virtual void set_error (const string &error)
 
virtual int mem_sub_ptr_alignment ()
 
virtual void release_optix_bvh (BVH *)
 
virtual bool check_peer_access (Device *)
 

Public Attributes

list< SubDevicedevices
 
list< SubDevicedenoising_devices
 
device_ptr unique_key
 
vector< vector< SubDevice * > > peer_islands
 
bool use_denoising
 
bool matching_rendering_and_denoising_devices
 
- Public Attributes inherited from Device
DeviceInfo info
 
Statsstats
 
Profilerprofiler
 

Additional Inherited Members

- Static Public Member Functions inherited from Device
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 ()
 
- Protected Types inherited from Device
enum  { FALLBACK_SHADER_STATUS_NONE = 0 , FALLBACK_SHADER_STATUS_ERROR , FALLBACK_SHADER_STATUS_SUCCESS }
 
- Protected Member Functions inherited from Device
 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)
 
- Protected Attributes inherited from Device
bool background
 
string error_msg
 
unsigned int vertex_buffer
 
int fallback_status
 
int fallback_shader_program
 
int image_texture_location
 
int fullscreen_location
 

Detailed Description

Definition at line 37 of file device_multi.cpp.

Constructor & Destructor Documentation

◆ MultiDevice()

MultiDevice::MultiDevice ( DeviceInfo info,
Stats stats,
Profiler profiler,
bool  background_ 
)
inline

◆ ~MultiDevice()

MultiDevice::~MultiDevice ( )
inline

Definition at line 142 of file device_multi.cpp.

References denoising_devices, MultiDevice::SubDevice::device, and devices.

Member Function Documentation

◆ build_bvh()

void MultiDevice::build_bvh ( BVH bvh,
Progress progress,
bool  refit 
)
inlineoverridevirtual

◆ const_copy_to()

void MultiDevice::const_copy_to ( const char *  name,
void *  host,
size_t  size 
)
inlineoverridevirtual

Implements Device.

Definition at line 571 of file device_multi.cpp.

References Device::const_copy_to(), MultiDevice::SubDevice::device, devices, and size().

◆ device_number()

int MultiDevice::device_number ( Device sub_device)
inlineoverridevirtual

Reimplemented from Device.

Definition at line 633 of file device_multi.cpp.

References denoising_devices, MultiDevice::SubDevice::device, and devices.

◆ draw_pixels()

void MultiDevice::draw_pixels ( device_memory rgba,
int  y,
int  w,
int  h,
int  width,
int  height,
int  dx,
int  dy,
int  dw,
int  dh,
bool  transparent,
const DeviceDrawParams draw_params 
)
inlineoverridevirtual

◆ error_message()

const string& MultiDevice::error_message ( )
inlineoverridevirtual

◆ find_matching_mem()

device_ptr MultiDevice::find_matching_mem ( device_ptr  key,
SubDevice sub 
)
inline

Definition at line 355 of file device_multi.cpp.

References find_matching_mem_device(), and MultiDevice::SubDevice::ptr_map.

Referenced by map_tile(), and task_add().

◆ find_matching_mem_device()

SubDevice* MultiDevice::find_matching_mem_device ( device_ptr  key,
SubDevice sub 
)
inline

◆ find_suitable_mem_device()

SubDevice* MultiDevice::find_suitable_mem_device ( device_ptr  key,
const vector< SubDevice * > &  island 
)
inline

◆ get_active_kernel_switch_state()

DeviceKernelStatus MultiDevice::get_active_kernel_switch_state ( )
inlineoverridevirtual

◆ get_bvh_layout_mask()

virtual BVHLayoutMask MultiDevice::get_bvh_layout_mask ( ) const
inlineoverridevirtual

◆ get_split_task_count()

int MultiDevice::get_split_task_count ( DeviceTask task)
inlineoverridevirtual

◆ is_resident()

bool MultiDevice::is_resident ( device_ptr  key,
Device sub_device 
)
inlineoverridevirtual

Reimplemented from Device.

Definition at line 313 of file device_multi.cpp.

References MultiDevice::SubDevice::device, devices, and find_matching_mem_device().

◆ load_kernels()

bool MultiDevice::load_kernels ( const DeviceRequestedFeatures requested_features)
inlineoverridevirtual

◆ map_neighbor_tiles()

void MultiDevice::map_neighbor_tiles ( Device sub_device,
RenderTileNeighbors neighbors 
)
inlineoverridevirtual

◆ map_tile()

void MultiDevice::map_tile ( Device sub_device,
RenderTile tile 
)
inlineoverridevirtual

◆ mem_alloc()

void MultiDevice::mem_alloc ( device_memory mem)
inlineoverridevirtual

◆ mem_copy_from()

void MultiDevice::mem_copy_from ( device_memory mem,
int  y,
int  w,
int  h,
int  elem 
)
inlineoverridevirtual

◆ mem_copy_to()

void MultiDevice::mem_copy_to ( device_memory mem)
inlineoverridevirtual

◆ mem_free()

void MultiDevice::mem_free ( device_memory mem)
inlineoverridevirtual

◆ mem_zero()

void MultiDevice::mem_zero ( device_memory mem)
inlineoverridevirtual

◆ osl_memory()

virtual void* MultiDevice::osl_memory ( )
inlineoverridevirtual

Reimplemented from Device.

Definition at line 305 of file device_multi.cpp.

References devices, and NULL.

◆ show_samples()

virtual bool MultiDevice::show_samples ( ) const
inlineoverridevirtual

Reimplemented from Device.

Definition at line 162 of file device_multi.cpp.

References devices.

◆ task_add()

void MultiDevice::task_add ( DeviceTask task)
inlineoverridevirtual

◆ task_cancel()

void MultiDevice::task_cancel ( )
inlineoverridevirtual

Implements Device.

Definition at line 812 of file device_multi.cpp.

References denoising_devices, MultiDevice::SubDevice::device, devices, and Device::task_cancel().

◆ task_wait()

void MultiDevice::task_wait ( )
inlineoverridevirtual

Implements Device.

Definition at line 804 of file device_multi.cpp.

References denoising_devices, MultiDevice::SubDevice::device, devices, and Device::task_wait().

◆ unmap_neighbor_tiles()

void MultiDevice::unmap_neighbor_tiles ( Device sub_device,
RenderTileNeighbors neighbors 
)
inlineoverridevirtual

◆ wait_for_availability()

bool MultiDevice::wait_for_availability ( const DeviceRequestedFeatures requested_features)
inlineoverridevirtual

Member Data Documentation

◆ denoising_devices

list<SubDevice> MultiDevice::denoising_devices

◆ devices

list<SubDevice> MultiDevice::devices

◆ matching_rendering_and_denoising_devices

bool MultiDevice::matching_rendering_and_denoising_devices

◆ peer_islands

vector<vector<SubDevice *> > MultiDevice::peer_islands

◆ unique_key

device_ptr MultiDevice::unique_key

Definition at line 47 of file device_multi.cpp.

Referenced by mem_alloc(), mem_copy_to(), and mem_zero().

◆ use_denoising

bool MultiDevice::use_denoising

Definition at line 49 of file device_multi.cpp.

Referenced by load_kernels(), mem_copy_to(), mem_free(), and mem_zero().


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