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

Issue 894049 link

Starred by 1 user

Issue metadata

Status: Verified
Owner:
Closed: Oct 12
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Bug

Blocked on:
issue 849941



Sign in to add a comment

disable_chromium_framebuffer_multisample not working well with WebGL

Project Member Reported by rog...@vewd.com, Oct 10

Issue description

Chrome Version: 71.0.3576.0 (locally built content_shell)
OS: Linux

What steps will reproduce the problem?
(1) Enable the disable_chromium_framebuffer_multisample workaround, only way I've managed to do that is to manually add an entry to gpu/config/gpu_driver_bug_list.json [1].
(2) Build content_shell
(3) Run: ./content_shell 'data:text/html,<!doctype html><script>document.write("gl.getError(): " + document.createElement("canvas").getContext("webgl").getError())</script>'


What is the expected result?
getError() should return 0 when the context is just created.

What happens instead?
It returns 1280 and I get the following error in the log:
ERROR:gles2_cmd_decoder_autogen.h(1606)] [.WebGL-0x3514c3c61500]GL ERROR :GL_INVALID_ENUM : glGetIntegerv: pname was GL_MAX_SAMPLES_ANGLE

Additional information:
The problem was introduced by https://chromium-review.googlesource.com/1075167, more specifically by the change in third_party/blink/renderer/platform/graphics/gpu/drawing_buffer.cc that moved gl_->GetIntegerv(GL_MAX_SAMPLES_ANGLE, &max_sample_count); out from the use_multisampling if clause.

Not sure if it is as simple as moving it back into that clause or if there are other issues with that. 

[1]
diff --git a/gpu/config/gpu_driver_bug_list.json b/gpu/config/gpu_driver_bug_list.json
index 632fb8ec039c..ab904dc074ee 100644
--- a/gpu/config/gpu_driver_bug_list.json
+++ b/gpu/config/gpu_driver_bug_list.json
@@ -3024,6 +3024,13 @@
       "features": [
         "disable_overlay_ca_layers"
       ]
+    },
+    {
+      "id": 5000,
+      "description": "test",
+      "features": [
+        "disable_chromium_framebuffer_multisample"
+      ]
     }
   ]
 }


 
Blockedon: 849941
Owner: jie.a.c...@intel.com
Status: Assigned (was: Untriaged)
Jie, since this seems to be a regression caused by your CL, could you please look into this? Thanks.

Thanks for reporting this. Your analysis is right. It's a bug caused by my CL. I should have done GL_MAX_SAMPLES_ANGLE query only if the extension is available.
Project Member

Comment 3 by bugdroid1@chromium.org, Oct 12

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

commit 87da10ae482f4ee7efea00cb0e25ed51af997df6
Author: jchen10 <jie.a.chen@intel.com>
Date: Fri Oct 12 20:46:00 2018

Fix GL_MAX_SAMPLES_ANGLE query

Only query it if the extension is enabled.

Bug:  894049 
Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_slimming_paint_v2;luci.chromium.try:win_optional_gpu_tests_rel;master.tryserver.blink:linux_trusty_blink_rel
Change-Id: I5c2be0c41c2361ef06381a7e73c2025baa63e191
Reviewed-on: https://chromium-review.googlesource.com/c/1275299
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Kenneth Russell <kbr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#599340}
[modify] https://crrev.com/87da10ae482f4ee7efea00cb0e25ed51af997df6/third_party/blink/renderer/platform/graphics/gpu/drawing_buffer.cc

Status: Fixed (was: Assigned)
This should be fixed now. The fix will show up on Chrome Canary first.

Status: Verified (was: Fixed)
Verified, works like a charm, thanks.

Sign in to add a comment