• Show log

    Commit

  • Hash : b2e6a196
    Author : Shahbaz Youssefi
    Date : 2023-09-11T15:27:20

    Vulkan: Use VK_EXT_host_image_copy for texture uploads
    
    Of all the scenarios where host image copy may be useful, this is likely
    the most common case.  There are numerous conditions for when the copy
    may be done on the host:
    
    - The image format must support it,
    - It must be unused by the GPU,
    - It must not have any pending updates (this can potentially be
      mitigated if needed), and
    - It must be in a host-copyable layout.
    
    However, many texture uploads are done:
    
    - To compressed formats, where support is highly likely,
    - On init, where:
      - the image is never previously used,
      - the image has no previous uploads
      - the image is in the UNDEFINED layout
    
    which satisfies the conditions above.
    
    As a result of this change, when the upload is done on the host,
    creation of a temp buffer is avoided which greatly reduces memory
    pressure (specially during app loading which is when most texture data
    is uploaded) and may even improve performance (due to avoiding a double
    copy).
    
    Testing the first 3 frames of the following traces with a SwiftShader
    implementation shows the amount of buffer allocated for staged uploads
    changed as such:
    
    - Black Desert:    185MB -> 65MB
    - Genshin Impact:  125MB -> 12MB
    - Asphalt 9:       138MB -> 0MB
    
    Bug: angleproject:8341
    Change-Id: Id71dcc4a7a0f8b67960d2d283fe9d19ce7429a03
    Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4856676
    Reviewed-by: Geoff Lang <geofflang@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