New issue
Advanced search Search tips

Issue 447419 link

Starred by 6 users

Issue metadata

Status: Fixed
Owner:
Closed: Jan 2015
Components:
EstimatedDays: ----
NextAction: ----
OS: Windows
Pri: 1
Type: Bug-Regression



Sign in to add a comment

Low-res WebGL cubemap faces randomly rendered black

Reported by somemail...@gmail.com, Jan 9 2015

Issue description

UserAgent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:34.0) Gecko/20100101 Firefox/34.0

Example URL:
http://geom.io/pc30/testCubemapFaces.html

Steps to reproduce the problem:
1. Render a quad into 16x16 cubemap.
2. Render a quad into 8x8 cubemap.
3. 

What is the expected behavior?
Quad drawn into every cubemap face.

What went wrong?
Some faces of 8x8 cubemap become black. Usually it's the first face, but sometimes some other faces too.

Does it occur on multiple sites: Yes

Is it a problem with a plugin? No 

Did this work before? N/A 

Does this work in other browsers? Yes 

Chrome version: 39.0.2171.95 (Official Build) m  Channel: n/a
OS Version: 6.1 (Windows 7, Windows Server 2008 R2)
Flash Version: 16.0.0.235

If you add some pause between rendering of each face, everything works fine. Therefore I suspect that rendering is asynchronous where it's not needed.

The same URL, but with some "sleep" between face renders: http://geom.io/pc30/testCubemapFacesSleep.html

FF/IE render everything without sleep just fine.

Running on a Win7/DX11 PC.
 
cubefacebug.jpg
36.9 KB View Download
Labels: -Pri-2 -Type-Bug Pri-1 Type-Bug-Regression M-40 Cr-Blink-Rendering
Owner: geoffl...@chromium.org
Status: Assigned
Able to reproduce the issue on Windows, working fine on MAC and page is not loaded on Linux.

This is a regression issue broken in M40 and below is the Bisect Info:

CHANGELOG URL:
  https://chromium.googlesource.com/chromium/src/+log/0181f4ac89929f78f9e88ca18e971031a21d5ae2..fb94c7103e612c03e0327d09ec01516be52e7257

Suspecting - https://chromium.googlesource.com/chromium/src/+/2a04445358913b81ed786927172647b701b73113


Comment 2 by laforge@google.com, Jan 9 2015

Labels: -Cr-Blink-Rendering Cr-Blink-Layout
Migrate from Cr-Blink-Rendering to Cr-Blink-Layout
Labels: Merge-Requested
Status: Fixed
Hi, I'd like to merge the fix to M40 if possible.  The fix was extremely simple, a one character typo fix (https://chromium.googlesource.com/angle/angle/+/8cb85c44f9e69c65297cbd1fe828a59cff35cb17) which has been rolled into chrome since Friday (Jan 9) (https://codereview.chromium.org/842223002/).

This has fixed several WebGL cube map related issues and shouldn't affect anything outside of WebGL because cube maps are not used elsewhere in chrome.


Labels: -Merge-Requested Merge-Review Hotlist-Merge-Review
[Automated comment] No bugdroid (commit) comments found, couldn't auto-approve, needs manual review.
Labels: -Merge-Review Merge-Approved
Project Member

Comment 6 by bugdroid1@chromium.org, Jan 20 2015

Project: angle/angle
Branch : 2214
Author : Geoff Lang <geofflang@chromium.org>
Commit : d77bd1632e4c3bbe326be4fb32fe6c53187cd5dd

Code-Review  0 : Geoff Lang
Code-Review  +2: Jamie Madill
Verified     0 : Jamie Madill
Verified     +1: Geoff Lang
Commit Queue   : Chumped
Change-Id      : I9e4cb31bdc82a1c556908571355387a9698c7528
Reviewed-at    : https://chromium-review.googlesource.com/241875

Fix missing "!" in cube map render target serial check.

BUG=angle:849
BUG= 447419 

src/libGLESv2/renderer/d3d/TextureD3D.cpp
Sorry, but now everything is even more broken than before.
chr2.jpg
34.2 KB View Download
And the version with 'sleep' put between rendering gives different result each time.
chr3.jpg
25.3 KB View Download
chr4.jpg
35.0 KB View Download
Project Member

