diff --git a/modules/aggregation-layers/package.json b/modules/aggregation-layers/package.json index 2be9fbfa02a..7981efe8836 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.2", + "@luma.gl/shadertools": "^9.3.3", "@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-alpha.1", "@deck.gl/layers": "~9.3.0-alpha.1", - "@luma.gl/core": "~9.3.2", - "@luma.gl/engine": "~9.3.2" + "@luma.gl/core": "~9.3.3", + "@luma.gl/engine": "~9.3.3" }, "gitHead": "13ace64fc2cee08c133afc882fc307253489a4e4" } diff --git a/modules/arcgis/package.json b/modules/arcgis/package.json index 6b0e936132d..4580aca2959 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-alpha.1", - "@luma.gl/core": "~9.3.2", - "@luma.gl/engine": "~9.3.2", - "@luma.gl/webgl": "~9.3.2" + "@luma.gl/core": "~9.3.3", + "@luma.gl/engine": "~9.3.3", + "@luma.gl/webgl": "~9.3.3" }, "devDependencies": { "@arcgis/core": "^4.21.0" diff --git a/modules/arcgis/src/commons.ts b/modules/arcgis/src/commons.ts index ae7b9aa5d8c..23bac229973 100644 --- a/modules/arcgis/src/commons.ts +++ b/modules/arcgis/src/commons.ts @@ -19,6 +19,7 @@ export type RenderResources = { texture: Texture; model: Model; fbo: Framebuffer; + _externalFramebuffer?: {handle: WebGLFramebuffer; wrapper: Framebuffer}; }; async function createDeckInstance(gl: WebGL2RenderingContext): Promise<{ @@ -153,8 +154,6 @@ export function render( const {model, deck, fbo} = resources; const device = model.device; if (device instanceof WebGLDevice) { - // @ts-ignore device.getParametersWebGL should return `any` not `void`? - const screenFbo: Framebuffer = device.getParametersWebGL(GL.FRAMEBUFFER_BINDING); const {width, height, ...viewState} = viewport; /* global window */ @@ -162,6 +161,22 @@ export function render( const pixelWidth = Math.round(width * dpr); const pixelHeight = Math.round(height * dpr); + // Wrap the external framebuffer handle so luma.gl treats it as a proper Framebuffer resource. + const externalFbo = device.getParametersWebGL(GL.FRAMEBUFFER_BINDING); + let screenFbo: Framebuffer | null = null; + if (externalFbo) { + if (resources._externalFramebuffer?.handle !== externalFbo) { + resources._externalFramebuffer?.wrapper.destroy(); + const wrapper = device.createFramebuffer({ + handle: externalFbo, + width: pixelWidth, + height: pixelHeight + }); + resources._externalFramebuffer = {handle: externalFbo, wrapper}; + } + screenFbo = resources._externalFramebuffer!.wrapper; + } + fbo.resize({width: pixelWidth, height: pixelHeight}); deck.setProps({viewState}); @@ -189,4 +204,5 @@ export function finalizeResources(resources: RenderResources) { resources.model.destroy(); resources.fbo.destroy(); resources.texture.destroy(); + resources._externalFramebuffer?.wrapper.destroy(); } diff --git a/modules/carto/package.json b/modules/carto/package.json index c0bc6c422b5..d4c32d8700f 100644 --- a/modules/carto/package.json +++ b/modules/carto/package.json @@ -49,8 +49,8 @@ "@loaders.gl/mvt": "^4.4.1", "@loaders.gl/schema": "^4.4.1", "@loaders.gl/tiles": "^4.4.1", - "@luma.gl/core": "^9.3.2", - "@luma.gl/shadertools": "^9.3.2", + "@luma.gl/core": "^9.3.3", + "@luma.gl/shadertools": "^9.3.3", "@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-alpha.1", "@deck.gl/layers": "~9.3.0-alpha.1", "@loaders.gl/core": "^4.4.1", - "@luma.gl/core": "~9.3.2" + "@luma.gl/core": "~9.3.3" }, "gitHead": "13ace64fc2cee08c133afc882fc307253489a4e4" } diff --git a/modules/core/package.json b/modules/core/package.json index 060463571a1..8e975b03b06 100644 --- a/modules/core/package.json +++ b/modules/core/package.json @@ -42,10 +42,10 @@ "dependencies": { "@loaders.gl/core": "^4.4.1", "@loaders.gl/images": "^4.4.1", - "@luma.gl/core": "^9.3.2", - "@luma.gl/engine": "^9.3.2", - "@luma.gl/shadertools": "^9.3.2", - "@luma.gl/webgl": "^9.3.2", + "@luma.gl/core": "^9.3.3", + "@luma.gl/engine": "^9.3.3", + "@luma.gl/shadertools": "^9.3.3", + "@luma.gl/webgl": "^9.3.3", "@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 d2356f02e20..a617ad805bc 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.2", - "@luma.gl/webgl": "^9.3.2", + "@luma.gl/shadertools": "^9.3.3", + "@luma.gl/webgl": "^9.3.3", "@math.gl/core": "^4.1.0" }, "peerDependencies": { "@deck.gl/core": "~9.3.0-alpha.1", - "@luma.gl/core": "~9.3.2", - "@luma.gl/engine": "~9.3.2" + "@luma.gl/core": "~9.3.3", + "@luma.gl/engine": "~9.3.3" }, "gitHead": "13ace64fc2cee08c133afc882fc307253489a4e4" } diff --git a/modules/geo-layers/package.json b/modules/geo-layers/package.json index 79d42cd476b..f2b860b83f3 100644 --- a/modules/geo-layers/package.json +++ b/modules/geo-layers/package.json @@ -46,8 +46,8 @@ "@loaders.gl/terrain": "^4.4.1", "@loaders.gl/tiles": "^4.4.1", "@loaders.gl/wms": "^4.4.1", - "@luma.gl/gltf": "^9.3.2", - "@luma.gl/shadertools": "^9.3.2", + "@luma.gl/gltf": "^9.3.3", + "@luma.gl/shadertools": "^9.3.3", "@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-alpha.1", "@deck.gl/mesh-layers": "~9.3.0-alpha.1", "@loaders.gl/core": "^4.4.1", - "@luma.gl/core": "~9.3.2", - "@luma.gl/engine": "~9.3.2" + "@luma.gl/core": "~9.3.3", + "@luma.gl/engine": "~9.3.3" }, "gitHead": "13ace64fc2cee08c133afc882fc307253489a4e4" } diff --git a/modules/google-maps/package.json b/modules/google-maps/package.json index 61352b4127c..5df6360be8c 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.2", + "@luma.gl/webgl": "^9.3.3", "@math.gl/core": "^4.1.0", "@types/google.maps": "^3.48.6" }, "peerDependencies": { "@deck.gl/core": "~9.3.0-alpha.1", - "@luma.gl/core": "~9.3.2", - "@luma.gl/webgl": "~9.3.2" + "@luma.gl/core": "~9.3.3", + "@luma.gl/webgl": "~9.3.3" }, "gitHead": "13ace64fc2cee08c133afc882fc307253489a4e4" } diff --git a/modules/google-maps/src/google-maps-overlay.ts b/modules/google-maps/src/google-maps-overlay.ts index a16af2b3734..ba9beaf13cd 100644 --- a/modules/google-maps/src/google-maps-overlay.ts +++ b/modules/google-maps/src/google-maps-overlay.ts @@ -16,7 +16,7 @@ import { import {Deck} from '@deck.gl/core'; import type {DeckProps, MapViewState} from '@deck.gl/core'; -import type {Device} from '@luma.gl/core'; +import type {Device, Framebuffer} from '@luma.gl/core'; const HIDE_ALL_LAYERS = () => false; const GL_STATE: GLParameters = { depthMask: true, @@ -55,6 +55,10 @@ export default class GoogleMapsOverlay { private _deck: Deck | null = null; private _overlay: google.maps.WebGLOverlayView | google.maps.OverlayView | null = null; private _positioningOverlay: google.maps.OverlayView | null = null; + private _externalFramebuffer: { + handle: WebGLFramebuffer; + wrapper: import('@luma.gl/core').Framebuffer; + } | null = null; constructor(props: GoogleMapsOverlayProps) { this.setProps({...defaultProps, ...props}); @@ -320,9 +324,23 @@ export default class GoogleMapsOverlay { const device: Device = deck.device; // As an optimization, some renders are to an separate framebuffer - // which we need to pass onto deck + // which we need to pass onto deck. Wrap external handle so luma.gl + // treats it as a proper Framebuffer resource. if (device instanceof WebGLDevice) { - const _framebuffer = device.getParametersWebGL(GL.FRAMEBUFFER_BINDING); + const externalFbo = device.getParametersWebGL(GL.FRAMEBUFFER_BINDING); + let _framebuffer: Framebuffer | null = null; + if (externalFbo) { + if (this._externalFramebuffer?.handle !== externalFbo) { + this._externalFramebuffer?.wrapper.destroy(); + const wrapper = device.createFramebuffer({ + handle: externalFbo, + width: gl.canvas.width, + height: gl.canvas.height + }); + this._externalFramebuffer = {handle: externalFbo, wrapper}; + } + _framebuffer = this._externalFramebuffer!.wrapper; + } deck.setProps({_framebuffer}); } diff --git a/modules/jupyter-widget/package.json b/modules/jupyter-widget/package.json index 4e253039ea5..c2cb189db4b 100644 --- a/modules/jupyter-widget/package.json +++ b/modules/jupyter-widget/package.json @@ -42,8 +42,8 @@ "@loaders.gl/3d-tiles": "^4.4.1", "@loaders.gl/core": "^4.4.1", "@loaders.gl/csv": "^4.4.1", - "@luma.gl/core": "^9.3.2", - "@luma.gl/webgl": "^9.3.2", + "@luma.gl/core": "^9.3.3", + "@luma.gl/webgl": "^9.3.3", "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 467c5d4354c..7fb147c8ed4 100644 --- a/modules/layers/package.json +++ b/modules/layers/package.json @@ -39,7 +39,7 @@ "dependencies": { "@loaders.gl/images": "^4.4.1", "@loaders.gl/schema": "^4.4.1", - "@luma.gl/shadertools": "^9.3.2", + "@luma.gl/shadertools": "^9.3.3", "@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-alpha.1", "@loaders.gl/core": "^4.4.1", - "@luma.gl/core": "~9.3.2", - "@luma.gl/engine": "~9.3.2" + "@luma.gl/core": "~9.3.3", + "@luma.gl/engine": "~9.3.3" }, "gitHead": "13ace64fc2cee08c133afc882fc307253489a4e4" } diff --git a/modules/main/package.json b/modules/main/package.json index 356463d48ae..fa0e8ec18fe 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.1", - "@luma.gl/core": "^9.3.2", - "@luma.gl/engine": "^9.3.2" + "@luma.gl/core": "^9.3.3", + "@luma.gl/engine": "^9.3.3" }, "peerDependencies": { "@arcgis/core": "^4.0.0", diff --git a/modules/mapbox/package.json b/modules/mapbox/package.json index b8e5576e167..aee1e12c139 100644 --- a/modules/mapbox/package.json +++ b/modules/mapbox/package.json @@ -42,7 +42,7 @@ }, "peerDependencies": { "@deck.gl/core": "~9.3.0-alpha.1", - "@luma.gl/core": "~9.3.2", + "@luma.gl/core": "~9.3.3", "@math.gl/web-mercator": "^4.1.0" }, "gitHead": "13ace64fc2cee08c133afc882fc307253489a4e4" diff --git a/modules/mesh-layers/package.json b/modules/mesh-layers/package.json index 6013e3d6b14..6c9c5d1dede 100644 --- a/modules/mesh-layers/package.json +++ b/modules/mesh-layers/package.json @@ -40,15 +40,15 @@ "dependencies": { "@loaders.gl/gltf": "^4.4.1", "@loaders.gl/schema": "^4.4.1", - "@luma.gl/gltf": "^9.3.2", - "@luma.gl/shadertools": "^9.3.2" + "@luma.gl/gltf": "^9.3.3", + "@luma.gl/shadertools": "^9.3.3" }, "peerDependencies": { "@deck.gl/core": "~9.3.0-alpha.1", - "@luma.gl/core": "~9.3.2", - "@luma.gl/engine": "~9.3.2", - "@luma.gl/gltf": "~9.3.2", - "@luma.gl/shadertools": "~9.3.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" }, "gitHead": "13ace64fc2cee08c133afc882fc307253489a4e4" } diff --git a/modules/test-utils/package.json b/modules/test-utils/package.json index 9a6681b2f76..751fc6aea1f 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.2", - "@luma.gl/webgl": "^9.3.2" + "@luma.gl/test-utils": "^9.3.3", + "@luma.gl/webgl": "^9.3.3" }, "peerDependencies": { "@deck.gl/core": "~9.3.0-alpha.1", - "@luma.gl/core": "~9.3.2", - "@luma.gl/engine": "~9.3.2", + "@luma.gl/core": "~9.3.3", + "@luma.gl/engine": "~9.3.3", "@probe.gl/test-utils": "^4.1.1", "vitest": "^4.0.18" }, diff --git a/modules/widgets/package.json b/modules/widgets/package.json index f5fe731dcaa..8a66cf56096 100644 --- a/modules/widgets/package.json +++ b/modules/widgets/package.json @@ -47,7 +47,7 @@ }, "peerDependencies": { "@deck.gl/core": "~9.3.0-alpha.1", - "@luma.gl/core": "~9.3.2" + "@luma.gl/core": "~9.3.3" }, "gitHead": "13ace64fc2cee08c133afc882fc307253489a4e4" } diff --git a/package.json b/package.json index 3e664516a5e..dd3bd48403d 100644 --- a/package.json +++ b/package.json @@ -47,10 +47,10 @@ "@floating-ui/dom": "^1.7.5", "@loaders.gl/csv": "^4.4.1", "@loaders.gl/polyfills": "^4.4.1", - "@luma.gl/core": "^9.3.2", - "@luma.gl/effects": "^9.3.2", - "@luma.gl/webgl": "^9.3.2", - "@luma.gl/webgpu": "^9.3.2", + "@luma.gl/core": "^9.3.3", + "@luma.gl/effects": "^9.3.3", + "@luma.gl/webgl": "^9.3.3", + "@luma.gl/webgpu": "^9.3.3", "@math.gl/proj4": "^4.1.0", "@probe.gl/bench": "^4.1.1", "@probe.gl/test-utils": "^4.1.1", diff --git a/test/modules/react/deckgl.spec.ts b/test/modules/react/deckgl.spec.ts index 9643089fd1c..7f0f43ee628 100644 --- a/test/modules/react/deckgl.spec.ts +++ b/test/modules/react/deckgl.spec.ts @@ -212,9 +212,12 @@ test('DeckGL#uncontrolled view state', async () => { }) ); }); - await vi.waitFor(() => { - expect(onTransitionEnd).toHaveBeenCalled(); - }); + await vi.waitFor( + () => { + expect(onTransitionEnd).toHaveBeenCalled(); + }, + {timeout: 5000} + ); expect(onViewStateChange.mock.lastCall?.[0]?.viewState.longitude).toBeCloseTo(0); expect(onViewStateChange.mock.lastCall?.[0]?.viewState.latitude).toBeCloseTo(0); @@ -227,7 +230,7 @@ test('DeckGL#uncontrolled view state', async () => { container.remove(); }); -test('DeckGL#uncontrolled view state', async () => { +test('DeckGL#controlled view state', async () => { const ref = createRef(); const container = document.createElement('div'); document.body.append(container); @@ -271,9 +274,12 @@ test('DeckGL#uncontrolled view state', async () => { ); }); - await vi.waitFor(() => { - expect(onTransitionEnd).toHaveBeenCalled(); - }); + await vi.waitFor( + () => { + expect(onTransitionEnd).toHaveBeenCalled(); + }, + {timeout: 5000} + ); expect(onViewStateChange.mock.lastCall?.[0]?.viewState.longitude).toBeCloseTo(0); expect(onViewStateChange.mock.lastCall?.[0]?.viewState.latitude).toBeCloseTo(0); diff --git a/yarn.lock b/yarn.lock index 2bee3f8c07a..6e4f49a2d65 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1485,10 +1485,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.2": - version "9.3.2" - resolved "https://registry.yarnpkg.com/@luma.gl/core/-/core-9.3.2.tgz#19a82c36eb32a6da9186259bb4983d583f9661c0" - integrity sha512-MIsOXnzoGGlbACTC9PVFxsEba6zJEj7Y5tghK/ivpIEqyzLF5bL/DlrVxG3SzJOeBqBMBgF6n5sXK7gIJ3lXvw== +"@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== dependencies: "@math.gl/types" "^4.1.0" "@probe.gl/env" "^4.1.1" @@ -1496,62 +1496,62 @@ "@probe.gl/stats" "^4.1.1" "@types/offscreencanvas" "^2019.7.3" -"@luma.gl/effects@^9.3.2": - version "9.3.2" - resolved "https://registry.yarnpkg.com/@luma.gl/effects/-/effects-9.3.2.tgz#16b36c5677c06c62e9eddd70919229e9d618ea7e" - integrity sha512-WCyIgd4vMwLq4ITFaGt5xYGpyuKXDmNFH+g2FGCaTq2DdjASu7fNkm/Di0oWFLp18BqaU/hUjZWnKpC28SQG6Q== +"@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== dependencies: "@math.gl/core" "^4.1.0" "@math.gl/types" "^4.1.0" -"@luma.gl/engine@^9.3.2": - version "9.3.2" - resolved "https://registry.yarnpkg.com/@luma.gl/engine/-/engine-9.3.2.tgz#1971869bf75cc92dedd3ec2e377dd5ed3e59106e" - integrity sha512-Qo7JcmXgDFq/8hu1uR4sC1qnUVXW3jx//Mki4T3jCPig1BtcfrLSsmNDu2/u295ls/Mym2a9fvTnXRFejJMKig== +"@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== 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.2": - version "9.3.2" - resolved "https://registry.yarnpkg.com/@luma.gl/gltf/-/gltf-9.3.2.tgz#bea9f698babd53c303b3895c8c77c08583aeaf4f" - integrity sha512-ANwjvblG9Ajkb80eMd4V0s/O6qv/zsT8NYAK7dREiMghOD2wlxwqTna/Og31Lud5u/IndpcNykRPGnpofeAXfA== +"@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== 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.2": - version "9.3.2" - resolved "https://registry.yarnpkg.com/@luma.gl/shadertools/-/shadertools-9.3.2.tgz#0c192df68c41f8c4fa0c85b724e94e4371e2613e" - integrity sha512-gVydhOflR3w7H+F775ubNNWWO9C7BOg3sCGf+R9MdiT4S7iitkzmI3xYkb/ngDjJmzqCx72oBj4RgQV/hV7A8A== +"@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== dependencies: "@math.gl/core" "^4.1.0" "@math.gl/types" "^4.1.0" -"@luma.gl/test-utils@^9.3.2": - version "9.3.2" - resolved "https://registry.yarnpkg.com/@luma.gl/test-utils/-/test-utils-9.3.2.tgz#0d44c90a767c6d8fb4b10836da916a60e1050968" - integrity sha512-hLal4m8TgqvanhQ/zx35HZE6RQCc2aLxzO0Gsh9WXOMqfEv/L+BqokNc5LJxr19O5JToWiPKViL5zystKQ0JKA== +"@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== dependencies: "@probe.gl/env" "^4.1.1" "@probe.gl/stats" "^4.1.1" -"@luma.gl/webgl@^9.3.2": - version "9.3.2" - resolved "https://registry.yarnpkg.com/@luma.gl/webgl/-/webgl-9.3.2.tgz#ee09ee73924af3211523beeca4f9fdaafce210ad" - integrity sha512-vYHbTR5UC8O3yMPkOw8peRwmwwX0DMp9CHNLYckfxoSIOQA35eNUQG5hyZWZzma5fmJpfDMTwuJkoA99hhEkew== +"@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== dependencies: "@math.gl/types" "^4.1.0" "@probe.gl/env" "^4.1.1" -"@luma.gl/webgpu@^9.3.2": - version "9.3.2" - resolved "https://registry.yarnpkg.com/@luma.gl/webgpu/-/webgpu-9.3.2.tgz#793db92894ae0f6d6d0c81831172cb10fd45df38" - integrity sha512-Ahn46qq6o9cMqR1GvwyLKl86MTAwClATN2dBBUOUfx0pR5wiQhSVOJfYzV+eFACKdahq5bt6PfUT013Jv1MUgQ== +"@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== dependencies: "@probe.gl/env" "^4.1.1" "@webgpu/types" "^0.1.69"