[Mesa-dev] [PATCH 1/3 v3] anv/descriptor_set: Fix binding partly undefined descriptor sets

Jason Ekstrand jason at jlekstrand.net
Wed Jul 13 23:45:30 UTC 2016


LGTM

On Wed, Jul 13, 2016 at 4:36 PM, Nanley Chery <nanleychery at gmail.com> wrote:

> Section 13.2.3. of the Vulkan spec requires that implementations be able to
> bind sparsely-defined Descriptor Sets without any errors or exceptions.
>
> When binding a descriptor set that contains a dynamic buffer
> binding/descriptor,
> the driver attempts to dereference the descriptor's buffer_view field if
> it is
> non-NULL. It currently segfaults on undefined descriptors as this field is
> never
> zero-initialized. Zero undefined descriptors to avoid segfaulting. This
> solution was suggested by Jason Ekstrand.
>
> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=96850
> Cc: 12.0 <mesa-stable at lists.freedesktop.org>
> Signed-off-by: Nanley Chery <nanley.g.chery at intel.com>
> ---
>
> v3: memset all descriptors in the DescriptorSet (Jason Ekstrand)
>
>  src/intel/vulkan/anv_descriptor_set.c | 5 +++++
>  1 file changed, 5 insertions(+)
>
> diff --git a/src/intel/vulkan/anv_descriptor_set.c
> b/src/intel/vulkan/anv_descriptor_set.c
> index 448ae0e..bd3ebed 100644
> --- a/src/intel/vulkan/anv_descriptor_set.c
> +++ b/src/intel/vulkan/anv_descriptor_set.c
> @@ -409,6 +409,11 @@ anv_descriptor_set_create(struct anv_device *device,
>        (struct anv_buffer_view *) &set->descriptors[layout->size];
>     set->buffer_count = layout->buffer_count;
>
> +   /* By defining the descriptors to be zero now, we can later verify that
> +    * a descriptor has not been populated with user data.
> +    */
> +   memset(set->descriptors, 0, sizeof(struct anv_descriptor) *
> layout->size);
> +
>     /* Go through and fill out immutable samplers if we have any */
>     struct anv_descriptor *desc = set->descriptors;
>     for (uint32_t b = 0; b < layout->binding_count; b++) {
> --
> 2.9.0
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20160713/7a928c65/attachment.html>


More information about the mesa-dev mailing list