void *WorkScheduler::thread_execute_gpu(void *data) { Device *device = (Device *)data; WorkPackage *work; while ((work = (WorkPackage *)BLI_thread_queue_pop(g_gpuqueue))) { HIGHLIGHT(work); device->execute(work); delete work; } return NULL; }
void *WorkScheduler::thread_execute_cpu(void *data) { CPUDevice *device = (CPUDevice *)data; WorkPackage *work; BLI_thread_local_set(g_thread_device, device); while ((work = (WorkPackage *)BLI_thread_queue_pop(g_cpuqueue))) { HIGHLIGHT(work); device->execute(work); delete work; } return NULL; }