SWDEV-241896 - Remove extern support in ROCclr/HIP since compiler added Texture Reference support.
Change-Id: I2cf27e13a53860fe11e9245c9cbdcb8bd88a7872
This commit is contained in:
committad av
Karthik Jayaprakash
förälder
40b432f992
incheckning
4071cf1a16
@@ -98,11 +98,6 @@ Program::Program(amd::Device& device, amd::Program& owner)
|
||||
Program::~Program() {
|
||||
clear();
|
||||
|
||||
/* Delete the undefined memory object */
|
||||
for (auto it = undef_mem_obj_.begin(); it != undef_mem_obj_.end(); ++it) {
|
||||
(*it)->release();
|
||||
}
|
||||
|
||||
if (isLC()) {
|
||||
#if defined(USE_COMGR_LIBRARY)
|
||||
for (auto const& kernelMeta : kernelMetadataMap_) {
|
||||
@@ -2606,77 +2601,4 @@ bool Program::getGlobalVarFromCodeObj(std::vector<std::string>* var_names) const
|
||||
return true;
|
||||
#endif
|
||||
}
|
||||
|
||||
bool Program::getUndefinedVarFromCodeObj(std::vector<std::string>* var_names) const {
|
||||
#if defined(USE_COMGR_LIBRARY)
|
||||
return getSymbolsFromCodeObj(var_names, AMD_COMGR_SYMBOL_TYPE_NOTYPE);
|
||||
#else
|
||||
return true;
|
||||
#endif
|
||||
}
|
||||
|
||||
bool Program::getUndefinedVarInfo(std::string var_name, void** var_addr, size_t* var_size) {
|
||||
if (owner()->varcallback != nullptr) {
|
||||
return owner()->varcallback(as_cl(owner()), var_name.c_str(), var_addr, var_size);
|
||||
} else {
|
||||
buildLog_ += "SVAR HIP Call back is not set \n";
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
bool Program::defineUndefinedVars() {
|
||||
size_t address = 0;
|
||||
size_t hsize = 0;
|
||||
void* dptr = nullptr;
|
||||
void* hptr = nullptr;
|
||||
device::Memory* dev_mem = nullptr;
|
||||
amd::Memory* amd_mem_obj = nullptr;
|
||||
std::vector<std::string> var_names;
|
||||
|
||||
if (!getUndefinedVarFromCodeObj(&var_names)) {
|
||||
DevLogError("Cannot get Undefined Var from Code Object \n");
|
||||
return false;
|
||||
}
|
||||
|
||||
for (auto it = var_names.begin(); it != var_names.end(); ++it) {
|
||||
if (!getUndefinedVarInfo(*it, &hptr, &hsize)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
amd_mem_obj = new (owner()->context()) amd::Buffer(const_cast<amd::Context&>(owner()->context()),
|
||||
CL_MEM_USE_HOST_PTR, hsize);
|
||||
if (amd_mem_obj == nullptr) {
|
||||
LogError("[OCL] failed to create a mem object!");
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!amd_mem_obj->create(hptr)) {
|
||||
LogError("[OCL] failed to create a svm hidden buffer!");
|
||||
amd_mem_obj->release();
|
||||
return false;
|
||||
}
|
||||
|
||||
undef_mem_obj_.push_back(amd_mem_obj);
|
||||
|
||||
dev_mem = amd_mem_obj->getDeviceMemory(device());
|
||||
if (dev_mem == nullptr) {
|
||||
LogError("[OCL] failed to create a mem object!");
|
||||
return false;
|
||||
}
|
||||
|
||||
dptr = reinterpret_cast<void*>(dev_mem->virtualAddress());
|
||||
if (dev_mem == nullptr) {
|
||||
LogError("[OCL] failed to create a mem object!");
|
||||
return false;
|
||||
}
|
||||
|
||||
if(!defineGlobalVar(it->c_str(), dptr)) {
|
||||
LogError("[OCL] failed to define global var");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
} /* namespace device*/
|
||||
|
||||
Referens i nytt ärende
Block a user