URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=a3ab09f90f83e09578985fbac39e39121d084b75
Author: Timothy Arceri <[email protected]>
Date:   Tue Feb 7 12:10:19 2017 +1100

    util/disk_cache: check cache exists before calling munmap()
    
    Reviewed-by: Nicolai Hähnle <[email protected]>

URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=512c046eddc16bec9c309a3c7b4205d94ffc4ef3
Author: Timothy Arceri <[email protected]>
Date:   Tue Feb 7 09:49:47 2017 +1100

    util/disk_cache: add support for removing old versions of the cache
    
    Reviewed-by: Nicolai Hähnle <[email protected]>

URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=3342ce452cf33dc70ffad03b676579e0631182b3
Author: Timothy Arceri <[email protected]>
Date:   Mon Feb 6 12:56:08 2017 +1100

    util/disk_cache: allow drivers to pass a directory structure
    
    In order to avoid costly fallback recompiles when cache items are
    created with an old version of Mesa or for a different gpu on the
    same system we want to create directories that look like this:
    
    ./{TIMESTAMP}_{LLVM_TIMESTAMP}/{GPU_ID}
    
    Note: The disk cache util will take a single timestamp string, it is
    up to the backend to concatenate the llvm string with the mesa string
    if applicable.
    
    Reviewed-by: Nicolai Hähnle <[email protected]>

URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=87009681a53436700a477c45cb13272fa4a881fd
Author: Timothy Arceri <[email protected]>
Date:   Mon Feb 6 21:23:31 2017 +1100

    mesa: remove cache creation from _mesa_initialize_context()
    
    We will change the way we create the cache directory in the following
    patches.
    
    Reviewed-by: Nicolai Hähnle <[email protected]>

URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=6602d0401c23211af122f4ef5a86acf5dd9665e7
Author: Timothy Arceri <[email protected]>
Date:   Fri Feb 17 10:16:16 2017 +1100

    st/mesa/glsl: build string of dri options and use as input to building sha 
for shaders
    
    Reviewed-by: Nicolai Hähnle <[email protected]>

URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=ed6153012167fc7176a23f23ee4cccce9cbaee4a
Author: Timothy Arceri <[email protected]>
Date:   Wed Jun 8 10:18:33 2016 +1000

    glsl: reserve parameter storage on cache restore
    
    Since we know how big the list will be we can allocate the storage
    upfront.
    
    Reviewed-by: Nicolai Hähnle <[email protected]>

URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=1183eb487f65cc8f101578866c404026d6b6dfaa
Author: Timothy Arceri <[email protected]>
Date:   Thu Jun 2 14:13:26 2016 +1000

    glsl: don't try to load/store buffer object values in the cache
    
    Also add an assert to catch buffer overflows.
    
    Reviewed-by: Nicolai Hähnle <[email protected]>

URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=cad1a9bfde61b634d95041d02f527093fd590677
Author: Timothy Arceri <[email protected]>
Date:   Mon Jun 20 11:09:34 2016 +1000

    glsl: don't reprocess or clear UBOs on cache fallback
    
    Reviewed-by: Nicolai Hähnle <[email protected]>

URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=01d1e5a7ad4883d3f3aa7675711a5acd38736325
Author: Timothy Arceri <[email protected]>
Date:   Sat Apr 23 22:34:38 2016 +1000

    glsl: skip more uniform initialisation when doing fallback linking
    
    We already pull these values from the metadata cache so no need to
    recreate them.
    
    Reviewed-by: Nicolai Hähnle <[email protected]>

URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=794f7326bcc3ffb7ab473d2c10a8c81ff4958167
Author: Timothy Arceri <[email protected]>
Date:   Wed Apr 27 15:41:19 2016 +1000

    glsl: don't lose uniform values when falling back to full compile
    
    Here we skip the recreation of uniform storage if we are relinking
    after a cache miss. This is improtant because uniform values may
    have already been set by the application and we don't want to reset
    them.
    
    Reviewed-by: Nicolai Hähnle <[email protected]>

URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=0e9991f957e296f46cfff40a94ffba0adf2a58e1
Author: Timothy Arceri <[email protected]>
Date:   Sun Nov 20 17:48:27 2016 +1100

    glsl: don't reference shader prog data during cache fallback
    
    We already have a reference.
    
    Reviewed-by: Nicolai Hähnle <[email protected]>

URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=2f19accc5ecdff29c9300f0eceb420c0b1538b24
Author: Timothy Arceri <[email protected]>
Date:   Sun Nov 20 12:47:00 2016 +1100

    mesa/glsl: add cache_fallback flag to gl_shader_program_data
    
    This will allow us to skip certain things when falling back to
    a full recompile on a cache miss such as avoiding reinitialising
    uniforms.
    
    In this change we use it to avoid reading the program metadata
    from the cache and skipping linking during a fallback.
    
    Reviewed-by: Nicolai Hähnle <[email protected]>

URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=e3adde023b73cbee1423078163e925dc400078e9
Author: Timothy Arceri <[email protected]>
Date:   Mon Feb 13 11:53:30 2017 +1100

    glsl: add api and glsl version to hash generation for shaders
    
    Reviewed-by: Nicolai Hähnle <[email protected]>

URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=dc0c0c176d0b4620923182aa8709084119d8f92c
Author: Timothy Arceri <[email protected]>
Date:   Wed Apr 13 10:28:04 2016 +1000

    glsl: cache uniform values
    
    These may be lowered constant arrays or uniform values that we set before 
linking
    so we need to cache the actual uniform values.
    
    Reviewed-by: Nicolai Hähnle <[email protected]>

URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=49f34390899e5507fc67ae374f9a92e4d9a9a7bb
Author: Timothy Arceri <[email protected]>
Date:   Wed Apr 13 15:42:04 2016 +1000

    glsl: make uniform values helper available for use elsewhere
    
    Reviewed-by: Nicolai Hähnle <[email protected]>

URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=bb16cf805d3169acea182c83dceecc1592b97582
Author: Timothy Arceri <[email protected]>
Date:   Thu Mar 31 10:37:27 2016 +1100

    glsl: cache some more image metadata
    
    Reviewed-by: Nicolai Hähnle <[email protected]>

URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=a3ff840d05b9cc44cf53694dceb8b095d8da239d
Author: Timothy Arceri <[email protected]>
Date:   Sat Mar 26 13:37:30 2016 +1100

    glsl: add support for caching atomic buffers
    
    Reviewed-by: Nicolai Hähnle <[email protected]>

URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=3d15d814c0e4f6356a89a60f22e17785d195474e
Author: Timothy Arceri <[email protected]>
Date:   Wed Mar 23 13:50:08 2016 +1100

    glsl: add shader cache support for buffer blocks
    
    Reviewed-by: Nicolai Hähnle <[email protected]>

URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=6761259958dd9c8450c46322048d34409e424c45
Author: Timothy Arceri <[email protected]>
Date:   Tue Apr 12 15:10:24 2016 +1000

    glsl: store subroutine remap table in shader cache
    
    V2: use new helpers to store/restore table entries.
    
    Reviewed-by: Nicolai Hähnle <[email protected]>

URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=787535fb11b08f41ac4f19683e112a04a84afe53
Author: Timothy Arceri <[email protected]>
Date:   Tue Mar 22 21:54:27 2016 +1100

    glsl: add support for caching subroutines
    
    Reviewed-by: Nicolai Hähnle <[email protected]>

URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=0057de58f954e6494b5661e505d12e92f18619e2
Author: Timothy Arceri <[email protected]>
Date:   Tue Jan 24 08:34:23 2017 +1100

    glsl: add support for caching shaders with xfb qualifiers
    
    For now this disables the shader cache when transform feedback is
    enabled via the GL API as we don't currently allow for it when
    generating the sha for the shader.
    
    Reviewed-by: Nicolai Hähnle <[email protected]>

URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=3bbfee3cd336c60674d337ace3410f09d4eabf6f
Author: Timothy Arceri <[email protected]>
Date:   Sat Mar 19 14:42:46 2016 +1100

    glsl: add shader cache support for samplers
    
    Reviewed-by: Nicolai Hähnle <[email protected]>

URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=c4cff5f40254deb89ecb3569fc2936cc859c0a81
Author: Timothy Arceri <[email protected]>
Date:   Fri Mar 18 21:51:49 2016 +1100

    glsl: add basic support for resource list to shader cache
    
    This initially adds support for simple uniforms and varyings.
    
    Reviewed-by: Nicolai Hähnle <[email protected]>

URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=3c45d8f4642b86eeecd7b8c30b4e6225d4e9ebdc
Author: Timothy Arceri <[email protected]>
Date:   Tue Apr 12 17:20:49 2016 +1000

    glsl: fix uniform remap table cache when explicit locations used
    
    V2: don't store pointers use an enum instead to flag what should be
    restored. Also do the work in a helper that we will later use for
    the subroutine remap table.
    
    Reviewed-by: Nicolai Hähnle <[email protected]>

URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=a01973a78450573ab5bc66bbabd2bcd50a783a8e
Author: Carl Worth <[email protected]>
Date:   Wed Nov 12 23:57:15 2014 -0800

    glsl: Serialize three additional hash tables with program metadata
    
    The three additional tables are AttributeBindings, FragDataBindings,
    and FragDataIndexBindings.
    
    The first table (AttributeBindings) was identified as missing by
    trying to test the shader cache with a program that called
    glGetAttribLocation.
    
    Many thanks to Tapani Pälli <[email protected]>, as it was review
    of related work that he had done previously that pointed me to the
    necessity to also save and restore FragDataBindings and
    FragDataIndexBindings.
    
    Reviewed-by: Nicolai Hähnle <[email protected]>

URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=e5bb4a0b0f4743fa0a0567991dca751ef49a7200
Author: Timothy Arceri <[email protected]>
Date:   Mon Feb 13 09:34:54 2017 +1100

    glsl: use correct shader source in case of cache fallback
    
    The scenario is:
    
    glShaderSource
    glCompileShader <-- deferred due to cache hit of shader
    
    glShaderSource <-- with new source code
    
    glAttachShader
    glLinkProgram <-- no cache hit for program
    
    At this point we need to compile the original source when we
    fallback.
    
    Reviewed-by: Nicolai Hähnle <[email protected]>

URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=877194068208a9fb87f7b5513bca85d09be8a20f
Author: Timothy Arceri <[email protected]>
Date:   Tue Jan 24 08:39:13 2017 +1100

    glsl: make use of on disk shader cache
    
    The hash key for glsl metadata is a hash of the hashes of each GLSL
    source string.
    
    This commit uses the put_key/get_key support in the cache put the SHA-1
    hash of the source string for each successfully compiled shader into the
    cache. This allows for early, optimistic returns from glCompileShader
    (if the identical source string had been successfully compiled in the past),
    in the hope that the final, linked shader will be found in the cache.
    
    This is based on the intial patch by Carl.
    
    Reviewed-by: Nicolai Hähnle <[email protected]>

URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=34ca0fce228224121d1a3b111c38325e731bace3
Author: Timothy Arceri <[email protected]>
Date:   Thu Apr 14 11:08:32 2016 +1000

    glsl: add initial implementation of shader cache
    
    This uses disk_cache.c to write out a serialization of various
    state that's required in order to successfully load and use a
    binary written out by a drivers backend, this state is referred to as
    "metadata" throughout the implementation.
    
    This initial version is intended to work with all stages beside
    compute.
    
    This patch is based on the initial work done by Carl.
    
    V2: extend the file's doxygen comment to cover some of the
    design decisions.
    
    V3:
    - skip cache for fixed function shaders
    - add int64 support
    - fix glsl IR program parameter caching/restore and cache the
      parameter values which are used by gallium backends.
    - use new link status enum
    
    V4:
    - add compute program support
    
    Reviewed-by: Nicolai Hähnle <[email protected]>

_______________________________________________
mesa-commit mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/mesa-commit

Reply via email to