• Show log

    Commit

  • Hash : 97a6e581
    Author : Shahbaz Youssefi
    Date : 2022-05-30T16:50:26

    Vulkan: Useful implementation of program binaries
    
    ANGLE already serializes the pipeline state for the sake of
    OES_get_program_binary.  This serialization had limited usefulness
    however, since the Vulkan driver hasn't actually created any pipelines
    yet (which is a costly part of program creation).
    
    Simultaneously, ANGLE deferred Vulkan pipeline creation to draw time,
    which causes hitching.
    
    In this change, a handful of Vulkan pipelines are precreated at
    link time; those at least that are sure to create different blobs in the
    pipeline cache (different spec consts or SPIR-V generation).  These
    pipelines are created in the program executable's cache.  The cache is
    then merged into the shared renderer cache (for potential blob reuse by
    other programs).
    
    With this, two goals are achieved:
    
    - Most pipelines created at draw time hit the pipeline cache, avoiding
      costly compilation.
    - When the program binary is retrieved, the contents of the program
      executable's pipeline cache is also returned.  On reload, the cache is
      recovered, resulting in faster startup.
    
    Bug: angleproject:5881
    Change-Id: I46c5451a7d0b16dffd40e44015e094640886880b
    Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3671977
    Reviewed-by: Jamie Madill <jmadill@chromium.org>
    Reviewed-by: Charlie Lao <cclao@google.com>
    Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
    

  • 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