Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Commits on Mar 21, 2014
  1. @SharathKamathK

    2014-03-19 Sharath Kamath <s.kamath@samsung.com>

    SharathKamathK authored
            Moving the multiplier factor to calculation of default rowPitch.
    
            Regression from commit 061b721.
            imageBytesPerPixel must be used to calculate the the default rowPitch,
            not the region accessed by the rowPitch.
    
            Issue #453
    
            Reviewed by Antonio.
    
            conformance/functionalityTesting/enqueueOperations/enqueue####Image.html
    
            * Modules/webcl/WebCLInputChecker.cpp:
            (WebCore::WebCLInputChecker::isValidRegionForHostPtr):
  2. @SharathKamathK

    2014-03-13 Sharath Kamath <s.kamath@samsung.com>

    SharathKamathK authored
            Changes to default value constructor in WebCLImageDescriptor.
    
            Issue #469
    
            Reviewed by NOBODY.
    
            Since creating a strcuture using {} is not supported by EFL port,
            changing it to simpler constructor taking channel order & type with
            default values.
    
            * Modules/webcl/WebCLContext.cpp:
            (WebCore::WebCLContext::createImage2DBase):
            (WebCore::WebCLContext::createImage):
            * Modules/webcl/WebCLContext.h:
            * Modules/webcl/WebCLImageDescriptor.cpp:
            (WebCore::WebCLImageDescriptor::create):
            * Modules/webcl/WebCLImageDescriptor.h:
Commits on Mar 12, 2014
  1. @tonikitoo

    Merge pull request #480 from SRA-SiliconValley/arno/issue_478

    tonikitoo authored
    2014-03-11  Arnaud Renevier  <a.renevier@samsung.com>
    
    Reviewed by Antonio & Martin.
