URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=0f7d32073da70a65354135afef3fb8d5d7e605ea
Author: Mike Blumenkrantz <[email protected]>
Date:   Tue Mar 2 18:44:31 2021 -0500

    zink: ci updates
    
    some flakes here that will be resolved in the very near future
    
    Reviewed-by: Bas Nieuwenhuizen <[email protected]>
    Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9348>

URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=a5984bdf78a07f4e4e6e8a486a8e342348fdff49
Author: Mike Blumenkrantz <[email protected]>
Date:   Fri Oct 23 17:02:49 2020 -0400

    zink: fix arrays of texel buffer descriptors
    
    these need to pass a constructed array of buffers, not a single buffer per
    descriptor
    
    Reviewed-by: Bas Nieuwenhuizen <[email protected]>
    Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9348>

URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=929a748401f5a79b37ebd33ca416694065efeda7
Author: Mike Blumenkrantz <[email protected]>
Date:   Fri Mar 12 08:37:39 2021 -0500

    zink: avoid hashing states without descriptors
    
    this is unnecessary hashing which decreases the accuracy of the states
    
    Reviewed-by: Bas Nieuwenhuizen <[email protected]>
    Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9348>

URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=72a06746bfcb1cfd429d8068013bd99e384f95c8
Author: Mike Blumenkrantz <[email protected]>
Date:   Mon Oct 12 13:22:02 2020 -0400

    zink: remove image layouts from descriptor states
    
    these are always the same value, so there's no need to track them
    
    Reviewed-by: Bas Nieuwenhuizen <[email protected]>
    Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9348>

URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=5700cbfa1a45f029afd14b1427b893d673e8fec3
Author: Mike Blumenkrantz <[email protected]>
Date:   Fri Oct 9 09:37:47 2020 -0400

    zink: always use VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL for sampler 
bindings
    
    if a resource is used multiple times with different samplers then this can 
result
    in conflicting layouts, so it's better to just use the general case here
    
    Reviewed-by: Bas Nieuwenhuizen <[email protected]>
    Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9348>

URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=e4421c4b829cda4506bc33dafc79d3a2405d0fac
Author: Mike Blumenkrantz <[email protected]>
Date:   Mon Oct 12 11:20:47 2020 -0400

    zink: don't create descriptor barrier hash tables for cached descriptor set
    
    this won't be used, so there's no point in allocating it
    
    Reviewed-by: Bas Nieuwenhuizen <[email protected]>
    Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9348>

URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=38e6e4426241ae01f51eb74e9487bfd863edd084
Author: Mike Blumenkrantz <[email protected]>
Date:   Mon Oct 12 12:13:02 2020 -0400

    zink: remove struct zink_descriptor_resource from descriptor updating
    
    this can be inferred from a resource's barrier usage, and then by merging
    the batch-tracking for resources into the barrier loop, this deduplicates
    calls for resources which are bound for multiple stages as well as removing
    another iteration during descriptor updating
    
    Reviewed-by: Bas Nieuwenhuizen <[email protected]>
    Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9348>

URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=4a3b344b23583e229b837ca51ca7f3658ac2e32b
Author: Mike Blumenkrantz <[email protected]>
Date:   Wed Oct 7 09:47:08 2020 -0400

    zink: directly use resource count from pool instead of accumulating every 
time
    
    this is a surprisingly impactful speedup
    
    Reviewed-by: Bas Nieuwenhuizen <[email protected]>
    Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9348>

URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=201cd1a8c02bfa1b1e1f0c12c9d77c9700f1b714
Author: Mike Blumenkrantz <[email protected]>
Date:   Wed Oct 7 09:39:21 2020 -0400

    zink: track resource count on descriptor pool object
    
    we can do this once here instead of accumulating the count all over later
    
    also remove the debug value on the set which duplicated this
    
    Reviewed-by: Bas Nieuwenhuizen <[email protected]>
    Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9348>

URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=d9793a8a606bbddd2f4cb7837e90e3946a8d2e8c
Author: Mike Blumenkrantz <[email protected]>
Date:   Wed Oct 7 09:30:27 2020 -0400

    zink: reuse descriptor barriers across draws
    
    if we aren't invalidating the descriptor set then we can safely reuse its
    barriers to avoid doing any sort of hashing during descriptor updating
    
    Reviewed-by: Bas Nieuwenhuizen <[email protected]>
    Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9348>

URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=c55e2fb59c16ff775ec57e975ef391dc132bef0f
Author: Mike Blumenkrantz <[email protected]>
Date:   Tue Oct 6 16:45:24 2020 -0400

    zink: move descriptor binding out of the update codepath
    
    we won't always need to update sets that we bind
    
    Reviewed-by: Bas Nieuwenhuizen <[email protected]>
    Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9348>

URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=dc020db7239c7e96195d0da1ebf39befa42bcafd
Author: Mike Blumenkrantz <[email protected]>
Date:   Tue Oct 6 16:31:59 2020 -0400

    zink: pre-size descriptor transition hash table
    
    this avoids costly rehashing
    
    Reviewed-by: Bas Nieuwenhuizen <[email protected]>
    Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9348>

URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=80d9f3aa347cd520cc4842765ce6f1eb228db1f9
Author: Mike Blumenkrantz <[email protected]>
Date:   Tue Oct 6 14:43:15 2020 -0400

    zink: simplify check for knowing whether descriptor updating is needed
    
    if a program has at least one pool object set then it will have descriptors
    
    Reviewed-by: Bas Nieuwenhuizen <[email protected]>
    Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9348>

URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=fe31566fbbefba719204bf04820c36e06a192d41
Author: Mike Blumenkrantz <[email protected]>
Date:   Tue Oct 6 12:33:39 2020 -0400

    zink: remove intermediate func for descriptor set getting
    
    we can simplify this a bit by just getting the objects in the function
    
    Reviewed-by: Bas Nieuwenhuizen <[email protected]>
    Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9348>

URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=141ff0e0911c7524642593625673d9a17a996bfa
Author: Mike Blumenkrantz <[email protected]>
Date:   Tue Oct 6 09:40:00 2020 -0400

    zink: allow reuse of zink_descriptor_pools between programs
    
    now that we've split these into their own objects, we can reuse them across
    programs with matching binding layouts for a given type, giving even more 
value to
    the descriptor set cache by increasing reuse
    
    Reviewed-by: Bas Nieuwenhuizen <[email protected]>
    Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9348>

URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=ee40550b87b13adc71ffbb5fbe7f57ea23182632
Author: Mike Blumenkrantz <[email protected]>
Date:   Tue Oct 6 09:34:41 2020 -0400

    zink: move descriptor type to pool object from set
    
    this is a little less memory usage
    
    Reviewed-by: Bas Nieuwenhuizen <[email protected]>
    Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9348>

URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=58500979a854b9259a608dff86273a1e0c5d6d8d
Author: Mike Blumenkrantz <[email protected]>
Date:   Wed Oct 7 08:35:57 2020 -0400

    zink: track number of sets currently allocated per descriptor pool
    
    if we're going to be sharing pools across programs, it's no longer 
sufficient
    to check the hash populations, so we need a separate counter to know when 
we have
    to flush
    
    Reviewed-by: Bas Nieuwenhuizen <[email protected]>
    Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9348>

URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=871022dc84af97866863968a5d11cb957dd3c316
Author: Mike Blumenkrantz <[email protected]>
Date:   Tue Oct 6 08:30:06 2020 -0400

    zink: change program pointer on struct zink_descriptor_set to pool pointer
    
    the program using the set isn't very relevant now that there's the 
intermediate
    pool struct which stores the sets
    
    Reviewed-by: Bas Nieuwenhuizen <[email protected]>
    Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9348>

URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=817de3c77693a480bcb6ebc8a08da14e47a94261
Author: Mike Blumenkrantz <[email protected]>
Date:   Mon Oct 5 21:29:02 2020 -0400

    zink: break out all the descriptor pool/layout stuff into a new struct
    
    by pushing these into a separate struct, we can eventually reuse them 
