Exemplo n.º 1
0
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;
}
Exemplo n.º 2
0
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;
}