97629e935c
Live instrumentation on panthor: WLS reuse verified working (644 REUSE/46 ALLOC) but the crash is dominated by the TLS *stack* alloc in emit_tls() at EndCommandBuffer — L-variant matmul shader spills 10x more registers (tls_size 544->5328 B/thread => 38MB->304MB stack), x~12 cmdbufs retained in the tls pool => ~3GB, over the 4GB priv heap. Remaining fix is structural (free tls-pool BOs post-submit and/or fix the x19 sparse-core overallocation). See docs/root-cause-final.md. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
21 lines
793 B
Diff
21 lines
793 B
Diff
--- a/src/panfrost/vulkan/csf/panvk_vX_cmd_buffer.c
|
|
+++ src/panfrost/vulkan/csf/panvk_vX_cmd_buffer.c
|
|
@@ -35,6 +35,7 @@
|
|
#include "pan_props.h"
|
|
#include "pan_samples.h"
|
|
|
|
+#include <stdio.h>
|
|
#include "util/bitscan.h"
|
|
#include "vk_descriptor_update_template.h"
|
|
#include "vk_format.h"
|
|
@@ -55,6 +56,9 @@
|
|
unsigned size = pan_get_total_stack_size(cmdbuf->state.tls.info.tls.size,
|
|
thread_tls_alloc, core_id_range);
|
|
|
|
+ if (getenv("PANVK_WLS_LOG"))
|
|
+ fprintf(stderr, "[panvk-tls] stack_size=%u (%.1f MB) tls_size=%u cores=%u\n",
|
|
+ size, size/1048576.0, cmdbuf->state.tls.info.tls.size, core_id_range);
|
|
cmdbuf->state.tls.info.tls.ptr =
|
|
panvk_cmd_alloc_dev_mem(cmdbuf, tls, size, 4096).gpu;
|
|
}
|