Optimize render graph and add GPU profiling

Amp-Thread-ID: https://ampcode.com/threads/T-01a01380-b478-77d0-84a0-102880a5c5ae
Co-authored-by: Heaust Azure <heaust.azure@gmail.com>
This commit is contained in:
Amp
2026-08-20 11:48:06 +00:00
co-authored by heaust
parent ded70a3cb4
commit 000bfd63bf
22 changed files with 1622 additions and 203 deletions
+15
View File
@@ -1,6 +1,7 @@
import initWasm, { Core } from "./pkg/yawn_core.js";
let core;
let profileTimer;
const fail = code => { throw new Error(code); };
@@ -39,6 +40,12 @@ addEventListener("message", async ({ data: message }) => {
case "switch-loadout":
core.switch_loadout(message.id);
break;
case "upload-texture":
core.upload_texture(message.name, message.image);
break;
case "delete-texture":
core.delete_texture(message.name);
break;
case "play":
core.play();
break;
@@ -48,6 +55,14 @@ addEventListener("message", async ({ data: message }) => {
case "set-fps":
core.set_fps(message.fps);
break;
case "set-profiler":
result = core.set_profiler(Boolean(message.enabled));
clearInterval(profileTimer);
profileTimer = result && message.enabled ? setInterval(() => {
const stats = core.take_profile();
if (stats) postMessage({ type: "profile", stats: JSON.parse(stats) });
}, 250) : undefined;
break;
default:
fail("MESSAGE");
}