-
Notifications
You must be signed in to change notification settings - Fork 1.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Exported deb file renders blank screen - Ubuntu #275
Comments
@theapache64 could you share the sample code, please? |
Sure @AlexeyTsvetkov Here's the zip. |
@theapache64 thanks! Sadly, I was not able to reproduce the issue: both packaged and non-packaged apps run for me using freshly installed Ubuntu 16.04 in VM. Could you try updating Compose version? E.g. for the latest dev build:
With the latest build, could you run Also, could you tell the version of JDK used for the build? If you run from the Intellij UI, it is Gradle JVM in the Gradle Settings. If you run from the terminal, it is usually |
Yes, the output is the same. Just a blank screen. Here's the stacktrace. Stacktrace
|
@AlexeyTsvetkov Any updates on this? |
@AlexeyTsvetkov Gentle Reminder cc @olonho |
Sounds like @AlexeyTsvetkov had no problems executing a deb built with your source. @theapache64 Maybe you can also attach your |
@AlexeyTsvetkov Any updates on this mate? |
As far as I can tell, somehow invalid GLSL (https://www.khronos.org/opengl/wiki/OpenGL_Shading_Language) is being generated. I don't think we've written our own GLSL code, but I know there is some code inside Skia which utilizes GLSL so I would normally assume it's a Skia bug. Except that it only happens in the packaged app. That is to say, running Looking at the syntax of the failing GLSL code, it is clear that some parameters are supposed to be populated, but are in fact empty, causing a parse error. I don't know what values are supposed to be passed via those parameters, but that might give us some hints as to why they are not being filled in properly. It seems believable to me that they are supposed to reference some resource, which couldn't be located in the packaged variant, although I have zero evidence to back up this speculation. @AlexeyTsvetkov It's interesting that you were unable to reproduce on a clean 16.04 installation, because I was able to reproduce by installing the package created by
Questions for you @AlexeyTsvetkov : If you follow the exact steps above, are you able to reproduce? Did you follow any similar/different steps when building yourself such that you were unable to reproduce? |
Same error on Ubuntu 20.04, FWIW. :/ |
Ok, I had a chat with Brian Osman and he was just as bewildered but threw some super interesting thoughts into the ring: Apparently all of the missing elements are literals (floating point numbers that are just embedded in the Skia shader source code strings). The actual flow of how that ends up in the shader is a little roundabout, because Skia parses that code and re-emits GLSL (which is what you're seeing there). The code that turns those float values back into strings is:
Which could maybe be reduced to roughly:
It is noteworthy that this is one of the few places where the C++ standard library is used and this is one of them, which makes the previous links to #273 either a strange coincidence or a hint as to the problem. Perhaps, somehow, when bundling, an incompatible version of the C++ standard library is selected. If this is the case, it's conceivable that JetBrains/skiko@b25d00b could kill two birds with one stone. If that doesn't work, it would be interesting to try putting the body of those C++ functions above into some C++ code much higher up in your embedder/app? It's just using C++ string and stringstream, mostly. See if the behavior changes (when value is something like 0.5) depending on the packaging? Another possibility, although probably less likely because Skia already jumps through some hoops to make it a non-issue, is that this is locale related, since the parsing code does rely on the locale controls to ensure we always get floats with |
I'll leave the ball in @AlexeyTsvetkov court now, and cc @olonho in case he'd like to help investigate further too and also to let me know when JetBrains/skiko@b25d00b gets merged and what build compose-desktop number it is available in. If there is anything else I can do to help from my end, let me know! |
Thanks Jim, let's see how it will go. |
Please check with 0.3.0-rc1. |
@olonho Checking... |
I created a brand new project using IntelliJ and bumped CD version to Crashlog
You can find the complete source code here -> theapache64/cd-distributable-test |
i met the same problem on ubuntu16.04. it runs good when ./gradlew run. but when ./gradlew runDistributable or install deb and run, it is the same as above.
|
Could you please try with
|
@olonho hi, when having added the 0.2.16 dependenices, the application can't show the main view and the error log is :
|
Use Compose version 0.3.0. |
@olonho I've bumped CD version to ./gradlew runDistributable
jpackage-2021-02-25-22-00-02-err.txt
|
Skiko 0.2.16 seems to resolve the original issue here. The other issue with jpackage appears to be an issue with using Java 14, upgrading to Java 15 will fix that. We can close this out and track that separately. |
Please check the following ticket on YouTrack for follow-ups to this issue. GitHub issues will be closed in the coming weeks. |
When using
run
When running deb file
OS : Ubuntu 16.04
IDE Version
The text was updated successfully, but these errors were encountered: