树莓派上的 JavaFX : Error loading stock shader

标签 java javafx raspberry-pi shader

我目前正在尝试在我的 Raspberry Model B+ v1.2 上部署我的 JavaFX 应用程序,它可以在 Windows 上顺利运行。由于 JavaFX 不能直接在 Raspi 上使用,因此我按照此处所述使用 Gluon 进行了改编(但使用最新版本 144):Running Javafx GUI on the Raspberry Pi

现在,当我运行仅显示一个简单窗口的 JFX 应用程序时,我收到以下有关着色器问题的错误堆栈(加载库存着色器 AlphaTexture_Color 时出错):

Program link log: java.lang.reflect.InvocationTargetException at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at com.sun.prism.es2.ES2ResourceFactory.createStockShader(ES2ResourceFactory.java:313) at com.sun.prism.impl.ps.BaseShaderContext.getPaintShader(BaseShaderContext.java:257) at com.sun.prism.impl.ps.BaseShaderContext.validatePaintOp(BaseShaderContext.java:478) at com.sun.prism.impl.ps.BaseShaderGraphics.fillPrimRect(BaseShaderGraphics.java:1106) at com.sun.prism.impl.ps.BaseShaderGraphics.fillRect(BaseShaderGraphics.java:1502) at com.sun.javafx.sg.prism.NGRegion.renderBackgroundRectanglesDirectly(NGRegion.java:1108) at com.sun.javafx.sg.prism.NGRegion.renderBackgroundRectangle(NGRegion.java:848) at com.sun.javafx.sg.prism.NGRegion.renderAsRectangle(NGRegion.java:751) at com.sun.javafx.sg.prism.NGRegion.renderContent(NGRegion.java:572) at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:2056) at com.sun.javafx.sg.prism.NGNode.render(NGNode.java:1948) at com.sun.javafx.tk.quantum.ViewPainter.doPaint(ViewPainter.java:477) at com.sun.javafx.tk.quantum.ViewPainter.paintImpl(ViewPainter.java:330) at com.sun.javafx.tk.quantum.PresentingPainter.run(PresentingPainter.java:91) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308) at com.sun.javafx.tk.RenderJob.run(RenderJob.java:58) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.run(QuantumRenderer.java:125) at java.lang.Thread.run(Thread.java:748)

Caused by: java.lang.RuntimeException: Error creating shader program at com.sun.prism.es2.ES2Shader.createFromSource(ES2Shader.java:158) at com.sun.prism.es2.ES2Shader.createFromSource(ES2Shader.java:173) at com.sun.prism.es2.ES2ResourceFactory.createShader(ES2ResourceFactory.java:225) at com.sun.prism.shader.AlphaTexture_Color_Loader.loadShader(AlphaTexture_Color_Loader.java:47) ... 25 more

java.lang.InternalError: Error loading stock shader AlphaTexture_Color at com.sun.prism.es2.ES2ResourceFactory.createStockShader(ES2ResourceFactory.java:316) at com.sun.prism.impl.ps.BaseShaderContext.getPaintShader(BaseShaderContext.java:257) at com.sun.prism.impl.ps.BaseShaderContext.validatePaintOp(BaseShaderContext.java:478) at com.sun.prism.impl.ps.BaseShaderGraphics.fillPrimRect(BaseShaderGraphics.java:1106) at com.sun.prism.impl.ps.BaseShaderGraphics.fillRect(BaseShaderGraphics.java:1502) at com.sun.javafx.sg.prism.NGRegion.renderBackgroundRectanglesDirectly(NGRegion.java:1108) at com.sun.javafx.sg.prism.NGRegion.renderBackgroundRectangle(NGRegion.java:848) at com.sun.javafx.sg.prism.NGRegion.renderAsRectangle(NGRegion.java:751) at com.sun.javafx.sg.prism.NGRegion.renderContent(NGRegion.java:572) at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:2056) at com.sun.javafx.sg.prism.NGNode.render(NGNode.java:1948) at com.sun.javafx.tk.quantum.ViewPainter.doPaint(ViewPainter.java:477) at com.sun.javafx.tk.quantum.ViewPainter.paintImpl(ViewPainter.java:330) at com.sun.javafx.tk.quantum.PresentingPainter.run(PresentingPainter.java:91) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308) at com.sun.javafx.tk.RenderJob.run(RenderJob.java:58) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.run(QuantumRenderer.java:125) at java.lang.Thread.run(Thread.java:748)

会不会是我的树莓派太老了,硬件上不支持某些着色器? 我还能尝试什么?

非常感谢!

最佳答案

Hmpf,真是巧合,我发现了这一点……问题出在 VRAM 上!它必须在树莓上从 64mb 增加到 128 或 256 才能工作。这可以通过 raspi_config 或可视化配置界面来完成。

关于树莓派上的 JavaFX : Error loading stock shader,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45377127/

相关文章:

java - 在java中没有for循环将数组拆分为两部分

java - maven/eclipse JPA 项目和实体生成?

java - 在 spring 中创建异步事件

java - 如何使用区域选择构建 map ?

c# - 如何在本地运行 Windows 10 IOT 应用程序?

java - 使用 GlassFish 将用户输入从 HTML 获取到 Java servlet

JavaFX 2.1 更改 ScrollPane 滚动条大小

JavaFX Controlsfx 库 Check-ComboBox 自动完成

PHP exec() 无法在 Raspberry apache 服务器上运行