Skip to content

Conversation

@Thomas-Vos
Copy link
Contributor

@Thomas-Vos Thomas-Vos commented Apr 12, 2025

Requires skia-pack version update before merging: JetBrains/skia-pack#68

Required for my linuxArm64 device which only support EGL.

https://youtrack.jetbrains.com/issue/SKIKO-918

@suransea
Copy link

suransea commented Jul 7, 2025

If skia built with 'skia_use_egl=true', "makeGL" will make with egl interfaces. It seems that it is not necessary to add the "makeEGL" since it is not always available.

@Thomas-Vos Thomas-Vos changed the title Add support for EGL Add support for EGL on Linux Arm64 Oct 10, 2025
@Thomas-Vos Thomas-Vos marked this pull request as ready for review January 21, 2026 23:18
@Thomas-Vos
Copy link
Contributor Author

Hi @eymar, can you please run the tests on GitHub actions? I was not able to run the tests myself, as on my skiko fork I ran into issues due to missing secrets for retrieving the docker image. I can confirm skiko with EGL works on my device, but I did not run the skiko tests on my device as that is a bit complicated.

@Thomas-Vos
Copy link
Contributor Author

@eymar thanks for running the tests, but unfortunately it seems GitHub secrets do not work on forks within PRs. Can you maybe run the Github actions on a branch made by you?

Or is there another way I can run the tests in GitHub actions with the docker image from Space?

@eymar
Copy link
Member

eymar commented Jan 27, 2026

@Thomas-Vos thanks for pinging. Sure, I'll try to run it in my branch

@MatkovIvan
Copy link
Member

I was not able to run the tests myself, as on my skiko fork I ran into issues due to missing secrets for retrieving the docker image.

Sorry about that, we have a plan to re-publish them to public registry since Dockerfiless are open source anyway

@Thomas-Vos
Copy link
Contributor Author

Thanks! Fixed some issues with the latest commits. Skiko should build again with these fixes.

By the way, I noticed tools like multistrap were replaced, and the DEVELOPMENT.md was not updated. It would have been helpful to have.

There is one issue remaining however, I'm not sure how to get the canMakeRenderTarget working on CI (egl on linux arm64). Any ideas? I'll try to find a way but otherwise I could disable it for now on arm64.

