Open Trider12 opened 2 months ago
friendly update on this - we are currently spending a LOT of energy trying to improve all things related to descriptor indexing and GPU-AV ... this will hopefully be addressed as conscience of that effort, but thanks for reporting this!
Environment:
Describe the Issue
I have a descriptor set S with binding 3 flagged with
VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT
. This is a single descriptor binding. Compute pipeline A uses binding 3, I wait for the fence and destroy the resources behind that binding. After that compute pipeline B uses set S, but does not touch binding 3 at all. Still, after submitting B's dispatch I get this:In fact, I get the same error with or without using
VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT
. From the spec:It seems that the layers do not respect this flag (when the binding has only a single descriptor?) and issue an error. Here's the line where the error is logged.
Additionally, when validating the descriptors, the type of command is hardcoded to
vkCmdDraw
here, which causes more confusion.Additionally, this use case caused the layers to sometimes crash on this line (likely due to dereferencing a stale pointer) in version 1.3.280.0, but this seems to be fixed in 1.3.290.0.
Expected behavior
VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT
should be respected and the error message should reference the correct command.