[Webkit-unassigned] [Bug 99829] OpenCL version of SourceAlpha, SourceGraphics and FETurbulence filter effects

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Fri Nov 23 03:39:46 PST 2012


https://bugs.webkit.org/show_bug.cgi?id=99829





--- Comment #20 from Matt Arsenault <arsenm2 at gmail.com>  2012-11-23 03:41:50 PST ---
(In reply to comment #18)
> You have some good ideas.
> 
> > These look like they don't account for the possibility that the kernel will > fail to build. If the build fails, you'll be setting arguments / trying to > run a null kernel
> 
> The source code of the kernel should be correct, so the only fail possibility here is the out-of-resource allocation, which could be handled by a CRASH() macro.
The kernel might be correct, but the compiler might not. My experience with OpenCL is taking one kernel that builds on one implementation won't work on another. I wouldn't put so much faith in the compiler.

> > 
> > > Source/WebCore/platform/graphics/gpu/opencl/FilterContextOpenCL.h:104
> > > +            {
> > > +                clFinish(m_context->m_commandQueue);
> > > +                clEnqueueNDRangeKernel(m_context->m_commandQueue, m_kernel, 2, 0, m_globalSize, 0, 0, 0, 0);
> > > +            }
> > 
> > These should really be checked. These are pretty likely to fail.
> 
> Why?
Such is the way with OpenCL. On the Nvidia platform in particular most problems end up manifesting themselves as an error from clFinish.

> 
> > Where do you wait for the kernel to complete? The only clFinish/clWaitForEvents I see is before a clEnqueueNDRangeKernel
> 
> Opencl supports async execution, so we don't need to wait here.

You do when you'll need the result (which I guess I'm missing)

-- 
Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.



More information about the webkit-unassigned mailing list