What's the best way to fill a buffer?

ARM Graphic expert:

     I have a cl_mem buffer, which will be reused every camera frame,  so it need reset to zero before we can use it.

     for opencl 1.2 we can use clEnqueueFillBuffer, for mali driver, what would be the most efficient way to fill the buffer?

     I have write a kernel and fill the buffer on gpu, but it turn out to be very slow, the kernel:

__kernel void set(__global int* dstptr)

{

    int y = get_global_id(0);

    __global int* dst = dstptr + y*ROW_WIDTH;

    for (int i=0; i<(ROW_WIDTH/4); i++) {

        *dst = 0;

        dst++;

    }  

}

     ROW_WIDTH is a compile time macro, which is set to prime number of the buffer size, for example, for the buffer size 1280*960,  it's 75.

     And it turn out to be very slow, why? and what's can be done?

Parents Reply Children
No data
More questions in this forum