webgl: Only error when beginning transform feedback on programs that have no varying values.

This commit is contained in:
Josh Matthews 2020-04-07 21:57:38 -04:00
parent 2128bf1e05
commit 9673091d7a
6 changed files with 29 additions and 224 deletions

View file

@ -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;
};

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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