Skip to content

Commit 83a9b53

Browse files
committed
Cache hillshade textures based on texture size, not tile size.
Fixes #7690 -- hillshade layers leak GPU memory.
1 parent 9cf6a0c commit 83a9b53

File tree

1 file changed

+2
-1
lines changed

1 file changed

+2
-1
lines changed

src/render/draw_hillshade.js

+2-1
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,7 @@ function prepareHillshade(painter, tile, layer, sourceMaxZoom, depthMode, stenci
8080
// base 2 - 0000 0000, 0000 0001, 0000 0110, 1110 1100
8181
if (tile.dem && tile.dem.data) {
8282
const tileSize = tile.dem.dim;
83+
const textureStride = tile.dem.stride;
8384

8485
const pixelData = tile.dem.getPixels();
8586
context.activeTexture.set(gl.TEXTURE1);
@@ -88,7 +89,7 @@ function prepareHillshade(painter, tile, layer, sourceMaxZoom, depthMode, stenci
8889
// tiles will appear blank, because as you can see above the alpha value for these textures
8990
// is always 0
9091
context.pixelStoreUnpackPremultiplyAlpha.set(false);
91-
tile.demTexture = tile.demTexture || painter.getTileTexture(tile.tileSize);
92+
tile.demTexture = tile.demTexture || painter.getTileTexture(textureStride);
9293
if (tile.demTexture) {
9394
const demTexture = tile.demTexture;
9495
demTexture.update(pixelData, { premultiply: false });

0 commit comments

Comments
 (0)