Auto merge of #20317 - gootorov:webgl-getFramebufferAttachmentParameter, r=jdm

Implement WebGL getFrameBufferAttachmentParameter API

<!-- Please describe your changes on the following line: -->
Implementation of `getFramebufferAttachmentParameter` as in WebGL1 specification.

Part of https://github.com/servo/servo/issues/10209.

r? emilio or jdm.

---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [ ] These changes fix #__ (github issue number if applicable).

<!-- Either: -->
- [x] There are tests for these changes

<!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.-->

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/20317)
<!-- Reviewable:end -->
This commit is contained in:
bors-servo 2018-03-22 12:28:30 -04:00 committed by GitHub
commit 4aaac61a87
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
10 changed files with 338 additions and 110 deletions

View file

@ -3,15 +3,12 @@
[WebGL test #0: Property either does not exist or is not a function: getAttachedShaders]
expected: FAIL
[WebGL test #1: Property either does not exist or is not a function: getFramebufferAttachmentParameter]
[WebGL test #1: Property either does not exist or is not a function: getRenderbufferParameter]
expected: FAIL
[WebGL test #2: Property either does not exist or is not a function: getRenderbufferParameter]
[WebGL test #2: Property either does not exist or is not a function: getUniform]
expected: FAIL
[WebGL test #3: Property either does not exist or is not a function: getUniform]
expected: FAIL
[WebGL test #4: Property either does not exist or is not a function: isContextLost]
[WebGL test #3: Property either does not exist or is not a function: isContextLost]
expected: FAIL

View file

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

View file

@ -2,279 +2,276 @@
[WebGL test #0: Property either does not exist or is not a function: getAttachedShaders]
expected: FAIL
[WebGL test #1: Property either does not exist or is not a function: getFramebufferAttachmentParameter]
[WebGL test #1: Property either does not exist or is not a function: getRenderbufferParameter]
expected: FAIL
[WebGL test #2: Property either does not exist or is not a function: getRenderbufferParameter]
[WebGL test #2: Property either does not exist or is not a function: getUniform]
expected: FAIL
[WebGL test #3: Property either does not exist or is not a function: getUniform]
[WebGL test #3: Property either does not exist or is not a function: isContextLost]
expected: FAIL
[WebGL test #4: Property either does not exist or is not a function: isContextLost]
[WebGL test #4: Property either does not exist or is not a function: getBufferSubData]
expected: FAIL
[WebGL test #5: Property either does not exist or is not a function: getBufferSubData]
[WebGL test #5: Property either does not exist or is not a function: copyBufferSubData]
expected: FAIL
[WebGL test #6: Property either does not exist or is not a function: copyBufferSubData]
[WebGL test #6: Property either does not exist or is not a function: blitFramebuffer]
expected: FAIL
[WebGL test #7: Property either does not exist or is not a function: blitFramebuffer]
[WebGL test #7: Property either does not exist or is not a function: framebufferTextureLayer]
expected: FAIL
[WebGL test #8: Property either does not exist or is not a function: framebufferTextureLayer]
[WebGL test #8: Property either does not exist or is not a function: getInternalformatParameter]
expected: FAIL
[WebGL test #9: Property either does not exist or is not a function: getInternalformatParameter]
[WebGL test #9: Property either does not exist or is not a function: invalidateFramebuffer]
expected: FAIL
[WebGL test #10: Property either does not exist or is not a function: invalidateFramebuffer]
[WebGL test #10: Property either does not exist or is not a function: invalidateSubFramebuffer]
expected: FAIL
[WebGL test #11: Property either does not exist or is not a function: invalidateSubFramebuffer]
[WebGL test #11: Property either does not exist or is not a function: readBuffer]
expected: FAIL
[WebGL test #12: Property either does not exist or is not a function: readBuffer]
[WebGL test #12: Property either does not exist or is not a function: renderbufferStorageMultisample]
expected: FAIL
[WebGL test #13: Property either does not exist or is not a function: renderbufferStorageMultisample]
[WebGL test #13: Property either does not exist or is not a function: texImage3D]
expected: FAIL
[WebGL test #14: Property either does not exist or is not a function: texImage3D]
[WebGL test #14: Property either does not exist or is not a function: texStorage2D]
expected: FAIL
[WebGL test #15: Property either does not exist or is not a function: texStorage2D]
[WebGL test #15: Property either does not exist or is not a function: texStorage3D]
expected: FAIL
[WebGL test #16: Property either does not exist or is not a function: texStorage3D]
[WebGL test #16: Property either does not exist or is not a function: texSubImage3D]
expected: FAIL
[WebGL test #17: Property either does not exist or is not a function: texSubImage3D]
[WebGL test #17: Property either does not exist or is not a function: copyTexSubImage3D]
expected: FAIL
[WebGL test #18: Property either does not exist or is not a function: copyTexSubImage3D]
[WebGL test #18: Property either does not exist or is not a function: compressedTexImage3D]
expected: FAIL
[WebGL test #19: Property either does not exist or is not a function: compressedTexImage3D]
[WebGL test #19: Property either does not exist or is not a function: compressedTexSubImage3D]
expected: FAIL
[WebGL test #20: Property either does not exist or is not a function: compressedTexSubImage3D]
[WebGL test #20: Property either does not exist or is not a function: getFragDataLocation]
expected: FAIL
[WebGL test #21: Property either does not exist or is not a function: getFragDataLocation]
[WebGL test #21: Property either does not exist or is not a function: uniform1ui]
expected: FAIL
[WebGL test #22: Property either does not exist or is not a function: uniform1ui]
[WebGL test #22: Property either does not exist or is not a function: uniform2ui]
expected: FAIL
[WebGL test #23: Property either does not exist or is not a function: uniform2ui]
[WebGL test #23: Property either does not exist or is not a function: uniform3ui]
expected: FAIL
[WebGL test #24: Property either does not exist or is not a function: uniform3ui]
[WebGL test #24: Property either does not exist or is not a function: uniform4ui]
expected: FAIL
[WebGL test #25: Property either does not exist or is not a function: uniform4ui]
[WebGL test #25: Property either does not exist or is not a function: uniform1uiv]
expected: FAIL
[WebGL test #26: Property either does not exist or is not a function: uniform1uiv]
[WebGL test #26: Property either does not exist or is not a function: uniform2uiv]
expected: FAIL
[WebGL test #27: Property either does not exist or is not a function: uniform2uiv]
[WebGL test #27: Property either does not exist or is not a function: uniform3uiv]
expected: FAIL
[WebGL test #28: Property either does not exist or is not a function: uniform3uiv]
[WebGL test #28: Property either does not exist or is not a function: uniform4uiv]
expected: FAIL
[WebGL test #29: Property either does not exist or is not a function: uniform4uiv]
[WebGL test #29: Property either does not exist or is not a function: uniformMatrix2x3fv]
expected: FAIL
[WebGL test #30: Property either does not exist or is not a function: uniformMatrix2x3fv]
[WebGL test #30: Property either does not exist or is not a function: uniformMatrix3x2fv]
expected: FAIL
[WebGL test #31: Property either does not exist or is not a function: uniformMatrix3x2fv]
[WebGL test #31: Property either does not exist or is not a function: uniformMatrix2x4fv]
expected: FAIL
[WebGL test #32: Property either does not exist or is not a function: uniformMatrix2x4fv]
[WebGL test #32: Property either does not exist or is not a function: uniformMatrix4x2fv]
expected: FAIL
[WebGL test #33: Property either does not exist or is not a function: uniformMatrix4x2fv]
[WebGL test #33: Property either does not exist or is not a function: uniformMatrix3x4fv]
expected: FAIL
[WebGL test #34: Property either does not exist or is not a function: uniformMatrix3x4fv]
[WebGL test #34: Property either does not exist or is not a function: uniformMatrix4x3fv]
expected: FAIL
[WebGL test #35: Property either does not exist or is not a function: uniformMatrix4x3fv]
[WebGL test #35: Property either does not exist or is not a function: vertexAttribI4i]
expected: FAIL
[WebGL test #36: Property either does not exist or is not a function: vertexAttribI4i]
[WebGL test #36: Property either does not exist or is not a function: vertexAttribI4iv]
expected: FAIL
[WebGL test #37: Property either does not exist or is not a function: vertexAttribI4iv]
[WebGL test #37: Property either does not exist or is not a function: vertexAttribI4ui]
expected: FAIL
[WebGL test #38: Property either does not exist or is not a function: vertexAttribI4ui]
[WebGL test #38: Property either does not exist or is not a function: vertexAttribI4uiv]
expected: FAIL
[WebGL test #39: Property either does not exist or is not a function: vertexAttribI4uiv]
[WebGL test #39: Property either does not exist or is not a function: vertexAttribIPointer]
expected: FAIL
[WebGL test #40: Property either does not exist or is not a function: vertexAttribIPointer]
[WebGL test #40: Property either does not exist or is not a function: vertexAttribDivisor]
expected: FAIL
[WebGL test #41: Property either does not exist or is not a function: vertexAttribDivisor]
[WebGL test #41: Property either does not exist or is not a function: drawArraysInstanced]
expected: FAIL
[WebGL test #42: Property either does not exist or is not a function: drawArraysInstanced]
[WebGL test #42: Property either does not exist or is not a function: drawElementsInstanced]
expected: FAIL
[WebGL test #43: Property either does not exist or is not a function: drawElementsInstanced]
[WebGL test #43: Property either does not exist or is not a function: drawRangeElements]
expected: FAIL
[WebGL test #44: Property either does not exist or is not a function: drawRangeElements]
[WebGL test #44: Property either does not exist or is not a function: drawBuffers]
expected: FAIL
[WebGL test #45: Property either does not exist or is not a function: drawBuffers]
[WebGL test #45: Property either does not exist or is not a function: clearBufferiv]
expected: FAIL
[WebGL test #46: Property either does not exist or is not a function: clearBufferiv]
[WebGL test #46: Property either does not exist or is not a function: clearBufferuiv]
expected: FAIL
[WebGL test #47: Property either does not exist or is not a function: clearBufferuiv]
[WebGL test #47: Property either does not exist or is not a function: clearBufferfv]
expected: FAIL
[WebGL test #48: Property either does not exist or is not a function: clearBufferfv]
[WebGL test #48: Property either does not exist or is not a function: clearBufferfi]
expected: FAIL
[WebGL test #49: Property either does not exist or is not a function: clearBufferfi]
[WebGL test #49: Property either does not exist or is not a function: createQuery]
expected: FAIL
[WebGL test #50: Property either does not exist or is not a function: createQuery]
[WebGL test #50: Property either does not exist or is not a function: deleteQuery]
expected: FAIL
[WebGL test #51: Property either does not exist or is not a function: deleteQuery]
[WebGL test #51: Property either does not exist or is not a function: isQuery]
expected: FAIL
[WebGL test #52: Property either does not exist or is not a function: isQuery]
[WebGL test #52: Property either does not exist or is not a function: beginQuery]
expected: FAIL
[WebGL test #53: Property either does not exist or is not a function: beginQuery]
[WebGL test #53: Property either does not exist or is not a function: endQuery]
expected: FAIL
[WebGL test #54: Property either does not exist or is not a function: endQuery]
[WebGL test #54: Property either does not exist or is not a function: getQuery]
expected: FAIL
[WebGL test #55: Property either does not exist or is not a function: getQuery]
[WebGL test #55: Property either does not exist or is not a function: getQueryParameter]
expected: FAIL
[WebGL test #56: Property either does not exist or is not a function: getQueryParameter]
[WebGL test #56: Property either does not exist or is not a function: createSampler]
expected: FAIL
[WebGL test #57: Property either does not exist or is not a function: createSampler]
[WebGL test #57: Property either does not exist or is not a function: deleteSampler]
expected: FAIL
[WebGL test #58: Property either does not exist or is not a function: deleteSampler]
[WebGL test #58: Property either does not exist or is not a function: isSampler]
expected: FAIL
[WebGL test #59: Property either does not exist or is not a function: isSampler]
[WebGL test #59: Property either does not exist or is not a function: bindSampler]
expected: FAIL
[WebGL test #60: Property either does not exist or is not a function: bindSampler]
[WebGL test #60: Property either does not exist or is not a function: samplerParameteri]
expected: FAIL
[WebGL test #61: Property either does not exist or is not a function: samplerParameteri]
[WebGL test #61: Property either does not exist or is not a function: samplerParameterf]
expected: FAIL
[WebGL test #62: Property either does not exist or is not a function: samplerParameterf]
[WebGL test #62: Property either does not exist or is not a function: getSamplerParameter]
expected: FAIL
[WebGL test #63: Property either does not exist or is not a function: getSamplerParameter]
[WebGL test #63: Property either does not exist or is not a function: fenceSync]
expected: FAIL
[WebGL test #64: Property either does not exist or is not a function: fenceSync]
[WebGL test #64: Property either does not exist or is not a function: isSync]
expected: FAIL
[WebGL test #65: Property either does not exist or is not a function: isSync]
[WebGL test #65: Property either does not exist or is not a function: deleteSync]
expected: FAIL
[WebGL test #66: Property either does not exist or is not a function: deleteSync]
[WebGL test #66: Property either does not exist or is not a function: clientWaitSync]
expected: FAIL
[WebGL test #67: Property either does not exist or is not a function: clientWaitSync]
[WebGL test #67: Property either does not exist or is not a function: waitSync]
expected: FAIL
[WebGL test #68: Property either does not exist or is not a function: waitSync]
[WebGL test #68: Property either does not exist or is not a function: getSyncParameter]
expected: FAIL
[WebGL test #69: Property either does not exist or is not a function: getSyncParameter]
[WebGL test #69: Property either does not exist or is not a function: createTransformFeedback]
expected: FAIL
[WebGL test #70: Property either does not exist or is not a function: createTransformFeedback]
[WebGL test #70: Property either does not exist or is not a function: deleteTransformFeedback]
expected: FAIL
[WebGL test #71: Property either does not exist or is not a function: deleteTransformFeedback]
[WebGL test #71: Property either does not exist or is not a function: isTransformFeedback]
expected: FAIL
[WebGL test #72: Property either does not exist or is not a function: isTransformFeedback]
[WebGL test #72: Property either does not exist or is not a function: bindTransformFeedback]
expected: FAIL
[WebGL test #73: Property either does not exist or is not a function: bindTransformFeedback]
[WebGL test #73: Property either does not exist or is not a function: beginTransformFeedback]
expected: FAIL
[WebGL test #74: Property either does not exist or is not a function: beginTransformFeedback]
[WebGL test #74: Property either does not exist or is not a function: endTransformFeedback]
expected: FAIL
[WebGL test #75: Property either does not exist or is not a function: endTransformFeedback]
[WebGL test #75: Property either does not exist or is not a function: transformFeedbackVaryings]
expected: FAIL
[WebGL test #76: Property either does not exist or is not a function: transformFeedbackVaryings]
[WebGL test #76: Property either does not exist or is not a function: getTransformFeedbackVarying]
expected: FAIL
[WebGL test #77: Property either does not exist or is not a function: getTransformFeedbackVarying]
[WebGL test #77: Property either does not exist or is not a function: pauseTransformFeedback]
expected: FAIL
[WebGL test #78: Property either does not exist or is not a function: pauseTransformFeedback]
[WebGL test #78: Property either does not exist or is not a function: resumeTransformFeedback]
expected: FAIL
[WebGL test #79: Property either does not exist or is not a function: resumeTransformFeedback]
[WebGL test #79: Property either does not exist or is not a function: bindBufferBase]
expected: FAIL
[WebGL test #80: Property either does not exist or is not a function: bindBufferBase]
[WebGL test #80: Property either does not exist or is not a function: bindBufferRange]
expected: FAIL
[WebGL test #81: Property either does not exist or is not a function: bindBufferRange]
[WebGL test #81: Property either does not exist or is not a function: getIndexedParameter]
expected: FAIL
[WebGL test #82: Property either does not exist or is not a function: getIndexedParameter]
[WebGL test #82: Property either does not exist or is not a function: getUniformIndices]
expected: FAIL
[WebGL test #83: Property either does not exist or is not a function: getUniformIndices]
[WebGL test #83: Property either does not exist or is not a function: getActiveUniforms]
expected: FAIL
[WebGL test #84: Property either does not exist or is not a function: getActiveUniforms]
[WebGL test #84: Property either does not exist or is not a function: getUniformBlockIndex]
expected: FAIL
[WebGL test #85: Property either does not exist or is not a function: getUniformBlockIndex]
[WebGL test #85: Property either does not exist or is not a function: getActiveUniformBlockParameter]
expected: FAIL
[WebGL test #86: Property either does not exist or is not a function: getActiveUniformBlockParameter]
[WebGL test #86: Property either does not exist or is not a function: getActiveUniformBlockName]
expected: FAIL
[WebGL test #87: Property either does not exist or is not a function: getActiveUniformBlockName]
[WebGL test #87: Property either does not exist or is not a function: uniformBlockBinding]
expected: FAIL
[WebGL test #88: Property either does not exist or is not a function: uniformBlockBinding]
[WebGL test #88: Property either does not exist or is not a function: createVertexArray]
expected: FAIL
[WebGL test #89: Property either does not exist or is not a function: createVertexArray]
[WebGL test #89: Property either does not exist or is not a function: deleteVertexArray]
expected: FAIL
[WebGL test #90: Property either does not exist or is not a function: deleteVertexArray]
[WebGL test #90: Property either does not exist or is not a function: isVertexArray]
expected: FAIL
[WebGL test #91: Property either does not exist or is not a function: isVertexArray]
expected: FAIL
[WebGL test #92: Property either does not exist or is not a function: bindVertexArray]
[WebGL test #91: Property either does not exist or is not a function: bindVertexArray]
expected: FAIL

View file

@ -1,5 +1,100 @@
[framebuffer-test.html]
expected: ERROR
[WebGL test #1: successfullyParsed should be true (of type boolean). Was undefined (of type undefined).]
expected: FAIL
[WebGL test #1: getError expected: INVALID_ENUM. Was INVALID_OPERATION : getFramebufferAttachmentParameter(COLOR_ATTACHMENT0) on the default framebuffer.]
expected: FAIL
[WebGL test #2: getError expected: NO_ERROR. Was INVALID_OPERATION : getFramebufferAttachmentParameter(BACK) on the default framebuffer.]
expected: FAIL
[WebGL test #9: getError expected: NO_ERROR. Was INVALID_ENUM : getFramebufferAttachmentParameter(READ_FRAMEBUFFER).]
expected: FAIL
[WebGL test #10: checkFramebufferStatus(READ_FRAMEBUFFER) should succeed.]
expected: FAIL
[WebGL test #11: getError expected: NO_ERROR. Was INVALID_ENUM : checkFramebufferStatus(READ_FRAMEBUFFER).]
expected: FAIL
[WebGL test #12: getError expected: NO_ERROR. Was INVALID_ENUM : bindFramebuffer(READ_FRAMEBUFFER).]
expected: FAIL
[WebGL test #13: bindFramebuffer(READ_FRAMEBUFFER) should change READ_FRAMEBUFFER_BINDING.]
expected: FAIL
[WebGL test #15: getError expected: NO_ERROR. Was INVALID_ENUM : getFramebufferAttachmentParameter(FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE) with no attachment.]
expected: FAIL
[WebGL test #16: getError expected: NO_ERROR. Was INVALID_ENUM : framebufferTexImage2D(READ_FRAMEBUFFER).]
expected: FAIL
[WebGL test #17: getError expected: NO_ERROR. Was INVALID_ENUM : framebufferRenderbuffer(READ_FRAMEBUFFER).]
expected: FAIL
[WebGL test #18: getError expected: INVALID_OPERATION. Was INVALID_ENUM : getFramebufferAttachmentParameter(GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING) with no attachment.]
expected: FAIL
[WebGL test #21: getError expected: NO_ERROR. Was INVALID_VALUE : framebufferTexture2D with an appropriate mipmap level.]
expected: FAIL
[WebGL test #26: getError expected: NO_ERROR. Was INVALID_ENUM : attach a texture to read/draw framebuffer binding point.]
expected: FAIL
[WebGL test #27: getError expected: NO_ERROR. Was INVALID_OPERATION : getFramebufferAttachmentParameter(FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING) on read/draw framebuffer.]
expected: FAIL
[WebGL test #29: getError expected: NO_ERROR. Was INVALID_ENUM : detach a texture from read/draw framebuffer.]
expected: FAIL
[WebGL test #30: getError expected: NO_ERROR. Was INVALID_ENUM : attach a texture to read/draw framebuffer binding point.]
expected: FAIL
[WebGL test #31: getError expected: NO_ERROR. Was INVALID_OPERATION : getFramebufferAttachmentParameter(FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING) on read/draw framebuffer.]
expected: FAIL
[WebGL test #33: getError expected: NO_ERROR. Was INVALID_ENUM : detach a texture from read/draw framebuffer.]
expected: FAIL
[WebGL test #35: gl.getFramebufferAttachmentParameter(gl.DRAW_FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.FRAMEBUFFER_ATTACHMENT_BLUE_SIZE) should be 0 (of type number). Was null (of type object).]
expected: FAIL
[WebGL test #36: getError expected: INVALID_OPERATION. Was INVALID_ENUM : getFramebufferAttachmentParameter(FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING) on read framebuffer with no attachment.]
expected: FAIL
[WebGL test #37: getError expected: NO_ERROR. Was INVALID_OPERATION : getFramebufferAttachmentParameter(FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING) on draw framebuffer.]
expected: FAIL
[WebGL test #38: getError expected: INVALID_OPERATION. Was INVALID_ENUM : getFramebufferAttachmentParameter(FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING) on draw framebuffer with no attachment.]
expected: FAIL
[WebGL test #39: getError expected: NO_ERROR. Was INVALID_ENUM : attaching a renderbuffer to a read/draw framebuffer.]
expected: FAIL
[WebGL test #40: getError expected: NO_ERROR. Was INVALID_OPERATION : getFramebufferAttachmentParameter(FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING) on read/draw framebuffer.]
expected: FAIL
[WebGL test #42: getError expected: NO_ERROR. Was INVALID_ENUM : detach a renderbuffer from a read/draw framebuffer.]
expected: FAIL
[WebGL test #43: getError expected: NO_ERROR. Was INVALID_ENUM : attaching a renderbuffer to a read/draw framebuffer.]
expected: FAIL
[WebGL test #44: getError expected: NO_ERROR. Was INVALID_OPERATION : getFramebufferAttachmentParameter(FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING) on read/draw framebuffer.]
expected: FAIL
[WebGL test #46: getError expected: NO_ERROR. Was INVALID_ENUM : detach a renderbuffer from a read/draw framebuffer.]
expected: FAIL
[WebGL test #49: getError expected: INVALID_OPERATION. Was INVALID_ENUM : getFramebufferAttachmentParameter(FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE) on read framebuffer without depth attachment.]
expected: FAIL
[WebGL test #52: getError expected: INVALID_OPERATION. Was INVALID_ENUM : getFramebufferAttachmentParameter(FRAMEBUFFER_ATTACHMENT_RED_SIZE) on read framebuffer with no attachment.]
expected: FAIL
[WebGL test #55: getError expected: NO_ERROR. Was INVALID_ENUM : bind read framebuffer to default (null) framebuffer.]
expected: FAIL
[WebGL test #56: getError expected: NO_ERROR. Was INVALID_OPERATION : bind draw framebuffer to default (null) framebuffer.]
expected: FAIL