• Show log

    Commit

  • Hash : dae3c851
    Author : Shahbaz Youssefi
    Date : 2025-03-14T11:44:53

    Vulkan: Bake non-shader state into linked pipeline
    
    When using VK_EXT_graphics_pipeline_library, previously ANGLE would
    create three pipelines libraries:
    
    * The Shaders library was created based on the GL program's shaders + a
      few static states.  This typically hit the program's own pipeline's
      cache that was warmed up during link.
    * The VertexInput and FragmentOutput libraries were created at draw
      time, which used the global pipeline cache
    
    At draw time, immediately after creating the non-Shaders libraries, the
    three libraries were linked into the final pipeline to be used by the
    draw call.
    
    This caused an inefficiency; because the non-Shaders libraries were
    created independently from the Shaders library, they had to be compiled
    pessimistically, for example because they could not be optimized to take
    into account the precision of the fragment shader's outputs or whether
    any value is const (typically alpha being set to one).
    
    Given the creation of VertexInput and FragmentOutput libraries is
    typically quite fast (the former being no-op and dynamic state anyway),
    this change removes the need for creating those libraries, and directly
    specifies the vertex input and fragment output state when creating the
    final pipeline out of the Shaders library.
    
    In this way, the same fragment output state can be tailored to the exact
    shaders it is being used with and incur a smaller overhead.  In this
    change, the linked pipeline is cached in the GL program's pipeline
    cache, which is never synced to the blob cache as producing it is
    assumed to be fast already.
    
    Bug: angleproject:42265839
    Change-Id: I8496ea37771555522bdc9de94043a1b56fa5967e
    Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6354205
    Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
    Reviewed-by: mohan maiya <m.maiya@samsung.com>
    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
    kc3_lang_org thodg_w www_kmx_io thodg_l thodg thodg_m
    Tags