diff --git a/modules/aggregation-layers/package.json b/modules/aggregation-layers/package.json index 8545b47873c..02cd7872ac8 100644 --- a/modules/aggregation-layers/package.json +++ b/modules/aggregation-layers/package.json @@ -38,7 +38,7 @@ "prepublishOnly": "npm run build-bundle && npm run build-bundle -- --env=dev" }, "dependencies": { - "@luma.gl/shadertools": "^9.3.3", + "@luma.gl/shadertools": "^9.3.4", "@math.gl/core": "^4.1.0", "@math.gl/web-mercator": "^4.1.0", "d3-hexbin": "^0.2.1" @@ -46,8 +46,8 @@ "peerDependencies": { "@deck.gl/core": "~9.3.0-beta.2", "@deck.gl/layers": "~9.3.0-beta.2", - "@luma.gl/core": "~9.3.3", - "@luma.gl/engine": "~9.3.3" + "@luma.gl/core": "~9.3.4", + "@luma.gl/engine": "~9.3.4" }, "gitHead": "13ace64fc2cee08c133afc882fc307253489a4e4" } diff --git a/modules/arcgis/package.json b/modules/arcgis/package.json index 09a20598de9..dd715720a1a 100644 --- a/modules/arcgis/package.json +++ b/modules/arcgis/package.json @@ -41,9 +41,9 @@ "peerDependencies": { "@arcgis/core": "^4.0.0", "@deck.gl/core": "~9.3.0-beta.2", - "@luma.gl/core": "~9.3.3", - "@luma.gl/engine": "~9.3.3", - "@luma.gl/webgl": "~9.3.3" + "@luma.gl/core": "~9.3.4", + "@luma.gl/engine": "~9.3.4", + "@luma.gl/webgl": "~9.3.4" }, "devDependencies": { "@arcgis/core": "^4.21.0" diff --git a/modules/carto/package.json b/modules/carto/package.json index e620c9633c5..acb3c4a3a69 100644 --- a/modules/carto/package.json +++ b/modules/carto/package.json @@ -49,8 +49,8 @@ "@loaders.gl/mvt": "^4.4.3", "@loaders.gl/schema": "^4.4.3", "@loaders.gl/tiles": "^4.4.3", - "@luma.gl/core": "^9.3.3", - "@luma.gl/shadertools": "^9.3.3", + "@luma.gl/core": "^9.3.4", + "@luma.gl/shadertools": "^9.3.4", "@math.gl/web-mercator": "^4.1.0", "@types/d3-array": "^3.0.2", "@types/d3-color": "^3.1.3", @@ -73,7 +73,7 @@ "@deck.gl/geo-layers": "~9.3.0-beta.2", "@deck.gl/layers": "~9.3.0-beta.2", "@loaders.gl/core": "^4.4.3", - "@luma.gl/core": "~9.3.3" + "@luma.gl/core": "~9.3.4" }, "gitHead": "13ace64fc2cee08c133afc882fc307253489a4e4" } diff --git a/modules/core/package.json b/modules/core/package.json index 96623960c74..7ece725f2b8 100644 --- a/modules/core/package.json +++ b/modules/core/package.json @@ -42,10 +42,10 @@ "dependencies": { "@loaders.gl/core": "^4.4.3", "@loaders.gl/images": "^4.4.3", - "@luma.gl/core": "^9.3.3", - "@luma.gl/engine": "^9.3.3", - "@luma.gl/shadertools": "^9.3.3", - "@luma.gl/webgl": "^9.3.3", + "@luma.gl/core": "^9.3.4", + "@luma.gl/engine": "^9.3.4", + "@luma.gl/shadertools": "^9.3.4", + "@luma.gl/webgl": "^9.3.4", "@math.gl/core": "^4.1.0", "@math.gl/sun": "^4.1.0", "@math.gl/types": "^4.1.0", diff --git a/modules/extensions/package.json b/modules/extensions/package.json index 8e27748c593..3962c17a873 100644 --- a/modules/extensions/package.json +++ b/modules/extensions/package.json @@ -38,14 +38,14 @@ "prepublishOnly": "npm run build-bundle && npm run build-bundle -- --env=dev" }, "dependencies": { - "@luma.gl/shadertools": "^9.3.3", - "@luma.gl/webgl": "^9.3.3", + "@luma.gl/shadertools": "^9.3.4", + "@luma.gl/webgl": "^9.3.4", "@math.gl/core": "^4.1.0" }, "peerDependencies": { "@deck.gl/core": "~9.3.0-beta.2", - "@luma.gl/core": "~9.3.3", - "@luma.gl/engine": "~9.3.3" + "@luma.gl/core": "~9.3.4", + "@luma.gl/engine": "~9.3.4" }, "gitHead": "13ace64fc2cee08c133afc882fc307253489a4e4" } diff --git a/modules/geo-layers/package.json b/modules/geo-layers/package.json index 0ea2759df44..75080dfbf7b 100644 --- a/modules/geo-layers/package.json +++ b/modules/geo-layers/package.json @@ -46,8 +46,8 @@ "@loaders.gl/terrain": "^4.4.3", "@loaders.gl/tiles": "^4.4.3", "@loaders.gl/wms": "^4.4.3", - "@luma.gl/gltf": "^9.3.3", - "@luma.gl/shadertools": "^9.3.3", + "@luma.gl/gltf": "^9.3.4", + "@luma.gl/shadertools": "^9.3.4", "@math.gl/core": "^4.1.0", "@math.gl/culling": "^4.1.0", "@math.gl/web-mercator": "^4.1.0", @@ -62,8 +62,8 @@ "@deck.gl/layers": "~9.3.0-beta.2", "@deck.gl/mesh-layers": "~9.3.0-beta.2", "@loaders.gl/core": "^4.4.3", - "@luma.gl/core": "~9.3.3", - "@luma.gl/engine": "~9.3.3" + "@luma.gl/core": "~9.3.4", + "@luma.gl/engine": "~9.3.4" }, "gitHead": "13ace64fc2cee08c133afc882fc307253489a4e4" } diff --git a/modules/google-maps/package.json b/modules/google-maps/package.json index 13b2c4c7eba..4859e8a9678 100644 --- a/modules/google-maps/package.json +++ b/modules/google-maps/package.json @@ -38,14 +38,14 @@ "prepublishOnly": "npm run build-bundle && npm run build-bundle -- --env=dev" }, "dependencies": { - "@luma.gl/webgl": "^9.3.3", + "@luma.gl/webgl": "^9.3.4", "@math.gl/core": "^4.1.0", "@types/google.maps": "^3.48.6" }, "peerDependencies": { "@deck.gl/core": "~9.3.0-beta.2", - "@luma.gl/core": "~9.3.3", - "@luma.gl/webgl": "~9.3.3" + "@luma.gl/core": "~9.3.4", + "@luma.gl/webgl": "~9.3.4" }, "gitHead": "13ace64fc2cee08c133afc882fc307253489a4e4" } diff --git a/modules/google-maps/src/utils.ts b/modules/google-maps/src/utils.ts index ed999ddf84f..e0dca8f555d 100644 --- a/modules/google-maps/src/utils.ts +++ b/modules/google-maps/src/utils.ts @@ -49,6 +49,17 @@ export function createDeckInstance( // The basemap owns the shared canvas in interleaved mode; Deck only forwards the preferred DPR. // In non-interleaved mode this still feeds the luma canvas context that Deck creates. useDevicePixels: props.useDevicePixels ?? true, + ...(!props.gl && { + deviceProps: { + ...props.deviceProps, + createCanvasContext: { + ...(typeof props.deviceProps?.createCanvasContext === 'object' + ? props.deviceProps.createCanvasContext + : undefined), + pixelSizeSource: 'css-dpr' + } + } + }), style: props.interleaved ? null : {pointerEvents: 'none'}, parent: getContainer(overlay, props.style), views: new MapView({repeat: true}), diff --git a/modules/jupyter-widget/package.json b/modules/jupyter-widget/package.json index 8cd726665c4..48a0dc5c49e 100644 --- a/modules/jupyter-widget/package.json +++ b/modules/jupyter-widget/package.json @@ -42,8 +42,8 @@ "@loaders.gl/3d-tiles": "^4.4.3", "@loaders.gl/core": "^4.4.3", "@loaders.gl/csv": "^4.4.3", - "@luma.gl/core": "^9.3.3", - "@luma.gl/webgl": "^9.3.3", + "@luma.gl/core": "^9.3.4", + "@luma.gl/webgl": "^9.3.4", "d3-dsv": "^1.0.8", "mapbox-gl": "^1.13.2", "maplibre-gl": "^5.14.0" diff --git a/modules/layers/package.json b/modules/layers/package.json index eca25caabf4..3a1c8701401 100644 --- a/modules/layers/package.json +++ b/modules/layers/package.json @@ -39,7 +39,7 @@ "dependencies": { "@loaders.gl/images": "^4.4.3", "@loaders.gl/schema": "^4.4.3", - "@luma.gl/shadertools": "^9.3.3", + "@luma.gl/shadertools": "^9.3.4", "@mapbox/tiny-sdf": "^2.0.5", "@math.gl/core": "^4.1.0", "@math.gl/polygon": "^4.1.0", @@ -49,8 +49,8 @@ "peerDependencies": { "@deck.gl/core": "~9.3.0-beta.2", "@loaders.gl/core": "^4.4.3", - "@luma.gl/core": "~9.3.3", - "@luma.gl/engine": "~9.3.3" + "@luma.gl/core": "~9.3.4", + "@luma.gl/engine": "~9.3.4" }, "gitHead": "13ace64fc2cee08c133afc882fc307253489a4e4" } diff --git a/modules/main/package.json b/modules/main/package.json index 557333c974e..7a5350a8737 100644 --- a/modules/main/package.json +++ b/modules/main/package.json @@ -53,8 +53,8 @@ "@deck.gl/react": "9.3.0-beta.2", "@deck.gl/widgets": "9.3.0-beta.2", "@loaders.gl/core": "^4.4.3", - "@luma.gl/core": "^9.3.3", - "@luma.gl/engine": "^9.3.3" + "@luma.gl/core": "^9.3.4", + "@luma.gl/engine": "^9.3.4" }, "peerDependencies": { "@arcgis/core": "^4.0.0", diff --git a/modules/mapbox/package.json b/modules/mapbox/package.json index 2c2bfa8e9a2..c3e811b6af7 100644 --- a/modules/mapbox/package.json +++ b/modules/mapbox/package.json @@ -42,7 +42,7 @@ }, "peerDependencies": { "@deck.gl/core": "~9.3.0-beta.2", - "@luma.gl/core": "~9.3.3", + "@luma.gl/core": "~9.3.4", "@math.gl/web-mercator": "^4.1.0" }, "gitHead": "13ace64fc2cee08c133afc882fc307253489a4e4" diff --git a/modules/mapbox/src/mapbox-overlay.ts b/modules/mapbox/src/mapbox-overlay.ts index 00c2dfa470e..0d24a6c5749 100644 --- a/modules/mapbox/src/mapbox-overlay.ts +++ b/modules/mapbox/src/mapbox-overlay.ts @@ -108,6 +108,15 @@ export default class MapboxOverlay implements IControl { this._deck = new Deck({ ...this._props, parent: container, + deviceProps: { + ...this._props.deviceProps, + createCanvasContext: { + ...(typeof this._props.deviceProps?.createCanvasContext === 'object' + ? this._props.deviceProps.createCanvasContext + : undefined), + pixelSizeSource: 'css-dpr' + } + }, parameters: {...getDefaultParameters(map, false), ...this._props.parameters}, views: this._getViews(map), viewState: getViewState(map) diff --git a/modules/mesh-layers/package.json b/modules/mesh-layers/package.json index 411ec768bcd..7ef1031795c 100644 --- a/modules/mesh-layers/package.json +++ b/modules/mesh-layers/package.json @@ -40,15 +40,15 @@ "dependencies": { "@loaders.gl/gltf": "^4.4.3", "@loaders.gl/schema": "^4.4.3", - "@luma.gl/gltf": "^9.3.3", - "@luma.gl/shadertools": "^9.3.3" + "@luma.gl/gltf": "^9.3.4", + "@luma.gl/shadertools": "^9.3.4" }, "peerDependencies": { "@deck.gl/core": "~9.3.0-beta.2", - "@luma.gl/core": "~9.3.3", - "@luma.gl/engine": "~9.3.3", - "@luma.gl/gltf": "~9.3.3", - "@luma.gl/shadertools": "~9.3.3" + "@luma.gl/core": "~9.3.4", + "@luma.gl/engine": "~9.3.4", + "@luma.gl/gltf": "~9.3.4", + "@luma.gl/shadertools": "~9.3.4" }, "gitHead": "13ace64fc2cee08c133afc882fc307253489a4e4" } diff --git a/modules/test-utils/package.json b/modules/test-utils/package.json index e48f65fea17..3015aad2ce5 100644 --- a/modules/test-utils/package.json +++ b/modules/test-utils/package.json @@ -37,13 +37,13 @@ "src" ], "dependencies": { - "@luma.gl/test-utils": "^9.3.3", - "@luma.gl/webgl": "^9.3.3" + "@luma.gl/test-utils": "^9.3.4", + "@luma.gl/webgl": "^9.3.4" }, "peerDependencies": { "@deck.gl/core": "~9.3.0-beta.2", - "@luma.gl/core": "~9.3.3", - "@luma.gl/engine": "~9.3.3", + "@luma.gl/core": "~9.3.4", + "@luma.gl/engine": "~9.3.4", "@probe.gl/test-utils": "^4.1.1", "vitest": "^4.0.18" }, diff --git a/modules/widgets/package.json b/modules/widgets/package.json index 15572709a94..7efd0a1433a 100644 --- a/modules/widgets/package.json +++ b/modules/widgets/package.json @@ -47,7 +47,7 @@ }, "peerDependencies": { "@deck.gl/core": "~9.3.0-beta.2", - "@luma.gl/core": "~9.3.3" + "@luma.gl/core": "~9.3.4" }, "gitHead": "13ace64fc2cee08c133afc882fc307253489a4e4" } diff --git a/package.json b/package.json index 8092e4137ca..21ab24000c1 100644 --- a/package.json +++ b/package.json @@ -47,10 +47,10 @@ "@floating-ui/dom": "^1.7.5", "@loaders.gl/csv": "^4.4.3", "@loaders.gl/polyfills": "^4.4.3", - "@luma.gl/core": "^9.3.3", - "@luma.gl/effects": "^9.3.3", - "@luma.gl/webgl": "^9.3.3", - "@luma.gl/webgpu": "^9.3.3", + "@luma.gl/core": "^9.3.4", + "@luma.gl/effects": "^9.3.4", + "@luma.gl/webgl": "^9.3.4", + "@luma.gl/webgpu": "^9.3.4", "@math.gl/proj4": "^4.1.0", "@probe.gl/bench": "^4.1.1", "@probe.gl/test-utils": "^4.1.1", diff --git a/test/apps/fractional-zoom-alignment/app.jsx b/test/apps/fractional-zoom-alignment/app.jsx new file mode 100644 index 00000000000..4b812114e09 --- /dev/null +++ b/test/apps/fractional-zoom-alignment/app.jsx @@ -0,0 +1,125 @@ +// deck.gl +// SPDX-License-Identifier: MIT +// Copyright (c) vis.gl contributors +// +// Test app for https://github.com/visgl/deck.gl/issues/10173 +// Change browser zoom (Cmd+/Cmd-) to verify deck.gl overlay stays aligned with Mapbox basemap. + +import React from 'react'; +import {createRoot} from 'react-dom/client'; +import {Map, useControl} from 'react-map-gl/mapbox'; +import {ScatterplotLayer} from 'deck.gl'; +import {MapboxOverlay as DeckOverlay} from '@deck.gl/mapbox'; +import 'mapbox-gl/dist/mapbox-gl.css'; + +const MAPBOX_TOKEN = process.env.MapboxAccessToken; // eslint-disable-line + +const INITIAL_VIEW_STATE = { + longitude: -80, + latitude: 40, + zoom: 3 +}; + +const data = [ + {pos: [-80.0133149, 40.4554421]}, + {pos: [-8.0133149, 40.4554421]}, + {pos: [-84.0133149, 40.4554421]}, + {pos: [-86.0133149, 40.4554421]}, + {pos: [-88.0133149, 40.4554421]}, + {pos: [-80.0133149, 42.4554421]}, + {pos: [-80.0133149, 44.4554421]}, + {pos: [-80.0133149, 46.4554421]}, + {pos: [-80.0133149, 48.4554421]} +]; + +const layers = [ + new ScatterplotLayer({ + id: 'test', + data, + getPosition: d => d.pos, + pickable: true, + opacity: 1.0, + stroked: true, + filled: true, + radiusScale: 6, + radiusMinPixels: 1, + radiusMaxPixels: 1000, + lineWidthMinPixels: 1, + getRadius: 10000, + getFillColor: [255, 140, 0], + getLineColor: [0, 0, 0] + }) +]; + +function DeckGLOverlay(props) { + const overlay = useControl(() => { + const o = new DeckOverlay(props); + window.__deckOverlay = o; + return o; + }); + overlay.setProps(props); + return null; +} + +function DiagPanel() { + const [info, setInfo] = React.useState(''); + React.useEffect(() => { + const update = () => { + const deck = window.__deckOverlay?._deck; + const mapCanvas = document.querySelector('.mapboxgl-canvas'); + const deckCanvas = document.getElementById('deckgl-overlay'); + if (!deck || !mapCanvas || !deckCanvas) return; + const lines = [ + `DPR: ${window.devicePixelRatio.toFixed(4)}`, + `Map draw: ${mapCanvas.width}x${mapCanvas.height}`, + `Deck draw: ${deckCanvas.width}x${deckCanvas.height}`, + `Map CSS: ${mapCanvas.clientWidth}x${mapCanvas.clientHeight}`, + `Deck CSS: ${deckCanvas.clientWidth}x${deckCanvas.clientHeight}`, + `Deck viewport: ${deck.width}x${deck.height}`, + `Match: ${mapCanvas.width === deckCanvas.width && mapCanvas.height === deckCanvas.height}` + ]; + setInfo(lines.join('\n')); + }; + const id = setInterval(update, 200); + return () => clearInterval(id); + }, []); + return ( +
+      {info}
+    
+ ); +} + +function Root() { + return ( + <> + + + + + + ); +} + +/* global document */ +createRoot(document.getElementById('root')).render(); diff --git a/test/apps/fractional-zoom-alignment/index.html b/test/apps/fractional-zoom-alignment/index.html new file mode 100644 index 00000000000..edc94811dbe --- /dev/null +++ b/test/apps/fractional-zoom-alignment/index.html @@ -0,0 +1,24 @@ + + + + + deck.gl Test: Fractional Zoom Alignment (#10173) + + + +
+ + + diff --git a/test/apps/fractional-zoom-alignment/package.json b/test/apps/fractional-zoom-alignment/package.json new file mode 100644 index 00000000000..eefee2edbf4 --- /dev/null +++ b/test/apps/fractional-zoom-alignment/package.json @@ -0,0 +1,16 @@ +{ + "scripts": { + "start": "vite", + "start-local": "vite --config ../vite.config.local.mjs" + }, + "dependencies": { + "deck.gl": "^9.0.0", + "mapbox-gl": "^3.0.0", + "react": "^18.0.0", + "react-dom": "^18.0.0", + "react-map-gl": "^8.0.0" + }, + "devDependencies": { + "vite": "^7.3.3" + } +} diff --git a/test/apps/fractional-zoom-alignment/vite.config.mjs b/test/apps/fractional-zoom-alignment/vite.config.mjs new file mode 100644 index 00000000000..138a980ea08 --- /dev/null +++ b/test/apps/fractional-zoom-alignment/vite.config.mjs @@ -0,0 +1,11 @@ +import {defineConfig} from 'vite'; + +export default defineConfig({ + define: { + 'process.env.MapboxAccessToken': JSON.stringify(process.env.MapboxAccessToken) + }, + server: { + open: true, + port: 8080 + } +}); diff --git a/yarn.lock b/yarn.lock index 0d36a054b98..c0c9bb6e303 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1571,10 +1571,10 @@ resolved "https://registry.yarnpkg.com/@luma.gl/constants/-/constants-9.0.27.tgz#65d65fa1ea407fd5f74bfa92dfba43261be33763" integrity sha512-NBkMim3u0xt4UDe4e69L6E/pq5XNxfX60GrggJDzfilVRfIbx5XwKhBXTyNjjtNEk4oc6uYLHWd/05jGRHcfLg== -"@luma.gl/core@^9.3.3": - version "9.3.3" - resolved "https://registry.yarnpkg.com/@luma.gl/core/-/core-9.3.3.tgz#6b2e89fb4b55d60aaa121ff4e0868452b1322f9b" - integrity sha512-jCFm2htvrVpcXIy85TBTF1ROgMfknKnfw2OH+Vydr41hiCFd6nqr79gM3f2uhaNkal0BghFNqF3qDioKiUWtew== +"@luma.gl/core@^9.3.4": + version "9.3.5" + resolved "https://registry.yarnpkg.com/@luma.gl/core/-/core-9.3.5.tgz#502e6cc638244559c49a00592a1153e715d81a51" + integrity sha512-wWQNH9eZiaW4fYV8s30al8Ofe5S6UCyqdXC4qwIk0lAoz00jicWDVFW/EOU1Mu1lVUkPQaT5yfUgcy1gOSMprQ== dependencies: "@math.gl/types" "^4.1.0" "@probe.gl/env" "^4.1.1" @@ -1582,62 +1582,62 @@ "@probe.gl/stats" "^4.1.1" "@types/offscreencanvas" "^2019.7.3" -"@luma.gl/effects@^9.3.3": - version "9.3.3" - resolved "https://registry.yarnpkg.com/@luma.gl/effects/-/effects-9.3.3.tgz#2241d6a25d4239d1c3559287b0c58118b1b1f8d5" - integrity sha512-OTCZTjrY5MG4q6bdRR69+1VQ/f6pbEwddOycUYHb+llNBWxdaBha35vgzHTOt718YbygrT0F/r22GQAgShOKsw== +"@luma.gl/effects@^9.3.4": + version "9.3.5" + resolved "https://registry.yarnpkg.com/@luma.gl/effects/-/effects-9.3.5.tgz#56d8b16f9aedc9b654757a44d62c5e00cef02c57" + integrity sha512-TkHaVygDHYDupOcApyCu+N/6r4uA/snARMH6XiCoKbb2eYyRdizX2XdpDlk4ixq/tfoDn+G5VMPVd8PRih/+lw== dependencies: "@math.gl/core" "^4.1.0" "@math.gl/types" "^4.1.0" -"@luma.gl/engine@^9.3.3": - version "9.3.3" - resolved "https://registry.yarnpkg.com/@luma.gl/engine/-/engine-9.3.3.tgz#50e68ca3a1a3092df25f9dbb4f379f0d144427cb" - integrity sha512-StmMTzUcUlpKMU3wvWU48A6OQyphptD9zVGBsSkK6iHIBdtBKlOcmqRkyfvRouo8JHtlrnoJDHLVKhxorwhGAg== +"@luma.gl/engine@^9.3.4": + version "9.3.5" + resolved "https://registry.yarnpkg.com/@luma.gl/engine/-/engine-9.3.5.tgz#063f933dc602d5a584b8976d25c1542bb08ae15a" + integrity sha512-YdtCBPh2TcFRblBZTguFBgynLfAoqBI8u7Nb4jux2hZX8E8PIaDWzS+dWiNSJ8Um67EFXyKlMf1k2CEkmNiZIQ== dependencies: "@math.gl/core" "^4.1.0" "@math.gl/types" "^4.1.0" "@probe.gl/log" "^4.1.1" "@probe.gl/stats" "^4.1.1" -"@luma.gl/gltf@^9.3.3": - version "9.3.3" - resolved "https://registry.yarnpkg.com/@luma.gl/gltf/-/gltf-9.3.3.tgz#f43f3f7fea6ae0f602aa4c04d4f3fe7bb0c2757f" - integrity sha512-/wty4PHYeQelXvDJesyuMdqtAfpL1XcyEQffcEAwKwu9w7JdkygSShdUwTT1iF7no0uGKuWgq824dVC9WBBQcw== +"@luma.gl/gltf@^9.3.4": + version "9.3.5" + resolved "https://registry.yarnpkg.com/@luma.gl/gltf/-/gltf-9.3.5.tgz#26420971f89a9f95cec0d4dfdfbea9cbadd0259d" + integrity sha512-uLzXk2hDyzocME3SJquDHDZDm5HALRV2C+TnEXmKnp1Y6XNNR5aQF7n5DbvdCMQppgtVrMwRaMAvSgNs83nEYQ== dependencies: "@loaders.gl/core" "~4.4.0" "@loaders.gl/gltf" "~4.4.0" "@loaders.gl/textures" "~4.4.0" "@math.gl/core" "^4.1.0" -"@luma.gl/shadertools@^9.3.3": - version "9.3.3" - resolved "https://registry.yarnpkg.com/@luma.gl/shadertools/-/shadertools-9.3.3.tgz#861b4d56a68bb79ecf970a843623a6299f5569dc" - integrity sha512-4ZfG4/Utix951vqyiG/JIx+Eg+GMNwOxgr/07/i0gf7bK1gJZIEQ5BxVcDw4MCQfdoVlGPGzl0cQKbdqBvaCAQ== +"@luma.gl/shadertools@^9.3.4": + version "9.3.5" + resolved "https://registry.yarnpkg.com/@luma.gl/shadertools/-/shadertools-9.3.5.tgz#3b4a29094c21bf15bed3ab91d9a1a7f4ca4de516" + integrity sha512-fQNsGijMAT/daYhddjUmoAya69/yW6aOk+mGrLytWEmXGJLCJKMyWx6N+/kNSoMHfonXRIlkryoQ6jZJJnV3Wg== dependencies: "@math.gl/core" "^4.1.0" "@math.gl/types" "^4.1.0" -"@luma.gl/test-utils@^9.3.3": - version "9.3.3" - resolved "https://registry.yarnpkg.com/@luma.gl/test-utils/-/test-utils-9.3.3.tgz#e1ffb81065d39609bbe08a955e7be0e83e45b49c" - integrity sha512-ilJ5rEeMx21go6V8Y4TV0AA+tu+7qMZ5mVutqo1elGp3Xjgcpaz4uqSfRSETCKBsyBRs7jcBH3jCYiKFpzrFGA== +"@luma.gl/test-utils@^9.3.4": + version "9.3.5" + resolved "https://registry.yarnpkg.com/@luma.gl/test-utils/-/test-utils-9.3.5.tgz#4357a094373c7e9fdea171b5cf80fc174e3d0e6e" + integrity sha512-EyS/uueWTviXDMQLB6N2ohihQ/Nhv4tdeoRrrksnYY88KOzqJdTuXZoDezwgMMCbreQvuNEmHUG/vPqRRFGXjw== dependencies: "@probe.gl/env" "^4.1.1" "@probe.gl/stats" "^4.1.1" -"@luma.gl/webgl@^9.3.3": - version "9.3.3" - resolved "https://registry.yarnpkg.com/@luma.gl/webgl/-/webgl-9.3.3.tgz#502b275da952f49bdea4d2f70751e52266aa19e5" - integrity sha512-X+aavdP5o6VFHSA0es9gKZTT145jfcFbhKJt/gwJrptnKNoIW4+Y37ZEpCo1AzAnr+FQCxjgcM2kOCpoWMfSVA== +"@luma.gl/webgl@^9.3.4": + version "9.3.5" + resolved "https://registry.yarnpkg.com/@luma.gl/webgl/-/webgl-9.3.5.tgz#ea3caf532b4d7af4d4f4ea3d2e857ba5f26d8072" + integrity sha512-dxx7rsDI1fx3rzCLrdbAmG0ILejvpYEyKtqbTRAsSuPY/4gKnsXGi8n5GdlxJigA/3d4DbVRM8U7RV7l/PqmlA== dependencies: "@math.gl/types" "^4.1.0" "@probe.gl/env" "^4.1.1" -"@luma.gl/webgpu@^9.3.3": - version "9.3.3" - resolved "https://registry.yarnpkg.com/@luma.gl/webgpu/-/webgpu-9.3.3.tgz#a63656e5452ca87aaf4471a490f0783c91241b08" - integrity sha512-/6lkAU7iqhHN+awfMzlKLembUE4rvZyWrBJ2q549DcUzshzhoZh9v4r7RV6dCx+X0nkVnhP3v2zXkduuRRYJUg== +"@luma.gl/webgpu@^9.3.4": + version "9.3.5" + resolved "https://registry.yarnpkg.com/@luma.gl/webgpu/-/webgpu-9.3.5.tgz#030304f961ca35bef78486b6e823d83bdf89f87f" + integrity sha512-boBBjHTZ8thmwGo5YfmTQUPukY3r15tUp88v7Z2pmUQ5TrHQ+c7QXBj0WU9ipVclIzt7fTkQWCw2ueEWoVde/g== dependencies: "@probe.gl/env" "^4.1.1" "@webgpu/types" "^0.1.69"