• Show log

    Commit

  • Hash : f3c1de36
    Author : Shahbaz Youssefi
    Date : 2023-08-17T15:29:24

    Make shader recompile while parallel linking safe
    
    Prior to this change, Program* objects held references to Shader*
    objects.  This poses a problem where a shader recompile can race with a
    program link, if the program link is done in parallel.
    
    As a result, a good chunk of the link job is done serially and under the
    share group lock.  After this change, that is no longer a problem, and
    most of the link can be made lockless/parallelized.
    
    This change separates out the "compiled state" from the rest of the
    shader state.  This was already done for the front-end state (for the
    sake of caching), but is also now done for the backends that need it.
    The compiled state in turn is placed in a shared_ptr, and is shared with
    the program.  When a shader is compiled, its own shared_ptr is replaced
    with a new object, leaving all programs currently compiling unaffected
    and using the previous compilation results.
    
    Once a program is linked, its references to compiled shader states is
    updated.
    
    Bug: angleproject:8297
    Change-Id: Iff7094a37088fbad99c6241f1c48b0bd4c820eb2
    Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4791065
    Reviewed-by: Geoff Lang <geofflang@chromium.org>
    Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
    Reviewed-by: Charlie Lao <cclao@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 thodg_l
    Tags