-
-
Notifications
You must be signed in to change notification settings - Fork 61
refactor(engine)!: GPU pass fusion — record-then-plan pipeline with fused shader passes #2221
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
yuto-trd
wants to merge
138
commits into
main
Choose a base branch
from
speckit/004-gpu-pass-fusion-unified
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from 125 commits
Commits
Show all changes
138 commits
Select commit
Hold shift + click to select a range
95766e7
docs(specs): specify the GPU pass fusion pipeline
yuto-trd 35e7f28
refactor(engine)!: record then plan the render pipeline and fuse GPU …
yuto-trd ad27305
test(engine): cover the fused render pipeline
yuto-trd f9c16ee
fix(review): give drawable-brush thumbnails a target domain
yuto-trd 78b2772
fix(engine): restore drawable-brush stretch against intrinsic bounds
yuto-trd 5c8a7e6
perf(engine): crop drawable-brush content without a device snapshot
yuto-trd acdf35b
fix(engine): count deferred operations in FilterEffectContext.CountItems
yuto-trd 5625a65
fix(editor): report engine-resource failures instead of killing the r…
yuto-trd 699332c
feat(engine)!: expose drawable-brush materialization and the cache op…
yuto-trd a7ade16
refactor(engine): name the filter-effect fallback path for what it is
yuto-trd 88d311c
fix(editor): close the failure paths the review fixes opened
yuto-trd 8be2d76
docs(ai-workflow): point effect authors at the recorded surfaces
yuto-trd e296e21
fix(benchmarks): read pipeline counters from the surviving statistics
yuto-trd 6a09384
test(benchmarks): cover spatial-effect chain depth
yuto-trd b37927c
perf(engine): reduce filter-effect GPU synchronization
yuto-trd 15cd411
test(engine): drop the orphaned GetMaximumDimension test fakes
yuto-trd 20a9dd0
fix(editor): bound export GPU memory with periodic retention checkpoints
yuto-trd 999ad72
fix(engine)!: fail delivery renders on custom-effect target allocatio…
yuto-trd 20aa0ce
fix(engine): honor the destination clip and preview degradation when …
yuto-trd ebce996
fix(nodegraph): decide preview emptiness from the resolved output extent
yuto-trd e4f0f99
fix(editor): rasterize the selected drawable over its output bounds
yuto-trd d8be641
docs(specs): restore the migration contract and correct the task state
yuto-trd e3927dd
fix(engine): bound the filter layer to the content being filtered
yuto-trd 991f49e
perf(engine)!: widen GPU pass fusion beyond current-pixel colour shaders
yuto-trd 1bc6920
perf(engine): cut fusion, synchronization and readback overhead
yuto-trd 58d8e0d
fix(engine): synchronize custom-effect sources across the Vulkan boun…
yuto-trd cfaaad6
test(engine): bound the colour-filter parity oracle to the reference'…
yuto-trd 3dde97c
fix(engine): repair the rendering regressions found by differential a…
ee50706
fix(engine)!: apply a group's filter per child and eliminate non-fini…
f1bb791
fix(engine): submit the target clear before a native writer fills it
bab9370
fix(engine): round a whole-source shader's bounds on the shared devic…
1db58bc
test(engine): retarget the selected-drawable group test to the group'…
yuto-trd ebf1bc5
fix(engine): round a callback's own bound out to whole device pixels
yuto-trd b17fab1
fix(engine): draw a particle's source instead of tiling it as a shader
yuto-trd 7327911
WIP: tasks 1-5 vulkan effect-layer native work
yuto-trd d6774c6
WIP: rebase integration fixes
yuto-trd 9352a5c
Merge branch 'main' into speckit/004-gpu-pass-fusion-unified
yuto-trd 5d918b9
style(tests): restore the UTF-8 BOM on the native scratch-texture tests
yuto-trd 283cdcc
fix(engine): keep a render pass from swallowing the transfers recorde…
yuto-trd 2974a60
fix(engine)!: stop recording an identity colour matrix as a shader stage
yuto-trd e90a4d7
test(engine): make the GPU oracles hold on a backend with real fp16
yuto-trd a9a999a
fix(engine): stop the colour keys from hinging on bit-exact colour eq…
yuto-trd 5d2b603
fix(engine): stop an inset stroke from cropping the fill it surrounds
yuto-trd 6dfd0f2
fix(engine)!: evaluate a whole-source shader over its complete output
yuto-trd 674c82a
fix(engine): bound a perspective quad that crosses the camera plane
yuto-trd 66cd2dc
fix(engine)!: stop a negative morphology radius from cropping the con…
yuto-trd 554bd62
fix(engine): anchor the Skia chain frame to the bounds each item maps
yuto-trd 680ee2c
fix(engine): give the target-rewriting effects a declared output extent
yuto-trd 7e2d928
fix(engine)!: rasterize a filtered hairline on the grid it is composi…
yuto-trd 715d3a5
fix(engine): document what the perspective near plane really bounds
yuto-trd 72014b7
test(engine): pin the Skia chain anchor on a non-origin-anchored input
yuto-trd f082729
fix(engine): anchor a Skia chain independently of where OriginalBound…
yuto-trd 48318a6
fix(engine)!: fuse a stack of built-in Skia filters, not just a singl…
yuto-trd 904e693
fix(engine): align the transform gizmo against the box the renderer d…
yuto-trd 70479b1
fix(engine)!: apply a pending Skia colour filter exactly once
yuto-trd 3d65b63
test(engine): pin the drawable-brush fit to its fractional content bo…
yuto-trd 4be97a8
test(engine): give the delayed-nested-brush fixture the tests it was …
yuto-trd a619d80
fix(engine)!: rasterize a custom effect's input on the grid it crops on
yuto-trd 4673e2a
fix(tests): bound the filter-layer poison guard to the apron the laye…
yuto-trd 3c33795
refactor(engine)!: publish one rectangle-bounds map, the one perspect…
yuto-trd d803801
docs(specs): document the remaining breaking changes and retire the w…
yuto-trd 47bd883
docs(engine): state that a materialized drawable-brush image transfer…
yuto-trd 1ecec31
feat(engine): let a public FilterEffectActivator supply a drawable-br…
yuto-trd 816ee51
fix(engine): stop reinstalling a render node whose disposal already b…
yuto-trd a79f556
fix(engine): report a nested scene's frame as its query footprint
yuto-trd 5b56d2d
fix(engine): degrade a nested-target allocation failure in preview
yuto-trd a9bc1af
fix(editor): keep a template preview when its content needs a target …
yuto-trd 8ae8631
fix(engine): invalidate every cached dependent of a changed shared child
yuto-trd d53b155
fix(engine)!: hold the filter apron a pixel from every sheared edge
yuto-trd 87c7464
feat(engine): let external authors map backward render density
yuto-trd 9918ab9
fix(engine): unwind the render-pass scope when a pass body throws
yuto-trd 120d6bd
fix(engine): keep a synchronous flush from submitting an open render …
yuto-trd a52b0a5
fix(engine): release the backend texture when a render target fails t…
yuto-trd 96154ed
fix(editor): release a thumbnail resource attached to a stopped rende…
yuto-trd 449e712
fix(engine)!: match the ChromaKey colour where its error lives
yuto-trd c8314e4
refactor(engine)!: name the supply map that drops backward demand
yuto-trd 6120900
docs(specs): reconcile the 004 specification with what was built
yuto-trd cef2f8e
fix(engine): keep a dark colour that only its hue separates from the key
yuto-trd 325a7f6
fix(engine): scope a render-cache opt-out to the checkpoint that aske…
yuto-trd 832090d
fix(engine): report an unterminated SkSL block comment instead of thr…
yuto-trd ef20ce1
test(engine): give the rendering suites the assertions their names pr…
yuto-trd 1498b9f
fix(engine): honour a caller's render-target factory in the legacy fi…
yuto-trd 2dbe81d
fix(engine): close five merge-blocking render defects
yuto-trd 6857dfa
feat(engine)!: let an opaque source declare buffer-only raster room
yuto-trd 518b3e2
fix(engine): keep a degraded preview frame out of everything that out…
yuto-trd 8c79620
perf(engine): stop an output identity costing what its paths enumerate
yuto-trd 73160e0
fix(engine): stop four resources outliving or outrunning what owns them
yuto-trd 1e79834
docs(specs): record the backend contract change and correct four stal…
yuto-trd 9d2fc5c
fix(engine): hand back a contributed value's target as soon as it is …
yuto-trd 2af9acf
docs(specs): record the three author-visible changes the last commits…
yuto-trd 7de1520
feat(engine): let an authored hit test read the resource its call bound
yuto-trd fa533c3
feat(engine): let a whole-source shader raise the demand on what it s…
yuto-trd 1fa4836
fix(engine): stop hit testing reporting content the request clips away
yuto-trd 9a49126
feat(engine): let a combine declare what density each of its inputs n…
yuto-trd 9316699
fix(engine): keep a reusable renderer's own allocations on the contex…
yuto-trd bdf088a
fix(engine): invalidate a container's cache when its children change
yuto-trd 253bc4f
fix(engine): stop a target layer scope hitting outside the region it …
yuto-trd 09a76f3
fix(engine): report the content a self-allocating path drops from a p…
yuto-trd def8dcb
refactor(engine)!: admit that a detached resource has no backing object
yuto-trd 8988a5d
fix(engine): reject the Vulkan work a driver would leave undefined
yuto-trd 7855b18
test(engine): fail non-finite parity pixels on a job that declared a GPU
yuto-trd db38ca8
feat(engine): let a plugin author parse a shader source once and reus…
yuto-trd 66dc048
refactor(engine)!: make a render host state what its output is for
yuto-trd 294ce95
docs(specs): stop the 004 record contradicting itself, and unpin the …
yuto-trd 7e4d3b0
test(engine): fail a GPU run that reports a Vulkan validation error
yuto-trd 17f301f
fix(engine): keep a render pass's own barriers in recording order
yuto-trd c9ab893
fix(engine)!: push constants for the stages the bound layout declares
yuto-trd 79d02f0
docs(specs): count the push-constant break in the migration contract
yuto-trd e20b9d1
fix(engine): tell Skia the layout its image is actually in
yuto-trd f6285fc
fix(engine): request the cube-array feature point-light shadows depen…
yuto-trd 1ae2195
fix(engine): make every allocated shadow slot readable before anythin…
yuto-trd 6f439b1
fix(engine): make an array texture state the usage its format supports
yuto-trd 45244fe
docs: point the validation-gate exclusion at its tracking issue
yuto-trd 114e26f
fix(engine): release a texture's handles when its initial transition …
yuto-trd 99ad6e1
fix(engine): let a Skia clear settle the backend's transparency record
yuto-trd 2c62494
fix(app): export a selected element whole, not the part the frame shows
yuto-trd c67dcf5
fix(engine): ask every target scope what density its input needs
yuto-trd 104529d
feat(engine): let a geometry operation say what density its input needs
yuto-trd 5a12139
feat(engine): let a target command say what density each of its input…
yuto-trd d58ef7c
docs(specs): record where an input-demand contract can now be declared
yuto-trd 5f5fd86
fix(engine): keep an append scope's input at the density its destinat…
yuto-trd 749c944
docs(specs): say where an input-demand contract has no equivalent
yuto-trd bd69026
fix(engine): flush the context the target being sampled actually live…
yuto-trd fad57f2
fix(engine): reject a metadata capture the author can still reassign
yuto-trd f12d459
fix(engine): let a contract be recorded from inside another lambda
yuto-trd 42e3e0e
fix(engine): settle a capture by its declared type instead of reading it
yuto-trd 155cbc3
fix(engine): carry a raw scope's declared demand back to its input
yuto-trd ea614fe
fix(engine): keep a group's full-target work when it isolates
yuto-trd 2fa6ed4
feat(engine): let a raw session address a resource by its declared slot
yuto-trd 8d02d5e
fix(engine): follow what a captured read-only view points at
yuto-trd 20dfe84
fix(engine): fix an immutable collection by what it holds, not by its…
yuto-trd 5ade9db
feat(engine)!: let a scope declare the space its replay transform liv…
yuto-trd 41206bc
fix(engine): rebuild a nested scene at the density the request asks for
yuto-trd 788d2be
fix(engine): declare a perspective transform's bounds where its outpu…
yuto-trd d685776
fix(engine): split a render pass around the work Vulkan forbids insid…
yuto-trd e287003
fix(engine): prepare a node reached with explicit inputs too
yuto-trd 5932544
fix(engine): tell the request when a native replacement was declined
yuto-trd b4e2366
fix(engine): stop clearing a target its consumer is about to overwrite
yuto-trd File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.