Add VertexArrayObject support for WebGL2

The implementation was already in place for OpenGL ES.
My approach with this patch is to add support for WebGL2 by
sharing the implementation between the WebGL2 and GLES.
This commit is contained in:
Istvan Miklos 2020-03-05 15:51:18 +01:00 committed by Josh Matthews
parent 4b1bb895a3
commit 1b4a3d8987
20 changed files with 815 additions and 371 deletions

View file

@ -1,8 +0,0 @@
[gl-vertex-attrib-render.html]
bug: https://github.com/servo/servo/issues/21132
[WebGL test #0: Unable to fetch WebGL rendering context for Canvas]
expected: FAIL
[WebGL test #1: could not create context]
expected: FAIL

View file

@ -1,8 +0,0 @@
[buffer-data-array-buffer-delete.html]
bug: https://github.com/servo/servo/issues/21132
[WebGL test #0: Unable to fetch WebGL rendering context for Canvas]
expected: FAIL
[WebGL test #1: context does not exist]
expected: FAIL

View file

@ -1,5 +1,5 @@
[incorrect-context-object-behaviour.html]
expected: ERROR
[WebGL test #0: successfullyParsed should be true (of type boolean). Was undefined (of type undefined).]
[WebGL test #1: successfullyParsed should be true (of type boolean). Was undefined (of type undefined).]
expected: FAIL

View file

@ -11,27 +11,15 @@
[WebGL test #18: Property either does not exist or is not a function: drawBuffers]
expected: FAIL
[WebGL test #22: Property either does not exist or is not a function: bindVertexArray]
expected: FAIL
[WebGL test #12: Property either does not exist or is not a function: vertexAttribI4i]
expected: FAIL
[WebGL test #19: Property either does not exist or is not a function: createVertexArray]
expected: FAIL
[WebGL test #6: Property either does not exist or is not a function: texStorage2D]
expected: FAIL
[WebGL test #1: Property either does not exist or is not a function: blitFramebuffer]
expected: FAIL
[WebGL test #21: Property either does not exist or is not a function: isVertexArray]
expected: FAIL
[WebGL test #20: Property either does not exist or is not a function: deleteVertexArray]
expected: FAIL
[WebGL test #5: Property either does not exist or is not a function: texImage3D]
expected: FAIL

View file

@ -1,8 +1,8 @@
[attrib-location-length-limits.html]
[WebGL test #1: getError expected: NO_ERROR. Was INVALID_VALUE : ]
[WebGL test #2: attrib location was -1, should not be]
expected: FAIL
[WebGL test #2: attrib location was -1, should not be]
[WebGL test #1: getError expected: NO_ERROR. Was INVALID_VALUE : ]
expected: FAIL
[WebGL test #3: getError expected: NO_ERROR. Was INVALID_VALUE : ]

View file

@ -1,5 +1,8 @@
[expando-loss-2.html]
expected: ERROR
[WebGL test #10: successfullyParsed should be true (of type boolean). Was undefined (of type undefined).]
[WebGL test #16: successfullyParsed should be true (of type boolean). Was undefined (of type undefined).]
expected: FAIL
[WebGL test #15: getParameter(TEXTURE_BINDING_3D) returns instance that was bound.]
expected: FAIL

View file

@ -1,4 +0,0 @@
[instanceof-test.html]
[WebGL test #10: gl.createVertexArray() instanceof WebGLVertexArrayObject should be true. Threw exception TypeError: gl.createVertexArray is not a function]
expected: FAIL

View file

@ -1,5 +0,0 @@
[object-deletion-behaviour-2.html]
expected: ERROR
[WebGL test #40: successfullyParsed should be true (of type boolean). Was undefined (of type undefined).]
expected: FAIL

View file

@ -1,5 +0,0 @@
[instanced-rendering-bug.html]
expected: ERROR
[WebGL test #1: successfullyParsed should be true (of type boolean). Was undefined (of type undefined).]
expected: FAIL

View file

@ -41,3 +41,13 @@
[WebGL test #182: successfullyParsed should be true (of type boolean). Was undefined (of type undefined).]
expected: FAIL
[WebGL test #3: gl.getBufferParameter(gl.ELEMENT_ARRAY_BUFFER, gl.BUFFER_SIZE) should be 16 (of type number). Was null (of type object).]
expected: FAIL
[WebGL test #4: gl.getBufferParameter(gl.ELEMENT_ARRAY_BUFFER, gl.BUFFER_USAGE) should be 35048 (of type number). Was null (of type object).]
expected: FAIL
[WebGL test #5: getBufferParameter did not generate INVALID_ENUM for invalid parameter enum: NO_ERROR]
expected: FAIL

View file

@ -1,2 +1,116 @@
[simultaneous_binding.html]
expected: ERROR
[WebGL test #6: buffer should match expected values]
expected: FAIL
[WebGL test #50: Unexpected error before drawing: 1282]
expected: FAIL
[WebGL test #4: Unexpected error before drawing: 1282]
expected: FAIL
[WebGL test #59: Unexpected error before drawing: 1282]
expected: FAIL
[WebGL test #45: Unexpected error before drawing: 1282]
expected: FAIL
[WebGL test #13: getError expected: NO_ERROR. Was INVALID_OPERATION : transform feedback should be successful]
expected: FAIL
[WebGL test #41: Unexpected error before drawing: 1282]
expected: FAIL
[WebGL test #46: getError expected: NO_ERROR. Was INVALID_OPERATION : transform feedback should be successful]
expected: FAIL
[WebGL test #8: Unexpected error before drawing: 1282]
expected: FAIL
[WebGL test #15: getError expected: INVALID_OPERATION. Was NO_ERROR : drawArrays: buffer used as vertex attrib and tf simultaneously]
expected: FAIL
[WebGL test #37: Unexpected error before drawing: 1282]
expected: FAIL
[WebGL test #27: getError expected: NO_ERROR. Was INVALID_OPERATION : tf buffer not used as uniform buffer anymore]
expected: FAIL
[WebGL test #16: getError expected: INVALID_OPERATION. Was NO_ERROR : drawElements: buffer used as vertex attrib and tf simultaneously]
expected: FAIL
[WebGL test #29: Unexpected error before drawing: 1282]
expected: FAIL
[WebGL test #55: Unexpected error before drawing: 1282]
expected: FAIL
[WebGL test #14: buffer should match expected values]
expected: FAIL
[WebGL test #38: getError expected: NO_ERROR. Was INVALID_OPERATION : transform feedback should be successful]
expected: FAIL
[WebGL test #54: getError expected: INVALID_OPERATION. Was NO_ERROR : drawElements: buffer used as uniform buffer and tf simultaneously]
expected: FAIL
[WebGL test #47: buffer should match expected values]
expected: FAIL
[WebGL test #49: getError expected: INVALID_OPERATION. Was NO_ERROR : drawElements: buffer used as vertex attrib and tf simultaneously]
expected: FAIL
[WebGL test #10: buffer should match expected values]
expected: FAIL
[WebGL test #12: Unexpected error before drawing: 1282]
expected: FAIL
[WebGL test #48: getError expected: INVALID_OPERATION. Was NO_ERROR : drawArrays: buffer used as vertex attrib and tf simultaneously]
expected: FAIL
[WebGL test #43: buffer should match expected values]
expected: FAIL
[WebGL test #42: getError expected: NO_ERROR. Was INVALID_OPERATION : transform feedback should be successful]
expected: FAIL
[WebGL test #17: Unexpected error before drawing: 1282]
expected: FAIL
[WebGL test #22: Unexpected error before drawing: 1282]
expected: FAIL
[WebGL test #19: should be the same as before as nothing has executed]
expected: FAIL
[WebGL test #52: should be the same as before as nothing has executed]
expected: FAIL
[WebGL test #39: buffer should match expected values]
expected: FAIL
[WebGL test #5: getError expected: NO_ERROR. Was INVALID_OPERATION : transform feedback should be successful]
expected: FAIL
[WebGL test #62: Unexpected error before drawing: 1282]
expected: FAIL
[WebGL test #53: getError expected: INVALID_OPERATION. Was NO_ERROR : drawArrays: buffer used as uniform buffer and tf simultaneously]
expected: FAIL
[WebGL test #26: Unexpected error before drawing: 1282]
expected: FAIL
[WebGL test #21: getError expected: INVALID_OPERATION. Was NO_ERROR : drawElements: buffer used as uniform buffer and tf simultaneously]
expected: FAIL
[WebGL test #20: getError expected: INVALID_OPERATION. Was NO_ERROR : drawArrays: buffer used as uniform buffer and tf simultaneously]
expected: FAIL
[WebGL test #60: getError expected: NO_ERROR. Was INVALID_OPERATION : tf buffer not used as uniform buffer anymore]
expected: FAIL
[WebGL test #9: getError expected: NO_ERROR. Was INVALID_OPERATION : transform feedback should be successful]
expected: FAIL

View file

@ -1,5 +0,0 @@
[vertex-array-object.html]
expected: ERROR
[WebGL test #4: successfullyParsed should be true (of type boolean). Was undefined (of type undefined).]
expected: FAIL