Signed-off-by: Lv Meng <[email protected]>
---
 src/kernels/cl_internel_copy_buf_dword_copy.cl | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)
 create mode 100755 src/kernels/cl_internel_copy_buf_dword_copy.cl

diff --git a/src/kernels/cl_internel_copy_buf_dword_copy.cl 
b/src/kernels/cl_internel_copy_buf_dword_copy.cl
new file mode 100755
index 0000000..55a76d0
--- /dev/null
+++ b/src/kernels/cl_internel_copy_buf_dword_copy.cl
@@ -0,0 +1,19 @@
+kernel void dword_copy(__global unsigned int*src,int srcoffset,__global 
unsigned int*dst,int dstalignoffset,int size){
+    unsigned int outdata = 0;
+    unsigned char lsm[8];
+    unsigned int* li = lsm;
+    int lsmoffset = srcoffset%4;
+    __global unsigned int *src_algin = src+(srcoffset/4);
+    __global unsigned int *dst_align = dst+dstalignoffset;
+    int gid = get_global_id(0);
+    if(gid<size){
+     *li = src_algin[gid];
+     if(lsmoffset){
+       *(li+1) = src_algin[gid+1];
+       outdata = 
(lsm[lsmoffset])|(lsm[lsmoffset+1]<<8)|(lsm[lsmoffset+2]<<16)|(lsm[lsmoffset+3]<<24);
+     }
+     else
+       outdata = *li;
+     dst_align[gid] = outdata;
+    }
+}
\ No newline at end of file
-- 
1.8.3.2

_______________________________________________
Beignet mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/beignet

Reply via email to