Comment 9 by bugdroid1@chromium.org, Jan 22 2015

Labels: -Merge-Approved merge-merged-2214
The following revision refers to this bug:
  http://goto.ext.google.com/viewvc/chrome-internal?view=rev&revision=67523

------------------------------------------------------------------
r67523 | geofflang@google.com | 2015-01-22T15:21:55.526005Z

-----------------------------------------------------------------
@somemail256 what platform/chrome version are these results from?
Win7, Chrome 40.0.2214.91 m (just autoupdated)
The fix has not been merged to M40 yet, it is fixed in M41+ though.
Thanks, this is reassuring. I thought it was added to 40.
Geoff: 2214 is the M40 branch. If it has been merged there it will make its way to the M40 release..

Comment 15 by Deleted ...@, Jan 26 2015

Sorry, that's what I meant. The issue is not present in M41+ and the M40 update that contains the fix hasn't gone out yet. 
Just checked the Canary (42). Although my original test works there, some more complex scenarios using cubemaps still break. Try this:
http://geom.io/pc30/demoCubemapPrefilter.html
I get inconsistent results after every refresh (see attached image).
Firefox has this bug too now, because you both use Angle.
IE and Linux browsers work fine.
cubefacesbug2.jpg
131 KB View Download
Thanks for pointing out that demo, it appears to be a separate issue.
Project Member

Comment 18 by bugdroid1@chromium.org, Feb 5 2015

Project: angle/angle
Branch : master
Author : Geoff Lang <geofflang@chromium.org>
Commit : 358c8a95aeb3fd01218bc4116e999f4cd0c3fdc1

Code-Review  0 : Brandon Jones, Geoff Lang
Code-Review  +2: Jamie Madill
Verified     0 : Brandon Jones, Jamie Madill
Verified     +1: Geoff Lang
Commit Queue   : Chumped
Change-Id      : Ia77e3b00db0f327eb278285de14cd438c5cf538b
Reviewed-at    : https://chromium-review.googlesource.com/244664

Track bound render targets in D3D9 with uintptr_t and dirty them with -1.

BUG= 447419 

src/libANGLE/renderer/d3d/d3d9/Renderer9.cpp
src/libANGLE/renderer/d3d/d3d9/Renderer9.h
Project Member

Comment 19 by bugdroid1@chromium.org, Feb 5 2015

Project: angle/angle
Branch : master
Author : Geoff Lang <geofflang@chromium.org>
Commit : cf0777941aada938f097fe47a50c86a33a0ae09d

Code-Review  0 : Brandon Jones, Jamie Madill
Code-Review  +2: Geoff Lang
Verified     0 : Brandon Jones, Jamie Madill
Verified     +1: Geoff Lang
Commit Queue   : Chumped
Change-Id      : Ic36ebf108eca93e1239cc9c2a0d6479c84e93ace
Reviewed-at    : https://chromium-review.googlesource.com/244663

Track bound render targets in D3D11 with uintptr_t and dirty them with -1.

BUG= 447419 
BUG= 452587 

src/libANGLE/renderer/d3d/d3d11/Renderer11.cpp
src/libANGLE/renderer/d3d/d3d11/Renderer11.h
Project Member

Comment 20 by bugdroid1@chromium.org, Feb 11 2015

Project Member

Comment 21 by bugdroid1@chromium.org, Feb 12 2015

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

commit f46813fc5d985fccb715e278a984ad7348f11b3a
Author: waffles <waffles@chromium.org>
Date: Thu Feb 12 00:13:55 2015

