2013-04-23  Sharath Kamath  <s.kamath@samsung.com>

        Use [Optional=DefaultIsUndefined] where appropriated in WebCL idl's
        Issue #211

        Reviewed by Antonio.

        No new tests (OOPS!).

        * Modules/webcl/WebCLCommandQueue.h:
        (WebCLCommandQueue):
        * Modules/webcl/WebCLCommandQueue.idl:
        * Modules/webcl/WebCLContext.h:
        (WebCLContext):
        * Modules/webcl/WebCLContext.idl:
        * Modules/webcl/WebCLProgram.h:
        (WebCLProgram):
        * Modules/webcl/WebCLProgram.idl:
2013-04-27  Antonio Gomes  <a1.gomes@sisa.samsung.com>

        Various unreviewed style fixes all over.

        * Modules/webcl/WebCLCommandQueue.cpp:
        (WebCore::WebCLCommandQueue::enqueueNDRangeKernel):
        * Modules/webcl/WebCLDevice.h:
        * Modules/webcl/WebCLGLImage.idl:
        * Modules/webcl/WebCLGLObjectInfo.h:
        (WebCLGLObjectInfo):
        * Modules/webcl/WebCLImage.idl:
        * Modules/webcl/WebCLPlatform.cpp:
        (WebCore::WebCLPlatform::create):
        (WebCore::WebCLPlatform::WebCLPlatform):
        * Modules/webcl/WebCLPlatform.h:
        * bindings/js/JSWebCLCustom.cpp:
        (WebCore::JSWebCL::getSupportedExtensions):
        * bindings/js/JSWebCLDeviceCustom.cpp:
        (WebCore::JSWebCLDevice::getInfo):
        (WebCore::JSWebCLDevice::getSupportedExtensions):
        * bindings/js/JSWebCLPlatformCustom.cpp:
        (WebCore::JSWebCLPlatform::getInfo):
        (WebCore::JSWebCLPlatform::getSupportedExtensions):
2013-04-26  Antonio Gomes  <a1.gomes@sisa.samsung.com>

        Unreviewed removal of WebCL.h include from many files.

        There were some left WebCL.h includes still, but to
        be removed later. It is less trivial.

        * Modules/webcl/WebCL.h:
        * Modules/webcl/WebCLBuffer.cpp:
        * Modules/webcl/WebCLCommandQueue.cpp:
        * Modules/webcl/WebCLEvent.cpp:
        * Modules/webcl/WebCLGLBuffer.cpp:
        * Modules/webcl/WebCLImage.cpp:
        * Modules/webcl/WebCLKernel.cpp:
        * Modules/webcl/WebCLMemoryObject.cpp:
        * Modules/webcl/WebCLProgram.cpp:
        (WebCore::WebCLProgram::getBuildInfo):
        * Modules/webcl/WebCLSampler.cpp:
        * bindings/js/JSWebCLCustom.cpp:
2013-04-26  Antonio Gomes  <a1.gomes@sisa.samsung.com>

        Implement CL-GL as an extension (part 6)
        Issue #210

        Reviewed by Igor.

        Underlying /platform support for "compute extensions".
        Patch follows the logic that Extensions3D has to support
        WebGL/OpenGL{ES} extensions.

        Support was added for querying about WebCL extensions
        in all three levels: global, platform and device.
        Three following methods now work correctly:
        - WebCL::getSupportedExtension
        - WebCLPlatform::getSupportedExtension
        - WebCLDevice::getSupportedExtension

        The logic within ::cacheGlobalExtensions method is as following:
        0) Get all OpenCL platforms available.
        1) Get the extensions available in the first platform,
           adding them to a Hash.
        2) If there is only this OpenCL platform available (common
           case), we are done. Bail out!
        3) For any other platform available, check the intersection
           of extensions supported.
        4) In the end, the Hash has only extensions supported by all platforms.

        * Modules/webcl/WebCL.cpp:
        (WebCore::WebCL::getSupportedExtensions):
        * Modules/webcl/WebCLDevice.cpp:
        (WebCore::WebCLDevice::getSupportedExtensions):
        * Modules/webcl/WebCLPlatform.cpp:
        (WebCore::WebCLPlatform::getSupportedExtensions):
        * Modules/webcl/WebCLPlatform.idl:
        * WebCore.xcodeproj/project.pbxproj:
        * platform/opencl/ExtensionsCL.cpp: Added.
        (WebCore):
        (WebCore::ExtensionsCL::get):
        (WebCore::ExtensionsCL::ExtensionsCL):
        (WebCore::ExtensionsCL::~ExtensionsCL):
        (WebCore::ExtensionsCL::supports):
        (WebCore::ExtensionsCL::initializeGlobalExtensions):
        (WebCore::ExtensionsCL::supportsExtension):
        (WebCore::ExtensionsCL::cacheGlobalExtensions):
        * platform/opencl/ExtensionsCL.h: Added.
        (WebCore):
        (ExtensionsCL):
        (WebCore::ExtensionsCL::cacheExtensionsForPlatform):
        (WebCore::ExtensionsCL::cacheExtensionsForDevice):
        (Functor):
        (WebCore::ExtensionsCL::Functor::operator()):
        (WebCore::ExtensionsCL::CacheExtensions::perform):
        (WebCore::ExtensionsCL::cacheExtensionsHelper):
