• Show log

    Commit

  • Hash : aea88562
    Author : Kenneth Russell
    Date : 2023-05-19T16:52:43

    Reland "Metal: Optimized BufferSubData per device"
    
    This reverts commit ee64836f702332adaca58d9f452063a04b2da955 ,
    relanding the patch stack described there.
    
    Between patchsets 1 and 5:
    
    - The shadow buffer allocation has been replaced with a multimap of
      precisely-sized buffers, rather than rounding up buffer sizes.
    
    - Garbage collection of shadow buffers is triggered in three situations:
    
      - A certain number of context switches have occurred; this number
        was hand-tuned to avoid GC every frame.
    
      - A certain number of command buffer submissions has occurred; this
        number was hand-tuned to GC no more often than every few seconds
        on representative workloads.
    
      - The total size of the allocated shadow buffers is more than 1 MB,
        and either more than twice the size at the last garbage
        collection, or 64 MB more than at the last garbage collection. In
        this case, aggressive GC is performed in order to reclaim shadow
        buffers more quickly.
    
    Performance before and after these changes appears identical on
    microbenchmarks. On one Figma test case, comparing GPU memory
    allocated inside the BufferManager, peak consumption is decreased by
    over 75%, and steady-state consumption decreases by over 88%.
    
    Patchset 6 adds a needed workaround for a bug in the
    AMDMTLBronzeDriver affecting uploads of client-side data, and
    therefore some dEQP tests. It also streamlines the aggressive GC.
    
    Bug: angleproject:7544
    Change-Id: I81b061f0b33c27fa403527fa12d626f4e9c88ebe
    Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4497413
    Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
    Reviewed-by: Geoff Lang <geofflang@chromium.org>
    Commit-Queue: Geoff Lang <geofflang@chromium.org>
    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