New issue
Advanced search Search tips

Issue 591064 link

Starred by 1 user

Issue metadata

Status: Verified
Owner:
Closed: Mar 2016
Cc:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 1
Type: Bug



Sign in to add a comment

Wrong EGL config attributes under ozone

Project Member Reported by kylec...@chromium.org, Mar 1 2016

Issue description

GLSurfaceOzoneSurfaceless and some other sublclasses of GLSurfaceEGL no longer get the appropriate EGL config attribs from the Ozone implementation. This could lead to not finding a valid EGL config.

GLSurfaceOzoneSurfaceless should do something similar to GLSurfaceOzoneEGL::GetConfig():

https://code.google.com/p/chromium/codesearch#chromium/src/ui/gl/gl_surface_ozone.cc&sq=package:chromium&type=cs&l=138&rcl=1456821044

For offscreen surfaces something else would need to be done. They are initialized here:

https://code.google.com/p/chromium/codesearch#chromium/src/ui/gl/gl_implementation.h&sq=package:chromium&type=cs&l=27&rcl=1456821044
 
Project Member

Comment 1 by bugdroid1@chromium.org, Mar 9 2016

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

commit 445089ac3c1b949fb4248f3aef3ce5e7acd66d92
Author: kylechar <kylechar@chromium.org>
Date: Wed Mar 09 19:23:44 2016

Fix EGL configs with ozone and surfaceless surfaces.

This CL fixes a bug where GLSurfaceOzoneSurfaceless was not calling
SurfaceOzoneEGL::GetEGLSurfaceConfig(). Instead, the default
implementation in GLSurfaceEGL::GetConfig() would be used to pick an
EGL config. This resulted in "No suitable EGL configs found." being
logged everytime a GLSurfaceOzoneSurfaceless was created. Instead it now
calls SurfaceOzoneEGL::GetEGLSurfaceConfig().

For offscreen surfaces SurfacelessEGL is used. This produced the same
error message on creation. SurfaceOzoneEGL::GetEGLSurfaceConfig() can't
be used with offscren surfaces as there is no window associated with the
offscreen surface. Instead, the EGL_SURFACE_TYPE attribute is set to
EGL_DONT_CARE in GLSurfaceEGL::GetConfig() for surfaceless surfaces.

The bug doesn't seem to cause problems beyond the logged error messages
as drawing still works under Ozone.

BUG= 591064 

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

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

[modify] https://crrev.com/445089ac3c1b949fb4248f3aef3ce5e7acd66d92/ui/gl/gl_surface.h
[modify] https://crrev.com/445089ac3c1b949fb4248f3aef3ce5e7acd66d92/ui/gl/gl_surface_egl.cc
[modify] https://crrev.com/445089ac3c1b949fb4248f3aef3ce5e7acd66d92/ui/gl/gl_surface_egl.h
[modify] https://crrev.com/445089ac3c1b949fb4248f3aef3ce5e7acd66d92/ui/gl/gl_surface_ozone.cc

Status: Fixed (was: Started)
Labels: Merge-Request-50 M-50 OS-Chrome

Comment 4 by tin...@google.com, Mar 10 2016

Labels: -Merge-Request-50 Merge-Approved-50 Hotlist-Merge-Approved
Your change meets the bar and is auto-approved for M50 (branch: 2661)
Project Member

Comment 5 by bugdroid1@chromium.org, Mar 11 2016

Labels: -merge-approved-50 merge-merged-2661
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/b4856fdf503827b541ed0517100d7b5653782c33

commit b4856fdf503827b541ed0517100d7b5653782c33
Author: Daniel Nicoara <dnicoara@chromium.org>
Date: Fri Mar 11 15:32:45 2016

Fix EGL configs with ozone and surfaceless surfaces.

This CL fixes a bug where GLSurfaceOzoneSurfaceless was not calling
SurfaceOzoneEGL::GetEGLSurfaceConfig(). Instead, the default
implementation in GLSurfaceEGL::GetConfig() would be used to pick an
EGL config. This resulted in "No suitable EGL configs found." being
logged everytime a GLSurfaceOzoneSurfaceless was created. Instead it now
calls SurfaceOzoneEGL::GetEGLSurfaceConfig().

For offscreen surfaces SurfacelessEGL is used. This produced the same
error message on creation. SurfaceOzoneEGL::GetEGLSurfaceConfig() can't
be used with offscren surfaces as there is no window associated with the
offscreen surface. Instead, the EGL_SURFACE_TYPE attribute is set to
EGL_DONT_CARE in GLSurfaceEGL::GetConfig() for surfaceless surfaces.

The bug doesn't seem to cause problems beyond the logged error messages
as drawing still works under Ozone.

BUG= 591064 

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

Cr-Commit-Position: refs/heads/master@{#380171}
(cherry picked from commit 445089ac3c1b949fb4248f3aef3ce5e7acd66d92)

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

Cr-Commit-Position: refs/branch-heads/2661@{#194}
Cr-Branched-From: ef6f6ae5e4c96622286b563658d5cd62a6cf1197-refs/heads/master@{#378081}

[modify] https://crrev.com/b4856fdf503827b541ed0517100d7b5653782c33/ui/gl/gl_surface.h
[modify] https://crrev.com/b4856fdf503827b541ed0517100d7b5653782c33/ui/gl/gl_surface_egl.cc
[modify] https://crrev.com/b4856fdf503827b541ed0517100d7b5653782c33/ui/gl/gl_surface_egl.h
[modify] https://crrev.com/b4856fdf503827b541ed0517100d7b5653782c33/ui/gl/gl_surface_ozone.cc

Status: Verified (was: Fixed)
bulk verify (M50 clean up)

Sign in to add a comment