Reviewed-by: Marek Olšák <[email protected]> Marek
On Sat, Jul 30, 2016 at 5:40 PM, Rob Clark <[email protected]> wrote: > There are cases where we hit u_vbuf path due to alignment or pitch- > alignment restrictions, but for an output-format that u_vbuf does not > support translating (yet the driver does support natively). In which > case we hit the memcpy() path and don't care that u_vbuf doesn't > understand it. > > Fixes crash with debug build of mesa in: > dEQP-GLES3.functional.vertex_arrays.single_attribute.strides.fixed.user_ptr_stride17_components2_quads1 > > Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=95000 > Signed-off-by: Rob Clark <[email protected]> > --- > src/gallium/auxiliary/util/u_vbuf.c | 6 ++++-- > 1 file changed, 4 insertions(+), 2 deletions(-) > > diff --git a/src/gallium/auxiliary/util/u_vbuf.c > b/src/gallium/auxiliary/util/u_vbuf.c > index 5b4e527..532e7c0 100644 > --- a/src/gallium/auxiliary/util/u_vbuf.c > +++ b/src/gallium/auxiliary/util/u_vbuf.c > @@ -627,6 +627,7 @@ u_vbuf_translate_begin(struct u_vbuf *mgr, > for (i = 0; i < mgr->ve->count; i++) { > struct translate_key *k; > struct translate_element *te; > + enum pipe_format output_format = mgr->ve->native_format[i]; > unsigned bit, vb_index = mgr->ve->ve[i].vertex_buffer_index; > bit = 1 << vb_index; > > @@ -644,7 +645,8 @@ u_vbuf_translate_begin(struct u_vbuf *mgr, > } > } > assert(type < VB_NUM); > - > assert(translate_is_output_format_supported(mgr->ve->native_format[i])); > + if (mgr->ve->ve[i].src_format != output_format) > + assert(translate_is_output_format_supported(output_format)); > /*printf("velem=%i type=%i\n", i, type);*/ > > /* Add the vertex element. */ > @@ -657,7 +659,7 @@ u_vbuf_translate_begin(struct u_vbuf *mgr, > te->input_buffer = vb_index; > te->input_format = mgr->ve->ve[i].src_format; > te->input_offset = mgr->ve->ve[i].src_offset; > - te->output_format = mgr->ve->native_format[i]; > + te->output_format = output_format; > te->output_offset = k->output_stride; > > k->output_stride += mgr->ve->native_format_size[i]; > -- > 2.7.4 > _______________________________________________ mesa-dev mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-dev