between
    programs to make the descriptor set caches even more valuable
    
    Reviewed-by: Bas Nieuwenhuizen <[email protected]>
    Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9348>

URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=3d4e6c641be2bae3117f12921465fff2698936a1
Author: Mike Blumenkrantz <[email protected]>
Date:   Mon Oct 5 19:51:27 2020 -0400

    zink: break out descriptor stuff into new files
    
    this is getting to be enough code that it's getting to be a hassle to
    keep with the program stuff
    
    also rename a couple of the moved functions
    
    Reviewed-by: Bas Nieuwenhuizen <[email protected]>
    Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9348>

URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=eee488abadfddd04d4dec8e8808b049d1534b105
Author: Mike Blumenkrantz <[email protected]>
Date:   Sun Oct 4 14:58:48 2020 -0400

    zink: deduplicate VkWriteDescriptorSet setup
    
    no functional changes
    
    Reviewed-by: Bas Nieuwenhuizen <[email protected]>
    Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9348>

URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=ce0524f0096972aeb8f5d4bf23d7e008633e9b79
Author: Mike Blumenkrantz <[email protected]>
Date:   Sun Oct 4 12:59:44 2020 -0400

    zink: break out image descriptor updating
    
    all the descriptor updates are now broken out, so update_descriptors is now 
just
    a dispatch for calling the other update functions
    
    Reviewed-by: Bas Nieuwenhuizen <[email protected]>
    Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9348>

URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=eb375dc93916ba70b2d0042d7672a97aa28c11fa
Author: Mike Blumenkrantz <[email protected]>
Date:   Sun Oct 4 12:48:55 2020 -0400

    zink: break out sampler descriptor updating
    
    Reviewed-by: Bas Nieuwenhuizen <[email protected]>
    Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9348>

URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=e94c2d84b34f7e2567f81eb06eb323a9758e9721
Author: Mike Blumenkrantz <[email protected]>
Date:   Sun Oct 4 12:17:44 2020 -0400

    zink: break out ssbo descriptor updating
    
    by the power of grayskull, this is now readable
    
    Reviewed-by: Bas Nieuwenhuizen <[email protected]>
    Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9348>

URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=e4076d557fd086abb598edeff4781b45db6a4382
Author: Mike Blumenkrantz <[email protected]>
Date:   Sun Oct 4 12:10:17 2020 -0400

    zink: split out ubo descriptor updating
    
    now that we're doing incremental updates, we can refactor this to be much
    more readable by having separate functions for each type of descriptor 
update
    
    Reviewed-by: Bas Nieuwenhuizen <[email protected]>
    Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9348>

URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=2c83ea13d24aac98eb1c0f5c963e0aaefb482e56
Author: Mike Blumenkrantz <[email protected]>
Date:   Sun Oct 4 12:04:57 2020 -0400

    zink: add VkPipelineLayout to zink_program meta struct
    
    this lets us simplify a little more code
    
    Reviewed-by: Bas Nieuwenhuizen <[email protected]>
    Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9348>

URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=0248e6b9693cef5c4ab76669f8eeae3874d689a3
Author: Mike Blumenkrantz <[email protected]>
Date:   Sun Oct 4 11:38:47 2020 -0400

    zink: don't double iterate all the per-batch sets on reset
    
    we're already iterating once here, so we can definitely skip iterating again
    and just do the removals inlined
    
    Reviewed-by: Bas Nieuwenhuizen <[email protected]>
    Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9348>

URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=74a0badb91bf2b789dae284bc9c2fc105b6c4a1c
Author: Mike Blumenkrantz <[email protected]>
Date:   Sun Oct 4 10:33:51 2020 -0400

    zink: add flag for recycled descriptor sets
    
    this lets us skip a hash lookup in the last_set fastpath
    
    Reviewed-by: Bas Nieuwenhuizen <[email protected]>
    Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9348>

URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=3f561bbc83cecdcea1f301de8e3b46dfd4bf7ea1
Author: Mike Blumenkrantz <[email protected]>
Date:   Sun Oct 4 10:07:29 2020 -0400

    zink: improve descriptor cache invalidation
    
    we can pass the offset of the 'invalid' flag directly to the resources
    to let them run through and invalidate their sets in time for us to detect
    it when we recycle the set during batch reset and throw it onto our 
