В JavaFx у меня есть программа, в которой renderthread иногда вылетает с сообщением о том, что запрошенный размер текстуры слишком велик. Если я правильно прочитал трассировку стека, я предполагаю, что это происходит в NGCanvas (что, вероятно, означает собственный графический холст, часть реализации узла JavaFx Canvas).
Я проверил размеры холстов, которые я выделяю, и ни один не приблизился к этому размеру. Теперь, поскольку JavaFx выполняет рендеринг в своем собственном потоке, я даже не знаю, кто это создал.
Можно ли как-нибудь узнать, кто говорит рендерпайплайну выделять такую большую текстуру?
java.lang.RuntimeException: Requested texture dimension (65824) requires dimension (0) that exceeds maximum texture size (16384)
at com.sun.prism.es2.ES2RTTexture.getCompatibleDimension(ES2RTTexture.java:135)
at com.sun.prism.es2.ES2ResourceFactory.getRTTWidth(ES2ResourceFactory.java:146)
at com.sun.scenario.effect.impl.prism.ps.PPSDrawable.getCompatibleWidth(PPSDrawable.java:48)
at com.sun.scenario.effect.impl.prism.ps.PPSRenderer.getCompatibleWidth(PPSRenderer.java:153)
at com.sun.scenario.effect.impl.ImagePool.checkOut(ImagePool.java:119)
at com.sun.scenario.effect.impl.Renderer.getCompatibleImage(Renderer.java:116)
at com.sun.scenario.effect.impl.prism.ps.PPSRenderer.getCompatibleImage(PPSRenderer.java:168)
at com.sun.scenario.effect.impl.prism.ps.PPSRenderer.getCompatibleImage(PPSRenderer.java:67)
at com.sun.scenario.effect.Effect.getCompatibleImage(Effect.java:479)
at com.sun.javafx.sg.prism.NGCanvas$RenderInput.filter(NGCanvas.java:1582)
at com.sun.scenario.effect.FilterEffect.filter(FilterEffect.java:185)
at com.sun.javafx.sg.prism.NGCanvas.applyEffectOnAintoC(NGCanvas.java:737)
at com.sun.javafx.sg.prism.NGCanvas.renderStream(NGCanvas.java:1080)
at com.sun.javafx.sg.prism.NGCanvas.renderContent(NGCanvas.java:606)
at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:2053)
at com.sun.javafx.sg.prism.NGNode.render(NGNode.java:1945)
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:2053)
at com.sun.javafx.sg.prism.NGNode.render(NGNode.java:1945)
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: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)
По запросу: я использую среду linux debian amd64, jdk 1.8 update 66. Рендеринг происходит через mesa.