• Show log

    Commit

  • Hash : 9b00af52
    Author : Geoff Lang
    Date : 2023-02-01T11:10:32

    Metal: Add an in-memory MTLLibrary cache.
    
    Add a small cache for (msl + compile parameters) -> MTLLibrary at the
    egl::Display level. In regular executions of Chrome, the same shaders
    (particularly vertex) are compiled multiple times in different programs.
    
    Tested for a regular Chrome startup + open wikipedia + motionmark 1.2:
    112/282 (40%) cache hits.
    
    Several different caching methods were profiled (LinkProgram perf test)
     - struct key with std::map                             : 303309
     - struct key with std::unordered_map                   : 308090
     - binary blob key with std::map                        : 263595
     - binary blob key with std::unordered_map              : 286051
     - struct key + is_transparent with std::unordered_map  : 304877
     - struct key + is_transparent with absl::flat_hash_map : 335686
    
    Using is_transparent allows us to search the hash map without
    copying the shader source string to construct the key structure.
    
    Bug: chromium:1385510
    Change-Id: Ieec4ba526fe286276a4af7114d89cde32a8f9e1d
    Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4214012
    Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
    Commit-Queue: Geoff Lang <geofflang@chromium.org>
    Reviewed-by: Kenneth Russell <kbr@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