Disable worker thread creation for direct dispatch

Change-Id: I28f08ab9352310c9bf843fcb803a48f95ddf4676
This commit is contained in:
German Andryeyev
2020-11-30 17:49:25 -05:00
parent 4af8b53846
commit e4f51e063b
2 changed files with 48 additions and 30 deletions
+11 -2
View File
@@ -157,7 +157,7 @@ class HostQueue : public CommandQueue {
//! Create a new thread
Thread()
: amd::Thread("Command Queue Thread", CQ_THREAD_STACK_SIZE),
: amd::Thread("Command Queue Thread", CQ_THREAD_STACK_SIZE, !AMD_DIRECT_DISPATCH),
acceptingCommands_(false),
virtualDevice_(NULL) {}
@@ -167,13 +167,22 @@ class HostQueue : public CommandQueue {
virtualDevice_ = queue->device().createVirtualDevice(queue);
if (virtualDevice_ != NULL) {
queue->loop(virtualDevice_);
delete virtualDevice_;
Release();
} else {
acceptingCommands_ = false;
queue->flush();
}
}
void Init(HostQueue* queue) {
virtualDevice_ = queue->device().createVirtualDevice(queue);
if (virtualDevice_ != nullptr) {
acceptingCommands_ = true;
}
}
void Release() const { delete virtualDevice_; }
//! Get virtual device for the current thread
device::VirtualDevice* vdev() const { return virtualDevice_; }