PipeWire modifier parse fix, and a per-publication node execution boundary - #936
Merged
Merged
Conversation
jcelerier
had a problem deploying
to
Apple Certificate
September 11, 2026 03:43 — with
GitHub Actions
Error
jcelerier
had a problem deploying
to
Apple Certificate
September 11, 2026 03:43 — with
GitHub Actions
Error
jcelerier
had a problem deploying
to
Apple Certificate
September 11, 2026 03:43 — with
GitHub Actions
Error
jcelerier
had a problem deploying
to
Apple Certificate
September 11, 2026 03:43 — with
GitHub Actions
Error
jcelerier
had a problem deploying
to
Apple Certificate
September 11, 2026 03:43 — with
GitHub Actions
Error
jcelerier
had a problem deploying
to
Apple Certificate
September 11, 2026 03:43 — with
GitHub Actions
Error
jcelerier
had a problem deploying
to
Apple Certificate
September 11, 2026 03:43 — with
GitHub Actions
Error
jcelerier
had a problem deploying
to
Apple Certificate
September 11, 2026 03:43 — with
GitHub Actions
Error
jcelerier
force-pushed
the
3rdparty/libremidi-modifier-parse
branch
from
September 11, 2026 04:00
db2347c to
57d1287
Compare
jcelerier
had a problem deploying
to
Apple Certificate
September 11, 2026 04:00 — with
GitHub Actions
Failure
jcelerier
had a problem deploying
to
Apple Certificate
September 12, 2026 13:37 — with
GitHub Actions
Error
jcelerier
had a problem deploying
to
Apple Certificate
September 12, 2026 13:37 — with
GitHub Actions
Error
jcelerier
had a problem deploying
to
Apple Certificate
September 12, 2026 13:37 — with
GitHub Actions
Error
jcelerier
had a problem deploying
to
Apple Certificate
September 12, 2026 13:37 — with
GitHub Actions
Error
jcelerier
had a problem deploying
to
Apple Certificate
September 12, 2026 13:37 — with
GitHub Actions
Error
jcelerier
had a problem deploying
to
Apple Certificate
September 12, 2026 13:37 — with
GitHub Actions
Error
jcelerier
force-pushed
the
3rdparty/libremidi-modifier-parse
branch
from
September 12, 2026 13:50
6a01dff to
0759f2c
Compare
jcelerier
had a problem deploying
to
Apple Certificate
September 12, 2026 13:50 — with
GitHub Actions
Error
jcelerier
had a problem deploying
to
Apple Certificate
September 12, 2026 13:50 — with
GitHub Actions
Error
jcelerier
had a problem deploying
to
Apple Certificate
September 12, 2026 13:50 — with
GitHub Actions
Error
jcelerier
had a problem deploying
to
Apple Certificate
September 12, 2026 13:50 — with
GitHub Actions
Error
jcelerier
had a problem deploying
to
Apple Certificate
September 12, 2026 13:50 — with
GitHub Actions
Error
jcelerier
had a problem deploying
to
Apple Certificate
September 12, 2026 13:50 — with
GitHub Actions
Error
jcelerier
had a problem deploying
to
Apple Certificate
September 12, 2026 13:50 — with
GitHub Actions
Error
jcelerier
had a problem deploying
to
Apple Certificate
September 12, 2026 13:50 — with
GitHub Actions
Error
jcelerier
had a problem deploying
to
Apple Certificate
September 12, 2026 13:50 — with
GitHub Actions
Error
jcelerier
had a problem deploying
to
Apple Certificate
September 12, 2026 13:50 — with
GitHub Actions
Error
jcelerier
had a problem deploying
to
Apple Certificate
September 12, 2026 13:50 — with
GitHub Actions
Error
Picks up celtera/libremidi#255. extract_modifier_choice read a DMA-BUF modifier list at the wrong offset, so a consumer fixated on a modifier the producer never offered and every Vulkan import failed. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019QWYTEhFJonuUNTEmBfv7Q
jcelerier
force-pushed
the
3rdparty/libremidi-modifier-parse
branch
from
September 12, 2026 13:52
0759f2c to
8535afc
Compare
jcelerier
added a commit
to ossia/score
that referenced
this pull request
Sep 12, 2026
Picks up ossia/libossia#936, which pins celtera/libremidi#255. Without it the DMA-BUF modifier reaching DRMPrimeDecoder is garbage and every Vulkan import fails, so the video input renders black. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019QWYTEhFJonuUNTEmBfv7Q
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Two changes needed by ossia/score#2270.
3rdparty: update libremidi. Picks up celtera/libremidi#255.extract_modifier_choiceread a DMA-BUF modifier list at the wrong offset, dropping the first two entries and reading two past the end of the pod. A consumer then fixated on a modifier the producer never offered, and every Vulkan import of the shared buffer failed withVK_ERROR_OUT_OF_DEVICE_MEMORY. score's PipeWire DMA-BUF video input rendered black for this reason.dataflow: expose a per-publication node execution boundary. A newgraph_node::begin_execution(), called from bothexec_nodeoverloads right afterinit_nodeand before the token-slice loop. A node gets one call per graph execution, whatever number of slices that execution carries.The gap it fills:
prepare()is setup andrun()is per-slice, so a node that accumulates across the slices of one execution had no way to know where an execution starts. It cannot be inferred from inside a slice, since a slice cannot tell whether it is the first, and transport time does not help when slices are zero-length, equal, or reversed. score's avendish binding uses it to reset the MIDI batch a processor emits across the slices of a tick.Both
exec_nodeoverloads are covered;run_scaledis a declaration with no definition or caller, and nothing else drives a node'srun().Merge after the libremidi PR.
🤖 Generated with Claude Code
https://claude.ai/code/session_019QWYTEhFJonuUNTEmBfv7Q