2013-04-26  Antonio Gomes  <a1.gomes@sisa.samsung.com>

        Implement CL-GL as an extension (part 7)
        Issue #210

        Reviewed by Igor.

        Changed the struture of platform/ Compute extensions support
        1) platform/opencl/ExtensionsCL.h was split in:
        - platform/ComputeExtensions.h
        - platform/ComputeExtensionsTraits.h

        2) platform/opencl/ExtensionsCL.cpp was renamed to
        - platform/openc/ComputeExtensionsCL.cpp

        Also, some 'const' qualifiers were added to specific methods.

        * Modules/webcl/WebCL.cpp:
        (WebCore::WebCL::getExtension):
        * Modules/webcl/WebCLDevice.cpp:
        * Modules/webcl/WebCLPlatform.cpp:
        * WebCore.xcodeproj/project.pbxproj:
        * platform/ComputeExtensions.h: Added.
        (WebCore):
        (ComputeExtensions):
        * platform/ComputeExtensionsTraits.h: Added.
        (WebCore):
        (ComputeExtensionFunctor):
        (WebCore::ComputeExtensionFunctor::operator()):
        (WebCore::CacheExtensions::perform):
        (WebCore::cacheExtensionsHelper):
        * platform/opencl/ComputeExtensionsCL.cpp: Renamed from Source/WebCore/platform/opencl/ExtensionsCL.cpp.
        (WebCore):
        (WebCore::ComputeExtensions::get):
        (WebCore::ComputeExtensions::ComputeExtensions):
        (WebCore::ComputeExtensions::~ComputeExtensions):
        (WebCore::ComputeExtensions::supports):
        (WebCore::ComputeExtensions::initializeGlobalExtensions):
        (WebCore::ComputeExtensions::supportsExtension):
        (WebCore::ComputeExtensions::cacheGlobalExtensions):
        (WebCore::ComputeExtensions::cacheExtensionsForDevice):
        (WebCore::ComputeExtensions::cacheExtensionsForPlatform):
        * platform/opencl/ExtensionsCL.h: Removed.
 Week 14

 * Add Initial Structure for WebCL Tests
 * Test all OpenCL devices using a shared context
 * Create initial wrapper to WebCL tests
 * Initial test to WebCL wrapper
 * Using the commom resource files to WebCL tests
 * Add instanceof tests for WebCL objects
 * Created constants tests for WebCL.idl and WebCLKernelArgumentsType.idl
 * Added tests for WebCLEvent, WebCLSampler and WebCLImageDescriptor instances
 * Add a stress test for WebCLBuffer.
Week 15

 * Added functions to handle WebCLSampler and WebCLEvent
 * LayoutTest for WebCLEvent
 * Updated webcl-kernel-result layout test to fit the with webcl-test class
 * Add stress test for WebCLSampler.
 * Added stress test for create and release WebCLEvent instances
 * Add a stress test for WebCLCommandQueue.
 * Added stress test for WebCLImage object
 * Add stress test for WebCLProgram.
 * Port of Nokia Random Generator example to webkit
 * Add stress test for WebCLContext.
 * Stress test - 4 kernels in the same device
 * Create WebCL Layout test with several kernels
Week 16

 * Added WebCLProxy
   - Implements WCLPlatform
   - Implement WCLDevice
   - Implemented WCLContext
   - Implement WCLProgram
   - Implemented WCLKernel object
   - Fixing WCLKernel.getWorkGroupInfo implementation
   - Created parameters validation on WCLKernel getWorkGroupInfo
   - Change WCLKernel setArgs implementation
   - Implement WCLBuffer in WebCLProxy.
   - Implement WCLCommandQueue.
   - Changes in code style
 * Update code style for Layout and Stress Tests.
 * Created new way to set Kernel arguments
 * Created new methods and objects on WebCLTestUtils to pass kernel args
Week 17

  * Code style reviewed with jslint
  * Move createWCLContext from WCLProxy to WCLPlatform
  * Improves createWCLCommandQueue
  * Create stress test directory and move all WebCL stress test to there.
  * Updated webcl-kernel-result to use WebCLProxy
  * Improve WebCLProxy log
  * Add class docs to WCLProxy
  * Remove from webcl-test.js what is not being used by stress tests
  * Improve kernels.js
  * Improve Command Queue Documentation
  * Create test (instanceof) for new WebCLGL objects
  * Make some improvements on webcl-test-instanceof
  * Update webcl-test-event to use WebCLProxy
  * Implement Layout Test: One Context for each Device
Use isWCLType function to identify WCLProxy objects

Signed-off-by: Ragner Magalhaes <ragner.magalhaes@gmail.com>