webgl/2.0.0/conformance/extensions/angle-instanced-arrays.html was marked as passing when we switched to ANGLE, but it's actually still failing on hardware/software configurations where it used to fail. https://results.webkit.org/?suite=layout-tests&test=webgl%2F2.0.0%2Fconformance2%2Ftransform_feedback%2Funwritten-output-defaults-to-zero.html @@ -1,5 +1,86 @@ This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. Test: ../../resources/webgl_test_files/conformance/extensions/angle-instanced-arrays.html -[ PASS ] All tests passed +[ 1: PASS ] WebGL context exists +[ 2: PASS ] getError was expected value: INVALID_ENUM : VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE should not be queryable if extension is disabled +[ 3: PASS ] Successfully enabled ANGLE_instanced_arrays extension +[ 4: PASS ] ANGLE_instanced_arrays listed as supported and getExtension succeeded +[ 5: PASS ] ext.VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE is 0x88FE +[ 6: PASS ] Vertex attribute 0 must has a default divisor of 0 +[ 7: PASS ] Vertex attribute 1 must has a default divisor of 0 +[ 8: PASS ] Vertex attribute 2 must has a default divisor of 0 +[ 9: PASS ] Vertex attribute 3 must has a default divisor of 0 +[ 10: PASS ] Vertex attribute 4 must has a default divisor of 0 +[ 11: PASS ] Vertex attribute 5 must has a default divisor of 0 +[ 12: PASS ] Vertex attribute 6 must has a default divisor of 0 +[ 13: PASS ] Vertex attribute 7 must has a default divisor of 0 +[ 14: PASS ] Vertex attribute 8 must has a default divisor of 0 +[ 15: PASS ] Vertex attribute 9 must has a default divisor of 0 +[ 16: PASS ] Vertex attribute 10 must has a default divisor of 0 +[ 17: PASS ] Vertex attribute 11 must has a default divisor of 0 +[ 18: PASS ] Vertex attribute 12 must has a default divisor of 0 +[ 19: PASS ] Vertex attribute 13 must has a default divisor of 0 +[ 20: PASS ] Vertex attribute 14 must has a default divisor of 0 +[ 21: PASS ] Vertex attribute 15 must has a default divisor of 0 +[ 22: PASS ] getError was expected value: INVALID_VALUE : vertexAttribDivisorANGLE index set greater than or equal to MAX_VERTEX_ATTRIBS should be an invalid value +[ 23: PASS ] getError was expected value: NO_ERROR : vertexAttribDivisorANGLE index set less than MAX_VERTEX_ATTRIBS should succeed +[ 24: PASS ] Set value of VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE matches expecation +[ 25: PASS ] gl.getExtension("ANGLE_instanced_arrays").myProperty is 2 +[ 26: PASS ] getError was expected value: NO_ERROR : vertex attrib divisor should affect regular drawArrays when the extension is enabled +[ 27: PASS ] should be 255,0,0,255 +[ 28: PASS ] should be 255,0,0,255 +[ 29: PASS ] should be 0,255,0,255 +[ 30: PASS ] should be 0,0,255,255 +[ 31: PASS ] should be 255,255,0,255 +[ 32: PASS ] getError was expected value: INVALID_VALUE : drawArraysInstancedANGLE cannot have a primcount less than 0 +[ 33: PASS ] getError was expected value: INVALID_VALUE : drawArraysInstancedANGLE cannot have a count less than 0 +[ 34: PASS ] getError was expected value: INVALID_OPERATION : There must be at least one vertex attribute with a divisor of zero when calling drawArraysInstancedANGLE +[ 35: PASS ] getError was expected value: NO_ERROR : drawArraysInstancedANGLE with POINTS should succeed +[ 36: PASS ] getError was expected value: NO_ERROR : drawArraysInstancedANGLE with LINES should succeed +[ 37: PASS ] getError was expected value: NO_ERROR : drawArraysInstancedANGLE with LINE_LIST should return succeed +[ 38: PASS ] getError was expected value: NO_ERROR : drawArraysInstancedANGLE with TRIANGLE_LIST should succeed +[ 39: PASS ] getError was expected value: INVALID_ENUM : drawArraysInstancedANGLE with QUAD_STRIP should return INVALID_ENUM +[ 40: PASS ] getError was expected value: INVALID_ENUM : drawArraysInstancedANGLE with QUADS should return INVALID_ENUM +[ 41: PASS ] getError was expected value: INVALID_ENUM : drawArraysInstancedANGLE with POLYGON should return INVALID_ENUM +[ 42: FAIL ] should be 255,0,0,255 at (13, 25) expected: 255,0,0,255 was 0,0,0,0 +[ 43: FAIL ] should be 0,255,0,255 at (38, 25) expected: 0,255,0,255 was 0,0,0,0 +[ 44: FAIL ] should be 0,0,255,255 at (13, 0) expected: 0,0,255,255 was 0,0,0,0 +[ 45: PASS ] should be 255,255,0,255 +[ 46: PASS ] getError was expected value: NO_ERROR : vertex attrib divisor should affect regular drawElements when the extension is enabled +[ 47: PASS ] should be 255,255,0,255 +[ 48: PASS ] should be 255,0,0,255 +[ 49: PASS ] should be 0,255,0,255 +[ 50: PASS ] should be 0,0,255,255 +[ 51: PASS ] should be 255,255,0,255 +[ 52: PASS ] getError was expected value: INVALID_VALUE : drawElementsInstancedANGLE cannot have a primcount less than 0 +[ 53: PASS ] getError was expected value: INVALID_VALUE : drawElementsInstancedANGLE cannot have a count less than 0 +[ 54: PASS ] getError was expected value: INVALID_OPERATION : There must be at least one vertex attribute with a divisor of zero when calling drawElementsInstancedANGLE +[ 55: PASS ] getError was expected value: NO_ERROR : drawElementsInstancedANGLE with UNSIGNED_BYTE should succeed +[ 56: PASS ] getError was expected value: NO_ERROR : drawElementsInstancedANGLE with POINTS should succeed +[ 57: PASS ] getError was expected value: NO_ERROR : drawElementsInstancedANGLE with LINES should succeed +[ 58: PASS ] getError was expected value: NO_ERROR : drawElementsInstancedANGLE with LINE_LIST should return succeed +[ 59: PASS ] getError was expected value: NO_ERROR : drawElementsInstancedANGLE with TRIANGLE_LIST should succeed +[ 60: PASS ] getError was expected value: INVALID_ENUM : drawElementsInstancedANGLE with QUAD_STRIP should return INVALID_ENUM +[ 61: PASS ] getError was expected value: INVALID_ENUM : drawElementsInstancedANGLE with QUADS should return INVALID_ENUM +[ 62: PASS ] getError was expected value: INVALID_ENUM : drawElementsInstancedANGLE with POLYGON should return INVALID_ENUM +[ 63: PASS ] getError was expected value: NO_ERROR : drawArraysInstancedANGLE should succeed +[ 64: PASS ] getError was expected value: NO_ERROR : drawArraysInstancedANGLE should succeed +[ 65: FAIL ] should be 255,0,0,255 at (25, 25) expected: 255,0,0,255 was 0,0,0,0 +[ 66: PASS ] Successfully enabled OES_vertex_array_object extension +[ 67: PASS ] entire canvas should be red +[ 68: PASS ] left half of canvas should be red +[ 69: PASS ] right half of canvas should be blue +[ 70: PASS ] Passed test 0 of 10 +[ 71: PASS ] Passed test 1 of 10 +[ 72: PASS ] Passed test 2 of 10 +[ 73: PASS ] Passed test 3 of 10 +[ 74: PASS ] Passed test 4 of 10 +[ 75: PASS ] Passed test 5 of 10 +[ 76: PASS ] Passed test 6 of 10 +[ 77: PASS ] Passed test 7 of 10 +[ 78: PASS ] Passed test 8 of 10 +[ 79: PASS ] Passed test 9 of 10 +[ 80: PASS ] Passed test 10 of 10 +[ 81: PASS ] successfullyParsed is true +[ FAIL ] 4 failures reported
<rdar://problem/58256986>
The failure reproduces on Catalina WK2, Mac mini 8,1, but not on iMac Pro.
I'm on MacOS Monterey 12.3 (21E230) MacBook Pro (15-inch, 2017) Radeon Pro 560 4 GB Intel HD Graphics 630 1536 MB WebGL2 works ok, but I build a line algorithm that relies on gl.drawArraysInstanced With WebGL1 it has ok performance, on WebGL2 the frame rate drops below 10. I don't have this issue with Firefox or Chrome. For some reason Chrome uses Radeon Pro 560 4 GB, and Firefox uses Intel HD Graphics 630 1536 MB. They both work fine. I can't get Safari to report back the GPU using 'WEBGL_debug_renderer_info' so I have no clue which Safari is using. Is there a way to give you a better report to see what the potential problem is? I'm worried a lot of people are going to get poor FPS from Safari, so I am sticking with WebGL1 with ANGLE_instanced_arrays extension if Safari is in use for now (although it's still bad performance comparatively to other browsers).
MrMartian: could you please provide a test case showing the performance problem you're facing? It would probably be better to file a separate bug about that rather than including it on this one, which is about a specific correctness test failure. We'd generally seen that ANGLE's Metal backend has eliminated mysterious performance problems seen with the OpenGL backend - so if you find this isn't the case, we'd like to investigate it. Thanks.