• Show log

    Commit

  • Hash : 0561884e
    Author : Charlie Lao
    Date : 2023-04-26T17:26:42

    Vulkan: Dirty VertexArray binding bit if buffer storage change
    
    In crrev.com/c/3669603, we did optimization for black_desert_mobile that
    when vertex array is unbound, we remove vertex array from buffer's
    observer list to reduce overhead of observer notifications when buffer
    is been modified. To compensate for the lost notification, when vertex
    array is bound, we always assume every buffer that is bound to vertex
    array has been dirtied, for the simplicity at that time. This CL further
    the optimization of that CL. In this CL, I moved the dirty bit set into
    backend and improves vulkan backend by checking buffer's serial number
    and only dirty the binding if the serial has changed. Given this, now we
    can also remove all the non-current vertex array from buffer's observer
    list (previously it is heuristic based with a hard coded observer count
    limit). This and the previous CL improves asphalt_9 by ~1%.
    
    Bug: b/277644512
    Change-Id: Ibc3f8e3df9fe70c6879e0b2bca86d8487a9dba73
    Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4481241
    Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
    Reviewed-by: Yuxin Hu <yuxinhu@google.com>
    Commit-Queue: 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

  • README.md

  • ANGLE back-ends

    This folder contains shared back-end-specific implementation files. The classes and types in renderer are not specified by GLES. They instead are common to all the various ANGLE implementations.

    See renderer_utils.h for various cross back-end utilties.

    ANGLE Formats

    The ANGLE format class, angle::Format, works as a union between GLES and all the various back-end formats. It can represent any type of format in ANGLE. e.g. Formats in Vulkan that don’t exist in GLES, or DXGI formats that don’t exist in GLES, or Windows/Android surface configs that don’t exist anywhere else.

    The glInternalFormat member of angle::Format represents the “closest” GL format for an ANGLE format. For formats that don’t exist in GLES this will not be exactly what the format represents.

    The back-ends also define their own format tables. See the Vulkan Format table docs and the [D3D11 format table docs][D23D11FormatDocs].

    DXGI Format Info

    DXGI formats are used in both the GL and D3D11 back-end. Therefore the generated info table lives in this common shared location.

    The DXGI info table is generated by gen_dxgi_format_table.py and sources data from dxgi_format_data.json. The main purpose of the table is to convert from a DXGI format to an ANGLE format, where the ANGLE format should have all the necessary information.