Revert of Roll ANGLE 592ab9dd9..38832d179d. (patchset #1 id:1 of https://codereview.chromium.org/912423002/)

Reason for revert:
Breaks Win8 GN build: http://build.chromium.org/p/chromium.win/builders/Win8%20GN/builds/4638

FAILED: ninja -t msvc -e environment.x86 -- E:\b\build\goma/gomacc.exe "E:\b\depot_tools\win_toolchain\vs2013_files\VC\bin\amd64_x86/cl.exe" /nologo /showIncludes /FC @obj/third_party/angle/src/libANGLE/renderer/d3d/libANGLE.ProgramD3D.obj.rsp /c ../../third_party/angle/src/libANGLE/renderer/d3d/ProgramD3D.cpp /Foobj/third_party/angle/src/libANGLE/renderer/d3d/libANGLE.ProgramD3D.obj /Fdobj/third_party/angle/libANGLE_cc.pdb
e:\b\depot_tools\win_toolchain\vs2013_files\vc\include\concrt.h(313) : error C2220: warning treated as error - no 'object' file generated
e:\b\depot_tools\win_toolchain\vs2013_files\vc\include\concrt.h(313) : warning C4530: C++ exception handler used, but unwind semantics are not enabled. Specify /EHsc

Original issue's description:
> Roll ANGLE 592ab9dd9..38832d179d.
>
> https://chromium.googlesource.com/angle/angle/+log/592ab9dd9..38832d179d
>
> BUG=450257, 447419 , 452587 , 453543 
>
> Committed: https://crrev.com/3d2f2ff2b1527148d12cd92177951516ae9d1ede
> Cr-Commit-Position: refs/heads/master@{#315862}

TBR=bajones@chromium.org,kbr@chromium.org,zmo@chromium.org,jmadill@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=450257, 447419 , 452587 , 453543 

Review URL: https://codereview.chromium.org/889653006

Cr-Commit-Position: refs/heads/master@{#315879}

[modify] http://crrev.com/f46813fc5d985fccb715e278a984ad7348f11b3a/DEPS

Project Member

Comment 23 by bugdroid1@chromium.org, Feb 13 2015

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

commit 277a85894d7df282535eaddf155998c93c102af5
Author: thakis <thakis@chromium.org>
Date: Fri Feb 13 23:32:16 2015

Revert of Roll ANGLE 592ab9dd91e..4085347266. (patchset #1 id:1 of https://codereview.chromium.org/925693002/)

Reason for revert:
Caused all kinds of build issues on the clang/win bots (try/catch are used, a few DISALLOW_COPY_AND_ASSSIGNs are qualified, and something about const params):

http://build.chromium.org/p/chromium.fyi/builders/CrWinClang64%28dbg%29/builds/968/steps/compile/logs/stdio

..\..\third_party\angle\src\libANGLE\renderer\d3d\d3d11\Buffer11.cpp(94,5) :  error: expected member name or ';' after declaration specifiers
    DISALLOW_COPY_AND_ASSIGN(Buffer11::BufferStorage);
    ^                        ~~~~~~~~~~~~~~~~~~~~~~~
..\..\third_party\angle\src\common/angleutils.h(25,14) :  note: expanded from macro 'DISALLOW_COPY_AND_ASSIGN'
    TypeName(const TypeName&) = delete;       \
             ^
..\..\third_party\angle\src\libANGLE\renderer\d3d\d3d11\Buffer11.cpp(94,5) :  error: expected ')'

(Probable fix: Drop the qualifier, and move it into the inner class if it's not there already)

..\..\third_party\angle\src\libANGLE\renderer\d3d\d3d11\Buffer11.cpp(124,40) :  error: non-friend class member 'NativeStorage' cannot have a qualified name
    DISALLOW_COPY_AND_ASSIGN(Buffer11::NativeStorage);
                             ~~~~~~~~~~^

..\..\third_party\angle\src\libANGLE\renderer\d3d\d3d11\Buffer11.cpp(124,40) :  error: non-friend class member 'NativeStorage' cannot have a qualified name
    DISALLOW_COPY_AND_ASSIGN(Buffer11::NativeStorage);
                             ~~~~~~~~~~^

Then a few of these:
..\..\third_party\angle\src\libANGLE\renderer\d3d\d3d11\Buffer11.cpp(211,9) :  error: cannot initialize object parameter of type 'const rx::Buffer11::BufferStorage' with an expression of type 'rx::Buffer11::NativeStorage'
    if (stagingBuffer->getDataRevision() > mResolvedDataRevision)
        ^~~~~~~~~~~~~
..\..\third_party\angle\src\libANGLE\renderer\d3d\d3d11\Buffer11.cpp(213,13) :  error: cannot initialize object parameter of type 'const rx::Buffer11::BufferStorage' with an expression of type 'rx::Buffer11::NativeStorage'
        if (stagingBuffer->getSize() > mResolvedData.size())
            ^~~~~~~~~~~~~
..\..\third_party\angle\src\libANGLE\renderer\d3d\d3d11\Buffer11.cpp(215,39) :  error: cannot initialize object parameter of type 'const rx::Buffer11::BufferStorage' with an expression of type 'rx::Buffer11::NativeStorage'
            if (!mResolvedData.resize(stagingBuffer->getSize()))
                                      ^~~~~~~~~~~~~
..\..\third_party\angle\src\libANGLE\renderer\d3d\d3d11\Buffer11.cpp(230,60) :  error: cannot initialize object parameter of type 'const rx::Buffer11::BufferStorage' with an expression of type 'rx::Buffer11::NativeStorage'
        memcpy(mResolvedData.data(), mappedResource.pData, stagingBuffer->getSize());
                                                           ^~~~~~~~~~~~~
..\..\third_party\angle\src\libANGLE\renderer\d3d\d3d11\Buffer11.cpp(234,33) :  error: cannot initialize object parameter of type 'const rx::Buffer11::BufferStorage' with an expression of type 'rx::Buffer11::NativeStorage'
        mResolvedDataRevision = stagingBuffer->getDataRevision();
                                ^~~~~~~~~~~~~
..\..\third_party\angle\src\libANGLE\renderer\d3d\d3d11\Buffer11.cpp(269,13) :  error: cannot initialize object parameter of type 'const rx::Buffer11::BufferStorage' with an expression of type 'rx::Buffer11::NativeStorage'
        if (stagingBuffer->getSize() < requiredSize)
            ^~~~~~~~~~~~~

And a bunch of these:
In file included from ..\..\third_party\angle\src\libANGLE\renderer\d3d\ProgramD3D.cpp:14:
In file included from C:\b\depot_tools\win_toolchain\vs2013_files\win8sdk\bin\..\..\VC\include\future:11:
In file included from C:\b\depot_tools\win_toolchain\vs2013_files\win8sdk\bin\..\..\VC\include\functional:6:
In file included from C:\b\depot_tools\win_toolchain\vs2013_files\win8sdk\bin\..\..\VC\include\xfunctional:7:
C:\b\depot_tools\win_toolchain\vs2013_files\win8sdk\bin\..\..\VC\include\xstring(2214,3) :  error: cannot compile this try statement yet
                _TRY_BEGIN
                ^~~~~~~~~~
C:\b\depot_tools\win_toolchain\vs2013_files\win8sdk\bin\..\..\VC\include\xstddef(30,21) :  note: expanded from macro '_TRY_BEGIN'
 #define _TRY_BEGIN     try {
                        ^

Sorry about reverting something for an FYI bot, but the bot's been red all day for various reasons, and I'd like it to be green over the long weekend. I'll try a local build with the roll patched in and I'll send you fixes for the issues, to make up for it a bit.

Original issue's description:
> Roll ANGLE 592ab9dd91e..4085347266.
>
> https://chromium.googlesource.com/angle/angle/+log/592ab9dd91e..4085347266
>
> BUG= 391957 , 436191 ,450257, 447419 , 452587 , 453543 
> R=zmo@chromium.org,bajones@chromium.org
>
> Committed: https://crrev.com/8e556e6de2c40fbf7379056facb6c9fa5f508f3e
> Cr-Commit-Position: refs/heads/master@{#316292}

TBR=bajones@chromium.org,zmo@chromium.org,jmadill@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG= 391957 , 436191 ,450257, 447419 , 452587 , 453543 

Review URL: https://codereview.chromium.org/927753002

Cr-Commit-Position: refs/heads/master@{#316324}

[modify] http://crrev.com/277a85894d7df282535eaddf155998c93c102af5/DEPS

Project Member

Comment 24 by bugdroid1@chromium.org, Feb 17 2015

Labels: -Cr-Content Cr-Blink

Sign in to add a comment