• Show log

    Commit

  • Hash : 152cf62b
    Author : Charlie Lao
    Date : 2023-08-15T13:43:12

    Tightly pack LinkedUniform by using int16_t
    
    There is a check of vector size when we link uniforms and the maximum
    vector size is 4096 due to we clamp the maxUniformBlockSize to 64KB. In
    reality, if we exceeds this number, program link will take really long
    time and then hit failure. So there is no real need to keep all the
    variables in 32 bit integer. This CL changes to 16 bit integer. Further,
    sh::BlockMemberInfo and ActiveVariable data members are embeded into
    LinkedUniform struct as well so that the unused variables can be removed
    and data can be tightly packed. This also makes LinkedUniform easier to
    maintain as a simple struct with basic data types. With this change,
    LinkedUniform size is reduced from 108 bytes down to 60 bytes, 48 bytes
    reduction. Given some apps has 200-ish uniforms, this CL reduces 48
    bytes x 200 = ~9K memory just for uniforms per program (which goes
    through hash compute and decompression and file reads).
    
    Bug: b/275102061
    Change-Id: I7fae20f5b75f3239305e2094a992e3040b8c8e4c
    Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4754133
    Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
    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