【问题标题】:JAVA - IllegalStateException: unmanaged resource freed from pool D3D Vram PoolJAVA - IllegalStateException:从池 D3D Vram 池中释放的非托管资源
【发布时间】:2015-10-13 18:23:47
【问题描述】:

我的 Javafx 应用程序引发了许多非法状态异常,我还无法在源中跟踪触发器。

任何人都可以指导我了解可能导致此问题的原因以及我应该在哪里寻找原因。我很难在这里展示一些代码,因为我不知道是什么原因造成的。

我们将不胜感激。

java.lang.IllegalStateException: unmanaged resource freed from pool D3D Vram Pool
at com.sun.prism.impl.BaseResourcePool.resourceFreed(BaseResourcePool.java:463)
at com.sun.prism.impl.ManagedResource.dispose(ManagedResource.java:127)
at com.sun.prism.impl.BaseTexture.dispose(BaseTexture.java:297)
at com.sun.scenario.effect.impl.prism.ps.PPSDrawable.flush(PPSDrawable.java:69)
at com.sun.scenario.effect.impl.ImagePool.dispose(ImagePool.java:267)
at com.sun.scenario.effect.impl.Renderer.getRenderer(Renderer.java:367)
at com.sun.scenario.effect.ImageData.validate(ImageData.java:216)
at com.sun.javafx.sg.prism.CacheFilter.render(CacheFilter.java:522)
at com.sun.javafx.sg.prism.NGNode.renderCached(NGNode.java:2372)
at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:2058)
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.NGRegion.renderContent(NGRegion.java:576)
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.NGRegion.renderContent(NGRegion.java:576)
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.NGRegion.renderContent(NGRegion.java:576)
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.NGRegion.renderContent(NGRegion.java:576)
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.NGRegion.renderContent(NGRegion.java:576)
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)

【问题讨论】:

  • 您能否发布一些可能与此跟踪相关的代码?仅凭这一点很难回答。
  • 这是我不知道与这个问题有什么关系的问题:(而且我不能在这里发布整个代码,它太多了。

标签: java javafx illegalstateexception


【解决方案1】:

我最近遇到了这个问题,对我来说它对应于图形驱动程序崩溃。到目前为止,我只看到它发生在我知道 GPU 出现故障的笔记本电脑上(经常导致显示冻结或蓝屏死机,原因是英伟达 GPU 驱动程序)。

我怀疑正在发生的事情是由于图形硬件问题,GPU 驱动程序正在释放 JVM 保留的一些内存,从而导致此异常。

在我最近的堆栈跟踪中,屏幕暂时冻结,系统从 GPU 驱动程序崩溃中恢复,然后当我查看我的日志时,这个错误出现了 3 次。我建议在另一台机器上进行测试,如果您无法在其他地方重现该问题,您可能同样存在导致此异常的 GPU 硬件或驱动程序问题。

【讨论】:

    猜你喜欢
    • 2015-05-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-18
    • 2013-10-01
    • 1970-01-01
    相关资源
    最近更新 更多