Commits on Mar 11, 2014
  1. 2014-03-11 Arnaud Renevier <a.renevier@samsung.com>

    Arnaud Renevier authored
            Refactor exception handling.
    
            The goal is to put all WebKit specific code in a single file. That way,
            porting to blink will be more easy.
    
            We create a function setExceptionFromComputeErrorCode which sets
            exception code to the code matching the computeContext error.
    
            We also create a special function  setExtensionsNotEnabledException
            because EXTENSION_NOT_ENABLED doesn't have a matching computeContext
            error code.
    
            And also, we create a willThrowException function that returns true if
            the exceptionCode has been set to an error code.
    
            Lastly, we define ExceptionObject to be ExceptionCode. Then, when
            porting to blink, we'll be able to define ExceptionObject to be
            ExceptionState, and be able to call the 3 functions without
            modifications.
    
            Bug #478
    
            Reviewed by NOBODY (OOPS!).
    
            No new tests (OOPS!).
    
            * Modules/webcl/WebCL.cpp:
            (WebCore::WebCL::getPlatforms):
            (WebCore::WebCL::waitForEvents):
            (WebCore::WebCL::createContext):
            * Modules/webcl/WebCL.h:
            * Modules/webcl/WebCLBuffer.cpp:
            (WebCore::WebCLBuffer::create):
            (WebCore::WebCLBuffer::createSubBuffer):
            * Modules/webcl/WebCLBuffer.h:
            * Modules/webcl/WebCLCommandQueue.cpp:
            (WebCore::WebCLCommandQueue::create):
            (WebCore::WebCLCommandQueue::getInfo):
            (WebCore::WebCLCommandQueue::ccEventListFromWebCLEventList):
            (WebCore::WebCLCommandQueue::computeEventFromWebCLEventIfApplicable):
            (WebCore::WebCLCommandQueue::enqueueWriteBufferBase):
            (WebCore::WebCLCommandQueue::enqueueWriteBuffer):
            (WebCore::WebCLCommandQueue::enqueueWriteBufferRectBase):
            (WebCore::WebCLCommandQueue::enqueueWriteBufferRect):
            (WebCore::WebCLCommandQueue::enqueueReadBufferBase):
            (WebCore::WebCLCommandQueue::enqueueReadBuffer):
            (WebCore::WebCLCommandQueue::enqueueReadImageBase):
            (WebCore::WebCLCommandQueue::enqueueReadImage):
            (WebCore::WebCLCommandQueue::enqueueReadBufferRectBase):
            (WebCore::WebCLCommandQueue::enqueueReadBufferRect):
            (WebCore::WebCLCommandQueue::enqueueNDRangeKernel):
            (WebCore::WebCLCommandQueue::enqueueWaitForEvents):
            (WebCore::WebCLCommandQueue::finish):
            (WebCore::WebCLCommandQueue::flush):
            (WebCore::WebCLCommandQueue::enqueueWriteImageBase):
            (WebCore::WebCLCommandQueue::enqueueWriteImage):
            (WebCore::WebCLCommandQueue::enqueueCopyImage):
            (WebCore::WebCLCommandQueue::enqueueCopyImageToBuffer):
            (WebCore::WebCLCommandQueue::enqueueCopyBufferToImage):
            (WebCore::WebCLCommandQueue::enqueueCopyBuffer):
            (WebCore::WebCLCommandQueue::enqueueCopyBufferRect):
            (WebCore::WebCLCommandQueue::enqueueBarrier):
            (WebCore::WebCLCommandQueue::enqueueMarker):
            (WebCore::WebCLCommandQueue::enqueueAcquireGLObjects):
            (WebCore::WebCLCommandQueue::enqueueReleaseGLObjects):
            * Modules/webcl/WebCLCommandQueue.h:
            * Modules/webcl/WebCLContext.cpp:
            (WebCore::WebCLContext::create):
            (WebCore::WebCLContext::getInfo):
            (WebCore::WebCLContext::createCommandQueue):
            (WebCore::WebCLContext::createProgram):
            (WebCore::WebCLContext::postCreateCommandQueue):
            (WebCore::WebCLContext::postCreateBuffer):
            (WebCore::WebCLContext::createBufferBase):
            (WebCore::WebCLContext::createBuffer):
            (WebCore::WebCLContext::createImage2DBase):
            (WebCore::WebCLContext::createImage):
            (WebCore::WebCLContext::createSampler):
            (WebCore::WebCLContext::createUserEvent):
            (WebCore::WebCLContext::getSupportedImageFormats):
            (WebCore::WebCLContext::createFromGLBuffer):
            (WebCore::WebCLContext::createFromGLRenderbuffer):
            (WebCore::WebCLContext::createFromGLTexture):
            * Modules/webcl/WebCLContext.h:
            * Modules/webcl/WebCLDevice.cpp:
            (WebCore::WebCLDevice::getInfo):
            * Modules/webcl/WebCLDevice.h:
            * Modules/webcl/WebCLEvent.cpp:
            (WebCore::WebCLEvent::getInfo):
            (WebCore::WebCLEvent::getProfilingInfo):
            (WebCore::WebCLEvent::setCallback):
            (WebCore::WebCLEvent::processCallbackRegisterQueueForEvent):
            * Modules/webcl/WebCLEvent.h:
            * Modules/webcl/WebCLException.cpp:
            (WebCore::setExceptionFromComputeErrorCode):
            (WebCore::setExtensionsNotEnabledException):
            (WebCore::willThrowException):
            * Modules/webcl/WebCLException.h:
            * Modules/webcl/WebCLExtensionsAccessor.h:
            * Modules/webcl/WebCLHTMLInterop.cpp:
            (WebCore::WebCLHTMLInterop::extractDataFromCanvas):
            (WebCore::WebCLHTMLInterop::extractDataFromImage):
            (WebCore::WebCLHTMLInterop::extractDataFromImageData):
            * Modules/webcl/WebCLHTMLInterop.h:
            * Modules/webcl/WebCLImage.cpp:
            (WebCore::WebCLImage::create):
            (WebCore::WebCLImage::getGLTextureInfo):
            (WebCore::WebCLImage::getInfo):
            * Modules/webcl/WebCLImage.h:
            * Modules/webcl/WebCLKernel.cpp:
            (WebCore::WebCLKernel::create):
            (WebCore::WebCLKernel::createKernelsInProgram):
            (WebCore::WebCLKernel::getInfo):
            (WebCore::WebCLKernel::getWorkGroupInfo):
            (WebCore::WebCLKernel::setArg):
            (WebCore::WebCLKernel::getArgInfo):
            * Modules/webcl/WebCLKernel.h:
            * Modules/webcl/WebCLMemoryInitializer.cpp:
            (WebCore::WebCLMemoryInitializer::ensureMemoryInitialization):
            (WebCore::WebCLMemoryInitializer::commandQueueCreated):
            (WebCore::WebCLMemoryInitializer::bufferCreated):
            (WebCore::WebCLMemoryInitializer::processPendingMemoryInitializationList):
            (WebCore::WebCLMemoryInitializer::initializeOrQueueMemoryInitializationOfMemoryObject):
            * Modules/webcl/WebCLMemoryInitializer.h:
            * Modules/webcl/WebCLMemoryObject.cpp:
            (WebCore::WebCLMemoryObject::getInfo):
            (WebCore::WebCLMemoryObject::getGLObjectInfo):
            * Modules/webcl/WebCLMemoryObject.h:
            * Modules/webcl/WebCLObject.h:
            * Modules/webcl/WebCLPlatform.cpp:
            (WebCore::WebCLPlatform::getInfo):
            (WebCore::WebCLPlatform::getDevices):
            * Modules/webcl/WebCLPlatform.h:
            * Modules/webcl/WebCLProgram.cpp:
            (WebCore::WebCLProgram::create):
            (WebCore::WebCLProgram::getInfo):
            (WebCore::WebCLProgram::getBuildInfo):
            (WebCore::WebCLProgram::createKernel):
            (WebCore::WebCLProgram::createKernelsInProgram):
            (WebCore::WebCLProgram::build):
            (WebCore::WebCLProgram::ccDeviceListFromWebCLDeviceList):
            * Modules/webcl/WebCLProgram.h:
            * Modules/webcl/WebCLSampler.cpp:
            (WebCore::WebCLSampler::create):
            (WebCore::WebCLSampler::getInfo):
            * Modules/webcl/WebCLSampler.h:
            * Modules/webcl/WebCLUserEvent.cpp:
            (WebCore::WebCLUserEvent::create):
            (WebCore::WebCLUserEvent::setStatus):
            (WebCore::WebCLUserEvent::getInfo):
            * Modules/webcl/WebCLUserEvent.h:
  2. @SharathKamathK

    2014-03-07 Sharath Kamath <s.kamath@samsung.com>

    SharathKamathK authored
            [Part 2] Add validation for pitchValues in equeue*Image API's.
    
            Issue #453
    
            Reviewed by Antonio.
    
            isValidRegionForImage() is used to validate the Image length against region being read
            + offset given bu origin[].
            isValidRegionForHostPtr() is used to validate the HostPtr [TypedArrays] against
            hostRowPitch {used to move pointer for each row read} region being read.
            Does a early error handling, without going down to OpenCL for error handling.
    
            Test cases ::
            conformance/bindingTesting/queues/cl_commandQueue_enqueue####Image.html
    
            * Modules/webcl/WebCLCommandQueue.cpp:
            (WebCore::WebCLCommandQueue::enqueueReadImageBase):
            (WebCore::WebCLCommandQueue::enqueueWriteImageBase):
            (WebCore::WebCLCommandQueue::enqueueCopyImage):
            (WebCore::WebCLCommandQueue::enqueueCopyImageToBuffer):
            (WebCore::WebCLCommandQueue::enqueueCopyBufferToImage):
            * Modules/webcl/WebCLInputChecker.cpp:
            (WebCore::WebCLInputChecker::isValidRegionForImage):
            (WebCore::WebCLInputChecker::isValidRegionForHostPtr):
            * Modules/webcl/WebCLInputChecker.h:
Commits on Mar 10, 2014
  1. @tonikitoo

    2014-03-10 Antonio Gomes <a1.gomes@sisa.samsung.com>

    tonikitoo authored
            Create a caching mechanism to map CCDeviceID to ComputeDevice
            Issue #470
    
            Reviewed by TrustMe.
    
            OpenCL runtime returns the same CCDeviceID (handle to a CL device) whenever queried.
            Given that we wrap CCDeviceID objects with a ComputeDevice class now,
            we should make sure each CCDeviceID is wrapped by the same ComputeDevice
            object, keeping the analogy for the callers.
    
            Same applies to CCPlatformID and ComputePlatform.
    
            * platform/ComputeDevice.h:
            * platform/ComputePlatform.h:
            * platform/opencl/ComputeDeviceCL.cpp:
            (WebCore::computeDevicePool):
            (WebCore::ComputeDevice::create):
            * platform/opencl/ComputePlatformCL.cpp:
            (WebCore::computePlatformPool):
            (WebCore::ComputePlatform::create):
            (WebCore::ComputePlatform::getPlatformIDs):
            (WebCore::ComputePlatform::getDeviceIDs):
