Platform/GFX/WebGL2: Difference between revisions

From MozillaWiki
< Platform‎ | GFX
Jump to navigation Jump to search
Line 159: Line 159:
* [http://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/2013-08-22-03-02-04-mozilla-central/ Nightly 2013-08-22] (mozilla-central revision 7a6ffb2fd492)
* [http://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/2013-08-22-03-02-04-mozilla-central/ Nightly 2013-08-22] (mozilla-central revision 7a6ffb2fd492)
** {{done|[http://www.opengl.org/registry/specs/EXT/transform_feedback.txt Transform feedback]: queries}}
** {{done|[http://www.opengl.org/registry/specs/EXT/transform_feedback.txt Transform feedback]: queries}}
* Up coming
* [http://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/2013-08-26-07-47-52-mozilla-central/ Nightly 2013-08-26] (mozilla-central revision 6156c0dc50bf)
** {{ok|Natif support for WebGL 1 extensions:}}
** {{done|Natif support for [http://www.khronos.org/registry/webgl/extensions/OES_element_index_uint/ OES_element_index_uint]}}
*** OES_element_index_uint
** {{done|Natif support for [http://www.khronos.org/registry/webgl/extensions/OES_standard_derivatives/ OES_standard_derivatives]}}
*** OES_standard_derivatives
** {{done|Natif support for [http://www.khronos.org/registry/webgl/extensions/OES_texture_float/ OES_texture_float}}
*** OES_texture_float
** {{done|Natif support for [http://www.khronos.org/registry/webgl/extensions/OES_texture_float_linear/ OES_texture_float_linear}}
*** OES_texture_float_linear
** {{done|Natif support for [http://www.khronos.org/registry/webgl/extensions/WEBGL_depth_texture/ WEBGL_depth_texture}}
*** WEBGL_depth_texture
* Standby
* Standby
** {{ok|gl.drawRangeElements ([http://www.opengl.org/registry/specs/EXT/draw_range_elements.txt EXT_draw_range_elements])}}
** {{ok|gl.drawRangeElements ([http://www.opengl.org/registry/specs/EXT/draw_range_elements.txt EXT_draw_range_elements])}}

Revision as of 02:59, 27 August 2013

WebGL 2 prototype

The idea of "WebGL 2", that is, a variant of WebGL based on OpenGL ES 3.0, has been discussed for the past two years in the WebGL working group at Khronos (see this email). Interest in WebGL 2 has been on the rise recently in the WebGL working group, so we thought that it might be useful to start implementing a prototype of what WebGL 2 might look like. This is mostly just a naive WebGL-ification of the OpenGL ES 3.0 spec.

While this is being developed independently at Mozilla, this work is entirely public and the WebGL working group at Khronos is kept informed of these developments (see this email). The plan is for this work to accelerate the WebGL 2 standardization process at Khronos. For example, as Mozilla uses almost unmodified WebIDL as its interface definition language, this work is at least producing some machine-validated WebIDL for the WebGL 2 standardization process.

This WebGL 2 prototype is just that --- a prototype. It's insecure, relatively untested, and its API can change at any time. To prevent the real world from starting to rely on its API, this WebGL 2 prototype is only available in Nightly and (soon) Aurora, and not on the Beta and Release channels. Moreover, even on Nightly and Aurora, it is only available if a hidden preference has been manually added in about:config.

Playground

For anyone one who wants to tests and/or play with our WebGL 2 prototype, just be sure to add your email in CC list of the bug 894482. Feel free to report any WebGL 2 prototype's bugs by blocking 894492.

Playground - OpenGL extensions needed

To run the last WebGL 2 prototype, you will need the following extensions :

  • EXT_blend_minmax
  • {ARB,EXT}_draw_buffers
  • {ARB,EXT,NV}_draw_instanced or ANGLE_instanced_arrays
  • EXT_gpu_shader4
  • {ARB,NV,ANGLE}_instanced_arrays
  • ARB_occlusion_query or ARB_occlusion_query2 or EXT_occlusion_query_boolean
  • {EXT,NV}_transform_feedback
  • {ARB,OES,APPLE}_vertex_array_object

If you can't run our WebGL 2 prototype because we have forgotten to support a similar OpenGL extension listed above, please feel free to contribute by filling in a bug blocking 894492. We would be happy to do necessary to enable you to be an active WebGL 2 contributor.

Playground - How to create a WebGL 2 context

Download

Download the latest nightly or clone and build mozilla central by following this tutorial (the second solution would be longer).

Run it

Open your favorite command line editor and run the Firefox executable with followed parameters :

 -P webgl2_config -no-remote
  • Windows users : Actually, we are running WebGL on an ANGLE context that convert OpenGL ES 2 function calls to DirectX 11 calls. But we don't have the ANGLE update which provide an OpenGL ES 3 yet. Therefore, to force WebGL to use an OpenGL context on windows, set the environment variable MOZ_WEBGL_FORCE_OPENGL=1, before running Firefox.
 ./firefox.exe -P webgl2_config -no-remote
  • On mac :
 ./FirefoxNightly.app/Contents/MacOS/firefox -P webgl2_config -no-remote
  • Mozilla central :
 ./mach run -P webgl2_config -no-remote

That will let you run Firefox nightly in a separated configuration. This is important to run your nightly in a separated configuration, to not let WebGL 2 prototype's flags enabled on your everyday Firefox.

Configure it

Because WebGL 2 prototype is not secure at all, it's only available in nightlies and need to be enabled by a hidden flag. Beyond this point, your are running nightlies at your owns risks. We recommend you to do not use this nightly for something else than running WebGL 2 prototype code and keep using your default web browser for everyday use. In case of your default browser is Firefox, you will still be able to use it thanks by "-P webgl2_config".

  • Access to about:config in the url bar.
  • Right click -> New -> Boolean to create a new preference, name it webgl.enable-prototype-webgl2, and set it to true.

Note: You can also set webgl.enable-draft-extensions to true. That will let you use WEBGL_draw_buffers extension in WebGL 1.0.

Create the WebGL 2 prototype context

Javascript code :

 function createWebGL2Context(canvasId)
 {
     var canvas = document.getElementById(canvasId);
     var gl = canvas.getContext("experimental-webgl2");
     
     if (!gl)
     {
         // WebGL 2 not supported
         return false;
     }
     
     if (!gl instanceof WebGL2RenderingContext)
     {
         // unexpected rendering context.
         return false;
     }
     return gl;
 }

The test (!gl instanceof WebGL2RenderingContext) is just to make sure that this is a WebGL 2 context. But Firefox will return undefined or a valid WebGL2RenderingContext with a given "experimental-webgl2". For now, WebGL2RenderingContext inherit from WebGLRenderingContext. Therefore the test (gl instanceof WebGLRenderingContext) will also succeed.

WebGL 2 prototype shader

WebGL 2 prototype shader are only a GLSL 1.1 shader with #extension EXT_gpu_shader4 : enable. To get a WebGL 2 prototype shader, you just have to add "#version proto-200" at its very top. Everything defined before would be removed from the shader code. Not that any precision qualifier must be set in the code.

Vertex shader exemple :

 #version proto-200
 
 attribute vec3 vertexPosition;
 attribute vec3 vertexTangent;
 attribute vec3 vertexBitangent;
 attribute vec3 vertexNormal;
 attribute vec2 vertexUV;
 
 uniform mat4 modelMatrix;
 uniform mat4 viewMatrix;
 
 varying vec3 varyingTangent;
 varying vec3 varyingBitangent;
 varying vec3 varyingNormal;
 varying vec2 varyingUV;
 
 void main(void)
 {
     gl_Position = viewMatrix * (modelMatrix * vec4(vertexPosition, 1.0));
     
     gl_Position.xy = gl_Position.xy * 0.5 + (float(gl_InstanceID) - 0.5);
     
     varyingTangent = (modelMatrix * vec4(vertexTangent, 0.0)).xyz;
     varyingBitangent = (modelMatrix * vec4(vertexBitangent, 0.0)).xyz;
     varyingNormal = (modelMatrix * vec4(vertexNormal, 0.0)).xyz;
     
     varyingUV = vertexUV;
 }

Fragment shader exemple :

 #version proto-200
 
 uniform sampler2D albedoMap;
 uniform sampler2D normalMap;
 
 varying vec3 varyingTangent;
 varying vec3 varyingBitangent;
 varying vec3 varyingNormal;
 varying vec2 varyingUV;
 
 void main(void)
 {
     vec3 albedo = texture2D(albedoMap, varyingUV).rgb;
     vec3 normal = texture2D(normalMap, varyingUV).rgb * 2.0 - 1.0;
     float specularFactor = pow((albedo.r + albedo.g + albedo.b) * 0.33, 2.0);
     float specularHardness = 2.0;
     
     vec3 spaceNormal = varyingTangent * normal.x +
                        varyingBitangent * normal.y +
                        varyingNormal * normal.z;
     
     gl_FragData[0] = vec4(albedo, 1.0);
     gl_FragData[1] = vec4(spaceNormal * 0.5 + 0.5, 1.0);
     gl_FragData[2] = vec4(specularFactor, specularHardness * 0.1, 0.0, 1.0);
 }

For people who didn't recognize it yet, this two shaders code is part of a deferred shading's geometry pass, with normal mapping and instanced drawing.

Playground - WebGL extensions natively supported

Playground - Available features timeline

Playground - Known issues

  • gl.getParameter(gl.SHADING_LANGUAGE_VERSION) returns "WebGL GLSL ES 1.0"
  • Bad performance by using MOZ_WEBGL_FORCE_OPENGL=1 on Windows.
  • createQuery and deleteQuery generate a warning on desktop because ARB_occlusion_query might generate INVALIDE_OPERATION if one query is active.
  • gl.drawRangeElement don't check if indices are in [start,end] yet.

Playground - Useful links

Playground - Existing demos

To easily share WebGL 2 code between contributors and improve the experience, feel free to share your existing WebGL 2 demonstration by adding your URL right here. To do so : just fill a bug titled "wiki/Platform/GFX/WebGL2 - Add www.mydomain.com to existing demos" and blocking 894492 with a given URL to your WebGL 2 page. Please consider that running WebGL 2 might crashes on other users' platforms. Please prefer to load your demo with a button instead of at the page's loading, to let to the user a final chance to save his work on his others applications to prevent problems caused by driver or OS crashes. Your are running the following links at your owns risks.

Playground - Report a WebGL 2 bug

For contributors who want to report a bug, you can use the WebGL 2 bug report template. It automatically blocks 894492. Make sure to proceed all that steps :

  • Make sure that this bug have not already been reported.
  • Fill a quick summary beginning by "WebGL2 bug report - "
  • Fill a description of the bug.
    • With a copy of about:support
    • Any code or URL to a page showing the bug are very welcome!

Playground - Reported bugs by our contributors (blocking 894492)

Full Query
ID Priority Summary Status Assigned to
898386 -- WebGL2 bug report -Firefox crashes in mozilla::WebGLContext::GenerateWarning with "MOZ_WEBGL_FORCE_OPENGL=1" RESOLVED
900439 -- WebGL2 unable to initialize OpenGL on Linux/Nvidia GT 330M RESOLVED Guillaume Abadie
1053440 -- WebGL2 bug report - not context available under Mesa (ES3) RESOLVED

3 Total; 0 Open (0%); 3 Resolved (100%); 0 Verified (0%);


Development

Development - Design decision

  • All WebGL functions must be implemented in WebGLContext
  • WebGL function member definitions of WebGLContext should be group by feature as OpenGL ES 3.0 quick reference card do into differents .cpp files
  • [ON TRACK] Move functions definition from WebGLContextGL.cpp to distinct cpp files grouped as same as quick reference card do
  • [ON TRACK] Restruct all .h lik WebGL1Context.h do

Development - Preliminary

  • [DONE] Add WebGL1Context inheriting from WebGLContext
  • [DONE] Add WebGL2Context C++ class inheriting WebGLContext
    • Only available in nightlies
    • Enable with about:config flag (webgl.enable-prototype-webgl2)
    • Add virtual func WebGLContext::IsWebGL2
    • Add WebGL2 IDL inheriting WebGL 1 IDL
    • Edit HTMLCanvasElement::GetContextHelper to allow experimental-webgl2
    • gl.getParameter(gl.VERSION) return "WebGL 2"
  • [CARRY OVER] Edit GLContext to allow getting a GL3 context; let WebGL 2 use it
    • On mac, all OpenGL contexts are shared to each others, therefor they all have to be the same version.
    • Current GFX shader not compatible with OpenGL 3.2 core profile
    • Would need to convert shader with ANGLE to the GLSL version we use.
  • [DONE] Bypass ANGLE shader compilation
    • Bypass only when the shader code contains #version experimental-webgl2
    • Add automatic provide GL_EXT_gpu_shader4

Development - High priority features

  • [DONE] Add existing WebGL 1 extensions as WebGL 2 features
    • WEBGL_draw_buffers
    • OES_vertex-array_object
  • [DEFERRED] ECT2 texture (need OpenGL 4.3 on mac)
  • [DEFERRED] EAC textures (need OpenGL 4.3 on mac)
  • [ON TRACK] sRGB textures (GL_EXT_texture_sRGB)
  • [ON TRACK] Multisample renderbuffers (GL_EXT_framebuffer_multisample)
  • [DEFERRED] Primitive restart with fixed index (need OpenGL 3.2 on mac)
  • [DONE] Min/max blend equations (GL_EXT_blend_minmax)
  • [DONE] Query objects
    • GL_ARB_occlusion_query
    • GL_EXT_occlusion_query_boolean
  • [WISHLIST] Transform feedback (GL_EXT_transform_feedback)
  • [DONE] Instanced Rendering (GL_ARB_draw_instanced)
  • [DONE] gl.vertexAttribDivisor (GL_ARB_instanced_array)
  • [DONE] gl.drawRangeElements (GL_EXT_draw_range_elements)

Development - Low priority features

  • [DEFERRED] Uniform buffer objects (need OpenGL 3.2 on mac)
  • [DEFERRED] Sampler objects (need OpenGL 4.3 on mac)
  • [ON TRACK] 3D textures
  • [ON TRACK] Shadow comparisons
  • [ON TRACK] Non-square and transposable uniform matrices
  • [ON TRACK] R and RG textures (GL_ARB_texture_rg)
  • [DEFERRED] Texture swizzles (need OpenGL 4.3 on mac)
  • [ON TRACK] Unrestricted NPOT textures (GL_ARB_texture_non_power_of_two)
  • [ON TRACK] Mipmap level/LOD tricks
  • [ON TRACK] New renderbuffer/texture formats
  • [ON TRACK] Half-float vertex attributes (GL_ARB_half_float_vertex)
  • [ON TRACK] Stretch blits
  • [ON TRACK] Framebuffer invalidation hints
  • [ON TRACK] Attach any mipmap level to a framebuffer
  • [ON TRACK] Additional pixel store data
  • [ON TRACK] Buffer to buffer copies
  • [ON TRACK] Texture storage

Implementation Bugs (Meta WebGL2 889977)

Full Query
ID Priority Summary Status Assigned to
890049 -- WebGL2 Add WebGL1Context inheriting from WebGLContext RESOLVED Guillaume Abadie
890311 -- WebGL2 Add WebGL2Context inheriting from WebGLContext RESOLVED Guillaume Abadie
890379 -- WebGL2 Add existing WebGL 1 extensions as WebGL 2 features RESOLVED Guillaume Abadie
890926 -- WebGL2 Min/max blend equations RESOLVED Guillaume Abadie
891033 -- WebGL2 Edit GLContext to allow getting a GL3 context; let WebGL 2 use it RESOLVED
891539 -- WebGL2 sRGB textures RESOLVED Guillaume Abadie
892169 -- WebGL2 Bypass ANGLE shader compilation RESOLVED Guillaume Abadie
892546 -- WebGL2 Instanced Rendering RESOLVED Guillaume Abadie
892978 -- WebGL2 Query objects (GL_ARB_occlusion_query) RESOLVED Guillaume Abadie
893180 -- WebGL2 gl.vertexAttribDivisor (GL_ARB_instanced_array) RESOLVED Guillaume Abadie
894482 -- [meta] WebGL2 prototype feed RESOLVED Guillaume Abadie
894492 -- [meta] WebGL2 prototype bugs support RESOLVED Guillaume Abadie
894740 -- WebGL conformance test update to 1.0.2 RESOLVED
896254 -- WebGL2RenderingContext WebIDL interface should be disabled on release channels RESOLVED Guillaume Abadie
898475 -- WebGL2 draw_range_elements RESOLVED Guillaume Abadie
898615 -- let WebGL use extension group queries RESOLVED Guillaume Abadie
900199 -- Parse OpenGL registry xml to generates constants RESOLVED Guillaume Abadie
902488 -- WebGL2 Occlusion queries optimization on desktop RESOLVED Guillaume Abadie
903455 -- WebGL2 transform feedback - RASTERIZER_DISCARD RESOLVED Guillaume Abadie
903480 -- WebGL2 transform feedback - Queries RESOLVED Guillaume Abadie
903481 -- WebGL2 transform feedback - Buffers RESOLVED Guillaume Abadie
903594 -- WebGL2 transform feedback objects RESOLVED Guillaume Abadie
905282 -- Add OpenGL constant prefixed by MOZ_GL_, next to the LOCAL_GL_ for incremental transition. RESOLVED Guillaume Abadie
908232 -- WebGL2 RASTERIZER_DISCARD tracking RESOLVED Guillaume Abadie
908316 -- WebGL2 factor query object's targets RESOLVED Guillaume Abadie
908662 -- WebGL2 Refactor WebIDL RESOLVED Guillaume Abadie
908841 -- WebGL2 Add more natively supported extensions RESOLVED Guillaume Abadie
908985 -- WebGL2 bug on indexed binding RESOLVED Guillaume Abadie
917505 -- Add ETC2 compressed texture format for WebGL RESOLVED Morris Tseng [:mtseng] [:Morris] (Inactive)
1002279 -- WebGL2 - Cleanup - Remove execute bit from CanvasRenderingContext2D.cpp RESOLVED u480271
1002281 -- WebGL2 - Refactor common functions into WebGLBindableName. RESOLVED u480271
1002302 -- WebGL2 - Stub WebGL 2.0 WebIDL and functions in WebGL2Context RESOLVED u480271
1048666 -- WebGL2 - Implement clearbuffer RESOLVED u480271
1048719 -- WebGL2 - Implement WebGLQuery RESOLVED u480271
1048720 -- WebGL2 - Implement WebGLSampler RESOLVED u480271
1048721 -- WebGL2 - Implement WebGLSync RESOLVED u480271
1048724 -- WebGL2 - Implement WebGLTransformFeedback RESOLVED u480271
1048731 -- WebGL2 - Implement Buffer Objects RESOLVED u480271
1048732 -- WebGL2 - Implement Framebuffer Objects RESOLVED u480271
1048733 -- WebGL2 - Implement Renderbuffer Objects RESOLVED u480271
1048741 -- WebGL2 - Implement Texture Objects RESOLVED
1048743 -- WebGL2 - Implement Programs and Shaders RESOLVED u480271
1048745 -- WebGL2 - Implement Uniforms and Attributes RESOLVED u480271
1048747 -- WebGL2 - Implement Uniform Buffer Objects RESOLVED u480271
1050599 -- Clean up GL Extension list RESOLVED u480271
1067436 -- WebGL2 - context creation causes assertion failure on VERTEX_ARRAY_BINDING cached state RESOLVED
1067524 -- Update WebGL2 IDL for recently removed constants RESOLVED
1067538 -- WebGL2: rename getQueryObject to getQueryParameter to adapt to spec change RESOLVED
1067542 -- WebGL2: crash in CompileShader on conformance2/core/frag-depth.html test RESOLVED
1097411 -- Extend error reporting for GL enums. RESOLVED u480271
1097413 -- Replace hard-coded version numbers in GLFeature RESOLVED u480271
1097416 -- WebGL2 - Feature checks RESOLVED u480271
1145501 -- WebGL2 - Extend BufferData usage flags. RESOLVED u480271
1170452 -- WebGL 2 - Constants incorrectly exposed via DOM RESOLVED u480271
1170454 -- WebGL 2 - Vertex Array Objects are not exposed properly via DOM RESOLVED u480271
1170455 -- WebGL 2 - getVertexAttrib(..., gl.CURRENT_VERTEX_ATTRIB) doesn't have integer types. RESOLVED u480271
1170462 -- WebGL 2 - Finish implementing 3D Textures RESOLVED Kyle Fung
1170842 -- WebGL 2 - Finish implementing framebuffers RESOLVED u480271
1170845 -- WebGL 2 - Implement vertex divisor restrictions RESOLVED u480271
1170849 -- WebGL 2 - Rendering to MRT failures RESOLVED
1170853 -- WebGL 2 - gl.SHADING_LANGUAGE_VERSION is wrong RESOLVED u480271
1170855 -- WebGL 2 - Expose new state via gl.getParameter RESOLVED u480271
1170872 -- WebGL 2 - Desktop Enums are accepted RESOLVED
1170873 -- WebGL 2 - copyTexImage2D fails with npot textures. RESOLVED
1170883 -- WebGL 2 - Texture format support is lacking for 2D and 3D textures. RESOLVED u480271
1170885 -- WebGL 2 - Drawing fails in tex-mipmap-levels test (npot?) RESOLVED
1170890 -- WebGL 2 - Textures accept valid GL but invalid WebGL constants RESOLVED
1170891 -- WebGL 2 - gl.getTexParameter fails on valid enums. RESOLVED
1170893 -- WebGL 2 - gl.getFramebufferAttachmentParameter causes MOZ_ASSERT to fire RESOLVED Edwin Flores [inactive from 2016-12-01] [:eflores] [:edwin]
1179556 -- WebGL 2 - MOZ_ASSERT failure in WebGLFramebuffer::EnsureColorAttachPoints RESOLVED u480271
1184402 -- WebGL 2 - renderbufferStorageMultisample fails for new sized internal formats. RESOLVED u480271
1184786 -- WebGL 2 - ReadBuffer returns incorrect errors RESOLVED u480271
1205168 -- WebGL 2 - Make loading textures from canvas elements work for all new texture formats. RESOLVED Ethan Lin[:ethlin]
1207206 P3 tracking: webgl2 on angle RESOLVED
1215279 -- Pass WebGL2 UBO conformance tests RESOLVED
1218938 -- Pass WEBGL2 transform feedback tests RESOLVED
1219890 -- Support WebGL2 on top of ES3 RESOLVED Jeff Muizelaar [:jrmuizel]
1220828 -- Pass WEBLG2 renderbuffers tests RESOLVED
1228488 -- Pass WEBLG2 gl-enum-test test RESOLVED Morris Tseng [:mtseng] [:Morris] (Inactive)
1228949 -- Pass WebGL2 buffer-copying-restrictions and buffer-type-restrictions RESOLVED Ethan Lin[:ethlin]
1229152 -- BuildES3FormatSet does not expose GL_RBGA, GL_RGBA, GL_FLOAT as required by GL_OES_texture_float RESOLVED Jeff Muizelaar [:jrmuizel]
1229210 -- Handle the new formats required by WebGL2 in ReadPixels RESOLVED Jeff Muizelaar [:jrmuizel]
1230089 -- Pass WEBLG2 sampler-drawing-test test RESOLVED Morris Tseng [:mtseng] [:Morris] (Inactive)
1231657 -- Don't allow linking different versions shaders RESOLVED Jeff Muizelaar [:jrmuizel]
1231832 -- Deleting queries can crash if they haven't been used. RESOLVED Jeff Muizelaar [:jrmuizel]
1232502 -- CopyTexImage2D of RGBA8 to Luminance8 fails on OpenGL core RESOLVED Jeff Muizelaar [:jrmuizel]
1232668 -- Allow using kTex2DBlit_FragShaderSource on non-ES targets RESOLVED Jeff Muizelaar [:jrmuizel]
1233353 -- Pass WebGL2 conformance test multisampled-renderbuffer-initialization RESOLVED Ethan Lin[:ethlin]
1235299 -- Pass WebGL2 conformance test copy-tex-image-2d-formats RESOLVED Ethan Lin[:ethlin]
1236080 -- Null check format in GetParameter RESOLVED Jeff Muizelaar [:jrmuizel]
1236091 -- Null check in BlitFramebuffer RESOLVED Jeff Muizelaar [:jrmuizel]
1236394 -- [meta] WebGL conformance test error in gl-object-get-calls.html RESOLVED Jerry Shih[:jerry] (UTC+8) (inactive)
1237676 P3 WebGL2 GLSL ES 3.00 textureLod() instructions are misinterpreted to depend on implicit partial derivatives NEW
1238865 -- Pass WebGL2 conformance test read-pixels-from-fbo-test RESOLVED Morris Tseng [:mtseng] [:Morris] (Inactive)
1239144 -- Check that the level passed in is in the required range. RESOLVED
1239259 -- Pass WebGL2 conformance test tex-mipmap-levels RESOLVED Ethan Lin[:ethlin]
1239541 -- Pass WebGL2 conformance test tex-input-validation RESOLVED Ethan Lin[:ethlin]
1240438 -- Pass WebGL2 conformance test framebuffer-object-attachment RESOLVED Ethan Lin[:ethlin]
1240662 -- Pass WebGL2 conformance test framebuffer-texture-layer RESOLVED Morris Tseng [:mtseng] [:Morris] (Inactive)
1240673 -- Pass WebGL2 conformance test framebuffer-test RESOLVED Ethan Lin[:ethlin]
1241040 P3 Enable ES3 compressed texture formats RESOLVED
1242336 -- Pass WebGL2 conformance test gl-get-calls RESOLVED Ethan Lin[:ethlin]
1242347 -- Pass WebGL2 conformance test texture-npot RESOLVED Morris Tseng [:mtseng] [:Morris] (Inactive)
1243287 -- WebGL2 should generate INCOMPLETE_DIMENSIONS, too. RESOLVED Morris Tseng [:mtseng] [:Morris] (Inactive)
1243663 -- Maximum Uniform and Attribute Location Lengths in WebGL2 should be 1024. RESOLVED Morris Tseng [:mtseng] [:Morris] (Inactive)
1249189 -- Fix YCbCr convert problem when using TexImage2D RESOLVED Ethan Lin[:ethlin]
1250710 -- Implement ReadPixels for PBOs (PIXEL_PACK_BUFFER) RESOLVED Kelsey Gilbert [:jgilbert]
1266617 -- [META] WebGL 2 Feature-Complete RESOLVED
1267147 -- WebGL2 conformance test fail: conformance/misc/uninitialized-test.html RESOLVED Ethan Lin[:ethlin]
1267149 -- WebGL2 conformance test fail: conformance2/textures/misc/tex-input-validation.html RESOLVED
1279766 P3 WebGL2 reporting incorrect uniforms RESOLVED Kelsey Gilbert [:jgilbert]
1281250 P3 [meta] WebGL 2 blockers RESOLVED Kelsey Gilbert [:jgilbert]
1285086 -- Turn on WebGLSampler RESOLVED Ethan Lin[:ethlin]
1285100 -- Pass WebGL2 conformance buffer-data-and-buffer-sub-data.html RESOLVED Ethan Lin[:ethlin]
1285117 -- Pass WebGL2 conformance conformance/extensions/webgl-compressed-texture-atc.html RESOLVED Kelsey Gilbert [:jgilbert]
1296345 P3 WebGL2 failure on a new driver, with "Error during native OpenGL init" on Windows RESOLVED
1307657 P3 Enable all tests under webgl-conf/checkout/conformance(2)/textures RESOLVED
1313584 -- Hit MOZ_CRASH(GFX: Unhandled pname) at /Volumes/firefoxos/gecko-dev/dom/canvas/WebGLSampler.cpp:112 RESOLVED Vincent Liu[:vliu]
1314505 -- signal 11 was received by running dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/indexedstatequery.html RESOLVED Vincent Liu[:vliu]
1315979 -- Crash at [@ memcpy | rx::Buffer11::BufferStorage::setData ] RESOLVED Kelsey Gilbert [:jgilbert]
1320029 -- Upgrade WebGL conformance tests to 2.0.1 RESOLVED Vincent Liu[:vliu]
1323626 -- [WebGL2 conformance test] Pass conformance2/textures/misc/tex-mipmap-levels.html RESOLVED Kelsey Gilbert [:jgilbert]

122 Total; 1 Open (0.82%); 121 Resolved (99.18%); 0 Verified (0%);