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

JavaFX Canvas Memory Usage

XMLWordPrintable

    • Icon: Enhancement Enhancement
    • Resolution: Duplicate
    • Icon: P4 P4
    • None
    • jfx19
    • javafx
    • generic
    • generic

      A DESCRIPTION OF THE PROBLEM :
      My application uses canvases to draw diagrams, placed in multiple tab panes. On wide screen monitors, after creating more than 10 tabs I got exceptions like below. I think this comes from the Canvas high video memory usage.

      My question is, if is any way to release the Canvas memory usage. I would trigger this for the canvases in the un-selected tabs in the tab pane. I tried to do canvas.setSize(0,0), but this seems not to work always. It would be great if this would work on canvas.setDisable(true).

      java.lang.NullPointerException: Cannot invoke "com.sun.prism.RTTexture.createGraphics()" because "<local9>" is null
          at com.sun.javafx.sg.prism.NGCanvas$RenderBuf.validate(NGCanvas.java:214)
          at com.sun.javafx.sg.prism.NGCanvas.initCanvas(NGCanvas.java:644)
          at com.sun.javafx.sg.prism.NGCanvas.renderContent(NGCanvas.java:607)
          at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:2072)
          at com.sun.javafx.sg.prism.NGNode.render(NGNode.java:1964)
          at com.sun.javafx.sg.prism.NGGroup.renderContent(NGGroup.java:270)
          at com.sun.javafx.sg.prism.NGRegion.renderContent(NGRegion.java:579)
          at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:2072)
          at com.sun.javafx.sg.prism.NGNode.render(NGNode.java:1964)
          at com.sun.javafx.sg.prism.NGGroup.renderContent(NGGroup.java:270)
          at com.sun.javafx.sg.prism.NGRegion.renderContent(NGRegion.java:579)
          at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:2072)
          at com.sun.javafx.sg.prism.NGNode.render(NGNode.java:1964)
          at com.sun.javafx.sg.prism.NGGroup.renderContent(NGGroup.java:270)
          at com.sun.javafx.sg.prism.NGRegion.renderContent(NGRegion.java:579)
          at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:2072)
          at com.sun.javafx.sg.prism.NGNode.render(NGNode.java:1964)
          at com.sun.javafx.sg.prism.NGGroup.renderContent(NGGroup.java:270)
          at com.sun.javafx.sg.prism.NGRegion.renderContent(NGRegion.java:579)
          at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:2072)
          at com.sun.javafx.sg.prism.NGNode.render(NGNode.java:1964)
          at com.sun.javafx.sg.prism.NGGroup.renderContent(NGGroup.java:270)
          at com.sun.javafx.sg.prism.NGRegion.renderContent(NGRegion.java:579)
          at com.sun.javafx.sg.prism.NGNode.renderForClip(NGNode.java:2313)
          at com.sun.javafx.sg.prism.NGNode.renderRectClip(NGNode.java:2207)
          at com.sun.javafx.sg.prism.NGNode.renderClip(NGNode.java:2233)
          at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:2066)
          at com.sun.javafx.sg.prism.NGNode.render(NGNode.java:1964)
          at com.sun.javafx.sg.prism.NGGroup.renderContent(NGGroup.java:270)
          at com.sun.javafx.sg.prism.NGRegion.renderContent(NGRegion.java:579)
          at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:2072)
          at com.sun.javafx.sg.prism.NGNode.render(NGNode.java:1964)
          at com.sun.javafx.sg.prism.NGGroup.renderContent(NGGroup.java:270)
          at com.sun.javafx.sg.prism.NGRegion.renderContent(NGRegion.java:579)
          at com.sun.javafx.sg.prism.NGNode.renderForClip(NGNode.java:2313)
          at com.sun.javafx.sg.prism.NGNode.renderRectClip(NGNode.java:2207)
          at com.sun.javafx.sg.prism.NGNode.renderClip(NGNode.java:2233)
          at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:2066)
          at com.sun.javafx.sg.prism.NGNode.render(NGNode.java:1964)
          at com.sun.javafx.sg.prism.NGGroup.renderContent(NGGroup.java:270)
          at com.sun.javafx.sg.prism.NGRegion.renderContent(NGRegion.java:579)
          at com.sun.javafx.sg.prism.NGNode.renderForClip(NGNode.java:2313)
          at com.sun.javafx.sg.prism.NGNode.renderRectClip(NGNode.java:2207)
          at com.sun.javafx.sg.prism.NGNode.renderClip(NGNode.java:2233)
          at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:2066)
          at com.sun.javafx.sg.prism.NGNode.render(NGNode.java:1964)
          at com.sun.javafx.sg.prism.NGGroup.renderContent(NGGroup.java:270)
          at com.sun.javafx.sg.prism.NGRegion.renderContent(NGRegion.java:579)
          at com.sun.javafx.sg.prism.NGNode.renderForClip(NGNode.java:2313)
          at com.sun.javafx.sg.prism.NGNode.renderRectClip(NGNode.java:2207)
          at com.sun.javafx.sg.prism.NGNode.renderClip(NGNode.java:2233)
          at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:2066)
          at com.sun.javafx.sg.prism.NGNode.render(NGNode.java:1964)
          at com.sun.javafx.sg.prism.NGGroup.renderContent(NGGroup.java:270)
          at com.sun.javafx.sg.prism.NGRegion.renderContent(NGRegion.java:579)
          at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:2072)
          at com.sun.javafx.sg.prism.NGNode.render(NGNode.java:1964)
          at com.sun.javafx.sg.prism.NGGroup.renderContent(NGGroup.java:270)
          at com.sun.javafx.sg.prism.NGRegion.renderContent(NGRegion.java:579)
          at com.sun.javafx.sg.prism.NGNode.renderForClip(NGNode.java:2313)
          at com.sun.javafx.sg.prism.NGNode.renderRectClip(NGNode.java:2207)
          at com.sun.javafx.sg.prism.NGNode.renderClip(NGNode.java:2233)
          at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:2066)
          at com.sun.javafx.sg.prism.NGNode.render(NGNode.java:1964)
          at com.sun.javafx.sg.prism.NGGroup.renderContent(NGGroup.java:270)
          at com.sun.javafx.sg.prism.NGRegion.renderContent(NGRegion.java:579)
          at com.sun.javafx.sg.prism.NGNode.renderForClip(NGNode.java:2313)
          at com.sun.javafx.sg.prism.NGNode.renderRectClip(NGNode.java:2207)
          at com.sun.javafx.sg.prism.NGNode.renderClip(NGNode.java:2233)
          at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:2066)
          at com.sun.javafx.sg.prism.NGNode.render(NGNode.java:1964)
          at com.sun.javafx.sg.prism.NGGroup.renderContent(NGGroup.java:270)
          at com.sun.javafx.sg.prism.NGRegion.renderContent(NGRegion.java:579)
          at com.sun.javafx.sg.prism.NGNode.renderForClip(NGNode.java:2313)
          at com.sun.javafx.sg.prism.NGNode.renderRectClip(NGNode.java:2207)
          at com.sun.javafx.sg.prism.NGNode.renderClip(NGNode.java:2233)
          at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:2066)
          at com.sun.javafx.sg.prism.NGNode.render(NGNode.java:1964)
          at com.sun.javafx.sg.prism.NGGroup.renderContent(NGGroup.java:270)
          at com.sun.javafx.sg.prism.NGRegion.renderContent(NGRegion.java:579)
          at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:2072)
          at com.sun.javafx.sg.prism.NGNode.render(NGNode.java:1964)
          at com.sun.javafx.sg.prism.NGGroup.renderContent(NGGroup.java:270)
          at com.sun.javafx.sg.prism.NGRegion.renderContent(NGRegion.java:579)
          at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:2072)
          at com.sun.javafx.sg.prism.NGNode.render(NGNode.java:1964)
          at com.sun.javafx.tk.quantum.ViewPainter.doPaint(ViewPainter.java:480)
          at com.sun.javafx.tk.quantum.ViewPainter.paintImpl(ViewPainter.java:321)
          at com.sun.javafx.tk.quantum.PresentingPainter.run(PresentingPainter.java:92)
          at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
          at java.base/java.util.concurrent.FutureTask.runAndReset(FutureTask.java:305)
          at com.sun.javafx.tk.RenderJob.run(RenderJob.java:58)
          at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)
          at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630)
          at com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.run(QuantumRenderer.java:126)
          at java.base/java.lang.Thread.run(Thread.java:832)



            pnarayanaswa Praveen Narayanaswamy
            webbuggrp Webbug Group
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: