Re: Large Image Export
could be moved into 8u20 I meant 8u40. -- Kevin Kevin Rushforth wrote: This is RT-22073 https://javafx-jira.kenai.com/browse/RT-22073 which is currently targeted for 9, but could be moved into 8u20 if there was enough demand to fix it. The (rather ugly) app-level workaround is to break the operation up into 4Kx4K tiles, and render the tiles in a loop specifying the appropriate viewport and translation via ShapshotParams. -- Kevin Danno Ferrin wrote: While working on a fun project I discovered that the Image Export limits the size of the export textures, mostly depending on your graphics stack. Here's one example: java.lang.RuntimeException: Requested texture dimensions (20581x245) require dimensions (0x245) that exceed maximum texture size (16384) at com.sun.prism.es2.ES2RTTexture.create(ES2RTTexture.java:220) at com.sun.prism.es2.ES2ResourceFactory.createRTTexture(ES2ResourceFactory.java:106) at com.sun.prism.es2.ES2ResourceFactory.createRTTexture(ES2ResourceFactory.java:102) at com.sun.javafx.tk.quantum.QuantumToolkit$QuantumImage.getRT(QuantumToolkit.java:1210) at com.sun.javafx.tk.quantum.QuantumToolkit$18.run(QuantumToolkit.java:1345) 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:129) This is on a mid-2012 Mac Book Air, and the MacGLConext looks to limit dimensions to 2^14. Is there anything I can do other than making sure my nodes don't get bigger than 16K on one side? I've tried setting a transform on the snapshot and zooming it below 16k, but it still gets the same exception with he same dimensions. --Danno
Re: Large Image Export
This is RT-22073 https://javafx-jira.kenai.com/browse/RT-22073 which is currently targeted for 9, but could be moved into 8u20 if there was enough demand to fix it. The (rather ugly) app-level workaround is to break the operation up into 4Kx4K tiles, and render the tiles in a loop specifying the appropriate viewport and translation via ShapshotParams. -- Kevin Danno Ferrin wrote: While working on a fun project I discovered that the Image Export limits the size of the export textures, mostly depending on your graphics stack. Here's one example: java.lang.RuntimeException: Requested texture dimensions (20581x245) require dimensions (0x245) that exceed maximum texture size (16384) at com.sun.prism.es2.ES2RTTexture.create(ES2RTTexture.java:220) at com.sun.prism.es2.ES2ResourceFactory.createRTTexture(ES2ResourceFactory.java:106) at com.sun.prism.es2.ES2ResourceFactory.createRTTexture(ES2ResourceFactory.java:102) at com.sun.javafx.tk.quantum.QuantumToolkit$QuantumImage.getRT(QuantumToolkit.java:1210) at com.sun.javafx.tk.quantum.QuantumToolkit$18.run(QuantumToolkit.java:1345) 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:129) This is on a mid-2012 Mac Book Air, and the MacGLConext looks to limit dimensions to 2^14. Is there anything I can do other than making sure my nodes don't get bigger than 16K on one side? I've tried setting a transform on the snapshot and zooming it below 16k, but it still gets the same exception with he same dimensions. --Danno
Re: Large Image Export
So the limitation is in the snapshot code, not the target image code? This is actually a feasible workaround, so 8u40 would be grand but 9 is also just fine. Also, is 4K the lowest the texture size max will be? Or is there some API to query it? On Fri, Jun 13, 2014 at 9:38 AM, Kevin Rushforth kevin.rushfo...@oracle.com wrote: This is RT-22073 https://javafx-jira.kenai.com/browse/RT-22073 which is currently targeted for 9, but could be moved into 8u20 if there was enough demand to fix it. The (rather ugly) app-level workaround is to break the operation up into 4Kx4K tiles, and render the tiles in a loop specifying the appropriate viewport and translation via ShapshotParams. -- Kevin Danno Ferrin wrote: While working on a fun project I discovered that the Image Export limits the size of the export textures, mostly depending on your graphics stack. Here's one example: java.lang.RuntimeException: Requested texture dimensions (20581x245) require dimensions (0x245) that exceed maximum texture size (16384) at com.sun.prism.es2.ES2RTTexture.create(ES2RTTexture.java:220) at com.sun.prism.es2.ES2ResourceFactory.createRTTexture(ES2ResourceFactory.java:106) at com.sun.prism.es2.ES2ResourceFactory.createRTTexture(ES2ResourceFactory.java:102) at com.sun.javafx.tk.quantum.QuantumToolkit$QuantumImage.getRT(QuantumToolkit.java:1210) at com.sun.javafx.tk.quantum.QuantumToolkit$18.run(QuantumToolkit.java:1345) 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:129) This is on a mid-2012 Mac Book Air, and the MacGLConext looks to limit dimensions to 2^14. Is there anything I can do other than making sure my nodes don't get bigger than 16K on one side? I've tried setting a transform on the snapshot and zooming it below 16k, but it still gets the same exception with he same dimensions. --Danno
Re: Large Image Export
Yes, the limitation is in snapshot, although there are other places where we hit the same limit. When rendering an image via an InageView we do the tiling correctly. I haven't seen anything lower than 4K x 4X in practice, so that should be safe. We do query and keep the max texture size internally in Prism (per-resource-factory), but don't expose it via a public API. -- Kevin Danno Ferrin wrote: So the limitation is in the snapshot code, not the target image code? This is actually a feasible workaround, so 8u40 would be grand but 9 is also just fine. Also, is 4K the lowest the texture size max will be? Or is there some API to query it? On Fri, Jun 13, 2014 at 9:38 AM, Kevin Rushforth kevin.rushfo...@oracle.com mailto:kevin.rushfo...@oracle.com wrote: This is RT-22073 https://javafx-jira.kenai.com/browse/RT-22073 which is currently targeted for 9, but could be moved into 8u20 if there was enough demand to fix it. The (rather ugly) app-level workaround is to break the operation up into 4Kx4K tiles, and render the tiles in a loop specifying the appropriate viewport and translation via ShapshotParams. -- Kevin Danno Ferrin wrote: While working on a fun project I discovered that the Image Export limits the size of the export textures, mostly depending on your graphics stack. Here's one example: java.lang.RuntimeException: Requested texture dimensions (20581x245) require dimensions (0x245) that exceed maximum texture size (16384) at com.sun.prism.es2.ES2RTTexture.create(ES2RTTexture.java:220) at com.sun.prism.es2.ES2ResourceFactory.createRTTexture(ES2ResourceFactory.java:106) at com.sun.prism.es2.ES2ResourceFactory.createRTTexture(ES2ResourceFactory.java:102) at com.sun.javafx.tk.quantum.QuantumToolkit$QuantumImage.getRT(QuantumToolkit.java:1210) at com.sun.javafx.tk.quantum.QuantumToolkit$18.run(QuantumToolkit.java:1345) 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:129) This is on a mid-2012 Mac Book Air, and the MacGLConext looks to limit dimensions to 2^14. Is there anything I can do other than making sure my nodes don't get bigger than 16K on one side? I've tried setting a transform on the snapshot and zooming it below 16k, but it still gets the same exception with he same dimensions. --Danno
Re: Large Image Export
The funny thing is I was sure I had typed 8u40, but my fingers had other ideas. :) -- Kevin Stephen F Northover wrote: ... a rare instance of Kevin getting a release name wrong! Steve On 2014-06-13, 11:39 AM, Kevin Rushforth wrote: could be moved into 8u20 I meant 8u40. -- Kevin Kevin Rushforth wrote: This is RT-22073 https://javafx-jira.kenai.com/browse/RT-22073 which is currently targeted for 9, but could be moved into 8u20 if there was enough demand to fix it. The (rather ugly) app-level workaround is to break the operation up into 4Kx4K tiles, and render the tiles in a loop specifying the appropriate viewport and translation via ShapshotParams. -- Kevin Danno Ferrin wrote: While working on a fun project I discovered that the Image Export limits the size of the export textures, mostly depending on your graphics stack. Here's one example: java.lang.RuntimeException: Requested texture dimensions (20581x245) require dimensions (0x245) that exceed maximum texture size (16384) at com.sun.prism.es2.ES2RTTexture.create(ES2RTTexture.java:220) at com.sun.prism.es2.ES2ResourceFactory.createRTTexture(ES2ResourceFactory.java:106) at com.sun.prism.es2.ES2ResourceFactory.createRTTexture(ES2ResourceFactory.java:102) at com.sun.javafx.tk.quantum.QuantumToolkit$QuantumImage.getRT(QuantumToolkit.java:1210) at com.sun.javafx.tk.quantum.QuantumToolkit$18.run(QuantumToolkit.java:1345) 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:129) This is on a mid-2012 Mac Book Air, and the MacGLConext looks to limit dimensions to 2^14. Is there anything I can do other than making sure my nodes don't get bigger than 16K on one side? I've tried setting a transform on the snapshot and zooming it below 16k, but it still gets the same exception with he same dimensions. --Danno