static void notify(cl_program program, void *arg)
{
    printf("Notified of change in program %p, arg %p\n", program, arg);
    cl_kernel_bin_t *bins = cl_extract_kernels(program);
    if (bins)
    {
        cl_dump_kernels(outfile, bins);
        cl_precompiled_header(precomp, bins);
        cl_delete_kernel_bin(bins);
    }
}
Beispiel #2
0
cl_kernel_bin_t *cl_create_kernel_bin(size_t numDevices)
{
    cl_kernel_bin_t *bins;

    bins = (cl_kernel_bin_t *)cl_malloc(sizeof(cl_kernel_bin_t));
    if (bins)
    {
        bins->deviceTypes = CL_DEVICE_TYPE_DEFAULT;
        bins->numDevices = numDevices;
        bins->numBytesSizes = sizeof(size_t) * bins->numDevices;
        bins->numBytesData = sizeof(unsigned char *) * bins->numDevices;
        bins->sizes = (size_t *)cl_malloc(bins->numBytesSizes);
        bins->data  = (unsigned char **)cl_malloc(bins->numBytesData);

        if (bins->sizes == NULL || bins->data == NULL)
        {
            cl_assert(bins->sizes != NULL && bins->data != NULL,);
            cl_delete_kernel_bin(bins);
            bins = NULL;
        }
        else
        {