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

Issue 694857 link

Starred by 3 users

Issue metadata

Status: Fixed
Owner:
Closed: Feb 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux
Pri: 2
Type: Bug



Sign in to add a comment

Not implemented reached in virtual gl::GLSurfaceFormat gl::GLSurface::GetFormat()

Project Member Reported by erikc...@chromium.org, Feb 22 2017

Issue description

Repro steps:
Build Chromium @ tip of tree. I used:

"""
  5 dcheck_always_on = true                                                         
  6 is_component_build = false                                                      
  7 is_debug = false                                                                
  8 symbol_level = 1                                                                
  9 use_goma = true                                                                 
 10 enable_profiling = true   
"""
at commit: 31b2815487e8c7edcc7ae481cc3494887110ace3

[25331:775:0221/171200.690308:ERROR:gl_surface.cc(137)] Not implemented reached in virtual gl::GLSurfaceFormat gl::GLSurface::GetFormat()
 

Comment 1 by ericrk@chromium.org, Feb 22 2017

Labels: OS-Linux
Owner: klausw@chromium.org
Status: Assigned (was: Untriaged)
It looks like this usage was introduced with https://chromium.googlesource.com/chromium/src/+/ec8edae43017bf5ea65d3b65edbcfd740af453c7

It seems like we hit NOTIMPLEMENTED if we query GetFormat on certain GLSurface subclasses which do not override GetFormat. On linux we appear to be using one of these.

klausw@, can you take a look?

Comment 2 by klausw@chromium.org, Feb 23 2017

Status: Started (was: Assigned)
I'm investigating, the fallback behavior should be correct in this case but it should of course not be hitting the NOTIMPLEMENTED marker. Should be easy to fix.

Comment 3 by ericrk@chromium.org, Feb 23 2017

Cc: kbr@chromium.org jbau...@chromium.org hubbe@chromium.org dalecur...@chromium.org
 Issue 695431  has been merged into this issue.

Comment 4 by ericrk@chromium.org, Feb 23 2017

Labels: -Pri-3 Pri-2

Comment 5 by klausw@chromium.org, Feb 23 2017

Proposed fix in https://codereview.chromium.org/2702403009 .

I don't think that this was actually causing issues other than logfile noise - if I'm reading it right in https://cs.chromium.org/chromium/src/base/logging.h the default NOTIMPLEMENTED_POLICY=4 prints an error but continues executing, and the fallback return value seems appropriate for the cases that didn't have overrides.
Project Member

Comment 6 by bugdroid1@chromium.org, Feb 24 2017

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

commit 10aaaf5a41d02653d144a4e78c43c29974860e39
Author: klausw <klausw@chromium.org>
Date: Fri Feb 24 00:50:53 2017

Make surface GetFormat pure virtual, add missing overrides.

The base fallback with NOTIMPLEMENTED() warning was unhelpful,
change it to explicitly require overrides in subclasses so
there's no ambiguity if the default is ok or not.

BUG= 694857 
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/2702403009
Cr-Commit-Position: refs/heads/master@{#452695}

[modify] https://crrev.com/10aaaf5a41d02653d144a4e78c43c29974860e39/android_webview/browser/aw_gl_surface.cc
[modify] https://crrev.com/10aaaf5a41d02653d144a4e78c43c29974860e39/android_webview/browser/aw_gl_surface.h
[modify] https://crrev.com/10aaaf5a41d02653d144a4e78c43c29974860e39/gpu/ipc/service/image_transport_surface_overlay_mac.h
[modify] https://crrev.com/10aaaf5a41d02653d144a4e78c43c29974860e39/gpu/ipc/service/image_transport_surface_overlay_mac.mm
[modify] https://crrev.com/10aaaf5a41d02653d144a4e78c43c29974860e39/ui/gl/gl_surface.cc
[modify] https://crrev.com/10aaaf5a41d02653d144a4e78c43c29974860e39/ui/gl/gl_surface.h
[modify] https://crrev.com/10aaaf5a41d02653d144a4e78c43c29974860e39/ui/gl/gl_surface_format.h
[modify] https://crrev.com/10aaaf5a41d02653d144a4e78c43c29974860e39/ui/gl/gl_surface_glx.cc
[modify] https://crrev.com/10aaaf5a41d02653d144a4e78c43c29974860e39/ui/gl/gl_surface_glx.h
[modify] https://crrev.com/10aaaf5a41d02653d144a4e78c43c29974860e39/ui/gl/gl_surface_stub.cc
[modify] https://crrev.com/10aaaf5a41d02653d144a4e78c43c29974860e39/ui/gl/gl_surface_stub.h
[modify] https://crrev.com/10aaaf5a41d02653d144a4e78c43c29974860e39/ui/gl/gl_surface_wgl.cc
[modify] https://crrev.com/10aaaf5a41d02653d144a4e78c43c29974860e39/ui/gl/gl_surface_wgl.h
[modify] https://crrev.com/10aaaf5a41d02653d144a4e78c43c29974860e39/ui/gl/init/gl_factory_mac.cc

Comment 7 by klausw@chromium.org, Feb 24 2017

Status: Fixed (was: Started)

Sign in to add a comment