[Beignet] [PATCH] Libocl: Add define for cl_intel_subgroups

2016-08-19 Thread Xiuli Pan
From: Pan Xiuli 

Signed-off-by: Pan Xiuli 
---
 backend/src/libocl/tmpl/ocl_defines.tmpl.h | 1 +
 1 file changed, 1 insertion(+)

diff --git a/backend/src/libocl/tmpl/ocl_defines.tmpl.h 
b/backend/src/libocl/tmpl/ocl_defines.tmpl.h
index 8fb5d2b..8c7d08f 100644
--- a/backend/src/libocl/tmpl/ocl_defines.tmpl.h
+++ b/backend/src/libocl/tmpl/ocl_defines.tmpl.h
@@ -37,5 +37,6 @@
 #define cl_khr_spir
 #define cl_khr_fp16
 #define cl_khr_3d_image_writes
+#define cl_intel_subgroups
 
 #endif /* end of __OCL_COMMON_DEF_H__ */
-- 
2.7.4

___
Beignet mailing list
Beignet@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/beignet


[Beignet] [PATCH] Runtime: Fix null device for clGetKernelWorkGroupInfo

2016-08-19 Thread Xiuli Pan
From: Pan Xiuli 

The device arg for API clGetKernelWorkGroupInfo can be NULL.

Signed-off-by: Pan Xiuli 
---
 src/cl_device_id.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/src/cl_device_id.c b/src/cl_device_id.c
