| 24 | } |
| 25 | |
| 26 | GPUTasksContext::~GPUTasksContext() |
| 27 | { |
| 28 | ASSERT(IsInMainThread()); |
| 29 | |
| 30 | // Cancel jobs to sync |
| 31 | auto tasks = _tasksSyncing; |
| 32 | _tasksSyncing.Clear(); |
| 33 | for (int32 i = 0; i < tasks.Count(); i++) |
| 34 | { |
| 35 | auto task = tasks[i]; |
| 36 | if (task->GetSyncPoint() <= _currentSyncPoint && task->GetState() != TaskState::Finished) |
| 37 | { |
| 38 | if (!Engine::IsRequestingExit) |
| 39 | LOG(Warning, "'{0}' has been canceled before a sync", task->ToString()); |
| 40 | task->CancelSync(); |
| 41 | } |
| 42 | } |
| 43 | |
| 44 | #if GPU_TASKS_USE_DEDICATED_CONTEXT |
| 45 | SAFE_DELETE(GPU); |
| 46 | #endif |
| 47 | } |
| 48 | |
| 49 | void GPUTasksContext::Run(GPUTask* task) |
| 50 | { |
nothing calls this directly
no test coverage detected