Skip to main content

Compatibility

Kanvas interacts with implementation details in Compose Desktop and Skiko, so binary/runtime changes can matter even when application code is unchanged.

Compatibility is layered

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​

ComponentCurrent baseline / verified line
JDK17+
Gradle7.6.3–9.8.0 project-tested range
Kotlin Gradle plugin2.4.20
Compose Desktop1.8.2 and 1.11.1 renderer lines investigated
Skiko0.9.4.2 and 0.144.6 renderer lines investigated
Plugin Publish plugin2.2.1

Check your app​

Run:

./gradlew kanvasCompatibility

The task reports the runtime artifacts selected for the target application.

What the report proves

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:
Include the renderer audit

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.