[ RUN      ] org.jetbrains.skia.SurfaceTest.canMakeRenderTarget
kotlin.IllegalArgumentException: Failed Surface.makeRenderTarget(DirectContext(_ptr=0x0x253160f0, refCount=1), false, ImageInfo(_colorInfo=ColorInfo(_colorType=BGRA_8888, _alphaType=PREMUL, _colorSpace=null), _width=16, _height=16), 0, BOTTOM_LEFT, null, false)
    at 0   test.kexe                           0x483d5b           kfun:kotlin.Throwable#<init>(kotlin.String?){} + 91 
    at 1   test.kexe                           0x47f253           kfun:kotlin.Exception#<init>(kotlin.String?){} + 83 
    at 2   test.kexe                           0x47eac3           kfun:kotlin.RuntimeException#<init>(kotlin.String?){} + 83 
    at 3   test.kexe                           0x47edb3           kfun:kotlin.IllegalArgumentException#<init>(kotlin.String?){} + 83 
    at 4   test.kexe                           0x61c3e7           kfun:org.jetbrains.skia.Surface.Companion#makeRenderTarget(org.jetbrains.skia.DirectContext;kotlin.Boolean;org.jetbrains.skia.ImageInfo;kotlin.Int;org.jetbrains.skia.SurfaceOrigin;org.jetbrains.skia.SurfaceProps?;kotlin.Boolean){}org.jetbrains.skia.Surface + 1815 
    at 5   test.kexe                           0x61bc87           kfun:org.jetbrains.skia.Surface.Companion#makeRenderTarget(org.jetbrains.skia.DirectContext;kotlin.Boolean;org.jetbrains.skia.ImageInfo){}org.jetbrains.skia.Surface + 279 
    at 6   test.kexe                           0x6c560b           kfun:org.jetbrains.skia.SurfaceTest.canMakeRenderTarget$lambda$3#internal + 315 
    at 7   test.kexe                           0x6c5927           kfun:org.jetbrains.skia.SurfaceTest.$canMakeRenderTarget$lambda$3$FUNCTION_REFERENCE$3.invoke#internal + 87 
    at 8   test.kexe                           0x6fb753           kfun:kotlin.Function1#invoke(1:0){}1:1-trampoline + 99 
    at 9   test.kexe                           0x5c727f           kfun:org.jetbrains.skia#useContext__at__org.jetbrains.skia.DirectContext(kotlin.Function1<org.jetbrains.skia.DirectContext,0:0>){0§<kotlin.Any?>}0:0 + 239 
    at 10  test.kexe                           0x6c49b7           kfun:org.jetbrains.skia.SurfaceTest#canMakeRenderTarget(){} + 599 
    at 11  test.kexe                           0x6c5f7f           kfun:org.jetbrains.skia.$SurfaceTest$test$0.$canMakeRenderTarget$FUNCTION_REFERENCE$8.invoke#internal + 79 
    at 12  test.kexe                           0x6c5fe7           kfun:org.jetbrains.skia.$SurfaceTest$test$0.$canMakeRenderTarget$FUNCTION_REFERENCE$8.$<bridge-UNNN>invoke(-1:0){}#internal + 87 
    at 13  test.kexe                           0x6fb753           kfun:kotlin.Function1#invoke(1:0){}1:1-trampoline + 99 
    at 14  test.kexe                           0x4afef3           kfun:kotlin.native.internal.test.BaseClassSuite.TestCase#doRun(){} + 179 
    at 15  test.kexe                           0x702883           kfun:kotlin.native.internal.test.TestCase#doRun(){}-trampoline + 83 
    at 16  test.kexe                           0x4b238f           kfun:kotlin.native.internal.test.TestCase#run(){} + 143 
    at 17  test.kexe                           0x701dc3           kfun:kotlin.native.internal.test.TestCase#run(){}-trampoline + 83 
    at 18  test.kexe                           0x4a7fa7           kfun:kotlin.native.internal.test.TestRunner.run#internal + 2391 
    at 19  test.kexe                           0x4a8b1f           kfun:kotlin.native.internal.test.TestRunner.runIteration#internal + 1919 
    at 20  test.kexe                           0x4a9173           kfun:kotlin.native.internal.test.TestRunner#run(){}kotlin.Int + 835 
    at 21  test.kexe                           0x4a448b           kfun:kotlin.native.internal.test#testLauncherEntryPoint(kotlin.Array<kotlin.String>){}kotlin.Int + 203 
    at 22  test.kexe                           0x4a4383           kfun:kotlin.native.internal.test#main(kotlin.Array<kotlin.String>){} + 67 
    at 23  test.kexe                           0x4a453f           Konan_start + 127 
    at 24  test.kexe                           0x738687           Init_and_run_start + 99 
    at 25  libc.so.6                           0xff1e827684c3     0x0 + 280506502907075 
    at 26  libc.so.6                           0xff1e82768597     __libc_start_main + 151 
    at 27  test.kexe                           0x46e987           0x0 + 4647303 
[  FAILED  ] org.jetbrains.skia.SurfaceTest.canMakeRenderTarget (16 ms)

@eymar
Copy link
Member

eymar commented Jan 28, 2026

@Thomas-Vos I see you've udpated the Docker files. Do I understand correctly, that we have to rebuild the docker image first before running the CI? (it's a pre-requsite to make the CI pass?)

(@MatkovIvan has prepared an update for DOcker publishing - #1152), so running CI should get easier after it.

@MatkovIvan
Copy link
Member

Do I understand correctly, that we have to rebuild the docker image first before running the CI? (it's a pre-requsite to make the CI pass?)

Based on the errors from your CI run - yes.

I'd suggest the next steps here

PS Situations that require changes in build scripts together with Dockerfile requires extra care, I hope it won't be so frequent

@Thomas-Vos
Copy link
Contributor Author

The PR is ready to be merged but please check my comment below. This PR is required to fix build with latest skia-pack version.

Do I understand correctly, that we have to rebuild the docker image first before running the CI? (it's a pre-requsite to make the CI pass?)

The Dockerfile changes aren't actually needed. EGL seems to already be installed as adding -lEGL option fixes the build error. So no separate PR is needed.

@Thomas-Vos
Copy link
Contributor Author

So JVM needed the -lEGL flag as well, fixed now.

@MatkovIvan MatkovIvan requested a review from igordmn January 29, 2026 13:05
@MatkovIvan MatkovIvan requested a review from eymar January 29, 2026 13:05
@MatkovIvan MatkovIvan merged commit cad4b53 into JetBrains:master Jan 29, 2026
13 checks passed
MatkovIvan added a commit to JetBrains/compose-multiplatform-core that referenced this pull request Jan 29, 2026
Fixes [CMP-9705](https://youtrack.jetbrains.com/issue/CMP-9705) Update
skiko to 0.9.43

## What's Changed in `skiko`

- JetBrains/skiko#1149
- JetBrains/skiko#1140
- JetBrains/skiko#1052

**Full Changelog**:
http://github.com/JetBrains/skiko/compare/v0.9.41...v0.9.43

(no customer-facing issues/notes from Compose POV)

## Release Notes
N/A
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants