mirror of
https://github.com/bitsycore/compose-desktop-native.git
synced 2026-10-05 10:47:26 +00:00
Full upstream Skia GRAPHICS pipeline on the skiko leg (RENDERER_CONVERGE.md ยง4, the enabler for B2). The composition's frame + offscreen drawing now goes through upstream's SkiaBackedCanvas / SkiaBackedPaint / SkiaShader / SkiaImageAsset / ImageBitmap.skiko instead of the project SkiaCanvas. Split the port graphics actuals per-renderer (createRenderBackend disjoint-target trick): CanvasPaintActuals.native.kt (Paint/Shader/all gradient shaders/ ActualImageBitmap/createImageBitmap/ActualCanvas/NativeCanvas/NativePaint) and BlendMode.native.kt move nativeMain -> sdlRendererMain (SDL keeps the port flavor); the skiko leg gets the un-refused upstream files (manifest). Text/painter/shadow keep the port engine: SkiaBackedCanvas is MANUAL-VENDORED to also implement NativeTextCanvas/NativePainterCanvas/NativeShadowCanvas/ NativeFinishableCanvas, forwarding to the port SkiaTextRenderer (P3.1 metrics preserved) + SkiaImageCache via a global skiaLeafDrawer over internalSkiaCanvas. SkiaImageAsset manual-vendored too (flattened toBitmap/putBytesInto expect/actuals that would collide in our single native source set). SkiaCanvas.kt deleted; the offscreen (VectorPainter/DrawCache) now uses upstream's ActualCanvas + the encoded decoder produces an upstream ImageBitmap. skiaLeafDrawer is per-WINDOW state re-pointed each frame in drawRoot (+ cleared on destroy) โ mirrors ComposeWindow.installGlobals(); a ctor-set version dangled at a closed window's destroyed renderer and crashed the surviving window (caught by multiwintest). MAC-VERIFY ALL GREEN both legs: builds (demo+apidemo), 10/10 probes, parity PASS (56/57 byte-identical to baseline; Images within noise), perf within/below baseline, metadata compile clean, drift + vendor-clean checks pass. B2 (P1.4/1.6) unblocked.
180 lines
3.8 KiB
JSON
180 lines
3.8 KiB
JSON
{
|
|
"macosArm64/sdl3": {
|
|
"Animation": 3.11,
|
|
"AnnotatedString": 7.46,
|
|
"AppBars": 1.99,
|
|
"BasicText": 4.62,
|
|
"BasicTextField": 4.99,
|
|
"Brushes": 2.18,
|
|
"Buttons": 1.92,
|
|
"ButtonsExtra": 2.24,
|
|
"Canvas": 5.03,
|
|
"Cards": 2.28,
|
|
"Carousel": 2.06,
|
|
"Chips": 1.62,
|
|
"Clipboard": 2.94,
|
|
"Colors": 0.68,
|
|
"Counter": 0.65,
|
|
"CustomLayout": 19.13,
|
|
"Dialogs": 2.54,
|
|
"DragAndDrop": 1.85,
|
|
"Drawers": 1.3,
|
|
"Fab": 1.94,
|
|
"FabExtra": 1.35,
|
|
"FlowLayout": 2.46,
|
|
"FocusRequester": 2.85,
|
|
"Gestures": 2.68,
|
|
"GraphicsLayer": 4.7,
|
|
"GridsExtra": 1.29,
|
|
"Icons": 1.29,
|
|
"Images": 16.81,
|
|
"Interaction": 1.41,
|
|
"InteractionSource": 2.96,
|
|
"Layout": 2.12,
|
|
"LazyColumn": 2.7,
|
|
"LazyExtra": 2.91,
|
|
"LazyGrid": 1.67,
|
|
"Lists": 2.45,
|
|
"M3Misc": 1.65,
|
|
"MaterialSymbols": 2.99,
|
|
"ModShortcuts": 2.27,
|
|
"Modifiers": 2.28,
|
|
"NavRails": 1.38,
|
|
"Navigation": 1.79,
|
|
"Navigation3": 2.71,
|
|
"Pager": 0.98,
|
|
"Path": 6.22,
|
|
"Pickers": 19.47,
|
|
"PointerInput": 2.68,
|
|
"Recomposition": 1.51,
|
|
"Remember": 1.74,
|
|
"Scroll": 2.82,
|
|
"Search": 4.5,
|
|
"Shadows": 1.49,
|
|
"Shapes": 1.34,
|
|
"Sheets": 1.35,
|
|
"Tabs": 1.88,
|
|
"Text": 3.37,
|
|
"TextField": 1.95,
|
|
"Widgets": 2.21
|
|
},
|
|
"macosArm64/skia": {
|
|
"Animation": 3.11,
|
|
"AnnotatedString": 7.46,
|
|
"AppBars": 1.99,
|
|
"BasicText": 4.62,
|
|
"BasicTextField": 4.99,
|
|
"Brushes": 2.18,
|
|
"Buttons": 1.92,
|
|
"ButtonsExtra": 2.24,
|
|
"Canvas": 5.03,
|
|
"Cards": 2.28,
|
|
"Carousel": 2.06,
|
|
"Chips": 1.62,
|
|
"Clipboard": 2.94,
|
|
"Colors": 0.68,
|
|
"Counter": 0.65,
|
|
"CustomLayout": 19.13,
|
|
"Dialogs": 2.54,
|
|
"DragAndDrop": 1.85,
|
|
"Drawers": 1.3,
|
|
"Fab": 1.94,
|
|
"FabExtra": 1.35,
|
|
"FlowLayout": 2.46,
|
|
"FocusRequester": 2.85,
|
|
"Gestures": 2.68,
|
|
"GraphicsLayer": 4.65,
|
|
"GridsExtra": 1.29,
|
|
"Icons": 1.29,
|
|
"Images": 16.81,
|
|
"Interaction": 1.41,
|
|
"InteractionSource": 2.96,
|
|
"Layout": 2.12,
|
|
"LazyColumn": 2.7,
|
|
"LazyExtra": 2.91,
|
|
"LazyGrid": 1.67,
|
|
"Lists": 2.45,
|
|
"M3Misc": 1.65,
|
|
"MaterialSymbols": 2.99,
|
|
"ModShortcuts": 2.27,
|
|
"Modifiers": 2.28,
|
|
"NavRails": 1.38,
|
|
"Navigation": 1.79,
|
|
"Navigation3": 2.71,
|
|
"Pager": 0.98,
|
|
"Path": 6.22,
|
|
"Pickers": 19.47,
|
|
"PointerInput": 2.68,
|
|
"Recomposition": 1.51,
|
|
"Remember": 1.74,
|
|
"Scroll": 2.82,
|
|
"Search": 4.5,
|
|
"Shadows": 1.49,
|
|
"Shapes": 1.34,
|
|
"Sheets": 1.35,
|
|
"Tabs": 1.88,
|
|
"Text": 3.37,
|
|
"TextField": 1.95,
|
|
"Widgets": 2.21
|
|
},
|
|
"mingwX64/sdl3": {
|
|
"Animation": 3.0,
|
|
"AnnotatedString": 8.13,
|
|
"AppBars": 1.96,
|
|
"BasicText": 2.81,
|
|
"BasicTextField": 1.82,
|
|
"Brushes": 2.21,
|
|
"Buttons": 1.9,
|
|
"ButtonsExtra": 2.19,
|
|
"Canvas": 4.3,
|
|
"Cards": 2.29,
|
|
"Carousel": 1.9,
|
|
"Chips": 1.59,
|
|
"Clipboard": 3.03,
|
|
"Colors": 0.65,
|
|
"Counter": 0.58,
|
|
"CustomLayout": 4.1,
|
|
"Dialogs": 2.64,
|
|
"DragAndDrop": 1.84,
|
|
"Drawers": 1.38,
|
|
"Fab": 1.86,
|
|
"FabExtra": 1.38,
|
|
"FlowLayout": 2.34,
|
|
"FocusRequester": 2.84,
|
|
"Gestures": 2.62,
|
|
"GraphicsLayer": 2.46,
|
|
"GridsExtra": 1.33,
|
|
"Icons": 1.3,
|
|
"Images": 16.61,
|
|
"Interaction": 1.44,
|
|
"InteractionSource": 2.87,
|
|
"Layout": 2.04,
|
|
"LazyColumn": 3.46,
|
|
"LazyExtra": 2.85,
|
|
"LazyGrid": 1.62,
|
|
"Lists": 2.33,
|
|
"M3Misc": 1.67,
|
|
"MaterialSymbols": 2.91,
|
|
"ModShortcuts": 1.87,
|
|
"Modifiers": 2.3,
|
|
"NavRails": 1.35,
|
|
"Navigation": 1.68,
|
|
"Navigation3": 2.25,
|
|
"Pager": 1.0,
|
|
"Path": 3.56,
|
|
"Pickers": 19.47,
|
|
"PointerInput": 2.77,
|
|
"Recomposition": 1.48,
|
|
"Remember": 1.72,
|
|
"Scroll": 2.78,
|
|
"Search": 5.27,
|
|
"Shadows": 1.53,
|
|
"Shapes": 1.31,
|
|
"Sheets": 1.4,
|
|
"Tabs": 1.77,
|
|
"Text": 3.08,
|
|
"TextField": 1.93,
|
|
"Widgets": 2.2
|
|
}
|
|
}
|