From f3cd5418b544ae526e6b5dd75e642ee147798758 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marcel=20L=C3=BCtke=20Dreimann?= Date: Mon, 22 Aug 2022 12:05:17 +0200 Subject: [PATCH] fixed npt flag --- repos/hello_gpgpu/src/hello_gpgpu/CL/cl.cc | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/repos/hello_gpgpu/src/hello_gpgpu/CL/cl.cc b/repos/hello_gpgpu/src/hello_gpgpu/CL/cl.cc index 2d983df10d..e75aff2b0f 100644 --- a/repos/hello_gpgpu/src/hello_gpgpu/CL/cl.cc +++ b/repos/hello_gpgpu/src/hello_gpgpu/CL/cl.cc @@ -358,6 +358,7 @@ clCreateBuffer(cl_context context, clmem->virt_vm = host_ptr; clmem->bc.buffer = (void*)g_cl_genode->virt_to_phys((Genode::addr_t)host_ptr); clmem->bc.buffer_size = (uint32_t)size; + clmem->bc.non_pointer_type = false; *errcode_ret |= CL_SUCCESS; return clmem; @@ -866,15 +867,17 @@ clSetKernelArg(cl_kernel kernel, } else { - struct buffer_config bc; - bc.buffer = g_cl_genode->alloc(arg_size); // alloc and copy for shared memory + // set buffer config + struct buffer_config& bc = kc->buffConfigs[arg_index]; + bc.buffer = g_cl_genode->alloc(arg_size); // alloc shared mem + bc.buffer_size = (uint32_t)arg_size; + bc.non_pointer_type = true; + + // copy value to shared mem uint8_t* src = (uint8_t*)arg_value; uint8_t* dst = (uint8_t*)bc.buffer; for(size_t i = 0; i < arg_size; i++) dst[i] = src[i]; - bc.buffer_size = (uint32_t)arg_size; - bc.non_pointer_type = true; - kc->buffConfigs[arg_index] = bc; } if(kc->buffCount < (arg_index + 1))