New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 844308 link

Starred by 2 users

Issue metadata

Status: Duplicate
Merged: issue 830046
Owner: ----
Closed: Nov 15
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Bug

Blocked on:
issue 830046
issue 847998



Sign in to add a comment

conformance2/rendering/blitframebuffer-size-overflow.html fails on opengl

Project Member Reported by yunchao...@intel.com, May 18 2018

Issue description

The test can pass on D3D backend, because Olli landed some patches in ANGLE project. 

Currently, ANGLE is not enabled for GL backend by default, so the test still fail on OpenGL backend like Mac, Linux and Windows GL. 

See the corresponding issue at https://bugs.chromium.org/p/chromium/issues/detail?id=830046

I didn't see any clear schedule to enable ANGLE for GL backend in a short time, and the fix is quite straightforward in Chromium command buffer, so I would like to fix it.


 
Cc: yang...@intel.com
Project Member

Comment 2 by bugdroid1@chromium.org, May 26 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/f5ab530969f2873f35dbacb496da4eaf8ac8f4b5

commit f5ab530969f2873f35dbacb496da4eaf8ac8f4b5
Author: Yunchao He <yunchao.he@intel.com>
Date: Sat May 26 01:08:55 2018

Roll WebGL 7c0541d..198d637

https://chromium.googlesource.com/external/khronosgroup/webgl.git/+log/7c0541d..198d637

Bug: 609883, 611943, 611945, 844311,  844308 , 844311, 844349
Cq-Include-Trybots: luci.chromium.try:win_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_angle_rel_ng;luci.chromium.try:win_angle_rel_ng
Change-Id: I0bd4d7409796861e6a4d73c2afc3b054d61a5a2b
Reviewed-on: https://chromium-review.googlesource.com/1063564
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Kenneth Russell <kbr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#562091}
[modify] https://crrev.com/f5ab530969f2873f35dbacb496da4eaf8ac8f4b5/DEPS
[modify] https://crrev.com/f5ab530969f2873f35dbacb496da4eaf8ac8f4b5/content/test/gpu/gpu_tests/webgl2_conformance_expectations.py
[modify] https://crrev.com/f5ab530969f2873f35dbacb496da4eaf8ac8f4b5/content/test/gpu/gpu_tests/webgl_conformance_expectations.py
[modify] https://crrev.com/f5ab530969f2873f35dbacb496da4eaf8ac8f4b5/content/test/gpu/gpu_tests/webgl_conformance_revision.txt

Project Member

Comment 3 by bugdroid1@chromium.org, May 28 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/958775d9e7e174394faf2656a7030b8f4ad347d9

commit 958775d9e7e174394faf2656a7030b8f4ad347d9
Author: Yunchao He <yunchao.he@intel.com>
Date: Mon May 28 16:13:48 2018

Suppress WebGL tests on multiple OSes

TBR=kbr@chromium.org, zmo@chromium.org

Bug:  844308 , 844311, 847217, 847222
Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel
Change-Id: Ied61bc487c493596140c651a1c926378f3c144d9
Reviewed-on: https://chromium-review.googlesource.com/1075295
Commit-Queue: Yunchao He <yunchao.he@intel.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Cr-Commit-Position: refs/heads/master@{#562275}
[modify] https://crrev.com/958775d9e7e174394faf2656a7030b8f4ad347d9/content/test/gpu/gpu_tests/webgl2_conformance_expectations.py
[modify] https://crrev.com/958775d9e7e174394faf2656a7030b8f4ad347d9/content/test/gpu/gpu_tests/webgl_conformance_expectations.py

Comment 5 by kbr@chromium.org, May 29 2018

FWIW, one of the failures suppressed:

https://ci.chromium.org/p/chromium/builders/luci.chromium.ci/Mac%20FYI%20Retina%20Release%20%28NVIDIA%29/1636

[10/136] gpu_tests.webgl_conformance_integration_test.WebGLConformanceIntegrationTest.WebglConformance_conformance2_rendering_blitframebuffer_size_overflow failed unexpectedly 2.9302s:
  
  Traceback (most recent call last):
    _RunGpuTest at content/test/gpu/gpu_tests/gpu_integration_test.py:132
      self.RunActualGpuTest(url, *args)
    RunActualGpuTest at content/test/gpu/gpu_tests/webgl_conformance_integration_test.py:185
      getattr(self, test_name)(test_path, *args[1:])
    _RunConformanceTest at content/test/gpu/gpu_tests/webgl_conformance_integration_test.py:199
      self._CheckTestCompletion()
    _CheckTestCompletion at content/test/gpu/gpu_tests/webgl_conformance_integration_test.py:195
      self.fail(self._WebGLTestMessages(self.tab))
    fail at .swarming_module/lib/python2.7/unittest/case.py:410
      raise self.failureException(msg)
  AssertionError: getError expected: INVALID_VALUE. Was INVALID_OPERATION : Using source width/height greater than max 32-bit integer should fail.
  FAIL getError expected: INVALID_VALUE. Was INVALID_OPERATION : Using source width/height greater than max 32-bit integer should fail.
  getError expected: INVALID_VALUE. Was NO_ERROR : Using source width/height greater than max 32-bit integer should fail.
  FAIL getError expected: INVALID_VALUE. Was NO_ERROR : Using source width/height greater than max 32-bit integer should fail.
  getError expected: INVALID_VALUE. Was NO_ERROR : Using destination width/height greater than max 32-bit integer should fail.
  FAIL getError expected: INVALID_VALUE. Was NO_ERROR : Using destination width/height greater than max 32-bit integer should fail.
  getError expected: INVALID_VALUE. Was NO_ERROR : Using destination width/height greater than max 32-bit integer should fail.
  FAIL getError expected: INVALID_VALUE. Was NO_ERROR : Using destination width/height greater than max 32-bit integer should fail.
  getError expected: INVALID_VALUE. Was INVALID_OPERATION : Using both source and destination width/height greater than max 32-bit integer should fail.
  FAIL getError expected: INVALID_VALUE. Was INVALID_OPERATION : Using both source and destination width/height greater than max 32-bit integer should fail.
  getError expected: INVALID_VALUE. Was INVALID_OPERATION : Using minimum and maximum integers for all boundaries should fail.
  FAIL getError expected: INVALID_VALUE. Was INVALID_OPERATION : Using minimum and maximum integers for all boundaries should fail.

Comment 6 by kainino@google.com, May 29 2018

Yunchao has this CL open which should fix that:
https://chromium-review.googlesource.com/c/chromium/src/+/1061053
Thanks Kai for pointing out this. Before the WebGL PRs (see #4), we don't limit src/dst region dimension to [0, 0x7ffffff], but blittig framebuffer had some problems on some machines like Mac, so we landed a workaround to limit the size. But we generate INVALID_OPERATION at that time, instead of INVALID_VALUE. 

Now that we limit the region size, that issue will be fixed too after apply my CL. 
Project Member

Comment 8 by bugdroid1@chromium.org, May 30 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/32cf029fdc88c543b7d2e6a362874ca522cc7728

commit 32cf029fdc88c543b7d2e6a362874ca522cc7728
Author: Yunchao He <yunchao.he@intel.com>
Date: Wed May 30 06:21:30 2018

Fix bugs for blitFramebuffer when we limit src/dst rect size.

According to WebGL 2 spec. the width/height of src/dst blitting area
should not exceed the max value that can be stored in an integer.

Bug:  844308 , 830046
Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel
Change-Id: I65833dfacabacc46c5cd3602233926e3e31aa6cf
Reviewed-on: https://chromium-review.googlesource.com/1061053
Commit-Queue: Yunchao He <yunchao.he@intel.com>
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#562748}
[modify] https://crrev.com/32cf029fdc88c543b7d2e6a362874ca522cc7728/content/test/gpu/gpu_tests/webgl2_conformance_expectations.py
[modify] https://crrev.com/32cf029fdc88c543b7d2e6a362874ca522cc7728/gpu/command_buffer/service/gles2_cmd_decoder.cc

Project Member

Comment 9 by bugdroid1@chromium.org, May 30 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/cea7bce789fb2ea47dcf4d302cee074099c5b5e7

commit cea7bce789fb2ea47dcf4d302cee074099c5b5e7
Author: Jamie Madill <jmadill@chromium.org>
Date: Wed May 30 20:28:52 2018

Revert "Fix bugs for blitFramebuffer when we limit src/dst rect size."

This reverts commit 32cf029fdc88c543b7d2e6a362874ca522cc7728.

Reason for revert: Seems to cause the subsequent tests to fail on the 
passthrough command buffer. Example:

https://ci.chromium.org/p/chromium/builders/luci.chromium.ci/Win10%20FYI%20Release%20%28NVIDIA%29/1247

See issue for more details.

Bug:  847998 

Original change's description:
> Fix bugs for blitFramebuffer when we limit src/dst rect size.
> 
> According to WebGL 2 spec. the width/height of src/dst blitting area
> should not exceed the max value that can be stored in an integer.
> 
> Bug:  844308 , 830046
> Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel
> Change-Id: I65833dfacabacc46c5cd3602233926e3e31aa6cf
> Reviewed-on: https://chromium-review.googlesource.com/1061053
> Commit-Queue: Yunchao He <yunchao.he@intel.com>
> Reviewed-by: Kai Ninomiya <kainino@chromium.org>
> Reviewed-by: Kenneth Russell <kbr@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#562748}

TBR=kbr@chromium.org,yunchao.he@intel.com,kainino@chromium.org

Change-Id: I7f351aa0534b4962012b27d29245eab14a07ec24
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug:  844308 , 830046
Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel
Reviewed-on: https://chromium-review.googlesource.com/1079797
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Cr-Commit-Position: refs/heads/master@{#562978}
[modify] https://crrev.com/cea7bce789fb2ea47dcf4d302cee074099c5b5e7/content/test/gpu/gpu_tests/webgl2_conformance_expectations.py
[modify] https://crrev.com/cea7bce789fb2ea47dcf4d302cee074099c5b5e7/gpu/command_buffer/service/gles2_cmd_decoder.cc

Blockedon: 847998

Comment 11 by kbr@chromium.org, May 31 2018

Blockedon: 830046
Components: Blink>WebGL
Unfortunately, per  Issue 847998 , the fix for this issue and subsequent running of the conformance2/rendering/blitframebuffer-size-overflow.html test started causing problems in NVIDIA's driver and subsequent flakes in the WebGL 2.0 conformance suite.

I think we should consider a WebGL 2.0 specification change which will avoid the problematic behavior in most vendors' drivers. Wildly out-of-range values for BlitFramebuffer probably don't need to be supported at all.

Project Member

Comment 12 by bugdroid1@chromium.org, Jun 2 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/71a5107a7fa3567b43841b4c95a55ff247bb7790

commit 71a5107a7fa3567b43841b4c95a55ff247bb7790
Author: Yunchao He <yunchao.he@intel.com>
Date: Sat Jun 02 01:39:18 2018

Fix bugs for blitFramebuffer when we limit src/dst rect size.

According to WebGL 2 spec. the width/height of src/dst blitting area
should not exceed the max value that can be stored in an integer.

https://chromium-review.googlesource.com/c/chromium/src/+/1061053
was the original patch, but it was reverted because it broke ANGLE
CQ (win_angle_rel_ng bot). This new patch simply skipped the updated test
blitframebuffer-size-overflow.html on win/linux + NV + gl + passthrough,
because it still lead to context lost for this config and make subsequent
webgl tests fail. After we skip the test as what it was in the
expectation file, ANGLE CQ like win_angle_rel_ng turns green.

Bug:  844308 , 830046,  847998 
Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel
Change-Id: Ib934814a63a77e2e8a2e7e327bfe500b56e3c63d
Reviewed-on: https://chromium-review.googlesource.com/1080003
Commit-Queue: Yunchao He <yunchao.he@intel.com>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Cr-Commit-Position: refs/heads/master@{#563906}
[modify] https://crrev.com/71a5107a7fa3567b43841b4c95a55ff247bb7790/content/test/gpu/gpu_tests/webgl2_conformance_expectations.py
[modify] https://crrev.com/71a5107a7fa3567b43841b4c95a55ff247bb7790/gpu/command_buffer/service/gles2_cmd_decoder.cc

Project Member

Comment 14 by bugdroid1@chromium.org, Jun 4 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/cf038b5209caee38fcd17d7d47ee01849174ab3b

commit cf038b5209caee38fcd17d7d47ee01849174ab3b
Author: Eric Karl <ericrk@chromium.org>
Date: Mon Jun 04 20:24:17 2018

Re-disable flaky Linux NVidia blitframebufffer-size-overflow

This test was re-enabled for non-passthrough linux in
https://chromium.googlesource.com/chromium/src/+/71a5107a7fa3567b43841b4c95a55ff247bb7790%5E%21/#F0

Unfortunately, that fix does not appear to have addressed all issues,
and we are still seeing frequent flakes (30% of the time) on Linux NVidia.

Re-disabling flaky test until we can get further fixes in.

Bug:  844308 
Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel
Change-Id: Id6dbf8b9ed7309f292e836cc9f9cbf3d909143d7
Reviewed-on: https://chromium-review.googlesource.com/1085561
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Kenneth Russell <kbr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#564215}
[modify] https://crrev.com/cf038b5209caee38fcd17d7d47ee01849174ab3b/content/test/gpu/gpu_tests/webgl2_conformance_expectations.py

I'm not quite sure how the test is still be failing after https://chromium-review.googlesource.com/c/chromium/src/+/1061053 - the checks there look correct to me. Maybe they're still missing from some other path in the code. I can try to debug this some more, unless Yunchao is already on it.
Olli, please go ahead. I don't have patch about this flaky. I am glad to help, but I can not reproduce because I don't have NV Quadro series devices. As I said at https://chromium-review.googlesource.com/c/chromium/src/+/1061053, NV GeForce is OK, it doesn't lost context (only fail without that patch). 
The remaining issue might be in the subtests where the parameters are valid, so the validation for incorrect parameters can't fix it. I couldn't repro it on GeForce 1080, going to try on Quadro P400.

Comment 18 by kbr@chromium.org, Jun 7 2018

Thanks Olli for trying to reproduce. Please note that the failure is unfortunately flaky so it may be difficult to. We're running NVIDIA's 384.90 driver on the bots where the failure was reproduced:

https://cs.chromium.org/chromium/src/testing/buildbot/waterfalls.pyl?q=waterfalls.pyl&sq=package:chromium&dr&l=905

Comment 19 by oetu...@nvidia.com, Jun 26 2018

Owner: oetu...@nvidia.com
I got the Quadro P400 hardware to reproduce this and diagnosed this a bit further, testing on Linux with NVIDIA 396.24 driver.

The issue appears when the blit destination dimensions are larger than 512 times the source framebuffer dimensions, and at least 65536 + 1. I got it to reproduce in a simple native test application as long as context robustness is turned on. It reproduces reliably.

I've reported the bug against the NVIDIA driver. The NVIDIA bug number is 2215452.
Cc: -oetu...@nvidia.com
Owner: ----
Status: Available (was: Assigned)
No driver fix yet. You may ask for updates from other NVIDIA contacts.
Mergedinto: 830046
Status: Duplicate (was: Available)
Duplicating this into the other issue because there are continued failures. 

Sign in to add a comment