Reduce size of WebGL 2.0 conformance logs |
|||||
Issue descriptionThe logs from the WebGL 2.0 conformance tests on the bots are so huge that the browser can't load them effectively, and people can't find failures easily in them. zmo@ and cwallez@ point out that at least for passing tests, no output should be shown. I thought this was implemented, but it looks like at least some tests are getting past this. For example: https://chromium-swarm.appspot.com/user/task/3004fa390c860110 WebglConformance_deqp_functional_gles3_fragmentoutput_random_00 (gpu_tests.webgl_conformance_integration_test.WebGLConformanceIntegrationTest) ... [3548:3016:0714/183009:INFO:CONSOLE(11)] "out 0 value range: -1000,-1000,-1000,-1000 -> 1000,1000,1000,1000", source: (11) [3548:3016:0714/183009:INFO:CONSOLE(11)] "out 1 value range: -128,-128,-128,-128 -> 127,127,127,127", source: (11) [3548:3016:0714/183009:INFO:CONSOLE(11)] "out 0 value range: 0,0,0,0 -> 1,1,0,0", source: (11) ... ok It's not clear why these console messages are being output. Also, expected failures should probably squelch console messages as well, rather than printing them twice (once for the console output, and once in the exception's message): WebglConformance_deqp_functional_gles3_shaderloop_do_while (gpu_tests.webgl_conformance_integration_test.WebGLConformanceIntegrationTest) ... [3548:3016:0714/182836:INFO:CONSOLE(11)] "loops.do_while.constant_iterations.nested_tricky_dataflow_1_vertex: Fail", source: (11) [3548:3016:0714/182836:INFO:CONSOLE(11)] "Init testcase: loops", source: (11) [3548:3016:0714/182836:INFO:CONSOLE(11)] "Init testcase: loops.do_while.constant_iterations.basic_lowp_int_vertex", source: (11) ... Expected exception while running WebglConformance_deqp_functional_gles3_shaderloop_do_while Traceback (most recent call last): _RunGpuTest at content\test\gpu\gpu_tests\gpu_integration_test.py:49 self.RunActualGpuTest(url, *args) RunActualGpuTest at content\test\gpu\gpu_tests\webgl_conformance_integration_test.py:50 self.fail(webgl_conformance._WebGLTestMessages(self.tab)) fail at c:\b\depot_tools\python276_bin\lib\unittest\case.py:412 raise self.failureException(msg) AssertionError: loops.do_while.constant_iterations.nested_tricky_dataflow_1_vertex: Fail Init testcase: loops ... Part of the problem is that --show-stdout is passed to the browser and this inevitably causes GL errors from the command buffer to be printed in the logs. Some negative tests need to be identified which have a lot of output of this sort, and see if it's possible to switch on and off the printing of the browser's stdout.
,
Jul 16 2016
I send several pull requests to clear console, hope it's clean now: https://github.com/KhronosGroup/WebGL/pull/1894 https://github.com/KhronosGroup/WebGL/pull/1892 https://github.com/KhronosGroup/WebGL/pull/1893
,
Jul 18 2016
Thanks Qiankun for these fixes! I didn't expect them. Let's see how the logs look after the next conformance roll.
,
Jul 22 2016
These have helped a lot, but there is still more work to do. The command buffer reports GL errors to the JavaScript console by default, which is helpful for developers, but expands the logs on the bots. These logs are very useful when a test fails, but we should figure out a way to suppress them for passing tests. This will probably require more APIs in Telemetry. A prototype is needed before proposing new APIs. Looking at a recent webgl2_conformance_tests run from https://build.chromium.org/p/chromium.gpu.fyi/builders/Linux%20Release%20(NVIDIA) , WebglConformance_deqp_functional_gles3_negativetextureapi is a good example of a test which deliberately generates a lot of errors. Downgrading to P2 as this is less urgent at this point.
,
Nov 2 2016
,
May 24 2017
There's a strong indication that the huge volume of output from the GPU process while running the WebGL 1.0 and 2.0 conformance tests may be occasionally causing the GPU process to hang -- because some caller up the chain isn't consuming its stdout and stderr streams promptly. Need to figure out whether we can change Telemetry to start and stop pass-through of the browser's output on demand. Taking. |
|||||
►
Sign in to add a comment |
|||||
Comment 1 by kbr@chromium.org
, Jul 15 2016