index d29138d..08cc0c0 100644
--- a/src/cl_device_id.c
+++ b/src/cl_device_id.c
@@ -1157,6 +1157,8 @@ cl_get_kernel_workgroup_info(cl_kernel kernel,
 {
   int err = CL_SUCCESS;
   int dimension = 0;
+  if (device == NULL)
+device = kernel->program->ctx->device;
   if (UNLIKELY(is_gen_device(device) == CL_FALSE))
 return CL_INVALID_DEVICE;
 
-- 
2.7.4

___
Beignet mailing list
Beignet@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/beignet


[Beignet] [PATCH] Backend: Fix printf bug for simd8

2016-08-19 Thread Xiuli Pan
From: Pan Xiuli 

The tmp0 and tmp1 for simd8 should be half size of the simd16 mode.
Otherwise the send message will use wrong reg and wrong message length.

Signed-off-by: Pan Xiuli 
---
 backend/src/backend/gen_context.cpp| 3 ++-
 backend/src/backend/gen_insn_selection.cpp | 9 ++---
 2 files changed, 4 insertions(+), 8 deletions(-)

diff --git a/backend/src/backend/gen_context.cpp 
b/backend/src/backend/gen_context.cpp
index b429ec3..f1c58eb 100644
--- a/backend/src/backend/gen_context.cpp
+++ b/backend/src/backend/gen_context.cpp
@@ -3411,13 +3411,14 @@ namespace gbe
   void GenContext::emitPrintfInstruction(const SelectionInstruction ) {
 const GenRegister dst = ra->genReg(insn.dst(0));
 const GenRegister tmp0 = ra->genReg(insn.dst(1));
+const GenRegister tmp1 = ra->genReg(insn.dst(2));
 GenRegister src;
 uint32_t srcNum = insn.srcNum;
 if (insn.extra.continueFlag)
   srcNum--;
 
 GenRegister addr = GenRegister::retype(tmp0, GEN_TYPE_UD);
-GenRegister data = GenRegister::offset(addr, 2);
+GenRegister data = GenRegister::retype(tmp1, GEN_TYPE_UD);
 
 if (!insn.extra.continueFlag) {
   p->push(); {
diff --git a/backend/src/backend/gen_insn_selection.cpp 
b/backend/src/backend/gen_insn_selection.cpp
index 6cfa87f..c4e2934 100644
--- a/backend/src/backend/gen_insn_selection.cpp
+++ b/backend/src/backend/gen_insn_selection.cpp
@@ -6166,13 +6166,8 @@ extern bool OCL_DEBUGINFO; // first defined by calling 
BVAR in program.cpp
   uint32_t totalSize = 0;
   bool isContinue = false;
   GBE_ASSERT(sel.ctx.getSimdWidth() == 16 || sel.ctx.getSimdWidth() == 8);
-  if (sel.ctx.getSimdWidth() == 16) {
-tmp0 = GenRegister::retype(sel.selReg(sel.reg(FAMILY_DWORD)), 
GEN_TYPE_UD);
-tmp1 = GenRegister::retype(sel.selReg(sel.reg(FAMILY_DWORD)), 
GEN_TYPE_UD);
-  } else {
-tmp0 = GenRegister::retype(sel.selReg(sel.reg(FAMILY_QWORD)), 
GEN_TYPE_UD);
-tmp1 = GenRegister::retype(sel.selReg(sel.reg(FAMILY_QWORD)), 
GEN_TYPE_UD);
-  }
+  tmp0 = GenRegister::retype(sel.selReg(sel.reg(FAMILY_DWORD)), 
GEN_TYPE_UD);
+  tmp1 = GenRegister::retype(sel.selReg(sel.reg(FAMILY_DWORD)), 
GEN_TYPE_UD);
 
   /* Get the total size for one printf statement. */
   for (i = 0; i < srcNum; i++) {
-- 
2.7.4

___
Beignet mailing list
Beignet@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/beignet


[Beignet] [PATCH] use OCL_MAP_BUFFER_GTT to map climage

2016-08-19 Thread Guo Yejun
Signed-off-by: Guo Yejun 
---
 utests/runtime_cmrt.cpp | 16 
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/utests/runtime_cmrt.cpp b/utests/runtime_cmrt.cpp
index 837f09a..92bd368 100644
--- a/utests/runtime_cmrt.cpp
+++ b/utests/runtime_cmrt.cpp
@@ -236,8 +236,8 @@ void runtime_cmrt(void)
   OCL_CREATE_IMAGE(buf[0], 0, , , NULL);
   OCL_CREATE_IMAGE(buf[1], 0, , , NULL);
 
-  OCL_MAP_BUFFER(0);
-  OCL_MAP_BUFFER(1);
+  OCL_MAP_BUFFER_GTT(0);
+  OCL_MAP_BUFFER_GTT(1);
   uint8_t* src = (uint8_t*)buf_data[0];
   uint8_t* dst = (uint8_t*)buf_data[1];
   for (uint32_t j = 0; j < h; ++j)
@@ -245,8 +245,8 @@ void runtime_cmrt(void)
   src[j * w * 4 + i] = i;
   dst[j * w * 4 + i] = 0;
 }
-  OCL_UNMAP_BUFFER(0);
-  OCL_UNMAP_BUFFER(1);
+  OCL_UNMAP_BUFFER_GTT(0);
+  OCL_UNMAP_BUFFER_GTT(1);
 
   unsigned int d = 3;
   OCL_SET_ARG(0, sizeof(cl_mem), [0]);
@@ -259,16 +259,16 @@ void runtime_cmrt(void)
   //if kernel uses cm_linear_global_id, locals must be not NULL to invoke 
pCmQueue->EnqueueWithGroup
   OCL_CALL (clEnqueueNDRangeKernel, queue, kernel, 2, NULL, globals, NULL, 0, 
NULL, NULL);
 
-  OCL_MAP_BUFFER(0);
-  OCL_MAP_BUFFER(1);
+  OCL_MAP_BUFFER_GTT(0);
+  OCL_MAP_BUFFER_GTT(1);
   src = (uint8_t*)buf_data[0];
   dst = (uint8_t*)buf_data[1];
   for (uint32_t j = 0; j < h; ++j)
 for (uint32_t i = 0; i < w*4; i++) {
   OCL_ASSERT(src[j * w * 4 + i] / d == dst[j * w * 4 + i]);
 }
-  OCL_UNMAP_BUFFER(0);
-  OCL_UNMAP_BUFFER(1);
+  OCL_UNMAP_BUFFER_GTT(0);
+  OCL_UNMAP_BUFFER_GTT(1);
 }
 
 MAKE_UTEST_FROM_FUNCTION(runtime_cmrt);
-- 
1.9.1

___
Beignet mailing list
Beignet@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/beignet


[Beignet] [PATCH] fix the condition to check if there are built-in kernels

2016-08-19 Thread Guo Yejun
an empty string is returned if no built-in kernels are supported
by the device, and so the returned size is 1, not 0.

Signed-off-by: Guo Yejun 
---
 utests/builtin_kernel_max_global_size.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/utests/builtin_kernel_max_global_size.cpp 
b/utests/builtin_kernel_max_global_size.cpp
index d3e8373..7580572 100644
--- a/utests/builtin_kernel_max_global_size.cpp
+++ b/utests/builtin_kernel_max_global_size.cpp
@@ -10,7 +10,7 @@ void builtin_kernel_max_global_size(void)
 
 
   OCL_CALL (clGetDeviceInfo, device, CL_DEVICE_BUILT_IN_KERNELS, 0, 0, 
_in_kernels_size);
-  if(built_in_kernels_size == 0)
+  if(built_in_kernels_size <= 1)  //the size of empty string is 1
 return;
 
   built_in_kernel_names = (char* )malloc(built_in_kernels_size * sizeof(char) 
);
-- 
1.9.1

___
Beignet mailing list
Beignet@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/beignet