GeniusVentures / GeniusVentures/SGProcessingManager
Dispatch processors by pass type and execution backend
@itsafuu is already working on this.
Since Jul 28, 2026.
- Dominant language
- C++
- Stars
- 0
- Forks
- 0
- PR merge metrics
- No merged PRs in 30d
Description
Problem
Processor selection currently uses only the global input DataType, so a texture selects MNN_Image regardless of whether the active pass is INFERENCE, COMPUTE, RENDER, DATA_TRANSFORM, or RETRAIN.
The schema already describes pass type, model format, shader configuration, inputs, and outputs. SGProcessingManager must use those fields to select the correct executor while reusing the execution systems already present in SuperGenius.
Scope
- Replace the input-type-only processor lookup with a pass-aware executor registry.
- Select an executor from pass type, operation/backend declaration, model or shader format, resource types, and available node capabilities.
- Route MNN inference to the existing MNN processors.
- Route
COMPUTEandRENDERto the existing SuperGenius Vulkan execution path when their schema requirements are satisfied. - Route built-in
DATA_TRANSFORMoperations to explicit transform processors. - Reject unsupported
RETRAIN, model formats, transforms, or shader requirements during validation rather than accepting them and running an unrelated MNN processor. - Keep executor registration extensible without adding one central switch for every future workload.
Acceptance criteria
- Identical input resource types can select different executors based on pass type.
COMPUTEandRENDERnever fall through to MNN merely because their input is a texture, tensor, or buffer.- Unsupported executor combinations fail before input download and processing.
- Registry tests cover MNN inference, Vulkan compute, Vulkan render, and built-in data transform selection.
Depends on issue #8 and supports issues #7 and #9.
Base implementation and review work on the branch consumed by SuperGenius/develop.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.