LGTM On Wed, Jul 13, 2016 at 4:36 PM, Nanley Chery <[email protected]> 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 <[email protected]> > Signed-off-by: Nanley Chery <[email protected]> > --- > > 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 > >
_______________________________________________ mesa-dev mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-dev
