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

Issue 905977 link

Starred by 1 user

Issue metadata

Status: Duplicate
Merged: issue angleproject:2967
Owner:
OOO until 2019-01-24
Closed: Nov 28
Cc:
Components:
EstimatedDays: ----
NextAction: 2018-12-06
OS: Windows
Pri: 2
Type: Bug

Blocked on:
issue angleproject:2967



Sign in to add a comment

Browser freezes for 10-20 seconds when linking a shader and measures performance incorrectly

Reported by sergey....@gmail.com, Nov 16

Issue description

UserAgent: Mozilla/5.0 (X11; Linux x86_64; rv:62.0) Gecko/20100101 Firefox/62.0

Steps to reproduce the problem:
1. Clear browser caches
2. Open console (F12)
3. Load this page: https://sergeyext.github.io/sergeyext/webgl_shader_link_freeze.html

What is the expected behavior?
This issue is closely related to an issue I reported here: https://bugs.chromium.org/p/angleproject/issues/detail?id=2967

Expected behavior is to freeze only one tab, and then print correct freezing (shader linking) time to console.

Firefox exposes expected behavior during long shader linking.

1) It's possible to switch tabs and use another tab, while the affected tab is freezed.
2) It reports actual shader linking time (10 to 20 seconds on my machine)

What went wrong?
1) The whole browser gets freezed while shader is linking. It's impossible to switch tabs, open a new tab or enter something to address bar.
2) After freezing the repro script reports link time approx 0.0001 seconds, but actually the browser was frozen for 10 seconds or more.

Did this work before? N/A 

Chrome version: 4bbeebac88fdc09c97265e47c205868bbd190497-refs/branch-heads/3538@{#1077}  Channel: stable
OS Version: 10
Flash Version: 

More information is in this issue:
https://bugs.chromium.org/p/angleproject/issues/detail?id=2967
 

Comment 1 Deleted

FWIW, Chrome 63 and older load this page instantaneously or so it seems.

Bisect info: 513943 (good) - 513955 (bad)
https://chromium.googlesource.com/chromium/src/+log/f1120196..27b89a1265?pretty=fuller

There are several ANGLE-related commits:
2ef23e2d72e7811a607f53ea12e672c3287375bd Fix writing uniform block maps to HLSL output via r513950 and r513949
d255123c63c331bc32402eeeb3ecd18d6b18e97d Store shader interface variables as per query spec via r513949
c67323a9de6415d19344c69fc376c91288f2e124 Squash State dirty bits to below 64
1d7be50acf6f02defd767e1c41b4d238fcba7bd5 Vulkan: Upgrade RGB8 textures to RGBA8
7b62cf97d12bc23b4beff1085af677b074f2785b Refactor TextureFormatMap to store an array

Landed in 64.0.3258.0
Labels: Needs-Triage-M70
Components: -Blink Blink>WebGL Internals>GPU
Labels: Needs-Feedback
NextAction: 2018-12-06
Please provide a copy of your chrome://gpu
Cc: jie.a.c...@intel.com
Components: Internals>GPU>ANGLE
CC'ing ANGLE folks and Jie who was working on parallel shader compile.
gpu.txt
11.4 KB View Download
Per my test in ANGLE for the shaders (https://chromium-review.googlesource.com/c/angle/angle/+/1349069), it's not reproducible on my machines.

On my NVIDIA GeForce GTX 1060 desktop:
[----------] 1 test from UniformBufferTest
[ RUN      ] UniformBufferTest.LargeArray/ES3_D3D11
[       OK ] UniformBufferTest.LargeArray/ES3_D3D11 (1134 ms)

and Intel(R) UHD Graphics 630:
[----------] 1 test from UniformBufferTest
[ RUN      ] UniformBufferTest.LargeArray/ES3_D3D11
[       OK ] UniformBufferTest.LargeArray/ES3_D3D11 (582 ms)
[----------] 1 test from UniformBufferTest (582 ms total)

Probably it's only specific to some drivers or OS versions.

BTW, you can try to compile/link in parallel using the KHR_parallel_shader_compile extension -- https://www.khronos.org/registry/webgl/extensions/KHR_parallel_shader_compile/. Firstly you need to turn on the enable-webgl-draft-extensions in chrome.

gpu.txt
9.0 KB View Download
Project Member

Comment 9 by sheriffbot@chromium.org, Nov 23

Cc: fs...@chromium.org
Labels: -Needs-Feedback
Thank you for providing more feedback. Adding the requester to the cc list.

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
Blockedon: angleproject:2967
Linking to the related ANGLE bug. This looks like a problem in either the shader translator or Microsoft's fxc compiler and should be fixed there.

The fact that the browser freezes happens because GPU execution in Chrome is serialized on a single thread in the GPU process. Using the KHR_parallel_shader_compile extension would avoid this, but shouldn't be necessary; this shader is trivial and shouldn't take this long to compile. Something is going wrong.

Status: Available (was: Unconfirmed)
Note also that https://chromium-review.googlesource.com/1349069 contains the wrong version of the shader; changing it to use an array of structs inside the uniform block should reproduce the problem.

Blockedon: -angleproject:2967
Mergedinto: angleproject:2967
Owner: kbr@chromium.org
Status: Duplicate (was: Available)
At this point the problem is known and is being investigated under issue angleproject:2967. Duplicating into that one.

Blockedon: angleproject:2967
The NextAction date has arrived: 2018-12-06

Sign in to add a comment