Reviewed-by: Bas Nieuwenhuizen <b...@basnieuwenhuizen.nl>
On Thu, Nov 30, 2017 at 10:23 PM, Samuel Pitoiset <samuel.pitoi...@gmail.com> wrote: > "vkAllocateCommandBuffers can be used to create multiple command > buffers. If the creation of any of those command buffers fails, the > implementation must destroy all successfully created command buffer > objects from this command, set all entries of the pCommandBuffers > array to NULL and return the error." > > This has been suggested by gabr...@system.is. > > Signed-off-by: Samuel Pitoiset <samuel.pitoi...@gmail.com> > --- > src/amd/vulkan/radv_cmd_buffer.c | 18 ++++++++++++++---- > 1 file changed, 14 insertions(+), 4 deletions(-) > > diff --git a/src/amd/vulkan/radv_cmd_buffer.c > b/src/amd/vulkan/radv_cmd_buffer.c > index 18a1c55ad1..fe4f989dd1 100644 > --- a/src/amd/vulkan/radv_cmd_buffer.c > +++ b/src/amd/vulkan/radv_cmd_buffer.c > @@ -2140,9 +2140,6 @@ VkResult radv_AllocateCommandBuffers( > VkResult result = VK_SUCCESS; > uint32_t i; > > - memset(pCommandBuffers, 0, > - > sizeof(*pCommandBuffers)*pAllocateInfo->commandBufferCount); > - > for (i = 0; i < pAllocateInfo->commandBufferCount; i++) { > > if (!list_empty(&pool->free_cmd_buffers)) { > @@ -2164,10 +2161,23 @@ VkResult radv_AllocateCommandBuffers( > break; > } > > - if (result != VK_SUCCESS) > + if (result != VK_SUCCESS) { > radv_FreeCommandBuffers(_device, pAllocateInfo->commandPool, > i, pCommandBuffers); > > + /* From the Vulkan 1.0.66 spec: > + * > + * "vkAllocateCommandBuffers can be used to create multiple > + * command buffers. If the creation of any of those command > + * buffers fails, the implementation must destroy all > + * successfully created command buffer objects from this > + * command, set all entries of the pCommandBuffers array to > + * NULL and return the error." > + */ > + memset(pCommandBuffers, 0, > + sizeof(*pCommandBuffers) * > pAllocateInfo->commandBufferCount); > + } > + > return result; > } > > -- > 2.15.0 > > _______________________________________________ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/mesa-dev _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev