Platform/GFX/WebCL: Difference between revisions

From MozillaWiki
< Platform‎ | GFX
Jump to navigation Jump to search
No edit summary
 
(23 intermediate revisions by 3 users not shown)
Line 1: Line 1:
=About WebCL=
=About WebCL=


WebCL is an in-progress project to specify a JavaScript/DOM API similar to OpenCL, which is an API for high-performance computing hardware, such as GPGPUs. WebCL should be to OpenCL what WebGL is to OpenGL.
WebCL is an in-progress effort by Khronos (http://www.khronos.org) to specify a JavaScript/DOM API similar to OpenCL, which is an API for high-performance computing hardware, such as GPGPUs. WebCL should be to OpenCL what WebGL is to OpenGL.


There is not yet a draft spec.
The latest WebCL Working Draft is available here:
  https://cvs.khronos.org/svn/repos/registry/trunk/public/webcl/spec/latest/index.html


There is a private and a public WebCL mailing list at Khronos. The public list is:
There is a private and a public WebCL mailing list at Khronos. The public list is:
   https://www.khronos.org/webcl/public-mailing-list/
   https://www.khronos.org/webcl/public-mailing-list/archives/
 
The private list is:
The private list is:
   https://www.khronos.org/members/login/list_archives/webcl/
   https://www.khronos.org/members/login/list_archives/webcl/
Public discussion for WebCL integration in Gecko:
  webcl-gecko@googlegroups.com


=Implementations for Gecko=
=Implementations for Gecko=


We don't have a WebCL implementation in Gecko at the moment. However two groups have started working on WebCL implementations for Gecko:
There is a prototype implementation developed by Nokia Research available at http://hg.mozilla.org/projects/webcl/. The prototype does not yet include a kernel validator.
 
1. Fabien Cellier and his students are developing a fork of Gecko with WebCL support:
  https://bitbucket.org/tallion/gecko-webcl/
 
2. Nokia Research is developing a Firefox extension adding WebCL support:
  http://webcl.nokiaresearch.com/


Ultimately we will want to take (at most) one WeCL implementation in Gecko. The goal of this wiki page is to explore how much consensus we can find between these two projects. Hopefully we can find enough consensus to just merge the two projects. If we can't, then we'll simply have these two competing projects and eventually let the best win.
See http://webcl.nokiaresearch.com for more information on the Nokia WebCL project.


As soon as we have an implementation that we want to eventually become part of Gecko, we move it to a project branch at hg.mozilla.org, under
= Mozilla projects : WebCL =
  http://hg.mozilla.org/projects


= Comparison of the two projects  =


To explore areas of consensus between the two projects, let's build a comparison table. Treat it as free-form. Add there features, design choices, anything that is useful to compare between the two projects. If something needs to be explained in more detail, add a paragraph below.


{| border="1"
{| border="1"
|-
|-
! Feature/Aspect
! Feature/TODO
! Fabien's project
! Status
! Nokia's project
! Who?
! Priority
! Comments
! Comments
|-
|-
| Process model
| Using image from dom (canvas /img)
| NOK
| ???
|
| Can use something like [http://hg.mozilla.org/mozilla-central/file/5319b0100025/content/canvas/src/WebGLContextGL.cpp#l3572 WebGL]
|-
| 3D interactions with angle on windows with directX10+
| NOK
| ???
|
|  
|  
| WebCL runs in the JavaScript VM process
|-
| flags for macOSX
| NOK
| ???
|
|  
|  
|-
|-
| TypedArray usage
| Add cycle collector to nsWebCL
|  
| NOK
| Used via WebCLDataObject
| ???
|  
|
|
|-
| Delete custom quickstubs for typedArray
| NOK
| ???
|
| see [https://bugzilla.mozilla.org/show_bug.cgi?id=664249 modifications] and only use JSObject
|-
| Delete custom quickstubs for arrays
| NOK
| ???
|
| Try to only use nsIvariant
|-
|-
| Kernel language
| Create patches for integration in mozilla central
|  
| NOK
| OpenCL C (no modifications)
| ???
|  
|
|
|-
|-
| ''Example''
| Add mochitest
| colspan="2" | ''This is an example of a multi-column entry, use these to indicate consensus''
| NOK
| ???
|
|  
|  
|}
|}

Latest revision as of 14:50, 7 May 2013

About WebCL

WebCL is an in-progress effort by Khronos (http://www.khronos.org) to specify a JavaScript/DOM API similar to OpenCL, which is an API for high-performance computing hardware, such as GPGPUs. WebCL should be to OpenCL what WebGL is to OpenGL.

The latest WebCL Working Draft is available here:

 https://cvs.khronos.org/svn/repos/registry/trunk/public/webcl/spec/latest/index.html

There is a private and a public WebCL mailing list at Khronos. The public list is:

 https://www.khronos.org/webcl/public-mailing-list/archives/

The private list is:

 https://www.khronos.org/members/login/list_archives/webcl/

Public discussion for WebCL integration in Gecko:

 webcl-gecko@googlegroups.com

Implementations for Gecko

There is a prototype implementation developed by Nokia Research available at http://hg.mozilla.org/projects/webcl/. The prototype does not yet include a kernel validator.

See http://webcl.nokiaresearch.com for more information on the Nokia WebCL project.

Mozilla projects : WebCL

Feature/TODO Status Who? Priority Comments
Using image from dom (canvas /img) NOK ??? Can use something like WebGL
3D interactions with angle on windows with directX10+ NOK ???
flags for macOSX NOK ???
Add cycle collector to nsWebCL NOK ???
Delete custom quickstubs for typedArray NOK ??? see modifications and only use JSObject
Delete custom quickstubs for arrays NOK ??? Try to only use nsIvariant
Create patches for integration in mozilla central NOK ???
Add mochitest NOK ???