Skip to content

[Outdated] Cleanroom Compute API#587

Closed
Kuba663 wants to merge 82 commits into
CleanroomMC:mainfrom
Kuba663:feature/compute
Closed

[Outdated] Cleanroom Compute API#587
Kuba663 wants to merge 82 commits into
CleanroomMC:mainfrom
Kuba663:feature/compute

Conversation

@Kuba663

@Kuba663 Kuba663 commented Jul 14, 2026

Copy link
Copy Markdown
Collaborator
Leaving this here because the MVP is almost ready. This is untested, I will undraft when the unit tests are done and passing.

Cleanroom Compute API

Run OpenCL kernels from Cleanroom for maximum parallelism.

The goal

Have an easy to use API for running OCL code from Cleanroom, mod developers should be unable to cause memory and state leaks (if state leaks are even possible).

Code for running a kernel should look like this (as of now):

CommandQueue queue = Compute.instance().queueDispatch.dispatch("Queue1"); // Queues shoudl be re-used multiple times
queue.dispatchKernel(kernel, args, offsets, sizes).next(kernel2, args2, offsets2, sizes2).run();
queue.close();

The other goal is to prevent the inferno that would break out if multiple different modders start including their own OCL jar in their mods for optimization.
Also, OpenCL supports SoA so it can work with Kirino a tad better than compute shaders which require AoS conversion.

The whole thing will use JSON files in the resources to red metadata and automatically detect headers.

#include <mod/example.h> // this is ok
#include <example.h> // this is not

TODO

  • Initializing OpenCL
  • Compiling Programs
  • Command Queues
  • Kernel invokation
  • Buffer and image creation (OCL seems to have problems with non-MemoryStack buffers)
  • Handling cases where OCL is unavaliable
  • Writing unit tests (priority)
  • Cleanup code

Look into discussion #567 for more.

@Kuba663 Kuba663 self-assigned this Jul 15, 2026
@Kuba663 Kuba663 added the enhancement New feature or request label Jul 15, 2026
@Kuba663

Kuba663 commented Jul 18, 2026

Copy link
Copy Markdown
Collaborator Author

I just realized the target branch is wrong.

@Kuba663 Kuba663 changed the title [W.I.P] Cleanroom Compute API [Outdated] Cleanroom Compute API Jul 18, 2026
@Kuba663 Kuba663 mentioned this pull request Jul 18, 2026
8 tasks
@Kuba663

Kuba663 commented Jul 18, 2026

Copy link
Copy Markdown
Collaborator Author

Superseded by #590

@Kuba663 Kuba663 closed this Jul 18, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants