mirror of
https://github.com/intel/compute-runtime.git
synced 2025-11-10 05:49:51 +08:00
Set Context in program when using builtins
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
This commit is contained in:
committed by
Compute-Runtime-Automation
parent
402082182c
commit
722f693e0f
@@ -780,19 +780,27 @@ BuiltinDispatchInfoBuilder &BuiltInDispatchBuilderOp::getBuiltinDispatchInfoBuil
|
||||
return *operationBuilder.first;
|
||||
}
|
||||
|
||||
BuiltInOwnershipWrapper::BuiltInOwnershipWrapper(BuiltinDispatchInfoBuilder &inputBuilder) {
|
||||
takeOwnership(inputBuilder);
|
||||
BuiltInOwnershipWrapper::BuiltInOwnershipWrapper(BuiltinDispatchInfoBuilder &inputBuilder, Context *context) {
|
||||
takeOwnership(inputBuilder, context);
|
||||
}
|
||||
BuiltInOwnershipWrapper::~BuiltInOwnershipWrapper() {
|
||||
if (builder) {
|
||||
for (auto &kernel : builder->peekUsedKernels()) {
|
||||
kernel->releaseOwnership();
|
||||
}
|
||||
if (!builder->peekUsedKernels().empty()) {
|
||||
builder->peekUsedKernels()[0]->getProgram()->setContext(nullptr);
|
||||
builder->peekUsedKernels()[0]->getProgram()->releaseOwnership();
|
||||
}
|
||||
}
|
||||
}
|
||||
void BuiltInOwnershipWrapper::takeOwnership(BuiltinDispatchInfoBuilder &inputBuilder) {
|
||||
void BuiltInOwnershipWrapper::takeOwnership(BuiltinDispatchInfoBuilder &inputBuilder, Context *context) {
|
||||
UNRECOVERABLE_IF(builder);
|
||||
builder = &inputBuilder;
|
||||
if (!builder->peekUsedKernels().empty()) {
|
||||
builder->peekUsedKernels()[0]->getProgram()->takeOwnership();
|
||||
builder->peekUsedKernels()[0]->getProgram()->setContext(context);
|
||||
}
|
||||
for (auto &kernel : builder->peekUsedKernels()) {
|
||||
kernel->takeOwnership();
|
||||
}
|
||||
|
||||
@@ -118,10 +118,10 @@ class BuiltInDispatchBuilderOp {
|
||||
class BuiltInOwnershipWrapper : public NonCopyableOrMovableClass {
|
||||
public:
|
||||
BuiltInOwnershipWrapper() = default;
|
||||
BuiltInOwnershipWrapper(BuiltinDispatchInfoBuilder &inputBuilder);
|
||||
BuiltInOwnershipWrapper(BuiltinDispatchInfoBuilder &inputBuilder, Context *context);
|
||||
~BuiltInOwnershipWrapper();
|
||||
|
||||
void takeOwnership(BuiltinDispatchInfoBuilder &inputBuilder);
|
||||
void takeOwnership(BuiltinDispatchInfoBuilder &inputBuilder, Context *context);
|
||||
|
||||
protected:
|
||||
BuiltinDispatchInfoBuilder *builder = nullptr;
|
||||
|
||||
Reference in New Issue
Block a user