amd/Chromium-WebCL

WebCLKernel.setArg fails for scalar double argument

Opened this issue · 1 comments

WebCLKernel.setArg(..., Float64Array([c])) fails for kernels with scalar double arguments. This seems to be specific to double type: other scalars seem to work well. Reproducer:

<!DOCTYPE html>
<html>
    <head>
        <title>Bug Reproducer</title>
    </head>
    <body>
        <div>
        </div>
        <script type="text/javascript">
            var source = "kernel void init(global double* out, double value){ out[get_global_id(0)] = value; }";

            var platforms = webcl.getPlatforms();
            var platform = platforms[0];
            var devices = platform.getDevices();
            var device = devices[0];
            var context = webcl.createContext(device);
            var program = context.createProgram(source);
            program.build([device]);
            var kernel = program.createKernel("init");
            var buffer = context.createBuffer(webcl.MEM_READ_WRITE, 1024*8);
            kernel.setArg(0, buffer);
            kernel.setArg(1, new Float64Array([0.0])); /* Uncaught OpenCL exception: Unknown */
        </script>
    </body>
</html>

Same bug in WebKit-WebCL: #534