|
|
@ -90,6 +90,11 @@ void ThreadManager::FlushAndInvalidateRegion(CacheAddr addr, u64 size) { |
|
|
InvalidateRegion(addr, size); |
|
|
InvalidateRegion(addr, size); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
void ThreadManager::WaitIdle() const { |
|
|
|
|
|
while (state.last_fence > state.signaled_fence.load()) { |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
u64 ThreadManager::PushCommand(CommandData&& command_data) { |
|
|
u64 ThreadManager::PushCommand(CommandData&& command_data) { |
|
|
const u64 fence{++state.last_fence}; |
|
|
const u64 fence{++state.last_fence}; |
|
|
state.queue.Push(CommandDataContainer(std::move(command_data), fence)); |
|
|
state.queue.Push(CommandDataContainer(std::move(command_data), fence)); |
|
|
|