Skip to content

new: lithostitched support (non-ocl subprojects)#571

Draft
ebo2022 wants to merge 42 commits into
RelativityMC:dev/26.2.0from
ebo2022:feature/litho-integration
Draft

new: lithostitched support (non-ocl subprojects)#571
ebo2022 wants to merge 42 commits into
RelativityMC:dev/26.2.0from
ebo2022:feature/litho-integration

Conversation

@ebo2022

@ebo2022 ebo2022 commented Jul 10, 2026

Copy link
Copy Markdown

This pull request currently adds AST conversion and bytecode/dot/OCL emitters for all Lithostitched dfs except FastNoiseDensityFunction. Eventually, it will also include natives accel for FastNoiseDensityFunction (using the C port of FastNoiseLite) and OpenCL accel support for the region system & biome injectors.

Leaving as a draft while I work on this. Please let me know if I should keep this as a separate addon, or if it's better fit to implement on Lithostitched's side. Otherwise, I'll keep this here for feedback; once done, I'll convert to a regular PR and provide benchmarks + compat tests.

@ishland

ishland commented Jul 11, 2026

Copy link
Copy Markdown
Collaborator

Thanks for the PR. However the project currently don't accept contributions to the OpenCL subproject due to licensing until we figure out how to properly accept contributions to it. And I would like to change how codegen works inside that subproject at some point as well.

Other changes seems good from the first glance. A few problems:

  • The new AST nodes shouldn't be guarded behind the availability of the bindings.
  • The builtin integrations detection in McToAst doesn't really scale. I'm considering a refactor on that part as well.

I think compatibility with lithostitched should ideally be provided by C2ME, since there's currently no stable API, and providing a stable API for a compiler backend isn't trivial.

@ebo2022

ebo2022 commented Jul 11, 2026

Copy link
Copy Markdown
Author

Thanks for the feedback and update.

Regarding OCL accel: Haven't decided yet, but I'll either keep the changes and wait, or split that subproject into a later PR once licensing is figured out and contributions open.

I'll go ahead and fix the guarding. For integrations handling, I may use a CodeGenRegistry & emitters (slight refactor to generalize the emitters to support dfs -> ast nodes) for now. I won't touch that any further until I see how you refactor it. I don't expect this to be done for quite a while.

@ebo2022

ebo2022 commented Jul 11, 2026

Copy link
Copy Markdown
Author

Narrowing the scope of this PR to non-OpenCL subprojects. At some point, I'll split those changes into another draft PR that can stay open until licensing is figured out.

@ebo2022 ebo2022 changed the title new: lithostitched support new: lithostitched support (non-ocl subprojects) Jul 11, 2026
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.

2 participants