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

Issue 678153 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Jan 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux , Windows , Mac
Pri: 2
Type: Bug-Regression



Sign in to add a comment

WebGL leaves artefects even when framebuffer is cleared

Reported by jinyao...@gmail.com, Jan 4 2017

Issue description

UserAgent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36

Steps to reproduce the problem:
1. Go to http://veontest.azurewebsites.net/
2. Drag to rotate the avatar.
3. Rendering artefects occurs.

What is the expected behavior?
No rendering artefects.

What went wrong?
The framebuffer not cleared when calling the function.

Did this work before? Yes 53

Does this work in other browsers? Yes

Chrome version: 55.0.2883.87  Channel: stable
OS Version: 10.0
Flash Version: Shockwave Flash 24.0 r0

Stop working after updating to version 54
 
Labels: Needs-Triage-M55
Cc: kkaluri@chromium.org
Components: Blink>WebGL
Labels: hasbisect-per-revision M-57 OS-Linux OS-Mac
Owner: zmo@chromium.org
Status: Assigned (was: Unconfirmed)
Able to reproduce this issue on Windows 10, Ubuntu 14.04  with chrome version #55.0.2883.87 and Mac 10.12.2 on chrome stable version 55.0.2883.95 and also in current canary version #57.0.2970.0
Issue is broken in M55.

Bisect Info:
===========
Good build : 55.0.2844.0,  Revision Range -415023
Bad build  : 55.0.2845.0,  Revision Range -415522

After executing the per-revision-bisect script , i got the following CL's between good and bad build versions
===========================================
https://chromium.googlesource.com/chromium/src/+log/0d39c7960c16b5f998a9ae85169ec6343ac088a7..1eb4627c819627991316dc07225cb76d7f3b7e35

The suspecting Change Log is :
-----------
https://chromium.googlesource.com/chromium/src/+/1eb4627c819627991316dc07225cb76d7f3b7e35

From the above CL suspecting the below change
---------------------------
Review-Url: https://codereview.chromium.org/2251263002

zmo@- Could you please look into this issue, if it's related to your change?  if not could you please help us to reassign this issue to the right owner.

Comment 3 by zmo@chromium.org, Jan 4 2017

Cc: kbr@chromium.org kainino@chromium.org
First, that CL can't be responsible for issues in Windows/Linux because the CL is switching Mac from Compatibility profile to Core profile and has nothing to do with other platforms.

That said, this does sound like serious issue, so I'll take a look.
Note the original report said the regression was from 53 to 54. The result of the bisect (55.0.2844.0 to 55.0.2845.0) is very far away from there, not sure why. I'll try a quick bisect to see what happens.
My bisect-builds.py -g 53.0.2785.157 -b 54.0.2840.101 pointed to this revision:

https://chromium.googlesource.com/chromium/src/+log/f8d97238d9770ea6c1154e042584089ec9a26b0c..eaae3bb1ac1ba1dc5f54180c9e8dc180326a65e2

Which is also zmo's, so leaving assigned to zmo.

Comment 6 by zmo@chromium.org, Jan 6 2017

Status: Started (was: Assigned)
It's an optimization that has a bug in it.

Basically Chrome internally turn on/off DrawBuffers settings depending on color images are attached to a attaching point.

The bug is we only do this at DrawArrays and DrawElements, and we forget about Clear().  That's why the model is drawn correctly, but the clear isn't there.

I'll have a conformance test and a fix up soon.
Project Member

Comment 7 by bugdroid1@chromium.org, Jan 7 2017

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

commit 3e2c0df8485250d7bd94ab90fc6a260bf89cef71
Author: zmo <zmo@chromium.org>
Date: Sat Jan 07 01:38:34 2017

Fix a bug in drawBuffers optimization.

We filter out draw buffers that are not written to and are not NONE, but
currently we only do that on Draw calls, not Clear.  This CL fixes this.

BUG= 678153 
TEST=webgl_conformance, test case from the bug
R=kbr@chromium.org
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel

Review-Url: https://codereview.chromium.org/2611403002
Cr-Commit-Position: refs/heads/master@{#442131}

[modify] https://crrev.com/3e2c0df8485250d7bd94ab90fc6a260bf89cef71/gpu/command_buffer/service/framebuffer_manager.cc
[modify] https://crrev.com/3e2c0df8485250d7bd94ab90fc6a260bf89cef71/gpu/command_buffer/service/framebuffer_manager.h
[modify] https://crrev.com/3e2c0df8485250d7bd94ab90fc6a260bf89cef71/gpu/command_buffer/service/gles2_cmd_decoder.cc

Comment 8 by zmo@chromium.org, Jan 9 2017

Status: Fixed (was: Started)

Sign in to add a comment