linux x86_64-linux crash on run (execution)
on linux (debian 12 + X11), using 3.3.0
build with both editor or bob.jar 1.9.5 alpha
crash on run. `
full log is attached below crash_x86_64-linux.txt _crash.zip
PS HTML5 + android -> OK
For what it's worth, I'm not able to run a bundled app with rive on MacOS – for me the error is "unable to get a valid shader from shaderdesc." I wonder if it's related to your issue. I'm also able to build just fine to HTML5
I see the same behavior on linux (failed to compile shader, "error: syntax error, unexpected NEW_IDENTIFIER")
- Defold 1.10.1
- release of 01b0a4bf9c1b0c0f51df20cd7cf508dc1c310ddc of extension-rive (current master)
- I've also tried with the previous "updated for 1.10.1" release
- opengl version hint set to 4.2
Ran into this same issue today. Downloaded extension-rive and tried some simple fixes with Claude, but to no avail. Here is the Claude summary (AI slop warning):
Environment
- OS: Arch Linux (kernel 6.17.1)
- GPU: Intel Iris Plus Graphics (ICL GT2) with Mesa 25.2.6
- Defold Version: 1.11.2 (a6d86c0)
- Rive Extension Version: Latest from main branch (commit e54883d)
- OpenGL Support: 4.6 (Compatibility Profile)
Error on Linux x86_64 Desktop Build
The application crashes on startup with:
ERROR:GRAPHICS: DoCreateShader(2154): gl error 1282: GL_INVALID_OPERATION dmengine: ../src/opengl/graphics_opengl.cpp:2154: GLuint dmGraphics::DoCreateShader(...): Assertion `0' failed.
Followed by a crash/abort. HTML5 and other builds work fine.
Root Cause Analysis
The Rive extension's Defold shader files (defold-rive/assets/rive.vp, rive.fp, and shader-library files) are missing #version directives. This causes:
- Mesa/Intel drivers default to very old GLSL versions that don't support features used in the shaders: - int() type casting - Dynamic array indexing in shaders - Modern GLSL operations
- Shader compilation fails with GL_INVALID_OPERATION when the Mesa driver tries to compile shaders as ancient GLSL without these features.
Attempted Fix
Adding #version 140 directives to the shaders fixes the Mesa/Intel driver crash, BUT introduces a new issue with Defold's shader compiler:
clojure.lang.ExceptionInfo: Failed to compile resource '/defold-rive/assets/rivemodel.material'. clojure.lang.ExceptionInfo: Failed to digest content for resource: /_generated_0.spc clojure.lang.ExceptionInfo: Digest process ran into an error. clojure.lang.ExceptionInfo: Encountered undigestable value: [Ljava.lang.String;@...
This appears to be a Defold shader compiler issue when processing GLSL 140 shaders with certain features (possibly dynamic array indexing with variables in fragment shaders, which violates GLSL ES 2.0 compatibility).
Conclusion
The shaders need:
- Explicit #version directives for Mesa/Intel compatibility
- To be rewritten to avoid GLSL features that break Defold's shader compiler (likely dynamic array indexing in fragment shaders)
- To maintain GLSL ES 2.0 compatibility while adding version directives
Workaround: HTML5 builds work fine. Linux desktop builds fail on Mesa/Intel drivers.