viz: split cfg and table render (#14021)

This commit is contained in:
qazal
2026-01-05 06:59:08 -05:00
committed by GitHub
parent 70405b4f3c
commit 4f2f38bf64

View File

@@ -748,7 +748,6 @@ async function main() {
if (ckey in cache) { if (ckey in cache) {
ret = cache[ckey]; ret = cache[ckey];
} }
// ** Text view
if (!ckey.startsWith("/graph")) { if (!ckey.startsWith("/graph")) {
if (!(ckey in cache)) cache[ckey] = ret = await fetchValue(ckey); if (!(ckey in cache)) cache[ckey] = ret = await fetchValue(ckey);
if (ret.steps?.length > 0) { if (ret.steps?.length > 0) {
@@ -760,15 +759,23 @@ async function main() {
appendSteps(el.ctx, state.currentCtx, ctx.steps); appendSteps(el.ctx, state.currentCtx, ctx.steps);
return setState({ currentStep:state.currentStep+1, expandSteps:true }); return setState({ currentStep:state.currentStep+1, expandSteps:true });
} }
// cycles on the x axis // timeline with cycles on the x axis
if (ret instanceof ArrayBuffer) { if (ret instanceof ArrayBuffer) {
opts = {heightScale:0.5, hideLabels:true, levelKey:(e) => parseInt(e.name.split(" ")[1].split(":")[1])}; opts = {heightScale:0.5, hideLabels:true, levelKey:(e) => parseInt(e.name.split(" ")[1].split(":")[1])};
return renderProfiler(ckey, "clk", opts); return renderProfiler(ckey, "clk", opts);
} }
displaySelection("#custom");
metadata.innerHTML = ""; metadata.innerHTML = "";
ret.metadata?.forEach(m => {
if (Array.isArray(m)) return metadata.appendChild(tabulate(m.map(({ label, value }) => {
return [label.trim(), typeof value === "string" ? value : formatUnit(value)];
})).node());
metadata.appendChild(codeBlock(m.src)).classList.add("full-height")
});
// graph render
if (ret.data != null) return renderDag(ret, { recenter:true });
// table / plaintext render
displaySelection("#custom");
const root = d3.create("div").classed("raw-text", true); const root = d3.create("div").classed("raw-text", true);
// detailed assembly view
function renderTable(root, ret) { function renderTable(root, ret) {
const table = root.append("table"); const table = root.append("table");
const thead = table.append("thead"); const thead = table.append("thead");
@@ -797,14 +804,7 @@ async function main() {
return table; return table;
} }
if (ret.cols != null) renderTable(root, ret); if (ret.cols != null) renderTable(root, ret);
else if (ret.data != null) renderDag(ret, { recenter:true });
else if (ret.src != null) root.append(() => codeBlock(ret.src, ret.lang)); else if (ret.src != null) root.append(() => codeBlock(ret.src, ret.lang));
ret.metadata?.forEach(m => {
if (Array.isArray(m)) return metadata.appendChild(tabulate(m.map(({ label, value }) => {
return [label.trim(), typeof value === "string" ? value : formatUnit(value)];
})).node());
metadata.appendChild(codeBlock(m.src)).classList.add("full-height")
});
return document.querySelector("#custom").replaceChildren(root.node()); return document.querySelector("#custom").replaceChildren(root.node());
} }
// ** Graph view // ** Graph view