mirror of
https://github.com/servo/servo.git
synced 2025-08-03 12:40:06 +01:00
Auto merge of #26143 - jdm:transform-feedback, r=nox
Fix webgl transform feedback This allows https://www.joshmatthews.net/webxr-particles/ to run in Servo. This change corresponds with the following spec text: ``` GL_INVALID_OPERATION is generated by glBeginTransformFeedback if no binding points would be used, either because no program object is active of because the active program object has specified no varying variables to record. ``` --- - [x] `./mach build -d` does not report any errors - [x] `./mach test-tidy` does not report any errors - [x] These changes fix #26137 - [x] There are tests for these changes
This commit is contained in:
commit
f6f2b493f6
6 changed files with 29 additions and 224 deletions
|
@ -3456,7 +3456,7 @@ impl WebGL2RenderingContextMethods for WebGL2RenderingContext {
|
|||
return;
|
||||
},
|
||||
};
|
||||
if !program.is_linked() || program.transform_feedback_varyings_length() != 0 {
|
||||
if !program.is_linked() || program.transform_feedback_varyings_length() == 0 {
|
||||
self.base.webgl_error(InvalidOperation);
|
||||
return;
|
||||
};
|
||||
|
|
|
@ -1,176 +1,77 @@
|
|||
[simultaneous_binding.html]
|
||||
expected: ERROR
|
||||
[WebGL test #72: buffer should match expected values]
|
||||
[WebGL test #12: getError expected: INVALID_OPERATION. Was NO_ERROR : drawArrays: buffer used as vertex attrib and tf simultaneously]
|
||||
expected: FAIL
|
||||
|
||||
[WebGL test #87: getError expected: INVALID_OPERATION. Was NO_ERROR : drawElements: buffer used as uniform buffer and tf simultaneously]
|
||||
[WebGL test #38: getError expected: INVALID_OPERATION. Was NO_ERROR : drawArrays: buffer used as vertex attrib and tf simultaneously]
|
||||
expected: FAIL
|
||||
|
||||
[WebGL test #6: buffer should match expected values]
|
||||
[WebGL test #70: getError expected: INVALID_OPERATION. Was NO_ERROR : buffer used as uniform buffer and tf simultaneously]
|
||||
expected: FAIL
|
||||
|
||||
[WebGL test #15: getError expected: INVALID_OPERATION. Was NO_ERROR : drawArrays: buffer used as vertex attrib and tf simultaneously]
|
||||
[WebGL test #66: getError expected: INVALID_OPERATION. Was NO_ERROR : buffer used as vertex attrib and tf simultaneously]
|
||||
expected: FAIL
|
||||
|
||||
[WebGL test #4: Unexpected error before drawing: 1282]
|
||||
[WebGL test #42: getError expected: INVALID_OPERATION. Was NO_ERROR : drawArrays: buffer used as uniform buffer and tf simultaneously]
|
||||
expected: FAIL
|
||||
|
||||
[WebGL test #59: Unexpected error before drawing: 1282]
|
||||
[WebGL test #39: getError expected: INVALID_OPERATION. Was NO_ERROR : drawElements: buffer used as vertex attrib and tf simultaneously]
|
||||
expected: FAIL
|
||||
|
||||
[WebGL test #37: Unexpected error before drawing: 1282]
|
||||
[WebGL test #68: getError expected: INVALID_OPERATION. Was NO_ERROR : drawArrays: buffer used as uniform buffer and tf simultaneously]
|
||||
expected: FAIL
|
||||
|
||||
[WebGL test #47: buffer should match expected values]
|
||||
[WebGL test #16: getError expected: INVALID_OPERATION. Was NO_ERROR : drawArrays: buffer used as uniform buffer and tf simultaneously]
|
||||
expected: FAIL
|
||||
|
||||
[WebGL test #49: getError expected: INVALID_OPERATION. Was NO_ERROR : drawElements: buffer used as vertex attrib and tf simultaneously]
|
||||
[WebGL test #69: getError expected: INVALID_OPERATION. Was NO_ERROR : drawElements: buffer used as uniform buffer and tf simultaneously]
|
||||
expected: FAIL
|
||||
|
||||
[WebGL test #43: buffer should match expected values]
|
||||
[WebGL test #23: getError expected: INVALID_OPERATION. Was NO_ERROR : tf enabled]
|
||||
expected: FAIL
|
||||
|
||||
[WebGL test #17: Unexpected error before drawing: 1282]
|
||||
[WebGL test #40: getError expected: INVALID_OPERATION. Was NO_ERROR : buffer used as vertex attrib and tf simultaneously]
|
||||
expected: FAIL
|
||||
|
||||
[WebGL test #79: getError expected: NO_ERROR. Was INVALID_OPERATION : transform feedback should be successful]
|
||||
[WebGL test #14: getError expected: INVALID_OPERATION. Was NO_ERROR : buffer used as vertex attrib and tf simultaneously]
|
||||
expected: FAIL
|
||||
|
||||
[WebGL test #52: should be the same as before as nothing has executed]
|
||||
[WebGL test #75: getError expected: INVALID_OPERATION. Was NO_ERROR : tf enabled]
|
||||
expected: FAIL
|
||||
|
||||
[WebGL test #26: Unexpected error before drawing: 1282]
|
||||
[WebGL test #41: should be the same as before as nothing has executed]
|
||||
expected: FAIL
|
||||
|
||||
[WebGL test #60: getError expected: NO_ERROR. Was INVALID_OPERATION : tf buffer not used as uniform buffer anymore]
|
||||
[WebGL test #43: getError expected: INVALID_OPERATION. Was NO_ERROR : drawElements: buffer used as uniform buffer and tf simultaneously]
|
||||
expected: FAIL
|
||||
|
||||
[WebGL test #102: getError expected: INVALID_OPERATION. Was NO_ERROR : bufferData with double bound buffer]
|
||||
[WebGL test #13: getError expected: INVALID_OPERATION. Was NO_ERROR : drawElements: buffer used as vertex attrib and tf simultaneously]
|
||||
expected: FAIL
|
||||
|
||||
[WebGL test #45: Unexpected error before drawing: 1282]
|
||||
[WebGL test #67: should be the same as before as nothing has executed]
|
||||
expected: FAIL
|
||||
|
||||
[WebGL test #8: Unexpected error before drawing: 1282]
|
||||
[WebGL test #15: should be the same as before as nothing has executed]
|
||||
expected: FAIL
|
||||
|
||||
[WebGL test #78: Unexpected error before drawing: 1282]
|
||||
[WebGL test #44: getError expected: INVALID_OPERATION. Was NO_ERROR : buffer used as uniform buffer and tf simultaneously]
|
||||
expected: FAIL
|
||||
|
||||
[WebGL test #62: Unexpected error before drawing: 1282]
|
||||
[WebGL test #81: getError expected: INVALID_OPERATION. Was NO_ERROR : bufferData with double bound buffer]
|
||||
expected: FAIL
|
||||
|
||||
[WebGL test #22: Unexpected error before drawing: 1282]
|
||||
[WebGL test #18: getError expected: INVALID_OPERATION. Was NO_ERROR : buffer used as uniform buffer and tf simultaneously]
|
||||
expected: FAIL
|
||||
|
||||
[WebGL test #10: buffer should match expected values]
|
||||
[WebGL test #64: getError expected: INVALID_OPERATION. Was NO_ERROR : drawArrays: buffer used as vertex attrib and tf simultaneously]
|
||||
expected: FAIL
|
||||
|
||||
[WebGL test #70: Unexpected error before drawing: 1282]
|
||||
[WebGL test #49: getError expected: INVALID_OPERATION. Was NO_ERROR : tf enabled]
|
||||
expected: FAIL
|
||||
|
||||
[WebGL test #83: Unexpected error before drawing: 1282]
|
||||
[WebGL test #65: getError expected: INVALID_OPERATION. Was NO_ERROR : drawElements: buffer used as vertex attrib and tf simultaneously]
|
||||
expected: FAIL
|
||||
|
||||
[WebGL test #81: getError expected: INVALID_OPERATION. Was NO_ERROR : drawArrays: buffer used as vertex attrib and tf simultaneously]
|
||||
expected: FAIL
|
||||
|
||||
[WebGL test #74: Unexpected error before drawing: 1282]
|
||||
expected: FAIL
|
||||
|
||||
[WebGL test #19: should be the same as before as nothing has executed]
|
||||
expected: FAIL
|
||||
|
||||
[WebGL test #5: getError expected: NO_ERROR. Was INVALID_OPERATION : transform feedback should be successful]
|
||||
expected: FAIL
|
||||
|
||||
[WebGL test #95: Unexpected error before drawing: 1282]
|
||||
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 #9: getError expected: NO_ERROR. Was INVALID_OPERATION : transform feedback should be successful]
|
||||
expected: FAIL
|
||||
|
||||
[WebGL test #29: Unexpected error before drawing: 1282]
|
||||
expected: FAIL
|
||||
|
||||
[WebGL test #76: buffer should match expected values]
|
||||
expected: FAIL
|
||||
|
||||
[WebGL test #46: getError expected: NO_ERROR. Was INVALID_OPERATION : transform feedback should be successful]
|
||||
expected: FAIL
|
||||
|
||||
[WebGL test #75: getError expected: NO_ERROR. Was INVALID_OPERATION : transform feedback should be successful]
|
||||
expected: FAIL
|
||||
|
||||
[WebGL test #27: getError expected: NO_ERROR. Was INVALID_OPERATION : tf buffer not used as uniform buffer anymore]
|
||||
expected: FAIL
|
||||
|
||||
[WebGL test #88: Unexpected error before drawing: 1282]
|
||||
expected: FAIL
|
||||
|
||||
[WebGL test #14: buffer should match expected values]
|
||||
expected: FAIL
|
||||
|
||||
[WebGL test #80: buffer should match expected values]
|
||||
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 #82: getError expected: INVALID_OPERATION. Was NO_ERROR : drawElements: buffer used as vertex attrib and tf simultaneously]
|
||||
expected: FAIL
|
||||
|
||||
[WebGL test #92: 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 #71: getError expected: NO_ERROR. Was INVALID_OPERATION : transform feedback should be successful]
|
||||
expected: FAIL
|
||||
|
||||
[WebGL test #85: should be the same as before as nothing has executed]
|
||||
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 #50: Unexpected error before drawing: 1282]
|
||||
expected: FAIL
|
||||
|
||||
[WebGL test #86: getError expected: INVALID_OPERATION. Was NO_ERROR : drawArrays: buffer used as uniform buffer and tf simultaneously]
|
||||
expected: FAIL
|
||||
|
||||
[WebGL test #12: 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 #16: getError expected: INVALID_OPERATION. Was NO_ERROR : drawElements: buffer used as vertex attrib and tf simultaneously]
|
||||
expected: FAIL
|
||||
|
||||
[WebGL test #55: Unexpected error before drawing: 1282]
|
||||
expected: FAIL
|
||||
|
||||
[WebGL test #38: getError expected: NO_ERROR. Was INVALID_OPERATION : transform feedback should be successful]
|
||||
expected: FAIL
|
||||
|
||||
[WebGL test #42: getError expected: NO_ERROR. Was INVALID_OPERATION : transform feedback should be successful]
|
||||
expected: FAIL
|
||||
|
||||
[WebGL test #39: buffer should match expected values]
|
||||
expected: FAIL
|
||||
|
||||
[WebGL test #93: getError expected: NO_ERROR. Was INVALID_OPERATION : tf buffer not used as uniform buffer anymore]
|
||||
expected: FAIL
|
||||
|
||||
[WebGL test #53: getError expected: INVALID_OPERATION. Was NO_ERROR : drawArrays: buffer used as uniform buffer and tf simultaneously]
|
||||
[WebGL test #17: getError expected: INVALID_OPERATION. Was NO_ERROR : drawElements: buffer used as uniform buffer and tf simultaneously]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,67 +1,2 @@
|
|||
[switching-objects.html]
|
||||
[WebGL test #6: buffer should match expected values]
|
||||
expected: FAIL
|
||||
|
||||
[WebGL test #23: getError expected: NO_ERROR. Was INVALID_OPERATION : begin on tf1]
|
||||
expected: FAIL
|
||||
|
||||
[WebGL test #41: getError expected: NO_ERROR. Was INVALID_OPERATION : end while paused]
|
||||
expected: FAIL
|
||||
|
||||
[WebGL test #26: getError expected: NO_ERROR. Was INVALID_OPERATION : end on tf1]
|
||||
expected: FAIL
|
||||
|
||||
[WebGL test #33: getError expected: INVALID_OPERATION. Was NO_ERROR : wrong primitive mode]
|
||||
expected: FAIL
|
||||
|
||||
[WebGL test #14: getError expected: NO_ERROR. Was INVALID_OPERATION : begin]
|
||||
expected: FAIL
|
||||
|
||||
[WebGL test #27: buffer should match expected values]
|
||||
expected: FAIL
|
||||
|
||||
[WebGL test #22: getError expected: NO_ERROR. Was INVALID_OPERATION : bind while paused]
|
||||
expected: FAIL
|
||||
|
||||
[WebGL test #34: getError expected: INVALID_OPERATION. Was NO_ERROR : switch program while active]
|
||||
expected: FAIL
|
||||
|
||||
[WebGL test #3: getError expected: NO_ERROR. Was INVALID_OPERATION : begin TF]
|
||||
expected: FAIL
|
||||
|
||||
[WebGL test #17: TRANSFORM_FEEDBACK_BINDING was [object WebGLTransformFeedback\], but expected [object WebGLTransformFeedback\]]
|
||||
expected: FAIL
|
||||
|
||||
[WebGL test #39: getError expected: NO_ERROR. Was INVALID_OPERATION : pause]
|
||||
expected: FAIL
|
||||
|
||||
[WebGL test #16: getError expected: INVALID_OPERATION. Was NO_ERROR : bind while unpaused]
|
||||
expected: FAIL
|
||||
|
||||
[WebGL test #28: getError expected: NO_ERROR. Was INVALID_OPERATION : end on tf2]
|
||||
expected: FAIL
|
||||
|
||||
[WebGL test #36: getError expected: INVALID_OPERATION. Was NO_ERROR : bindTransformFeedback when active]
|
||||
expected: FAIL
|
||||
|
||||
[WebGL test #9: TRANSFORM_FEEDBACK_BUFFER_BINDING[0\] was [object WebGLBuffer\], but expected [object WebGLBuffer\]]
|
||||
expected: FAIL
|
||||
|
||||
[WebGL test #20: getError expected: NO_ERROR. Was INVALID_OPERATION : begin on tf2]
|
||||
expected: FAIL
|
||||
|
||||
[WebGL test #19: buffer should match expected values]
|
||||
expected: FAIL
|
||||
|
||||
[WebGL test #32: getError expected: NO_ERROR. Was INVALID_OPERATION : transform feedback should begin successfully]
|
||||
expected: FAIL
|
||||
|
||||
[WebGL test #18: getError expected: NO_ERROR. Was INVALID_OPERATION : transform feedback should complete successfully]
|
||||
expected: FAIL
|
||||
|
||||
[WebGL test #5: getError expected: NO_ERROR. Was INVALID_OPERATION : end TF]
|
||||
expected: FAIL
|
||||
|
||||
[WebGL test #38: getError expected: INVALID_OPERATION. Was NO_ERROR : bindBufferBase(TRANSFORM_FEEDBACK_BUFFER) when active]
|
||||
expected: FAIL
|
||||
|
||||
expected: TIMEOUT
|
||||
|
|
|
@ -1,28 +1,7 @@
|
|||
[transform_feedback.html]
|
||||
[WebGL test #31: buffer should match expected values]
|
||||
expected: FAIL
|
||||
|
||||
[WebGL test #11: gl.getIndexedParameter(gl.TRANSFORM_FEEDBACK_BUFFER_BINDING, 0) should be null. Was [object WebGLBuffer\].]
|
||||
expected: FAIL
|
||||
|
||||
[WebGL test #25: buffer should match expected values]
|
||||
expected: FAIL
|
||||
|
||||
[WebGL test #32: buffer should match expected values]
|
||||
expected: FAIL
|
||||
|
||||
[WebGL test #26: getError expected: NO_ERROR. Was INVALID_OPERATION : linking transform feedback shader should not set an error]
|
||||
expected: FAIL
|
||||
|
||||
[WebGL test #28: buffer should match expected values]
|
||||
expected: FAIL
|
||||
|
||||
[WebGL test #35: getError expected: NO_ERROR. Was INVALID_OPERATION : linking transform feedback shader should not set an error]
|
||||
expected: FAIL
|
||||
|
||||
[WebGL test #34: TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN query returned an incorrect result 0 (expected 3)]
|
||||
expected: FAIL
|
||||
|
||||
[WebGL test #29: getError expected: NO_ERROR. Was INVALID_OPERATION : linking transform feedback shader should not set an error]
|
||||
[WebGL test #24: getError expected: INVALID_OPERATION. Was NO_ERROR : after evaluating: gl.getBufferSubData(gl.TRANSFORM_FEEDBACK_BUFFER, 0, retArray, 0, retArray.length)]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,7 +0,0 @@
|
|||
[two-unreferenced-varyings.html]
|
||||
[WebGL test #2: getError expected: NO_ERROR. Was INVALID_OPERATION : Draw with transform feedback should succeed]
|
||||
expected: FAIL
|
||||
|
||||
[WebGL test #3: buffer should match expected values]
|
||||
expected: FAIL
|
||||
|
|
@ -1,7 +1,4 @@
|
|||
[unwritten-output-defaults-to-zero.html]
|
||||
[WebGL test #2: buffer should match expected values]
|
||||
expected: FAIL
|
||||
|
||||
[WebGL test #3: getError expected: NO_ERROR. Was INVALID_OPERATION : Set up program should succeed]
|
||||
[WebGL test #4: buffer should match expected values]
|
||||
expected: FAIL
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue