From c2ae74a4482c24f5bc1b52c2a4039ab144f934ef Mon Sep 17 00:00:00 2001 From: Mikko Pulkki Date: Thu, 18 Mar 2021 11:53:45 +0200 Subject: [PATCH 1/4] Add option for toggling render cache on/off in render tests --- test/integration/lib/operation-handlers.js | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/test/integration/lib/operation-handlers.js b/test/integration/lib/operation-handlers.js index 6a5bc15f39c..424f79ee9ab 100644 --- a/test/integration/lib/operation-handlers.js +++ b/test/integration/lib/operation-handlers.js @@ -96,6 +96,13 @@ export const operationHandlers = { map.updateImage(params[0], image); doneCb(); }); + }, + forceRenderCached(map, params, doneCb) { + const terrain = map.painter.terrain; + if (terrain) { + terrain.forceRenderCached = params[0]; + } + doneCb(); } }; From 66331aca17d4121c9a6f6e546cb121a3c746ccfd Mon Sep 17 00:00:00 2001 From: Mikko Pulkki Date: Thu, 18 Mar 2021 11:10:26 +0200 Subject: [PATCH 2/4] Add render tests --- .../background-layer/expected.png | Bin 0 -> 855 bytes .../background-layer/style.json | 47 +++++++++ .../fill-layer-change-color/expected.png | Bin 0 -> 1363 bytes .../fill-layer-change-color/style.json | 89 +++++++++++++++++ .../hide-layer/expected.png | Bin 0 -> 857 bytes .../cache-invalidation/hide-layer/style.json | 89 +++++++++++++++++ .../hillshade-shared/expected.png | Bin 0 -> 88934 bytes .../hillshade-shared/style.json | 42 ++++++++ .../remove-layer/expected.png | Bin 0 -> 857 bytes .../remove-layer/style.json | 55 +++++++++++ .../show-layer/expected.png | Bin 0 -> 1555 bytes .../cache-invalidation/show-layer/style.json | 93 ++++++++++++++++++ 12 files changed, 415 insertions(+) create mode 100644 test/integration/render-tests/terrain/cache-invalidation/background-layer/expected.png create mode 100644 test/integration/render-tests/terrain/cache-invalidation/background-layer/style.json create mode 100644 test/integration/render-tests/terrain/cache-invalidation/fill-layer-change-color/expected.png create mode 100644 test/integration/render-tests/terrain/cache-invalidation/fill-layer-change-color/style.json create mode 100644 test/integration/render-tests/terrain/cache-invalidation/hide-layer/expected.png create mode 100644 test/integration/render-tests/terrain/cache-invalidation/hide-layer/style.json create mode 100644 test/integration/render-tests/terrain/cache-invalidation/hillshade-shared/expected.png create mode 100644 test/integration/render-tests/terrain/cache-invalidation/hillshade-shared/style.json create mode 100644 test/integration/render-tests/terrain/cache-invalidation/remove-layer/expected.png create mode 100644 test/integration/render-tests/terrain/cache-invalidation/remove-layer/style.json create mode 100644 test/integration/render-tests/terrain/cache-invalidation/show-layer/expected.png create mode 100644 test/integration/render-tests/terrain/cache-invalidation/show-layer/style.json diff --git a/test/integration/render-tests/terrain/cache-invalidation/background-layer/expected.png b/test/integration/render-tests/terrain/cache-invalidation/background-layer/expected.png new file mode 100644 index 0000000000000000000000000000000000000000..a5fb2765a78c0586526dfb3423ee2bbbdf33a6e6 GIT binary patch literal 855 zcmeAS@N?(olHy`uVBq!ia0y~yU<5K5893O0R7}x|GzJD{IZqeIkcv5PuPkI_P~bVR z!S?LjIV|ZuCQAEO6~D7tkhzVy!Iq67aTJY)zz7Th`JAPS?|cMr>;PsM22WQ%mvv4F FO#srTfkXfR literal 0 HcmV?d00001 diff --git a/test/integration/render-tests/terrain/cache-invalidation/background-layer/style.json b/test/integration/render-tests/terrain/cache-invalidation/background-layer/style.json new file mode 100644 index 00000000000..e666e3384b5 --- /dev/null +++ b/test/integration/render-tests/terrain/cache-invalidation/background-layer/style.json @@ -0,0 +1,47 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256, + "width": 256, + "operations": [ + ["forceRenderCached", true], + ["wait"], + ["setPaintProperty", "background", "background-color", ["rgba", 117.0, 207.0, 0.0, 1.0 ]], + ["wait", 0], + ["wait", 300] + ] + } + }, + "center": [-113.26903, 35.9654], + "zoom": 11, + "pitch": 45, + "terrain": { + "source": "rgbterrain" + }, + "sources": { + "rgbterrain": { + "type": "raster-dem", + "tiles": [ + "local://tiles/{z}-{x}-{y}.terrain.png" + ], + "maxzoom": 15, + "tileSize": 256 + } + }, + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": [ + "rgba", + 117.00000762939453, + 207.00001525878907, + 240.00001525878907, + 1.0 + ] + } + } + ] +} diff --git a/test/integration/render-tests/terrain/cache-invalidation/fill-layer-change-color/expected.png b/test/integration/render-tests/terrain/cache-invalidation/fill-layer-change-color/expected.png new file mode 100644 index 0000000000000000000000000000000000000000..f623781e4e5faf250514e3f4fa5da2f5a445a916 GIT binary patch literal 1363 zcmeAS@N?(olHy`uVBq!ia0y~yU<5K5893O0R7}x|GzJD%DNh&2kcv5P@A$4RO_n(D z@%hJpa+3m-CQa9rcj&a#G-f_|$GNuMa+7_xCo#EI-{^#sftx42MP$^+Vu6{o`dX z|Gc~+=;tr)H{EZ$PruK4pZV(^?24SkFsH)aC%k8|`2U!kM+G;(oa8!ps8F~;`0e$V zk3Qa?{$FFZb?fWpQ=(*-m-^hcIezRvy||BqcVPL^j$2%LR%f0@qyGyjk3YtNA1E!5yzWAp7l z&;P>TnXJVr;Yt~RN&O7Mx~nwi zuT9wZ#*2aP+1ZVMCdpm;tv$mKXj*eca?bQ8Un1%P`JcWOJu@?w^T54YlWpDqA4b~$ zuB;-65y$|B)N}3LdZB_*d=#_vO&!nX3P-^VcL?1DgBo-I+%F z|J@(on1AnmDlb!&%epxY=$1!+Eo|-X8s9a$YqPCfa<;xutYxeTpK!zU@Pe{3RR+oX zzUO`V{rr9X{r&y=effR(ef4|azCI*B@7;_%`P3Z2yD2|_+i22{!os`Wx&Fc!PC{xWt~$(695R<^T+@I literal 0 HcmV?d00001 diff --git a/test/integration/render-tests/terrain/cache-invalidation/fill-layer-change-color/style.json b/test/integration/render-tests/terrain/cache-invalidation/fill-layer-change-color/style.json new file mode 100644 index 00000000000..b5bee16f7c4 --- /dev/null +++ b/test/integration/render-tests/terrain/cache-invalidation/fill-layer-change-color/style.json @@ -0,0 +1,89 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256, + "width": 256, + "operations": [ + ["forceRenderCached", true], + ["wait"], + ["setPaintProperty", "fill", "fill-color", ["rgba", 117.0, 207.0, 0.0, 1.0 ]], + ["wait", 0], + ["wait", 300] + ] + } + }, + "center": [-113.26903, 35.9654], + "zoom": 11, + "pitch": 45, + "terrain": { + "source": "rgbterrain" + }, + "sources": { + "rgbterrain": { + "type": "raster-dem", + "tiles": [ + "local://tiles/{z}-{x}-{y}.terrain.png" + ], + "maxzoom": 15, + "tileSize": 256 + }, + "geojson": { + "type": "geojson", + "data": { + "type": "Polygon", + "coordinates": [ + [ + [ + -113.27384948730469, + 35.962 + ], + [ + -113.26421051269531, + 35.962 + ], + [ + -113.26421051269531, + 35.97 + ], + [ + -113.27384948730469, + 35.97 + ], + [ + -113.28412743652345, + 35.964 + ], + [ + -113.27384948730469, + 35.962 + ] + ] + ] + } + } + }, + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": [ + "rgba", + 117.00000762939453, + 207.00001525878907, + 240.00001525878907, + 1.0 + ] + } + }, + { + "id": "fill", + "type": "fill", + "source": "geojson", + "paint": { + "fill-color": "yellow" + } + } + ] +} diff --git a/test/integration/render-tests/terrain/cache-invalidation/hide-layer/expected.png b/test/integration/render-tests/terrain/cache-invalidation/hide-layer/expected.png new file mode 100644 index 0000000000000000000000000000000000000000..9a514e2f45683c0547cca82826ce7abe29cee615 GIT binary patch literal 857 zcmeAS@N?(olHy`uVBq!ia0y~yU<5K5893O0R7}x|GzJD{1y2{pkcv5PuP8DyCHmdK II;Vst0H4N@WdHyG literal 0 HcmV?d00001 diff --git a/test/integration/render-tests/terrain/cache-invalidation/hide-layer/style.json b/test/integration/render-tests/terrain/cache-invalidation/hide-layer/style.json new file mode 100644 index 00000000000..aac0f834178 --- /dev/null +++ b/test/integration/render-tests/terrain/cache-invalidation/hide-layer/style.json @@ -0,0 +1,89 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256, + "width": 256, + "operations": [ + ["forceRenderCached", true], + ["wait"], + ["setLayoutProperty", "fill", "visibility", "none"], + ["wait", 0], + ["wait", 300] + ] + } + }, + "center": [-113.26903, 35.9654], + "zoom": 11, + "pitch": 45, + "terrain": { + "source": "rgbterrain" + }, + "sources": { + "rgbterrain": { + "type": "raster-dem", + "tiles": [ + "local://tiles/{z}-{x}-{y}.terrain.png" + ], + "maxzoom": 15, + "tileSize": 256 + }, + "geojson": { + "type": "geojson", + "data": { + "type": "Polygon", + "coordinates": [ + [ + [ + -113.27384948730469, + 35.962 + ], + [ + -113.26421051269531, + 35.962 + ], + [ + -113.26421051269531, + 35.97 + ], + [ + -113.27384948730469, + 35.97 + ], + [ + -113.28412743652345, + 35.964 + ], + [ + -113.27384948730469, + 35.962 + ] + ] + ] + } + } + }, + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": [ + "rgba", + 117.00000762939453, + 207.00001525878907, + 240.00001525878907, + 1.0 + ] + } + }, + { + "id": "fill", + "type": "fill", + "source": "geojson", + "paint": { + "fill-color": "yellow" + } + } + ] +} diff --git a/test/integration/render-tests/terrain/cache-invalidation/hillshade-shared/expected.png b/test/integration/render-tests/terrain/cache-invalidation/hillshade-shared/expected.png new file mode 100644 index 0000000000000000000000000000000000000000..94678045ae1fbbae8d641453652ba37ccf19acdf GIT binary patch literal 88934 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 II;Vst0H4N@WdHyG literal 0 HcmV?d00001 diff --git a/test/integration/render-tests/terrain/cache-invalidation/remove-layer/style.json b/test/integration/render-tests/terrain/cache-invalidation/remove-layer/style.json new file mode 100644 index 00000000000..762dca05bb8 --- /dev/null +++ b/test/integration/render-tests/terrain/cache-invalidation/remove-layer/style.json @@ -0,0 +1,55 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256, + "width": 256, + "operations": [ + ["forceRenderCached", true], + ["wait"], + ["removeLayer", "hillshade"], + ["wait", 0], + ["wait", 300] + ] + } + }, + "center": [-113.2935, 35.9529], + "zoom": 11.2, + "pitch": 30, + "terrain": { + "source": "terrain" + }, + "sources": { + "terrain": { + "type": "raster-dem", + "tiles": [ + "local://tiles/terrain-buffer-0/{z}-{x}-{y}.png" + ], + "maxzoom": 15, + "tileSize": 256 + } + }, + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": [ + "rgba", + 117.00000762939453, + 207.00001525878907, + 240.00001525878907, + 1.0 + ] + } + }, + { + "id": "hillshade", + "type": "hillshade", + "source": "terrain", + "paint": { + "hillshade-exaggeration": 1 + } + } + ] +} diff --git a/test/integration/render-tests/terrain/cache-invalidation/show-layer/expected.png b/test/integration/render-tests/terrain/cache-invalidation/show-layer/expected.png new file mode 100644 index 0000000000000000000000000000000000000000..75e7001ff8976e669126b3f8988a140dff20d607 GIT binary patch literal 1555 zcmeAS@N?(olHy`uVBq!ia0y~yU<5K5893O0R7}x|GzJFNTb?eCAr*7p-Z|SHS}JqA z@V}g_to$cUSKr{pn?hZ;a&8Vw6q`8neBaW==Q5JJn61tgCtg%r<1lH-1hGjwxtpT4 zYH#}gV0y8*pjAi3`?>e;*sVXBZQT8Ej(*MkImPdHrk}I6{~O!jQ=BEw5YW%yV8Gar zz{GHng`tU)fkl{sLybYehe2V+s08(b9D`w9Xj z<908cQ~R{H=+B7+%Zit~Umf?2WxDY2-tKSFlF^?|eChtL@a{-r&BI4UFCOQwp3iOU z&tP@)?EX_O-w(CN|I74=)$Cap6WcfM-;#enFP1S~SjbmXws&cFeSPqDfzQ(01s>n+ z_WFNs->c{T*&Gh+RyKdW^635F+h%4TTg$ekjiF@5=jeHBcm3&Q$f;WOOD2Pt@r6S2 z>9COae{KwBc9FGWATdDklatqe~D8@j&5?h8FOZS9(UXZVw!_u8*M-~Wu$fwf(2-L^lH z|7LD`{p#It z`pmMRmybVo-M$rXi#}ZXe)YLGP{g;&zb`cYQrWCur#5}-$(+Zq#WDYX##h$d?TeWw zUw!TaRC2WH*#68tX{*!UoZ4T1yYg}WrSb=dk6HhA3tOLC^W1)4#YtOl(~DO_*|xpc zRR8{M>b>B{z4sZvytfBBU1#mS59PDFV%|nxwqeZJI(z%=U;p`Q{yAIzKU18#Y4y8i z=i`0+SLd7h3ODeXe+{~DdHs7WakG3)arxU3ZP(Z2|B1>k`MJ1PySQ$Mt>eR{|H_NmT!{iiR`!gYz`~xv)78&qol`;+08G;=Pyhe` literal 0 HcmV?d00001 diff --git a/test/integration/render-tests/terrain/cache-invalidation/show-layer/style.json b/test/integration/render-tests/terrain/cache-invalidation/show-layer/style.json new file mode 100644 index 00000000000..4872334e4a7 --- /dev/null +++ b/test/integration/render-tests/terrain/cache-invalidation/show-layer/style.json @@ -0,0 +1,93 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256, + "width": 256, + "operations": [ + ["forceRenderCached", true], + ["wait"], + ["setPaintProperty", "fill", "fill-color", "brown"], + ["setLayoutProperty", "fill", "visibility", "visible"], + ["wait", 0], + ["wait", 300] + ] + } + }, + "center": [-113.26903, 35.9654], + "zoom": 11, + "pitch": 45, + "terrain": { + "source": "rgbterrain" + }, + "sources": { + "rgbterrain": { + "type": "raster-dem", + "tiles": [ + "local://tiles/{z}-{x}-{y}.terrain.png" + ], + "maxzoom": 15, + "tileSize": 256 + }, + "geojson": { + "type": "geojson", + "data": { + "type": "Polygon", + "coordinates": [ + [ + [ + -113.27384948730469, + 35.962 + ], + [ + -113.26421051269531, + 35.962 + ], + [ + -113.26421051269531, + 35.97 + ], + [ + -113.27384948730469, + 35.97 + ], + [ + -113.28412743652345, + 35.964 + ], + [ + -113.27384948730469, + 35.962 + ] + ] + ] + } + } + }, + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": [ + "rgba", + 117.00000762939453, + 207.00001525878907, + 240.00001525878907, + 1.0 + ] + } + }, + { + "id": "fill", + "type": "fill", + "source": "geojson", + "paint": { + "fill-color": "yellow" + }, + "layout": { + "visibility": "none" + } + } + ] +} From bf2a184c80a00731eaf9739f112df87d854dd61d Mon Sep 17 00:00:00 2001 From: Mikko Pulkki Date: Mon, 22 Mar 2021 10:47:46 +0200 Subject: [PATCH 3/4] test fixes --- .../terrain/cache-invalidation/background-layer/style.json | 2 +- .../cache-invalidation/fill-layer-change-color/style.json | 2 +- .../terrain/cache-invalidation/hide-layer/style.json | 2 +- .../terrain/cache-invalidation/hillshade-shared/style.json | 2 +- .../terrain/cache-invalidation/remove-layer/style.json | 2 +- .../terrain/cache-invalidation/show-layer/style.json | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/test/integration/render-tests/terrain/cache-invalidation/background-layer/style.json b/test/integration/render-tests/terrain/cache-invalidation/background-layer/style.json index e666e3384b5..adc41a99beb 100644 --- a/test/integration/render-tests/terrain/cache-invalidation/background-layer/style.json +++ b/test/integration/render-tests/terrain/cache-invalidation/background-layer/style.json @@ -9,7 +9,7 @@ ["wait"], ["setPaintProperty", "background", "background-color", ["rgba", 117.0, 207.0, 0.0, 1.0 ]], ["wait", 0], - ["wait", 300] + ["wait", 350] ] } }, diff --git a/test/integration/render-tests/terrain/cache-invalidation/fill-layer-change-color/style.json b/test/integration/render-tests/terrain/cache-invalidation/fill-layer-change-color/style.json index b5bee16f7c4..b024bedb1d7 100644 --- a/test/integration/render-tests/terrain/cache-invalidation/fill-layer-change-color/style.json +++ b/test/integration/render-tests/terrain/cache-invalidation/fill-layer-change-color/style.json @@ -9,7 +9,7 @@ ["wait"], ["setPaintProperty", "fill", "fill-color", ["rgba", 117.0, 207.0, 0.0, 1.0 ]], ["wait", 0], - ["wait", 300] + ["wait", 350] ] } }, diff --git a/test/integration/render-tests/terrain/cache-invalidation/hide-layer/style.json b/test/integration/render-tests/terrain/cache-invalidation/hide-layer/style.json index aac0f834178..b89b559ccbe 100644 --- a/test/integration/render-tests/terrain/cache-invalidation/hide-layer/style.json +++ b/test/integration/render-tests/terrain/cache-invalidation/hide-layer/style.json @@ -9,7 +9,7 @@ ["wait"], ["setLayoutProperty", "fill", "visibility", "none"], ["wait", 0], - ["wait", 300] + ["wait", 350] ] } }, diff --git a/test/integration/render-tests/terrain/cache-invalidation/hillshade-shared/style.json b/test/integration/render-tests/terrain/cache-invalidation/hillshade-shared/style.json index 1af41f1124c..0ecf32540d3 100644 --- a/test/integration/render-tests/terrain/cache-invalidation/hillshade-shared/style.json +++ b/test/integration/render-tests/terrain/cache-invalidation/hillshade-shared/style.json @@ -9,7 +9,7 @@ ["wait"], ["setPaintProperty", "hillshade", "hillshade-exaggeration", 0.1], ["wait", 0], - ["wait", 300] + ["wait", 350] ] } }, diff --git a/test/integration/render-tests/terrain/cache-invalidation/remove-layer/style.json b/test/integration/render-tests/terrain/cache-invalidation/remove-layer/style.json index 762dca05bb8..968786d7db5 100644 --- a/test/integration/render-tests/terrain/cache-invalidation/remove-layer/style.json +++ b/test/integration/render-tests/terrain/cache-invalidation/remove-layer/style.json @@ -9,7 +9,7 @@ ["wait"], ["removeLayer", "hillshade"], ["wait", 0], - ["wait", 300] + ["wait", 350] ] } }, diff --git a/test/integration/render-tests/terrain/cache-invalidation/show-layer/style.json b/test/integration/render-tests/terrain/cache-invalidation/show-layer/style.json index 4872334e4a7..4846f874401 100644 --- a/test/integration/render-tests/terrain/cache-invalidation/show-layer/style.json +++ b/test/integration/render-tests/terrain/cache-invalidation/show-layer/style.json @@ -10,7 +10,7 @@ ["setPaintProperty", "fill", "fill-color", "brown"], ["setLayoutProperty", "fill", "visibility", "visible"], ["wait", 0], - ["wait", 300] + ["wait", 350] ] } }, From 57ec76e54ed9312bc7490fed63b5046f101c7180 Mon Sep 17 00:00:00 2001 From: Mikko Pulkki Date: Mon, 22 Mar 2021 10:48:17 +0200 Subject: [PATCH 4/4] Disable terrain render cache during style transitions --- src/terrain/terrain.js | 25 ++++++++++++++++++++----- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/src/terrain/terrain.js b/src/terrain/terrain.js index 272978b353a..2c90f502cbd 100644 --- a/src/terrain/terrain.js +++ b/src/terrain/terrain.js @@ -827,15 +827,30 @@ export class Terrain extends Elevation { } _shouldDisableRenderCache(): boolean { - // Disable render caches on dynamic events due to fading. - const isCrossFading = id => { + if (!this.renderCached) { + return true; + } + + // Disable render caches on dynamic events due to fading or transitioning. + if (this._style.light && this._style.light.hasTransition()) { + return true; + } + + for (const id in this._style._sourceCaches) { + if (this._style._sourceCaches[id].hasTransition()) { + return true; + } + } + + const fadingOrTransitioning = id => { const layer = this._style._layers[id]; - const isHidden = !layer.isHidden(this.painter.transform.zoom); + const isHidden = layer.isHidden(this.painter.transform.zoom); const crossFade = layer.getCrossfadeParameters(); const isFading = !!crossFade && crossFade.t !== 1; - return layer.type !== 'custom' && !isHidden && isFading; + const isTransitioning = layer.hasTransition(); + return layer.type !== 'custom' && !isHidden && (isFading || isTransitioning); }; - return !this.renderCached || this._style.order.some(isCrossFading); + return this._style.order.some(fadingOrTransitioning); } _clearRasterFadeFromRenderCache() {