allocation array
    
    additionally, by adding refs for the actual objects used in a descriptor 
set, we can
    ensure that our cache is as accurate as possible
    
    Reviewed-by: Bas Nieuwenhuizen <[email protected]>
    Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9348>

URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=1a9f3ba2d7c8314ce39b1d069526c2f542e7571a
Author: Mike Blumenkrantz <[email protected]>
Date:   Sun Oct 4 10:55:25 2020 -0400

    zink: only batch-reference the program in use once per descriptor update
    
    now that we're guaranteed to know what our batch is earlier, we can move 
this
    referencing around to reduce the number of hash lookups we'll perform here
    
    Reviewed-by: Bas Nieuwenhuizen <[email protected]>
    Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9348>

URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=9df314726406bf0e86fad66e99b894cbb9079785
Author: Mike Blumenkrantz <[email protected]>
Date:   Sun Oct 4 10:53:14 2020 -0400

    zink: move descriptor set allocation near the top of update_descriptors
    
    no functional changes, but it moves the only point in the function where a
    flush can occur out of the way which lets us get the batch we'll be using
    immediately
    
    Reviewed-by: Bas Nieuwenhuizen <[email protected]>
    Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9348>

URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=514b5ced978bcaae4e2a3220d0c10bc665d4b5ff
Author: Mike Blumenkrantz <[email protected]>
Date:   Sun Oct 4 11:04:22 2020 -0400

    zink: add program pointer to desc set struct
    
    we generally want to avoid this, but it lets us skip a lot of hash lookups,
    which is a performance hit
    
    Reviewed-by: Bas Nieuwenhuizen <[email protected]>
    Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9348>

URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=b4105e8ac04f36747ccb57035ea97daa561f4bf9
Author: Mike Blumenkrantz <[email protected]>
Date:   Sat Oct 3 10:31:22 2020 -0400

    zink: actually flag all used resources as used during update_descriptors
    
    num descriptors != num bound resources, so this needs to be a separate 
count/index
    
    Reviewed-by: Bas Nieuwenhuizen <[email protected]>
    Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9348>

URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=40be7f6353cfd786939f49514d7c2e6c3f38f92e
Author: Mike Blumenkrantz <[email protected]>
Date:   Thu Oct 1 16:29:09 2020 -0400

    zink: store last-used descriptor set for each type of set for quick reuse
    
    we can avoid some hash lookups this way, and we can also avoid putting the 
null
    descriptor sets back into the array since we know they'll always be the 
last-used
    set
    
    this also helps our null set reuse be more explicit since we never have to 
put these sets
    back into an array or anything
    
    Reviewed-by: Bas Nieuwenhuizen <[email protected]>
    Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9348>

URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=8c908ee6a4f10117b7392263e0e4686db6264759
Author: Mike Blumenkrantz <[email protected]>
Date:   Wed Oct 7 14:00:19 2020 -0400

    zink: pre-hash sampler views and states
    
    this greatly reduces the amount of on-demand hashing that we have to do,
    as now in worst case we'll be hashing 2x uint32_t per sampler descriptor
    vs 2x vulkan object pointer (sometimes a uint64_t) and a uint32_t
    
    Reviewed-by: Bas Nieuwenhuizen <[email protected]>
    Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9348>

URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=fa77cc2fbb8de94147ab058a985ebfa627cedabf
Author: Mike Blumenkrantz <[email protected]>
Date:   Wed Oct 7 13:59:35 2020 -0400

    zink: add a null sampler view descriptor hash to the screen
    
    pre-hashing this saves us time later since we can just reuse it
    
    Reviewed-by: Bas Nieuwenhuizen <[email protected]>
    Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9348>

URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=67f9038b85aa35c2bfd55e5fe5e042153a7bd05f
Author: Mike Blumenkrantz <[email protected]>
Date:   Thu Oct 1 15:22:29 2020 -0400

    zink: introduce descriptor states
    
    this aims to track the states of descriptors so that we can do more 
