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

Issue 817830 link

Starred by 2 users

Issue metadata

Status: Fixed
Owner:
Closed: May 2018
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Mac
Pri: 3
Type: Bug

Blocking:
issue 772576
issue 760181



Sign in to add a comment

GL Renderer Check Failure for Viz on Mac

Project Member Reported by jonr...@chromium.org, Mar 1 2018

Issue description

OS: Mac
Viz Enabled (--enable-features=VizDisplayCompositor)
Test Suite: content_browsertests
Test: WebContentsVideoCaptureDeviceBrowserTestP.CapturesContentChanges/*

Seeing a Check failing consistently when running this test, with a few error messages above it:


[90575:775:0301/115834.138608:ERROR:viz_process_transport_factory.cc(359)] Not implemented reached in virtual void content::VizProcessTransportFactory::SetCompositorSuspendedForRecycle(ui::Compositor *, bool)
[90576:775:0301/115834.187623:ERROR:gles2_cmd_decoder.cc(18165)] [GroupMarkerNotSet( crbug.com/242999 )!:A8348054EF7F0000]GL ERROR :GL_INVALID_OPERATION : glTexStorage2DImageCHROMIUM: Cannot create GL image
[90576:775:0301/115834.188103:ERROR:gles2_cmd_decoder.cc(12588)] [GroupMarkerNotSet( crbug.com/242999 )!:A8348054EF7F0000]GL ERROR :GL_INVALID_VALUE : glSetColorSpaceMetadataCHROMIUM: no image associated with texture
[90576:24067:0301/115834.188419:FATAL:gl_renderer.cc(3389)] Check failed: gl_->CheckFramebufferStatus(GL_FRAMEBUFFER) == GL_FRAMEBUFFER_COMPLETE || IsContextLost(). 
0   libbase.dylib                       0x000000010ce0846e base::debug::StackTrace::StackTrace(unsigned long) + 174
1   libbase.dylib                       0x000000010ce0852d base::debug::StackTrace::StackTrace(unsigned long) + 29
2   libbase.dylib                       0x000000010ce069ac base::debug::StackTrace::StackTrace() + 28
3   libbase.dylib                       0x000000010cea021c logging::LogMessage::~LogMessage() + 460
4   libbase.dylib                       0x000000010ce9df65 logging::LogMessage::~LogMessage() + 21
5   libservice.dylib                    0x000000013f0b2a85 viz::GLRenderer::CopyRenderPassDrawQuadToOverlayResource(viz::CALayerOverlay const*, std::__1::unique_ptr<viz::GLRenderer::OverlayTexture, std::__1::default_delete<viz::GLRenderer::OverlayTexture> >*, gfx::RectF*) + 3333
6   libservice.dylib                    0x000000013f0b146b viz::GLRenderer::ScheduleRenderPassDrawQuad(viz::CALayerOverlay const*) + 427
7   libservice.dylib                    0x000000013f0a6b60 viz::GLRenderer::ScheduleCALayers() + 592
8   libservice.dylib                    0x000000013f0a5f51 viz::GLRenderer::FinishDrawingFrame() + 353
9   libservice.dylib                    0x000000013f0451c4 viz::DirectRenderer::DrawFrame(std::__1::vector<std::__1::unique_ptr<viz::RenderPass, std::__1::default_delete<viz::RenderPass> >, std::__1::allocator<std::__1::unique_ptr<viz::RenderPass, std::__1::default_delete<viz::RenderPass> > > >*, float, gfx::Size const&) + 5492
10  libservice.dylib                    0x000000013f05f92c viz::Display::DrawAndSwap() + 5932
11  libservice.dylib                    0x000000013f077a63 viz::DisplayScheduler::DrawAndSwap() + 611
12  libservice.dylib                    0x000000013f076562 viz::DisplayScheduler::AttemptDrawAndSwap() + 146
13  libservice.dylib                    0x000000013f075ae4 viz::DisplayScheduler::OnBeginFrameDeadline() + 452
....callback and message loop stack below...

ccameron@ could you help me triage this issue?
 
Blocking: 772576
Owner: ccameron@chromium.org
Status: Assigned (was: Untriaged)
Feel free to assign to me 
Cc: fsam...@chromium.org kylec...@chromium.org jonr...@chromium.org
ping *Chris* this is a CQ and Finch blocker!
Project Member

Comment 3 by bugdroid1@chromium.org, May 9 2018

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

commit 78ad7b11608330e2b3d7344b4ab5493b641b6c1a
Author: Christopher Cameron <ccameron@chromium.org>
Date: Wed May 09 18:25:01 2018

viz/mac: Add an explicit GLSurface clean-up call

Add an explicit method on GLSurface that is to be called while the
GLContext is still current, but before the GLSurface is destroyed.

A step in this direction was taken in https://crrev.com/538387, where
we made the GLContext current again after its decoder had been
destroyed, but that path has proved unstable. In particular, the
GLSurface internals on macOS are created while the decoder is active,
and so destroying them after the decoder is destroyed is precarious.

Bug: 772576,  817830 
Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel
Change-Id: I3ff1c395c4e9d7ac0b0f1ab54400cde28bdbe298
Reviewed-on: https://chromium-review.googlesource.com/1046046
Reviewed-by: Zhenyao Mo <zmo@chromium.org>
Commit-Queue: ccameron <ccameron@chromium.org>
Cr-Commit-Position: refs/heads/master@{#557250}
[modify] https://crrev.com/78ad7b11608330e2b3d7344b4ab5493b641b6c1a/gpu/command_buffer/service/gles2_cmd_decoder.cc
[modify] https://crrev.com/78ad7b11608330e2b3d7344b4ab5493b641b6c1a/gpu/ipc/in_process_command_buffer.cc
[modify] https://crrev.com/78ad7b11608330e2b3d7344b4ab5493b641b6c1a/gpu/ipc/service/image_transport_surface_overlay_mac.h
[modify] https://crrev.com/78ad7b11608330e2b3d7344b4ab5493b641b6c1a/gpu/ipc/service/image_transport_surface_overlay_mac.mm
[modify] https://crrev.com/78ad7b11608330e2b3d7344b4ab5493b641b6c1a/ui/gl/gl_surface.cc
[modify] https://crrev.com/78ad7b11608330e2b3d7344b4ab5493b641b6c1a/ui/gl/gl_surface.h

Status: Fixed (was: Assigned)

Sign in to add a comment