• Show log

    Commit

  • Hash : 968041b5
    Author : Gregg Tavares
    Date : 2022-08-19T12:11:23

    Metal: Optimized BufferSubData per device
    
    Adds a staging buffer path which means there are 4 paths
    for bufferSubData.
    
    1. direct copy
    
       * get a pointer to the buffer
       * copy the new data to the buffer
       * if the buffer is managed, tell metal which part was updated
    
    2. use a shadow copy
    
       * copy the data to a shadow copy
       * copy the entire shadow to a new buffer
       * start using the new buffer
    
    3. use a new buffer
    
       * get a new buffer (or unused)
       * put the new data in the new buffer
       * blit any unchanged data from the old buffer to the new buffer
       * start using the new buffer
    
    4. use a staging buffer
    
       * get a staging buffer
       * put the new data in the staging buffer
       * blit from the staging buffer to the existing buffer.
    
    Further, there are 3 types of memory storage modes.
    Managed, Staged, Private.
    
    Based on the GPU type different storage modes and different
    paths in different sitatutions are more performant.
    
    So, add feature flags to select paths by GPU.
    
    Bug: angleproject:7544
    Change-Id: I741dd1874201043416374194bd2001ded8dbd9b4
    Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3842641
    Reviewed-by: Kyle Piddington <kpiddington@apple.com>
    Reviewed-by: Kenneth Russell <kbr@chromium.org>
    Reviewed-by: Quyen Le <lehoangquyen@chromium.org>
    Commit-Queue: Gregg Tavares <gman@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