incremental
    updating
    
    it also enables the descriptor cache to be more robust by providing the 
incremental
    data as the key
    
    Reviewed-by: Bas Nieuwenhuizen <[email protected]>
    Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9348>

URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=6d233e74ad01439c5472b748354c2ef918570893
Author: Mike Blumenkrantz <[email protected]>
Date:   Thu Oct 1 16:51:49 2020 -0400

    zink: use dynamic offsets for first ubo
    
    this lets us avoid invalidating the ubo descriptor state, which reduces our
    cache overhead
    
    Reviewed-by: Bas Nieuwenhuizen <[email protected]>
    Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9348>

URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=d4304ab0d2aa93dc415b4f2128a028b6b7411f4e
Author: Mike Blumenkrantz <[email protected]>
Date:   Thu Oct 1 15:22:45 2020 -0400

    zink: split descriptor sets based on usage
    
    this uses multiple descriptor sets so that we can perform more incremental
    updating and increase the value that we get from our cache by only 
invalidating
    one state at a time
    
    Reviewed-by: Bas Nieuwenhuizen <[email protected]>
    Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9348>

URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=c5ce20e97ae30bddb10715b5bfe57c2b71dd09dc
Author: Mike Blumenkrantz <[email protected]>
Date:   Fri Feb 26 08:07:34 2021 -0500

    zink: move surface refs to the end of descriptor updating
    
    keeping descriptor stuff with descriptor stuff
    
    Reviewed-by: Bas Nieuwenhuizen <[email protected]>
    Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9348>

URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=d06c2ae21f04209dcfa51e76515290d59c242bf8
Author: Mike Blumenkrantz <[email protected]>
Date:   Fri Feb 26 08:05:14 2021 -0500

    zink: reorder descriptor barrier applying during updating
    
    just putting this with the rest of the non-descriptor stuff
    
    Reviewed-by: Bas Nieuwenhuizen <[email protected]>
    Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9348>

URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=761a04a464e19bb2de6624a40a812f18f4864ac6
Author: Mike Blumenkrantz <[email protected]>
Date:   Thu Feb 25 23:22:53 2021 -0500

    zink: move streamout to draw_vbo
    
    this isn't part of descriptor updating
    
    Reviewed-by: Bas Nieuwenhuizen <[email protected]>
    Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9348>

URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=b10a3be45e5b8bb0fe8a9675a48b952a96d1122d
Author: Mike Blumenkrantz <[email protected]>
Date:   Sun Oct 4 10:38:19 2020 -0400

    zink: add second level cache for descriptor sets
    
    this lets us store sets that are valid but not currently used so that we
    can either prolongue a cache entry's lifetime or cannibalize a valid entry
    if necessary to avoid needing to allocate more sets
    
    Reviewed-by: Bas Nieuwenhuizen <[email protected]>
    Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9348>

URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=6c4c995836664963a8cf2bfaed8ae1611d5ec075
Author: Mike Blumenkrantz <[email protected]>
Date:   Fri Oct 2 13:40:40 2020 -0400

    zink: add caching for descriptor sets
    
    this is a lot of churn that more or less amounts to hashing the descriptor
    state during draw and then performing lookups with this to determine whether
    we can reuse an existing descriptor set instead of allocating one
    
    Reviewed-by: Bas Nieuwenhuizen <[email protected]>
    Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9348>

URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=840ea21fa105928c79e77a4843f6c9ebca2b52b1
Author: Mike Blumenkrantz <[email protected]>
Date:   Thu Sep 24 11:51:12 2020 -0400

    zink: add scaling factor for descriptor set bucket allocations
    
    now descriptor sets allocate in increasingly large batches based on how many
    sets a program has allocated, multiplying by 10 any time the sets hit a 
power of
    10, e.g., if 100 sets are allocated, we now allocate in batches of 100
    
    Reviewed-by: Bas Nieuwenhuizen <[email protected]>
    Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9348>

URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=bd78710d217787fd5118b2c4d342e3720f5d779e
Author: Mike Blumenkrantz <[email protected]>
Date:   Thu Sep 24 11:05:57 2020 -0400

    zink: add bucket allocating for descriptor sets
    
    now instead of allocating a single descriptorset at a time, we allocate
    a defined count of descriptorsets (currently 10) at once and keep a separate
    array of allocated-and-unused sets that we can pop sets off of
    
    Reviewed-by: Bas Nieuwenhuizen <[email protected]>
    Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9348>

URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=4461a871b8a13c53aad14072161dce0b28fcd0e7
Author: Mike Blumenkrantz <[email protected]>
Date:   Fri Sep 18 10:26:02 2020 -0400

    zink: remove flushes for batch descriptor use
    
    now that we do all our tracking and flushing per-program, we can throw
    out the batch-based flushing and let our descriptors free-range
    
    Reviewed-by: Bas Nieuwenhuizen <[email protected]>
    Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9348>

URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=d21e88719a1182f4de3726fdb155032242eb570b
Author: Mike Blumenkrantz <[email protected]>
Date:   Wed Sep 16 15:38:38 2020 -0400

    zink: even better handling for descriptor oom
    
    in addition to ensuring that all our batches stay under the max size by 
cycling
    them whenever we get too many active descriptors going, we now do 
per-program
    descriptor pools, so we can do some limiting there as well to ensure that we
    aren't letting any one program hog all the resources
    
    Reviewed-by: Bas Nieuwenhuizen <[email protected]>
    Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9348>

URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=4ec1d5e70ca7e83e1c8191c5910a226ddfa0be98
Author: Mike Blumenkrantz <[email protected]>
Date:   Fri Sep 18 10:01:14 2020 -0400

    zink: add helper function for cycling a batch
    
    this saves a bit of typing here and there
    
    Reviewed-by: Bas Nieuwenhuizen <[email protected]>
    Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9348>

URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=7ae850967325c6bcf8f3d082b62410e67d7bf489
Author: Mike Blumenkrantz <[email protected]>
Date:   Fri Nov 27 10:48:49 2020 -0500

    zink: use more precise sizing for descriptor pools
    
    now that these are on the program structs, we can size the pools optimally
    based on the set layouts
    
    Reviewed-by: Bas Nieuwenhuizen <[email protected]>
    Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9348>

URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=9b3e2ba30ce922946375df3fc8e880b26a92d108
Author: Mike Blumenkrantz <[email protected]>
Date:   Fri Nov 27 10:57:57 2020 -0500

    zink: move descriptor set alloc function to zink_program.c
    
    try to keep things organized...
    
    Reviewed-by: Bas Nieuwenhuizen <[email protected]>
    Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9348>

URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=0b1a3563938ba268c67ef34345d5b1fd89e89b4a
Author: Mike Blumenkrantz <[email protected]>
Date:   Fri Nov 27 11:22:07 2020 -0500

    zink: store and reuse descriptorsets after batch completion
    
    since we know that the layout is going to match, we can store descriptorsets
    in the program and then overwrite them instead of needing to free sets or 
reset
    the pool
    
    Reviewed-by: Bas Nieuwenhuizen <[email protected]>
    Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9348>

URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=0e6ef05878f3629021fa9b7c5c9dc60897ec6647
Author: Mike Blumenkrantz <[email protected]>
Date:   Fri Oct 2 13:22:41 2020 -0400

    zink: move descriptor sets/pools from batches to programs
    
    this lets us much more accurately create descriptor sets using the exact
    size required by a given program instead of creating gigantic monolithic 
sets
    
    it does (temporarily) incur a perf hit since sets are now freed after each 
use rather
    than being reset
    
    Reviewed-by: Bas Nieuwenhuizen <[email protected]>
    Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9348>

URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=5ddfffcca182fc4444e26eea8a84ccb7f30bb1c4
Author: Mike Blumenkrantz <[email protected]>
Date:   Fri Nov 27 12:16:47 2020 -0500

    zink: simplify some update_descriptor code
    
    by using the generic zink_program here we can shorten the code a little
    
    Reviewed-by: Bas Nieuwenhuizen <[email protected]>
    Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9348>

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

Reply via email to