summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYang Rong <rong.r.yang@intel.com>2014-06-23 22:38:35 +0800
committerZhigang Gong <zhigang.gong@intel.com>2014-06-23 14:45:01 +0800
commitf12d2278e9be5a2b3930e3ea7377a4f21dd74ef4 (patch)
treeb587cdf45b4f9a94eab80cc03eafc8885289549c
parentd760c2cf9d1877dcc29b556362d46d7891fac565 (diff)
downloadbeignet-f12d2278e9be5a2b3930e3ea7377a4f21dd74ef4.tar.gz
Fix a CL_MEM_HOST_PTR bug.
Can't add sub_offset if mem is image. Signed-off-by: Yang Rong <rong.r.yang@intel.com> Reviewed-by: Zhigang Gong <zhigang.gong@linux.intel.com>
-rw-r--r--src/cl_mem.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/cl_mem.c b/src/cl_mem.c
index e0c4ec9c..46d9af1a 100644
--- a/src/cl_mem.c
+++ b/src/cl_mem.c
@@ -71,7 +71,6 @@ cl_get_mem_object_info(cl_mem mem,
void *param_value,
size_t *param_value_size_ret)
{
- struct _cl_mem_buffer* buf = (struct _cl_mem_buffer*)mem;
switch(param_name)
{
FIELD_SIZE(MEM_TYPE, cl_mem_object_type);
@@ -99,7 +98,12 @@ cl_get_mem_object_info(cl_mem mem,
*((size_t *)param_value) = mem->size;
break;
case CL_MEM_HOST_PTR:
- *((size_t *)param_value) = (size_t)mem->host_ptr + buf->sub_offset;
+ if(mem->type == CL_MEM_IMAGE_TYPE) {
+ *((size_t *)param_value) = (size_t)mem->host_ptr;
+ } else {
+ struct _cl_mem_buffer* buf = (struct _cl_mem_buffer*)mem;
+ *((size_t *)param_value) = (size_t)mem->host_ptr + buf->sub_offset;
+ }
break;
case CL_MEM_MAP_COUNT:
*((cl_uint *)param_value) = mem->map_ref;