[Rev 04] RFR: 8238954: Improve performance of tiled snapshot rendering

Nir Lisker nlisker at openjdk.java.net
Mon May 11 18:02:08 UTC 2020


On Tue, 17 Mar 2020 11:43:16 GMT, Frederic Thevenet <github.com+7450507+fthevenet at openjdk.org> wrote:

>> Issue JDK-8088198, where an exception would be thrown when trying to capture a snapshot whose final dimensions would be
>> larger than the running platform's maximum supported texture size, was addressed in openjfx14. The fix, based around
>> the idea of capturing as many tiles of the maximum possible size and re-compositing the final snapshot out of these, is
>> currently only attempted after the original, non-tiled, strategy has already failed. This was decided to avoid any risk
>> of regressions, either in terms of performances and correctness, while still offering some relief to the original
>> issue.  This follow-on issue aims to propose a fix to the original issue, that is able to correctly decide on the best
>> snapshot strategy (tiled or not) to adopt before applying it and ensure best performances possible when tiling is
>> necessary while still introducing no regressions compared to the original solution.
>
> Frederic Thevenet has updated the pull request incrementally with one additional commit since the last revision:
> 
>   Revert changes in import statements

modules/javafx.graphics/src/main/java/com/sun/javafx/tk/quantum/QuantumToolkit.java line 1483:

> 1482:                                     IntBuffer buffer, ResourceFactory rf, QuantumImage tileImg, QuantumImage
> targetImg) { 1483:                 com.sun.prism.RTTexture rt = tileImg.getRT(w, h, rf);
> 1484:                 if (rt == null) {

Any reason why the fully qualified name is needed?

modules/javafx.graphics/src/main/java/com/sun/javafx/tk/quantum/QuantumToolkit.java line 1502:

> 1501:             private void renderWholeImage(int x, int y, int w, int h, ResourceFactory rf, QuantumImage pImage) {
> 1502:                 com.sun.prism.RTTexture rt = pImage.getRT(w, h, rf);
> 1503:                 if (rt == null) {

Same questions for `RTTexture`

-------------

PR: https://git.openjdk.java.net/jfx/pull/112


More information about the openjfx-dev mailing list