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