Skip to content

[BUG] the backbuffer format is always SRGB #42

@zhaijialong

Description

@zhaijialong

Description

The emulator doesn't say it support EGL_KHR_gl_colorspace, but always create a r8g8b8a8_unorm_srgb format backbuffer in the underlying implementation.

It should use a linear format backbuffer as default if doesn't support EGL_KHR_gl_colorspace.

The better way is to expose the EGL_KHR_gl_colorspace egl extension, and let user to config it to determine whether to use a srgb backbuffer

EGLint eglSurfaceAttributes[3]
eglSurfaceAttributes[0] = EGL_GL_COLORSPACE_KHR;
eglSurfaceAttributes[1] = EGL_GL_COLORSPACE_SRGB_KHR;
eglSurfaceAttributes[2] = EGL_NONE;
egl::CreateWindowSurface(..., eglSurfaceAttributes)

Repro steps

Environment

  • SDK version: 18.2@5236813
  • Operating System/Device: Windows 10/GTX 1060

Additional Info

And the emulator says it support EGL 1.5, EGL_KHR_gl_colorspace should be in EGL 1.5. But if I try

EGLint eglSurfaceAttributes[3]
eglSurfaceAttributes[0] = EGL_GL_COLORSPACE;
eglSurfaceAttributes[1] = EGL_GL_COLORSPACE_SRGB;
eglSurfaceAttributes[2] = EGL_NONE;
egl::CreateWindowSurface(..., eglSurfaceAttributes)

the egl::CreateWindowSurface will hang my process.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions