Skip to content

Commit 9edc786

Browse files
committed
Add implementation in clGetMemObjectInfoIntelFPGA and add test for clCreateSubBuffer
1 parent 0dbe561 commit 9edc786

File tree

2 files changed

+28
-2
lines changed

2 files changed

+28
-2
lines changed

src/acl_mem.cpp

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -416,7 +416,7 @@ CL_API_ENTRY cl_mem clCreateBufferWithPropertiesINTEL(
416416
cl_bool context_has_device_with_physical_mem;
417417
unsigned int idevice;
418418
cl_uint bank_id = 0;
419-
unsigned int tmp_mem_id = 0;
419+
cl_uint tmp_mem_id = 0;
420420
acl_lock();
421421

422422
#ifdef MEM_DEBUG_MSG
@@ -433,7 +433,7 @@ CL_API_ENTRY cl_mem clCreateBufferWithPropertiesINTEL(
433433
bank_id = (cl_uint) * (properties + 1);
434434
} break;
435435
case CL_MEM_ALLOC_BUFFER_LOCATION_INTEL: {
436-
tmp_mem_id = (unsigned int)*(properties + 1);
436+
tmp_mem_id = (cl_uint) * (properties + 1);
437437
} break;
438438
default: {
439439
UNLOCK_BAIL_INFO(CL_INVALID_DEVICE, context, "Invalid properties");
@@ -1376,6 +1376,9 @@ CL_API_ENTRY cl_int CL_API_CALL clGetMemObjectInfoIntelFPGA(
13761376
context = mem->context;
13771377

13781378
switch (param_name) {
1379+
case CL_MEM_ALLOC_BUFFER_LOCATION_INTEL:
1380+
RESULT_UINT(mem->mem_id);
1381+
break;
13791382
case CL_MEM_TYPE:
13801383
RESULT_ENUM(mem->mem_object_type);
13811384
break;

test/acl_mem_test.cpp

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2815,8 +2815,31 @@ TEST(acl_mem, buffer_location_property) {
28152815
a = clCreateBufferWithPropertiesINTEL(m_context, props, 0, bank_size, 0,
28162816
&status);
28172817
CHECK_EQUAL(CL_SUCCESS, status);
2818+
CHECK_EQUAL(1, acl_ref_count(a));
2819+
ACL_LOCKED(CHECK(acl_mem_is_valid(a)));
2820+
cl_uint read_mem_id = 4;
2821+
size_t size_ret;
2822+
CHECK_EQUAL(CL_SUCCESS,
2823+
clGetMemObjectInfo(a, CL_MEM_ALLOC_BUFFER_LOCATION_INTEL,
2824+
sizeof(cl_uint), &read_mem_id, &size_ret));
2825+
CHECK_EQUAL(0, read_mem_id);
2826+
2827+
cl_buffer_region test_region = {0, 2};
2828+
cl_mem subbuffer =
2829+
clCreateSubBuffer(a, CL_MEM_READ_WRITE, CL_BUFFER_CREATE_TYPE_REGION,
2830+
&test_region, &status);
2831+
CHECK_EQUAL(CL_SUCCESS, status);
2832+
CHECK_EQUAL(2, acl_ref_count(a));
2833+
ACL_LOCKED(CHECK(acl_mem_is_valid(subbuffer)));
2834+
read_mem_id = 4;
2835+
CHECK_EQUAL(CL_SUCCESS,
2836+
clGetMemObjectInfo(subbuffer, CL_MEM_ALLOC_BUFFER_LOCATION_INTEL,
2837+
sizeof(cl_uint), &read_mem_id, &size_ret));
2838+
CHECK_EQUAL(0, read_mem_id);
2839+
28182840
ACL_LOCKED(CHECK_EQUAL(acl_bind_buffer_to_device(m_cq->device, a), 1));
28192841

2842+
CHECK_EQUAL(CL_SUCCESS, clReleaseMemObject(subbuffer));
28202843
CHECK_EQUAL(CL_SUCCESS, clReleaseMemObject(a));
28212844
}
28222845

0 commit comments

Comments
 (0)