From c2ffca9c1dae7ce6a7a03247c40ead1f1dc59b09 Mon Sep 17 00:00:00 2001
From: foreman
Date: Mon, 12 Aug 2019 21:22:47 -0400
Subject: [PATCH] P4 to Git Change 1982056 by kjayapra@3_HIPWS_TXT_ROCM on
2019/08/12 21:16:51
SWDEV-199635 - Setting VarInfoCallBack before all program builds.
Affected files ...
... //depot/stg/opencl/drivers/opencl/api/hip/hip_internal.hpp#36 edit
... //depot/stg/opencl/drivers/opencl/api/hip/hip_module.cpp#33 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/devprogram.cpp#58 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palprogram.cpp#97 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rocprogram.cpp#106 edit
---
api/hip/hip_internal.hpp | 2 ++
api/hip/hip_module.cpp | 2 ++
2 files changed, 4 insertions(+)
diff --git a/api/hip/hip_internal.hpp b/api/hip/hip_internal.hpp
index 1f7e31c9aa..0df562065c 100644
--- a/api/hip/hip_internal.hpp
+++ b/api/hip/hip_internal.hpp
@@ -175,6 +175,8 @@ extern hipError_t ihipDeviceGetCount(int* count);
extern int ihipGetDevice();
extern hipError_t ihipMalloc(void** ptr, size_t sizeBytes, unsigned int flags);
extern amd::Memory* getMemoryObject(const void* ptr, size_t& offset);
+extern bool CL_CALLBACK getSvarInfo(cl_program program, std::string var_name, void** var_addr,
+ size_t* var_size);
#define HIP_RETURN(ret) \
hip::g_lastError = ret; \
diff --git a/api/hip/hip_module.cpp b/api/hip/hip_module.cpp
index 77a8a34659..a66c2da9e9 100644
--- a/api/hip/hip_module.cpp
+++ b/api/hip/hip_module.cpp
@@ -143,6 +143,8 @@ hipError_t ihipModuleLoadData(hipModule_t *module, const void *image)
return hipErrorOutOfMemory;
}
+ program->setVarInfoCallBack(&getSvarInfo);
+
if (CL_SUCCESS != program->addDeviceProgram(*hip::getCurrentContext()->devices()[0], image, ElfSize(image)) ||
CL_SUCCESS != program->build(hip::getCurrentContext()->devices(), nullptr, nullptr, nullptr)) {
return hipErrorUnknown;