void task_add(DeviceTask& task) { /* split task into smaller ones */ list<DeviceTask> tasks; if(task.type == DeviceTask::SHADER) task.split(tasks, TaskScheduler::num_threads(), 256); else task.split(tasks, TaskScheduler::num_threads()); foreach(DeviceTask& task, tasks) task_pool.push(new CPUDeviceTask(this, task)); }
void task_add(DeviceTask &task) { /* Load texture info. */ load_texture_info(); /* split task into smaller ones */ list<DeviceTask> tasks; if (task.type == DeviceTask::SHADER) task.split(tasks, info.cpu_threads, 256); else task.split(tasks, info.cpu_threads); foreach (DeviceTask &task, tasks) task_pool.push(new CPUDeviceTask(this, task)); }
void task_add(DeviceTask& task) { /* split task into smaller ones */ list<DeviceTask> tasks; task.split(tasks, TaskScheduler::num_threads()); foreach(DeviceTask& task, tasks) task_pool.push(new CPUDeviceTask(this, task)); }
void task_add(DeviceTask& task) { /* split task into smaller ones, more than number of threads for uneven * workloads where some parts of the image render slower than others */ list<DeviceTask> tasks; task.split(tasks, TaskScheduler::num_threads()); foreach(DeviceTask& task, tasks) task_pool.push(new CPUDeviceTask(this, task)); }