You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Sorry, this fell through the cracks. Honestly I feel like the cure is worse than the symptom on this one. I think in both cases you are stuck doing non-Vulkan spec behavior. With this new change, GPU resources aren't freed until descriptor sets stop referencing them. So the choices are;
(1). Workaround for old behavior: Keep track of all entries in the array that are bound, and whenever you use that descriptor, ensure that those entries are valid (you can ignore entries that were never used).
(2). Required new management for new behavior: All resources now need to keep track of every descriptor that references them, and when they want to be freed, go through all of those descriptors and do an update to cause the descriptor to no longer reference them.
Dealing with (2) seems much more difficult than (1), and I worry that for people that aren't running into (1), they are going to be getting hit by (2) without realizing it.
(Sorry about the errant references to issues 1 and 2 from this repo in my original post in this message)
The spec also states:
VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT indicates that descriptors in this binding that are not dynamically used need not contain valid descriptors at the time the descriptors are consumed. A descriptor is dynamically used if any shader invocation executes an instruction that performs any memory access using the descriptor. If a descriptor is not dynamically used, any resource referenced by the descriptor is not considered to be referenced during command execution.
This clarification was only added recently, in spec v1.3.210.
The text was updated successfully, but these errors were encountered:
From @mbechard in issue #2206, which was resolved with PR #2320:
Sorry, this fell through the cracks. Honestly I feel like the cure is worse than the symptom on this one. I think in both cases you are stuck doing non-Vulkan spec behavior. With this new change, GPU resources aren't freed until descriptor sets stop referencing them. So the choices are;
(1). Workaround for old behavior: Keep track of all entries in the array that are bound, and whenever you use that descriptor, ensure that those entries are valid (you can ignore entries that were never used).
(2). Required new management for new behavior: All resources now need to keep track of every descriptor that references them, and when they want to be freed, go through all of those descriptors and do an update to cause the descriptor to no longer reference them.
Dealing with (2) seems much more difficult than (1), and I worry that for people that aren't running into (1), they are going to be getting hit by (2) without realizing it.
(Sorry about the errant references to issues 1 and 2 from this repo in my original post in this message)
The spec also states:
This clarification was only added recently, in spec v1.3.210.
The text was updated successfully, but these errors were encountered: