From ec65e1b763edadbc4f7bddd122b1fbbdb2c5bfd0 Mon Sep 17 00:00:00 2001 From: Alyssa Rosenzweig Date: Sun, 28 Apr 2019 21:39:20 +0000 Subject: [PATCH] panfrost: Workaround -bshadow regression I have *no* idea what's happening here, but let's not regress an app that used to work in the mean time while we're figuring it out.. Signed-off-by: Alyssa Rosenzweig --- src/gallium/drivers/panfrost/pan_context.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/gallium/drivers/panfrost/pan_context.c b/src/gallium/drivers/panfrost/pan_context.c index 9d3d0d2..42db831 100644 --- a/src/gallium/drivers/panfrost/pan_context.c +++ b/src/gallium/drivers/panfrost/pan_context.c @@ -1591,7 +1591,14 @@ panfrost_create_vertex_elements_state( so->num_elements = num_elements; memcpy(so->pipe, elements, sizeof(*elements) * num_elements); - /* Allocate memory for the descriptor state */ + /* XXX: What the cornball? This is totally, 100%, unapologetically + * nonsense. And yet it somehow fixes a regression in -bshadow + * (previously, we allocated the descriptor here... a newer commit + * removed that allocation, and then memory corruption led to + * shader_meta getting overwritten in bad ways and then the whole test + * case falling apart . TODO: LOOK INTO PLEASE XXX XXX BAD XXX XXX XXX + */ + panfrost_allocate_chunk(pan_context(pctx), 0, HEAP_DESCRIPTOR); for (int i = 0; i < num_elements; ++i) { so->hw[i].index = elements[i].vertex_buffer_index; -- 2.7.4