• Show log

    Commit

  • Hash : ffd6ec26
    Author : Yuxin Hu
    Date : 2023-09-07T15:39:19

    Reland "Make egl surface uncurrent when being destroyed"
    
    This relands commit 497440cdcb7d2ee59bca612dd07fc13cf09a6a57.
    
    This is to workaround errors when app does below behaviors:
    
    1) while there is a context still bound to the current
    rendering thread and the surface, call eglDestroySurface()
    2) create a new surface eglCreateWindowSurface()
    3) call eglMakeCurrent() with the surface created in step 2)
    4) does work on the new surface
    
    The old surface won't be destroyed in step 1) because
    it was still bound by the context of the current rendering
    thread. When creating new surface on step 2), some hardware
    will return error code EGL_BAD_ALLOC, because the old egl
    surface is still associated with the native window.
    
    To workaround, when destroying surface, if the surface
    is still bound by the context of the current rendering
    thread, release the context and surface by passing
    EGL_NO_CONTEXT and EGL_NO_SURFACE to eglMakeCurrent().
    
    The workaround is controlled by a frontend feature
    uncurrentEglSurfaceUponSurfaceDestroy. This feature
    is only enabled on vulkan backends.
    
    Bug: b/292285899
    Change-Id: Id4c47f1b20e0f90d1013a68893fd70e917c030e2
    Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4867066
    Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
    Commit-Queue: Yuxin Hu <yuxinhu@google.com>
    

  • Properties

  • Git HTTP https://git.kmx.io/kc3-lang/angle.git
    Git SSH git@git.kmx.io:kc3-lang/angle.git
    Public access ? public
    Description

    A conformant OpenGL ES implementation for Windows, Mac, Linux, iOS and Android.

    Homepage

    Github

    Users
    thodg_m kc3_lang_org thodg_w www_kmx_io thodg_l thodg
    Tags