[Mesa-dev] [PATCH 01/10] panfrost: Fix vertex buffer corruption
Tomeu Vizoso
tomeu.vizoso at collabora.com
Fri Mar 29 11:15:01 UTC 2019
On Fri, 29 Mar 2019 at 02:48, Alyssa Rosenzweig <alyssa at rosenzweig.io> wrote:
>
> Fixes crash in dEQP-GLES2.functional.buffer.*
>
> Signed-off-by: Alyssa Rosenzweig <alyssa at rosenzweig.io>
> ---
> src/gallium/drivers/panfrost/pan_context.c | 10 ++++++----
> 1 file changed, 6 insertions(+), 4 deletions(-)
>
> diff --git a/src/gallium/drivers/panfrost/pan_context.c b/src/gallium/drivers/panfrost/pan_context.c
> index d242c3f90ce..5139a33d0fc 100644
> --- a/src/gallium/drivers/panfrost/pan_context.c
> +++ b/src/gallium/drivers/panfrost/pan_context.c
> @@ -772,12 +772,14 @@ panfrost_emit_vertex_data(struct panfrost_context *ctx)
> * rsrc->gpu. However, attribute buffers must be 64 aligned. If
> * it is not, for now we have to duplicate the buffer. */
>
> - mali_ptr effective_address = (rsrc->bo->gpu + buf->buffer_offset);
> + mali_ptr effective_address = rsrc ? (rsrc->bo->gpu + buf->buffer_offset) : 0;
>
> - if (effective_address & 0x3F) {
> - attrs[i].elements = panfrost_upload_transient(ctx, rsrc->bo->cpu + buf->buffer_offset, attrs[i].size) | 1;
> + if (effective_address) {
> + attrs[i].elements = panfrost_upload_transient(ctx, rsrc->bo->cpu + buf->buffer_offset, attrs[i].size) | MALI_ATTR_LINEAR;
> + } else if (effective_address) {
Guess the two conditions above weren't supposed to be the same?
Regards,
Tomeu
> + attrs[i].elements = effective_address | MALI_ATTR_LINEAR;
> } else {
> - attrs[i].elements = effective_address | 1;
> + /* Leave unset? */
> }
> }
>
> --
> 2.20.1
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
More information about the mesa-dev
mailing list