Skip to content

Add DS4_EMBED_KERNELS flag to embed Metal kernel sources into binary#274

Open
kilork wants to merge 1 commit into
antirez:mainfrom
kilork:bundle-kernels
Open

Add DS4_EMBED_KERNELS flag to embed Metal kernel sources into binary#274
kilork wants to merge 1 commit into
antirez:mainfrom
kilork:bundle-kernels

Conversation

@kilork
Copy link
Copy Markdown

@kilork kilork commented May 27, 2026

This PR adds a build flag to embed Metal kernel sources directly into the binary, enabling self-contained execution without requiring external kernel source files.

Introduce a Makefile flag DS4_EMBED_KERNELS that, when set to 1,
embeds the Metal shader sources directly into the executable at
build time, eliminating runtime file I/O for the metal/ directory.

- Add a Python script (tools/embed_metal.py) that concatenates the
  required .metal files into a C header (metal_embedded_extras.h).
- Modify ds4_metal.m to use the embedded string when the flag is
  defined, skipping the file-reading path.
- Update .gitignore to ignore the generated header.
- Add the flag to the Makefile help text.

The feature is off by default; set DS4_EMBED_KERNELS=1 to enable.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant