aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlyssa Rosenzweig <[email protected]>2019-04-28 21:39:20 +0000
committerAlyssa Rosenzweig <[email protected]>2019-04-28 21:39:20 +0000
commitec65e1b763edadbc4f7bddd122b1fbbdb2c5bfd0 (patch)
tree55221b7e5ad9a761f2ce5919b5081883ae0d5a15
parent3978614d8818ece6e1e252490f4bcab670db806a (diff)
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 <[email protected]>
-rw-r--r--src/gallium/drivers/panfrost/pan_context.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/gallium/drivers/panfrost/pan_context.c b/src/gallium/drivers/panfrost/pan_context.c
index 9d3d0d20084..42db8317d37 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;