Commits on Mar 8, 2014
  1. @tonikitoo

    2014-03-07 Antonio Gomes <a1.gomes@sisa.samsung.com>

    tonikitoo authored
            Remove WebCLEvent cache mechanism
            Issue #473
    
            Reviewed by TrustMe.
    
            As per weekly call discussion on March/06, (see bug
            http://www.khronos.org/bugzilla/show_bug.cgi?id=1113)
            we should throw an exception if one sets a callback to
            a non-populated yet event.
    
            * Modules/webcl/WebCLCommandQueue.cpp:
            (WebCore::WebCLCommandQueue::enqueueWriteBufferBase):
            (WebCore::WebCLCommandQueue::enqueueWriteBufferRectBase):
            (WebCore::WebCLCommandQueue::enqueueReadBufferBase):
            (WebCore::WebCLCommandQueue::enqueueReadImageBase):
            (WebCore::WebCLCommandQueue::enqueueReadBufferRectBase):
            (WebCore::WebCLCommandQueue::enqueueNDRangeKernel):
            (WebCore::WebCLCommandQueue::enqueueWriteImageBase):
            (WebCore::WebCLCommandQueue::enqueueCopyImage):
            (WebCore::WebCLCommandQueue::enqueueCopyImageToBuffer):
            (WebCore::WebCLCommandQueue::enqueueCopyBufferToImage):
            (WebCore::WebCLCommandQueue::enqueueCopyBuffer):
            (WebCore::WebCLCommandQueue::enqueueCopyBufferRect):
            (WebCore::WebCLCommandQueue::enqueueAcquireGLObjects):
            (WebCore::WebCLCommandQueue::enqueueReleaseGLObjects):
            * Modules/webcl/WebCLEvent.cpp:
            (WebCore::WebCLEvent::setCallback):
            * Modules/webcl/WebCLEvent.h:
  2. @tonikitoo

    2014-03-07 Antonio Gomes <a1.gomes@sisa.samsung.com>

    tonikitoo authored
            setUpComputeContextProperties (WebCLContext) belongs to ComputeContext
            Issue #472
    
            Reviewed by TrustMe.
    
            No new tests No behavior change.
    
            * Modules/webcl/WebCLContext.cpp:
            (WebCore::WebCLContext::create):
            * platform/ComputeContext.h:
            * platform/opencl/ComputeContextCL.cpp:
            (WebCore::setUpComputeContextProperties):
            (WebCore::ComputeContext::ComputeContext):
  3. @tonikitoo

    2014-03-06 Antonio Gomes <a1.gomes@sisa.samsung.com>

    tonikitoo authored
            Removed some left over code from SHA e03b88f
    
            Mainly, removed some now duplicated ComputeDevice and ComputeContext methods.
    
            * platform/ComputeContext.h:
            * platform/ComputeDevice.h:
            (WebCore::ComputeDevice::getDeviceInfo2):
            * platform/ComputeExtensions.h:
            * platform/opencl/ComputeContextCL.cpp:
            * platform/opencl/ComputeExtensionsCL.cpp:
            (WebCore::ComputeExtensions::supports):
            (WebCore::ComputeExtensions::cacheExtensionsForDevice):
  4. @tonikitoo

    Merge pull request #475 from SRA-SiliconValley/arno/issue_474

    tonikitoo authored
    2014-03-07  Arnaud Renevier  <a.renevier@samsung.com>
    
        Add missing files to GNUmakefile.list.am
        Issue #474
    
        Reviewed by Antonio.
    
        * GNUmakefile.list.am:
Commits on Mar 7, 2014
  1. 2014-03-07 Arnaud Renevier <a.renevier@samsung.com>

    Arnaud Renevier authored
            Add missing files to GNUmakefile.list.am
            Issue #474
    
            Reviewed by NOBODY (OOPS!).
    
            * GNUmakefile.list.am:
  2. @SharathKamathK

    2014-03-06 Sharath Kamath <s.kamath@samsung.com>

    SharathKamathK authored
            Add switch for KHR_gl_sharing extension in WebCL.
    
            Fixed #466
    
            Reviewed by Antonio.
    
            Add a switch to turn on and off the KHR_gl_sharing API's.
            Without calling enableExtension("KHR_gl_sharing") the API must
            throw WEBCL_EXTENSION_NOT_ENABLED exception.
    
            Also moving the caching extension logic to the WebCLContext::create() API.
    
            All test cases under KHR_gl_sharing folder in extensions.
    
            * Modules/webcl/WebCLCommandQueue.cpp:
            (WebCore::WebCLCommandQueue::enqueueAcquireGLObjects):
            (WebCore::WebCLCommandQueue::enqueueReleaseGLObjects):
            * Modules/webcl/WebCLContext.cpp:
            (WebCore::WebCLContext::create):
            (WebCore::WebCLContext::WebCLContext):
            (WebCore::WebCLContext::createFromGLBuffer):
            (WebCore::WebCLContext::createFromGLRenderbuffer):
            (WebCore::WebCLContext::createFromGLTexture):
            * Modules/webcl/WebCLContext.h:
            * Modules/webcl/WebCLMemoryObject.cpp:
            (WebCore::WebCLMemoryObject::isExtensionEnabled):
            (WebCore::WebCLMemoryObject::getGLObjectInfo):
            * Modules/webcl/WebCLMemoryObject.h:
  3. @shilpashri

    2014-03-05 Shilpa Shri <shilpa.shri@samsung.com>

    shilpashri authored
            Check if device used to create a commandQueue is associated with the context.
    
            Fixed #467
    
            Reviewed by Antonio.
    
            Conformance files:
            conformance/bindingTesting/contextAndCreate/cl_context_createCommandQueue.html
    
            * Modules/webcl/WebCLContext.cpp:
            (WebCore::WebCLContext::createCommandQueue):
Commits on Mar 6, 2014
  1. @tonikitoo

    2014-03-06 Antonio Gomes <a1.gomes@sisa.samsung.com>

    tonikitoo authored
            Introduce ComputeDevice class
            Issue #468
    
            Break ComputeContext in several small classes
            Issue #365
    
            Reviewed by TrustMe.
            No new tests, no behavior change.
    
            Last missing class to be added to the Compute abstraction in
            /platform.
    
            Ideally, we can now move much of the input verification from
            Modules/webcl to /platform/OpenCL. That way we create a real
            Compute abstraction layer in /platform.
    
            * Modules/webcl/WebCLCommandQueue.cpp:
            * Modules/webcl/WebCLContext.cpp:
            (WebCore::WebCLContext::create):
            * Modules/webcl/WebCLDevice.cpp:
            (WebCore::WebCLDevice::create):
            (WebCore::WebCLDevice::WebCLDevice):
            (WebCore::WebCLDevice::getInfo):
            (WebCore::toWebCLDeviceArray):
            * Modules/webcl/WebCLDevice.h:
            (WebCore::WebCLDevice::platformObject):
            * Modules/webcl/WebCLExtensionsAccessor.cpp:
            * Modules/webcl/WebCLKernel.cpp:
            (WebCore::WebCLKernel::getWorkGroupInfo):
            * Modules/webcl/WebCLMemoryInitializer.cpp:
            (WebCore::WebCLMemoryInitializer::~WebCLMemoryInitializer):
            (WebCore::WebCLMemoryInitializer::ensureMemoryInitialization):
            * Modules/webcl/WebCLPlatform.cpp:
            (WebCore::WebCLPlatform::getDevices):
            * Modules/webcl/WebCLProgram.cpp:
            (WebCore::WebCLProgram::getBuildInfo):
            (WebCore::WebCLProgram::build):
            (WebCore::WebCLProgram::ccDeviceListFromWebCLDeviceList):
            * Modules/webcl/WebCLProgram.h:
            * WebCore.xcodeproj/project.pbxproj:
            * platform/ComputeCommandQueue.h:
            * platform/ComputeContext.h:
            * platform/ComputeDevice.h: Copied from Source/WebCore/platform/ComputePlatform.h.
            (WebCore::ComputeDevice::device):
            (WebCore::ComputeDevice::getDeviceInfo):
            * platform/ComputeKernel.h:
            (WebCore::ComputeKernel::getWorkGroupInfo):
            * platform/ComputePlatform.h:
            * platform/ComputeProgram.h:
            (WebCore::ComputeProgram::getBuildInfo):
            * platform/opencl/ComputeCommandQueueCL.cpp:
            (WebCore::ComputeCommandQueue::ComputeCommandQueue):
            * platform/opencl/ComputeContextCL.cpp:
            (WebCore::ComputeContext::ComputeContext):
            (WebCore::ComputeContext::createCommandQueue):
            * platform/opencl/ComputeDeviceCL.cpp: Copied from Source/WebCore/platform/ComputePlatform.h.
            (WebCore::ComputeDevice::ComputeDevice):
            (WebCore::ComputeDevice::getDeviceInfoBase):
            * platform/opencl/ComputePlatformCL.cpp:
            (WebCore::ComputePlatform::getDeviceIDs):
            * platform/opencl/ComputeProgramCL.cpp:
            (WebCore::ComputeProgram::buildProgram):
Commits on Mar 5, 2014
  1. @tonikitoo

    2014-03-05 Antonio Gomes <a1.gomes@sisa.samsung.com>

    tonikitoo authored
            Introduce ComputePlatform class
            Issue #455
    
            Reviewed by NOBODY (OOPS!).
    
            * Modules/webcl/WebCLContext.cpp:
            (WebCore::setUpComputeContextProperties):
            * Modules/webcl/WebCLExtensionsAccessor.cpp:
            * Modules/webcl/WebCLPlatform.cpp:
            (WebCore::WebCLPlatform::create):
            (WebCore::WebCLPlatform::WebCLPlatform):
            (WebCore::WebCLPlatform::getInfo):
            (WebCore::WebCLPlatform::getDevices):
            (WebCore::getPlatforms):
            * Modules/webcl/WebCLPlatform.h:
            (WebCore::WebCLPlatform::platformObject):
            * WebCore.xcodeproj/project.pbxproj:
            * platform/ComputeContext.h:
            (WebCore::ComputeContext::getDeviceInfo):
            * platform/ComputeExtensions.h:
            * platform/ComputeExtensionsTraits.h:
            (WebCore::CacheExtensions::perform):
            * platform/ComputePlatform.h: Copied from Source/WebCore/Modules/webcl/WebCLPlatform.h.
            (WebCore::ComputePlatform::platform):
            (WebCore::ComputePlatform::getPlatformInfo):
            * platform/opencl/ComputeContextCL.cpp:
            * platform/opencl/ComputeExtensionsCL.cpp:
            (WebCore::ComputeExtensions::supports):
            (WebCore::ComputeExtensions::cacheGlobalExtensions):
            (WebCore::ComputeExtensions::cacheExtensionsForPlatform):
            * platform/opencl/ComputePlatformCL.cpp: Added.
            (WebCore::ComputePlatform::ComputePlatform):
            (WebCore::ComputePlatform::getPlatformIDs):
            (WebCore::ComputePlatform::getDeviceIDs):
            (WebCore::ComputePlatform::getPlatformInfoBase):
  2. @SharathKamathK

    2014-02-25 Sharath Kamath <s.kamath@samsung.com>

    SharathKamathK authored
            [Part-2] Cache the enabled extensions when we createContext.
    
            Fixed #454
    
            Reviewed by Antonio.
    
            Pending work for commit 71d6b00.
            We need to cache the enabled extensions in the context.
            Any extension enabled after context creation will not enable the features
            for the old context.
    
            Also change signature of isExtensionEnabled() to take raw pointer.
    
            * Modules/webcl/WebCLContext.cpp:
            (WebCore::WebCLContext::WebCLContext):
            (WebCore::WebCLContext::getEnabledExtensions):
            * Modules/webcl/WebCLContext.h:
Commits on Mar 3, 2014
  1. @tonikitoo

    2014-03-03 Antonio Gomes <a1.gomes@sisa.samsung.com>

    tonikitoo authored
            WebCLPlatform::getDevices - Omitting the device type is equivalent to specifying DEVICE_TYPE_ALL
            Issue #464
    
            Reviewed by TrustMe.
    
            * Modules/webcl/WebCLPlatform.cpp:
            (WebCore::WebCLPlatform::getDevices):
            * Modules/webcl/WebCLPlatform.h:
  2. @tonikitoo

    2014-03-03 Antonio Gomes <a1.gomes@sisa.samsung.com>

    tonikitoo authored
            Get rid of releasePlatformObjectImpl overrides where possible
            Issue #445
    
            Reviewed by TrustMe.
    
            Now that WebCLDevice and WebCLPlatform are
            not WebCLObject-derived objects anymore,
            there is not need to specialize this method
            and release means deletion of the associated
            platformObject for all classes.
    
            This makes Igor's dream true :)
    
            * Modules/webcl/WebCLCommandQueue.cpp:
            * Modules/webcl/WebCLCommandQueue.h:
            * Modules/webcl/WebCLContext.cpp:
            * Modules/webcl/WebCLContext.h:
            * Modules/webcl/WebCLEvent.cpp:
            * Modules/webcl/WebCLEvent.h:
            * Modules/webcl/WebCLKernel.cpp:
            * Modules/webcl/WebCLKernel.h:
            * Modules/webcl/WebCLMemoryObject.cpp:
            * Modules/webcl/WebCLMemoryObject.h:
            * Modules/webcl/WebCLObject.h:
            (WebCore::WebCLObjectImpl::releasePlatformObject):
            * Modules/webcl/WebCLProgram.cpp:
            * Modules/webcl/WebCLProgram.h:
            * Modules/webcl/WebCLSampler.cpp:
            * Modules/webcl/WebCLSampler.h:
            * Modules/webcl/WebCLUserEvent.cpp:
            * Modules/webcl/WebCLUserEvent.h:
  3. @tonikitoo

    2014-03-03 Antonio Gomes <a1.gomes@sisa.samsung.com>

    tonikitoo authored
            Break the WebCLPlatform and WebCLDevice inheritance from WebCLObject.
            Issue #463
    
            Reviewed by TrustMe.
    
            WebCLObject offers facilities for two jobs mainly:
            (1) make derived objects trackable, so "releaseAll" can
            be easily implemented;
            (2) implement "release" method.
    
            WebCLPlatform and WebCLDevice objects are not a release-able,
            so they do not benefit from (1) or (2).
    
            Lets break this dependency apart, and move on.
    
            * Modules/webcl/WebCLPlatform.cpp:
            (WebCore::WebCLPlatform::WebCLPlatform):
            (WebCore::WebCLPlatform::getInfo):
            (WebCore::WebCLPlatform::getDevices):
            * Modules/webcl/WebCLPlatform.h:
            (WebCore::WebCLPlatform::platformObject):
Commits on Feb 28, 2014
  1. @tonikitoo

    2014-02-28 Antonio Gomes <a1.gomes@sisa.samsung.com>

    tonikitoo authored
            Optimize memory initialization
            Issue #452
    
            Reviewed by TrustMe.
    
            Added a helper class called WebCLMemoryInitializer in order to
            faster zero-out global memory buffers.
    
            In summary, OpenCL drivers are not reliable with regards to memory initialization.
            The patch replaces the existing calloc-based memory initialization by an opencl
            kernel-based approach, where we benetif from parallelization. It is a 2-pass initialization:
            1- initialize the size%16 bytes using scalar 'char' type;
            2- initialize the remaining bytes using char16 assingment (so 16bytes per thread).
    
            Numbers:
            Old approach:
            Cold run: 10% of the total time running a full conformance test suite.
            Hot run: 4%                           ''
    
            New approach: 1.3% of the total time running a full conformance test suite.
    
            * Modules/webcl/WebCLBuffer.cpp:
            (WebCore::WebCLBuffer::WebCLBuffer):
            * Modules/webcl/WebCLBuffer.h:
            (WebCore::WebCLBuffer::createWeakPtrForLazyInitialization):
            * Modules/webcl/WebCLCommandQueue.cpp:
            (WebCore::WebCLCommandQueue::WebCLCommandQueue):
            * Modules/webcl/WebCLCommandQueue.h:
            (WebCore::WebCLCommandQueue::createWeakPtrForLazyInitialization):
            * Modules/webcl/WebCLContext.cpp:
            (WebCore::WebCLContext::WebCLContext):
            (WebCore::WebCLContext::createCommandQueue):
            (WebCore::WebCLContext::postCreateCommandQueue):
            (WebCore::WebCLContext::postCreateBuffer):
            (WebCore::WebCLContext::createBufferBase):
            (WebCore::WebCLContext::createBuffer):
            * Modules/webcl/WebCLContext.h:
            * Modules/webcl/WebCLDevice.cpp:
            (WebCore::WebCLDevice::getInfo):
            * Modules/webcl/WebCLMemoryInitializer.cpp: Added.
            (WebCore::WebCLMemoryInitializer::WebCLMemoryInitializer):
            (WebCore::WebCLMemoryInitializer::~WebCLMemoryInitializer):
            (WebCore::WebCLMemoryInitializer::ensureMemoryInitialization):
            (WebCore::WebCLMemoryInitializer::commandQueueCreated):
            (WebCore::WebCLMemoryInitializer::bufferCreated):
            (WebCore::WebCLMemoryInitializer::processPendingMemoryInitializationList):
            (WebCore::WebCLMemoryInitializer::validCommandQueueForMemoryInitialization):
            (WebCore::WebCLMemoryInitializer::initializeOrQueueMemoryInitializationOfMemoryObject):
            * Modules/webcl/WebCLMemoryInitializer.h: Copied from Source/WebCore/Modules/webcl/WebCLBuffer.h.
            * Modules/webcl/WebCLSampler.h:
            * WebCore.xcodeproj/project.pbxproj:
            * platform/ComputeCommandQueue.h:
            * platform/opencl/ComputeCommandQueueCL.cpp:
            (WebCore::ComputeCommandQueue::enqueueTask):
  2. @SharathKamathK

    2014-02-20 Sharath Kamath <s.kamath@samsung.com>

    SharathKamathK authored
            [Part -1 ] Add validation for pitchValues in equeue* API's
    
            Issue #453
    
            Reviewed by Antonio.
    
            Adding check for validating row & slice pitch values sent by user into isValidRegionForMemoryObject().
            This commit takes only the enqueue*Rect API's.
    
            Testing is done to validate if the read/write goes out of bound for the
            buffer/hostPtr. In that case some OpenCL drivers throw exception and some
            dont (sometimes causing crashes).
    
            conformance/bindingTesting/queues/cl_commandQueue_enqueueCopyBufferRect.html
            conformance/bindingTesting/queues/cl_commandQueue_enqueueReadBufferRect.html
            conformance/bindingTesting/queues/cl_commandQueue_enqueueWriteBufferRect.html
            conformance/functionalityTesting/enqueueOperations/bufferRectOperations.html
    
            * Modules/webcl/WebCLCommandQueue.cpp:
            (WebCore::WebCLCommandQueue::enqueueWriteBufferRectBase):
            (WebCore::WebCLCommandQueue::enqueueReadBufferRectBase):
            * Modules/webcl/WebCLInputChecker.cpp:
            (WebCore::WebCLInputChecker::isValidRegionForMemoryObject):
  3. @SharathKamathK

    2014-02-21 Sharath Kamath <s.kamath@samsung.com>

    SharathKamathK authored
            Rename isValidPitchForArrayBufferView to more valid name.
    
            Fixed #460
    
            Reviewed by Antonio.
    
            isValidPitchForArrayBufferView() validates if the size of data chunk
            being accessed is valid for the ArrayBufferView.
            Renaming it to isValidDataSizeForArrayBufferView().
    
            * Modules/webcl/WebCLCommandQueue.cpp:
            (WebCore::WebCLCommandQueue::enqueueWriteBuffer):
            (WebCore::WebCLCommandQueue::enqueueWriteBufferRect):
            (WebCore::WebCLCommandQueue::enqueueReadBuffer):
            (WebCore::WebCLCommandQueue::enqueueReadImage):
            (WebCore::WebCLCommandQueue::enqueueReadBufferRect):
            (WebCore::WebCLCommandQueue::enqueueWriteImage):
            * Modules/webcl/WebCLInputChecker.cpp:
            (WebCore::WebCLInputChecker::isValidDataSizeForArrayBufferView):
            * Modules/webcl/WebCLInputChecker.h:
Commits on Feb 26, 2014
  1. @SharathKamathK

    2014-02-25 Sharath Kamath <s.kamath@samsung.com>

    SharathKamathK authored
            Calculate rowPitch when hostPtr != NULL and rowPitch == 0
    
            Fixed #456
    
            Reviewed by Antonio Gomes.
    
            Spotted by Anthony Liot.
    
            This fixes a translated demo.
    
            Validating the use sent rowPitch value, to avoid out of bound
            access of the hostPtr.
            Also validating the value as per specification conditions.
    
            * Modules/webcl/WebCLContext.cpp:
            (WebCore::WebCLContext::createImage):
Commits on Feb 25, 2014
  1. @SharathKamathK

    2014-02-24 Sharath Kamath <s.kamath@samsung.com>

    SharathKamathK authored
            Add switch for html_image extension in WebCL.
    
            Fixed #454
    
            Reviewed by Antonio.
    
            As per resolution in ::
            https://www.khronos.org/bugzilla/show_bug.cgi?id=1121.
    
            A extension is enabled at context level. i.e if a extension is
            enabled before context is created, the context will have those features
            enabled.
            So adding a switch() at WebCLContext, to make sure API of "WebCL_html_image"
            extension are available only with context that have this feature enabled.
    
            All test case for "WebCL_html_image" extension in test suite.
    
            * Modules/webcl/WebCLCommandQueue.cpp:
            (WebCore::WebCLCommandQueue::enqueueWriteBuffer):
            (WebCore::WebCLCommandQueue::enqueueWriteBufferRect):
            (WebCore::WebCLCommandQueue::enqueueReadBuffer):
            (WebCore::WebCLCommandQueue::enqueueReadImage):
            (WebCore::WebCLCommandQueue::enqueueReadBufferRect):
            (WebCore::WebCLCommandQueue::enqueueWriteImage):
            * Modules/webcl/WebCLContext.cpp:
            (WebCore::WebCLContext::WebCLContext):
            (WebCore::WebCLContext::isExtensionEnabled):
            (WebCore::WebCLContext::createBuffer):
            (WebCore::WebCLContext::createImage):
            * Modules/webcl/WebCLContext.h:
            * Modules/webcl/WebCLException.cpp:
            * Modules/webcl/WebCLException.h:
            * Modules/webcl/WebCLException.idl:
            * Modules/webcl/WebCLExtensionsAccessor.cpp:
            (WebCore::::enableExtension):
            (WebCore::::isEnabledExtension):
            * Modules/webcl/WebCLExtensionsAccessor.h:
            (WebCore::WebCLExtensionsAccessor::WebCLExtensionsAccessor):
Commits on Feb 20, 2014
  1. @shilpashri

    2014-02-19 Shilpa Shri <shilpa.shri@samsung.com>

    shilpashri authored
            WebCLMemobject::getInfo() returns invalid MEM_FLAGS.
    
            Fixed #457
    
            Reviewed by Sharath and Antonio.
    
            Summary :
            - Masking out HOST_PTR value obtained from OpenCL.
            - Correcting mistake in commit : 0cf463a
    
            Conformance test:
            conformance/bindingTesting/fetchInfo/cl_memoryObject_getinfo.html
    
            * Modules/webcl/WebCLDevice.cpp:
            (WebCore::WebCLDevice::getInfo):
            * Modules/webcl/WebCLKernel.cpp:
            (WebCore::WebCLKernel::getWorkGroupInfo):
            * Modules/webcl/WebCLMemoryObject.cpp:
            (WebCore::WebCLMemoryObject::getInfo):
Commits on Feb 18, 2014
  1. @shilpashri

    2014-02-14 Shilpa Shri <shilpa.shri@samsung.com>

    shilpashri authored
            GetInfo must not return TypedArray.
    
            Fixed #450
    
            Reviewed by Antonio.
    
            Conformance tests:
            conformance/bindingTesting/fetchInfo/cl_device_getinfo.html
            conformance/bindingTesting/fetchInfo/cl_kernel_getWorkGroupInfo.html
    
            * Modules/webcl/WebCLCommandQueue.cpp:
            * Modules/webcl/WebCLDevice.cpp:
            (WebCore::WebCLDevice::getInfo):
            * Modules/webcl/WebCLGetInfo.cpp:
            (WebCore::WebCLGetInfo::WebCLGetInfo):
            (WebCore::WebCLGetInfo::getWebCLIntArray):
            * Modules/webcl/WebCLGetInfo.h:
            * Modules/webcl/WebCLKernel.cpp:
            (WebCore::WebCLKernel::getWorkGroupInfo):
            * bindings/js/JSWebCLCustom.cpp:
            (WebCore::toJS):
  2. @SharathKamathK

    2014-02-14 Sharath Kamath <s.kamath@samsung.com>

    SharathKamathK authored
            Simplify handing of HTML video/image/canvas content.
    
            Fixed #18
    
            Reviewed by Antonio.
    
            GC3D::packImageData() can be reused to unpack a HTMLImage &
            HTMLCanvas and extract the data from it.
            Using graphics/GraphicsContext3D fucntion in ComputeContext.
    
            All test cases wrt HTMLImage & HTMLCanvas in extension folder.
    
            * Modules/webcl/WebCLHTMLInterop.cpp:
            (WebCore::WebCLHTMLInterop::extractDataFromCanvas):
            (WebCore::WebCLHTMLInterop::extractDataFromImage):
            * platform/ComputeContext.h:
            * platform/opencl/ComputeContextCL.cpp:
            (WebCore::ComputeContext::CCPackImageData):
Commits on Feb 17, 2014
  1. @SharathKamathK

    2014-02-07 Sharath Kamath <s.kamath@samsung.com>

    SharathKamathK authored
            [Part 2] Enqueue* API boundary checks.
    
            Issue #408
    
            Reviewed by Antonio.
    
            Mainly adding boundry checks for enqueueCopy* API's.
            This will ensure we validate the region being copied
            before we send the request to underlying OpenCL.
    
            /conformance/bindingTesting/queues/cl_commandQueue_enqueueCopyImage.html
            conformance/functionalityTesting/enqueueOperations/enqueueCopyImage.html
    
            * Modules/webcl/WebCLCommandQueue.cpp:
            (WebCore::WebCLCommandQueue::enqueueWriteImageBase):
            (WebCore::WebCLCommandQueue::enqueueCopyImage):
            (WebCore::WebCLCommandQueue::enqueueCopyImageToBuffer):
            (WebCore::WebCLCommandQueue::enqueueCopyBufferToImage):
            (WebCore::WebCLCommandQueue::enqueueCopyBuffer):
            * Modules/webcl/WebCLImage.h:
            (WebCore::WebCLImage::imageDescriptor):
            * Modules/webcl/WebCLInputChecker.cpp:
            (WebCore::WebCLInputChecker::isValidRegionForImage):
            * Modules/webcl/WebCLInputChecker.h:
  2. @SharathKamathK

    2014-02-14 Sharath Kamath <s.kamath@samsung.com>

    SharathKamathK authored
            Add slicePitch to enqueueReadBufferRect with
    
            Fixed #451
    
            Reviewed by Antonio.
    
            Mismatch with specification.
            http://www.khronos.org/registry/webcl/extensions/WEBCL_html_image/
    
            Test cases in conformance/extension/WEBCL_html_image/cl_commandQueue_enqueueReadBufferRect_with_HTMLCanvasElement.html
    
            * Modules/webcl/WebCLCommandQueue.cpp:
            (WebCore::WebCLCommandQueue::enqueueReadBufferRect):
            * Modules/webcl/WebCLCommandQueue.h:
            * Modules/webcl/WebCLCommandQueue.idl:
Commits on Feb 13, 2014
  1. @tonikitoo

    2014-02-12 Antonio Gomes <a1.gomes@sisa.samsung.com>

    tonikitoo authored
            Introduce ComputeSampler
            Issue #444
    
            Reviewed by TrustMe.
    
            * Modules/webcl/WebCLKernel.cpp:
            (WebCore::WebCLKernel::setArg):
            * Modules/webcl/WebCLSampler.cpp:
            (WebCore::WebCLSampler::create):
            (WebCore::WebCLSampler::WebCLSampler):
            (WebCore::WebCLSampler::releasePlatformObjectImpl):
            * Modules/webcl/WebCLSampler.h:
            * WebCore.xcodeproj/project.pbxproj:
            * platform/ComputeContext.h:
            (WebCore::ComputeContext::getPlatformInfo):
            * platform/ComputeKernel.h:
            * platform/ComputeSampler.h: Copied from Source/WebCore/platform/ComputeKernel.h.
            (WebCore::ComputeSampler::sampler):
            (WebCore::ComputeSampler::getSamplerInfo):
            * platform/opencl/ComputeContextCL.cpp:
            (WebCore::ComputeContext::createSampler):
            * platform/opencl/ComputeKernelCL.cpp:
            (WebCore::ComputeKernel::setKernelArg):
            * platform/opencl/ComputeSamplerCL.cpp: Copied from Source/WebCore/platform/ComputeKernel.h.
            (WebCore::ComputeSampler::ComputeSampler):
            (WebCore::ComputeSampler::~ComputeSampler):
            (WebCore::ComputeSampler::getSamplerInfoBase):
            (WebCore::ComputeSampler::release):
Commits on Feb 12, 2014
  1. @tonikitoo

    2014-02-12 Antonio Gomes <a1.gomes@sisa.samsung.com>

    tonikitoo authored
            Simple parser bug
            Issue #443
    
            Spotted and tested by Anthony Liot.
    
            There can be a token that contains the kernel name string
            and has an index smaller than the current "kernel" keywork
            declaration being examined.
    
            To fix that, turn the assert into a 'if' clause.
    
            * Modules/webcl/WebCLKernelArgInfoProvider.cpp:
            (WebCore::WebCLKernelArgInfoProvider::ensureInfo):
Commits on Feb 10, 2014
  1. @SharathKamathK

    2014-01-27 Sharath Kamath <s.kamath@samsung.com>

    SharathKamathK authored
            WebCLProgram::build must validate the devices sent.
    
            Fixed #421
    
            Reviewed by Antonio.
    
            * Modules/webcl/WebCLContext.h:
            (WebCore::WebCLContext::contextProperties):
            * Modules/webcl/WebCLProgram.cpp:
            (WebCore::WebCLProgram::getBuildInfo):
            (WebCore::WebCLProgram::build):
            (WebCore::WebCLProgram::ccDeviceListFromWebCLDeviceList):
            * Modules/webcl/WebCLProgram.h:
Commits on Feb 6, 2014
  1. @tonikitoo

    2014-02-06 Antonio Gomes <a1.gomes@sisa.samsung.com>

    tonikitoo authored
            Introduce ComputeMemoryObject
            Issue #427
    
            Reviewed by TrustMe.
    
            Make access to PlatformComputeObject through
            ComputeMemoryObject. It affects the following WebCL classes:
            WebCLMemoryObject, WebCLBuffer and WebCLImage, WebCLCommandQueue
            and WebCLKernel. The respective compute classes are also adapted accordingly.
    
            No behavior change.
    
            * Modules/webcl/WebCLBuffer.cpp:
            (WebCore::WebCLBuffer::create):
            (WebCore::WebCLBuffer::WebCLBuffer):
            (WebCore::WebCLBuffer::createSubBuffer):
            * Modules/webcl/WebCLBuffer.h:
            * Modules/webcl/WebCLCommandQueue.cpp:
            (WebCore::WebCLCommandQueue::enqueueWriteBufferBase):
            (WebCore::WebCLCommandQueue::enqueueWriteBufferRectBase):
            (WebCore::WebCLCommandQueue::enqueueReadBufferBase):
            (WebCore::WebCLCommandQueue::enqueueReadImageBase):
            (WebCore::WebCLCommandQueue::enqueueReadBufferRectBase):
            (WebCore::WebCLCommandQueue::enqueueWriteImageBase):
            (WebCore::WebCLCommandQueue::enqueueCopyImage):
            (WebCore::WebCLCommandQueue::enqueueCopyImageToBuffer):
            (WebCore::WebCLCommandQueue::enqueueCopyBufferToImage):
            (WebCore::WebCLCommandQueue::enqueueCopyBuffer):
            (WebCore::WebCLCommandQueue::enqueueCopyBufferRect):
            (WebCore::WebCLCommandQueue::enqueueAcquireGLObjects):
            (WebCore::WebCLCommandQueue::enqueueReleaseGLObjects):
            * Modules/webcl/WebCLImage.cpp:
            (WebCore::WebCLImage::create):
            (WebCore::WebCLImage::getGLTextureInfo):
            (WebCore::WebCLImage::WebCLImage):
            * Modules/webcl/WebCLImage.h:
            * Modules/webcl/WebCLKernel.cpp:
            (WebCore::WebCLKernel::setArg):
            * Modules/webcl/WebCLMemoryObject.cpp:
            (WebCore::WebCLMemoryObject::create):
            (WebCore::WebCLMemoryObject::WebCLMemoryObject):
            (WebCore::WebCLMemoryObject::getInfo):
            (WebCore::WebCLMemoryObject::releasePlatformObjectImpl):
            * Modules/webcl/WebCLMemoryObject.h:
            * WebCore.xcodeproj/project.pbxproj:
            * platform/ComputeCommandQueue.h:
            * platform/ComputeContext.h:
            (WebCore::ComputeContext::getSamplerInfo):
            * platform/ComputeKernel.h:
            * platform/ComputeMemoryObject.h: Added.
            (WebCore::ComputeMemoryObject::getImageInfo):
            (WebCore::ComputeMemoryObject::getGLTextureInfo):
            (WebCore::ComputeMemoryObject::getMemoryObjectInfo):
            (WebCore::ComputeMemoryObject::memoryObject):
            * platform/opencl/ComputeCommandQueueCL.cpp:
            (WebCore::ComputeCommandQueue::enqueueWriteBuffer):
            (WebCore::ComputeCommandQueue::enqueueWriteBufferRect):
            (WebCore::ComputeCommandQueue::enqueueReadBuffer):
            (WebCore::ComputeCommandQueue::enqueueReadBufferRect):
            (WebCore::ComputeCommandQueue::enqueueReadImage):
            (WebCore::ComputeCommandQueue::enqueueWriteImage):
            (WebCore::ccMemoryObjectListFromComputeMemoryObjectList):
            (WebCore::ComputeCommandQueue::enqueueAcquireGLObjects):
            (WebCore::ComputeCommandQueue::enqueueReleaseGLObjects):
            (WebCore::ComputeCommandQueue::enqueueCopyImage):
            (WebCore::ComputeCommandQueue::enqueueCopyImageToBuffer):
            (WebCore::ComputeCommandQueue::enqueueCopyBufferToImage):
            (WebCore::ComputeCommandQueue::enqueueCopyBuffer):
            (WebCore::ComputeCommandQueue::enqueueCopyBufferRect):
            * platform/opencl/ComputeContextCL.cpp:
            (WebCore::ComputeContext::createBuffer):
            (WebCore::ComputeContext::createImage2D):
            (WebCore::ComputeContext::createFromGLBuffer):
            (WebCore::ComputeContext::createFromGLRenderbuffer):
            (WebCore::ComputeContext::createFromGLTexture2D):
            * platform/opencl/ComputeKernelCL.cpp:
            (WebCore::ComputeKernel::setKernelArg):
            * platform/opencl/ComputeMemoryObjectCL.cpp: Added.
            (WebCore::computeMemoryTypeToCL):
            (WebCore::ComputeMemoryObject::~ComputeMemoryObject):
            (WebCore::ComputeMemoryObject::ComputeMemoryObject):
            (WebCore::ComputeMemoryObject::createSubBuffer):
            (WebCore::ComputeMemoryObject::getImageInfoBase):
            (WebCore::ComputeMemoryObject::getGLTextureInfoBase):
            (WebCore::ComputeMemoryObject::getMemoryObjectInfoBase):
            (WebCore::ComputeMemoryObject::release):
  2. @tonikitoo

    2014-02-06 Antonio Gomes <a1.gomes@sisa.samsung.com>

    tonikitoo authored
            Fix a leak in WebCLCommenQueue::release
            Issue #442
    
            Reviewed by TrustMe.
    
            * Modules/webcl/WebCLCommandQueue.cpp:
            (WebCore::WebCLCommandQueue::releasePlatformObjectImpl):
Commits on Feb 5, 2014
  1. @tonikitoo

    2014-02-05 Antonio Gomes <a1.gomes@sisa.samsung.com>

    tonikitoo authored
            crash on createImage2D
            Issue #440
    
            Reviewed by TrustMe.
    
            Covered by the allocations' webcl app
            (translated from OpenCL by Anthony Liot).
    
            Clear use-after-free bug:
    
            void *data = 0;
            {
                data = ArrayBuffer::create(sizeInBytes, bytesPerElement)->data();
            }
            bleh(data); // 'data' has been free'd at this point already.
    
            Additionally, the way clImage gets allocated was wrong: it has to
            take width, height, channelOrder and channelType into account.
    
            * Modules/webcl/WebCLBuffer.cpp:
            (WebCore::WebCLBuffer::create):
            * Modules/webcl/WebCLContext.cpp:
            (WebCore::WebCLContext::createBufferBase):
            (WebCore::WebCLContext::createBuffer):
            (WebCore::WebCLContext::createImage2DBase):
            (WebCore::numberOfChannelsForChannelOrder):
            (WebCore::bytesPerChannelType):
            (WebCore::WebCLContext::createImage):
            * Modules/webcl/WebCLImage.cpp:
            (WebCore::WebCLImage::create):
Something went wrong with that request. Please try again.