Split improvemnts before tess shader

This commit is contained in:
Confideo-IOM
2026-09-26 18:40:34 +01:00
parent 5ded63d3f4
commit 6e1a531f94
29 changed files with 282 additions and 201 deletions
@@ -66,27 +66,22 @@ void HydraTaskScheduler::Shutdown()
HydraID HydraTaskScheduler::_SaveTask(HydraTask *task)
{
if (m_avaialble_task_ids.size() > 0)
{
HydraID id = m_avaialble_task_ids.front();
m_avaialble_task_ids.pop_front();
if(id > m_tasks.size())
{
DebugLog("INVALID TASK");
}
task->m_taskID = id;
m_tasks[id] = task;
return id;
}
else
{
DebugLog("Create Task Fail");
}
return INVALID_HYDRA_ID;
}
@@ -135,6 +130,19 @@ void HydraTaskScheduler::ProcessTask()
}
}
bool HydraTaskScheduler::BarrierComplete(HydraID barrierID)
{
if(barrierID < m_barriers.size())
{
if(m_barriers[barrierID]->reference_count > 0)
{
return false;
}
_CompleteBarrier(barrierID);
}
return true;
}
void HydraTaskScheduler::_NotifyThread(std::thread::id thread_id)
{
HydraThread *thread = nullptr;
@@ -71,7 +71,7 @@ public:
void NotifyStart(HydraID taskID);
void NotifyComplete(HydraID taskID);
void ProcessTask();
bool BarrierComplete(HydraID barrierID);
void DeleteTask(HydraID taskID);
};