diff options
author | Yang Rong <rong.r.yang@intel.com> | 2014-06-23 22:38:35 +0800 |
---|---|---|
committer | Zhigang Gong <zhigang.gong@intel.com> | 2014-06-23 14:45:01 +0800 |
commit | f12d2278e9be5a2b3930e3ea7377a4f21dd74ef4 (patch) | |
tree | b587cdf45b4f9a94eab80cc03eafc8885289549c | |
parent | d760c2cf9d1877dcc29b556362d46d7891fac565 (diff) | |
download | beignet-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.c | 8 |
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; |