Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8095804

[ES2, 3D] Shader fails on embedded devices with no default precision defined

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: P3 P3
    • 8u60
    • 8u20
    • javafx

      We have precision setting done for float and int for 2d not 3d shaders in prism. Some drivers such as the Mali-T624 seem to be less forgiving when this is not set. The Mali-T624 works fine with JavaFX programs that use only the 2d shaders but fails when 3d shaders is needed.

      Here is a partial error log:

      Jan 01, 1970 12:05:07 AM javafx.scene.SubScene <init>
      WARNING: System can't support antiAliasing
      Shader compile log: 0:57: S0032: no default precision defined for variable 'diffuseColor'

      java.lang.RuntimeException: Error creating fragment shader
              at com.sun.prism.es2.ES2Shader.createFromSource(ES2Shader.java:141)
              at com.sun.prism.es2.ES2PhongShader.getShader(ES2PhongShader.java:177)
              at com.sun.prism.es2.ES2Context.getPhongShader(ES2Context.java:130)
              at com.sun.prism.es2.ES2Context.renderMeshView(ES2Context.java:476)
              at com.sun.prism.es2.ES2MeshView.render(ES2MeshView.java:119)
              at com.sun.javafx.sg.prism.NGShape3D.renderMeshView(NGShape3D.java:179)
              at com.sun.javafx.sg.prism.NGShape3D.renderContent(NGShape3D.java:198)
              at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:2067)
              at com.sun.javafx.sg.prism.NGNode.render(NGNode.java:1959)
              at com.sun.javafx.sg.prism.NGGroup.renderContent(NGGroup.java:235)
              at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:2067)
              at com.sun.javafx.sg.prism.NGNode.render(NGNode.java:1959)
              at com.sun.javafx.sg.prism.NGSubScene.renderContent(NGSubScene.java:218)
              at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:2067)
              at com.sun.javafx.sg.prism.NGNode.render(NGNode.java:1959)
              at com.sun.javafx.sg.prism.NGGroup.renderContent(NGGroup.java:235)
              at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:2067)
              at com.sun.javafx.sg.prism.NGNode.render(NGNode.java:1959)
              at com.sun.javafx.tk.quantum.ViewPainter.doPaint(ViewPainter.java:474)
              at com.sun.javafx.tk.quantum.ViewPainter.paintImpl(ViewPainter.java:327)
              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:1142)
              at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
              at com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.run(QuantumRenderer.java:125)
              at java.lang.Thread.run(Thread.java:745)
      Shader compile log: 0:57: S0032: no default precision defined for variable 'diffuseColor'

            ckyang Chien Yang (Inactive)
            ckyang Chien Yang (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

              Created:
              Updated:
              Resolved:
              Imported: