summaryrefslogtreecommitdiff
path: root/docs/render-pipeline.md
diff options
context:
space:
mode:
authorGabriel Schneider <[email protected]>2026-09-28 16:26:08 -0300
committerGabriel Schneider <[email protected]>2026-10-01 00:12:15 -0300
commitbe09d1ec7abd71f4e52f05942a941d76b6d420f2 (patch)
tree463ddfbaeec7529635a7730422faf22591254d2a /docs/render-pipeline.md
parentc6a5aaf5c4a020eaefe24943ecb6cf9d4eb26836 (diff)
downloadpardes-be09d1ec7abd71f4e52f05942a941d76b6d420f2.tar.gz
pardes-be09d1ec7abd71f4e52f05942a941d76b6d420f2.zip
Post chain review fixes: glslc on stdin, level A at the display's refresh
Stage 9 review: a user's Shadertoy file goes to glslc on its stdin, so no source file is written anywhere (the old predictable name under XDG_RUNTIME_DIR or /tmp was a symlink-clobber hazard). std's spawn does all its allocation before fork and searches PATH on the stack after it, said at the call. Level A redraws are paced by the display's refresh rate (SDL_GetCurrentDisplayMode), not a fixed 16 ms. Shared files touched: gui.zig.
Diffstat (limited to 'docs/render-pipeline.md')
-rw-r--r--docs/render-pipeline.md6
1 files changed, 3 insertions, 3 deletions
diff --git a/docs/render-pipeline.md b/docs/render-pipeline.md
index 254187a3..d991a1ce 100644
--- a/docs/render-pipeline.md
+++ b/docs/render-pipeline.md
@@ -492,11 +492,11 @@ Mirror ghostty 1.3.2 (`zig-pkg/ghostty-*/src/renderer/shadertoy.zig`,
`crt.zig` is deleted. If the user insists on barrel in the bundled CRT, keep
`crt.zig`'s inverse keyed to "bundled crt active".
- **Compile** (decision 3): a user's file is compiled by spawning `glslc` with
- the build's own invocation (`-fshader-stage=fragment <file> -o -`, SPIR-V on
- stdout), on a thread of its own when the file joins the chain, never on the
+ the build's own flags, prefix and file on its stdin, SPIR-V on its stdout
+ (no file of ours anywhere; std's spawn allocates before fork), on a thread of its own when the file joins the chain, never on the
frame path; the result is taken in at the next loop step. The prefix ends in
`#line 1`, so glslc's errors count the file's own lines, and they name the
- file, not the temporary source. A failed compile keeps the file's last good
+ file, not `<stdin>`. Level A redraws once a refresh of the window's display. A failed compile keeps the file's last good
pipeline and says glslc's first line as a message; glslc missing is said
once, and only files stay off (the bundled passes are compiled with the
build, through the same prefix). No file watching: `Shader <path>` twice