Quoting Lionel Landwerlin (2018-08-20 08:59:38) > From: Jason Ekstrand <jason.ekstr...@intel.com> > > Because lower_ycbcr gets called before apply_pipeline_layout, the > indices are all logical and the binding layout HW size is actually too > big for the bounds check. We should just use the regular logical array > size instead. > > Fixes: f3e91e78a33 "anv: add nir lowering pass for ycbcr textures" > Reviewed-by: Timothy Arceri <tarc...@itsqueeze.com> > Reviewed-by: Lionel Landwerlin <lionel.g.landwer...@intel.com> > (cherry picked from commit 320dacb0a051cd1736e0976f70467b68281edfbf) > --- > src/intel/vulkan/anv_nir_lower_ycbcr_textures.c | 10 ++++------ > 1 file changed, 4 insertions(+), 6 deletions(-) > > diff --git a/src/intel/vulkan/anv_nir_lower_ycbcr_textures.c > b/src/intel/vulkan/anv_nir_lower_ycbcr_textures.c > index ebf1fd9c267..e2b560364bc 100644 > --- a/src/intel/vulkan/anv_nir_lower_ycbcr_textures.c > +++ b/src/intel/vulkan/anv_nir_lower_ycbcr_textures.c > @@ -337,18 +337,16 @@ try_lower_tex_ycbcr(struct anv_pipeline_layout *layout, > if (binding->immutable_samplers == NULL) > return false; > > - unsigned texture_index = tex->texture_index; > + assert(tex->texture_index == 0); > + unsigned array_index = 0; > if (tex->texture->deref.child) { > assert(tex->texture->deref.child->deref_type == nir_deref_type_array); > nir_deref_array *deref_array = > nir_deref_as_array(tex->texture->deref.child); > if (deref_array->deref_array_type != nir_deref_array_type_direct) > return false; > - size_t hw_binding_size = > - anv_descriptor_set_binding_layout_get_hw_size(binding); > - texture_index += MIN2(deref_array->base_offset, hw_binding_size - 1); > + array_index = MIN2(deref_array->base_offset, binding->array_size - 1); > } > - const struct anv_sampler *sampler = > - binding->immutable_samplers[texture_index]; > + const struct anv_sampler *sampler = > binding->immutable_samplers[array_index]; > > if (sampler->conversion == NULL) > return false; > -- > 2.18.0 >
Thanks! Applied to staging/18.1 Dylan
signature.asc
Description: signature
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev