58 #define DEVICE_MASK(type) (DeviceTypeMask)(1 << type)
97 assert(
id != info.
id ||
126 virtual ~Device() noexcept(false);
143 fprintf(stderr,
"%s\n",
error.c_str());
199 return sub_device ==
this;
225 LOG(ERROR) <<
"Request buffer denoising from a device which does not support it.";
231 LOG(ERROR) <<
"Request denoising queue from a device which does not support it.";
277 static bool need_types_update, need_devices_update;
285 static uint devices_initialized_mask;
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei GLfloat GLfloat GLfloat GLfloat const GLubyte *bitmap _GL_VOID_RET _GL_VOID GLenum const void *lists _GL_VOID_RET _GL_VOID const GLdouble *equation _GL_VOID_RET _GL_VOID GLdouble GLdouble blue _GL_VOID_RET _GL_VOID GLfloat GLfloat blue _GL_VOID_RET _GL_VOID GLint GLint blue _GL_VOID_RET _GL_VOID GLshort GLshort blue _GL_VOID_RET _GL_VOID GLubyte GLubyte blue _GL_VOID_RET _GL_VOID GLuint GLuint blue _GL_VOID_RET _GL_VOID GLushort GLushort blue _GL_VOID_RET _GL_VOID GLbyte GLbyte GLbyte alpha _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble alpha _GL_VOID_RET _GL_VOID GLfloat GLfloat GLfloat alpha _GL_VOID_RET _GL_VOID GLint GLint GLint alpha _GL_VOID_RET _GL_VOID GLshort GLshort GLshort alpha _GL_VOID_RET _GL_VOID GLubyte GLubyte GLubyte alpha _GL_VOID_RET _GL_VOID GLuint GLuint GLuint alpha _GL_VOID_RET _GL_VOID GLushort GLushort GLushort alpha _GL_VOID_RET _GL_VOID GLenum mode _GL_VOID_RET _GL_VOID GLint y
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei GLfloat GLfloat GLfloat GLfloat const GLubyte *bitmap _GL_VOID_RET _GL_VOID GLenum type
static DBVT_INLINE btScalar size(const btDbvtVolume &a)
void refit(btStridingMeshInterface *triangles, const btVector3 &aabbMin, const btVector3 &aabbMax)
SIMD_FORCE_INLINE const btScalar & w() const
Return the w value.
vector< DeviceInfo > multi_devices
DenoiserTypeMask denoisers
bool operator==(const DeviceInfo &info) const
virtual void optimize_for_scene(Scene *)
virtual void release_optix_bvh(BVH *)
virtual bool is_resident(device_ptr, Device *sub_device)
static void free_memory()
virtual BVHLayoutMask get_bvh_layout_mask() const =0
static DeviceInfo dummy_device(const string &error_msg="")
static vector< DeviceInfo > available_devices(uint device_type_mask=DEVICE_MASK_ALL)
static const CPUKernels & get_cpu_kernels()
virtual void const_copy_to(const char *name, void *host, size_t size)=0
virtual void mem_zero(device_memory &mem)=0
virtual void get_cpu_kernel_thread_globals(vector< CPUKernelThreadGlobals > &)
Device(const DeviceInfo &info_, Stats &stats_, Profiler &profiler_)
virtual int device_number(Device *)
static Device * create(const DeviceInfo &info, Stats &stats, Profiler &profiler)
virtual ~Device() noexcept(false)
virtual void mem_copy_from(device_memory &mem, size_t y, size_t w, size_t h, size_t elem)=0
virtual void mem_free_sub_ptr(device_ptr)
virtual unique_ptr< DeviceQueue > gpu_queue_create()
virtual void build_bvh(BVH *bvh, Progress &progress, bool refit)
virtual bool load_kernels(uint)
static DeviceType type_from_string(const char *name)
virtual const string & error_message()
virtual void * get_cpu_osl_memory()
virtual bool check_peer_access(Device *)
virtual void mem_free(device_memory &mem)=0
virtual void foreach_device(const function< void(Device *)> &callback)
virtual void set_error(const string &error)
virtual void mem_copy_to(device_memory &mem)=0
virtual DeviceQueue * get_denoise_queue()
virtual device_ptr mem_alloc_sub_ptr(device_memory &, size_t, size_t)
static string device_capabilities(uint device_type_mask=DEVICE_MASK_ALL)
friend class DeviceServer
static vector< DeviceType > available_types()
static string string_from_type(DeviceType type)
virtual void mem_alloc(device_memory &mem)=0
static DeviceInfo get_multi_device(const vector< DeviceInfo > &subdevices, int threads, bool background)
virtual bool should_use_graphics_interop()
virtual bool denoise_buffer(const DeviceDenoiseTask &)
#define CCL_NAMESPACE_END
DEGForeachIDComponentCallback callback
static void error(const char *str)
ListBase threads
list of all thread for every CPUDevice in cpudevices a thread exists.
CCL_NAMESPACE_BEGIN typedef std::mutex thread_mutex