Compatibility
Kanvas interacts with implementation details in Compose Desktop and Skiko, so binary/runtime changes can matter even when application code is unchanged.
A project compiling successfully does not prove renderer compatibility. Gradle, JDK/agent, Compose/Skiko bytecode, JNI/native ABI, operating-system backend, GPU, and driver behavior are separate compatibility layers.
Current baseline
| Component | Current baseline / verified line |
|---|---|
| JDK | 17+ |
| Gradle | 7.6.3–9.8.0 project-tested range |
| Kotlin Gradle plugin | 2.4.20 |
| Compose Desktop | 1.8.2 and 1.11.1 renderer lines investigated |
| Skiko | 0.9.4.2 and 0.144.6 renderer lines investigated |
| Plugin Publish plugin | 2.2.1 |
Check your app
Run:
./gradlew kanvasCompatibility
The task reports the runtime artifacts selected for the target application.
The compatibility report tells you what runtime Kanvas detected. It does not certify every drawing operation, native backend, GPU, or driver combination for that version.
Reporting compatibility problems
Include:
JDK:
Gradle:
Kotlin:
Compose Desktop:
Skiko:
OS:
Architecture:
GPU:
Backend:
Kanvas version:
If the app launches, include build/kanvas/renderer-audit.log with the report. It can show which runtime classes actually loaded and whether Kanvas installed the expected frame/canvas hooks.