AComputePlus is an enhanced version of ACompute (Acerola Compute). It contain the features of ACompute:
- A new language ACompute (which is basically GLSL and instruction to define kernels) to write Compute Shaders.
- A compiler for ACompute shaders.
- A new class ACompute to use your compiled shaders and send it data.
- Editor and runtime hot reloading.
With the addition of new features:
- Packaging in a plugin format for ease of use.
#includedirective parsing in ACompute compiler.- Rendering Device injection to choose between local or global rendering device.
- Storage buffer API.
- Precompiling into SPIR-V shaders, stored into an
AComputeShaderresource. - Improved compilation error display
Usage
Create a new file with the extension .acompute in your project.
The addon provide a new option in the Godot FileSystem on right click on empty space and New ACompute Shader... or on folder under the category Create New and ACompute Shader....
They will automatically be recognized by the plugin and be compiled on changes.
You can also create .acomputeinc files to be used as includes in your ACompute shaders.
An ACompute shader must declare at least one kernel using the directive #kernel [numthreads(x, y, z)] (with x, y and z positive integers). There is no limit to the number of kernels you can declare in an ACompute shader.
You can create a new ACompute resource by passing it an AComputeShader resource (you can also inject a local RenderingDevice here and set its ownership. Ownership to true will let ACompute handle the release of the rendering device).
Once your ACompute resource is ready, you can send data to GPU using the different methods like:
- set_uniform_buffer
- set_storage_buffer
- set_texture
Please refer directly to the ACompute documentation to learn more about the available methods.
You can then use the dispatch method to start processing (if you're using a local rendering device, you must set submit to true in your last dispatch call, then you can use the sync to wait for the compute to finish and retrieve your data).
You can refer to the examples provided in the demo directory, you will find an example using it in the environment compositor and one using it to update a Multimesh buffer.
Changelog for version v1.0
2026-10-04 09:49:28
No changelog provided for this version.