From 97548a5a4a3ef39beaa152a3856c396cf9fbf427 Mon Sep 17 00:00:00 2001 From: Artur Bilski Date: Tue, 2 Sep 2025 08:53:58 +0200 Subject: [PATCH 1/3] Defer getting the context. --- .../webgpu/android/src/main/java/com/webgpu/WebGPUView.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/webgpu/android/src/main/java/com/webgpu/WebGPUView.java b/packages/webgpu/android/src/main/java/com/webgpu/WebGPUView.java index 1531befac..e526dbc3f 100644 --- a/packages/webgpu/android/src/main/java/com/webgpu/WebGPUView.java +++ b/packages/webgpu/android/src/main/java/com/webgpu/WebGPUView.java @@ -32,11 +32,11 @@ public void setContextId(int contextId) { } public void setTransparent(boolean value) { - Context ctx = getContext(); if (value != mTransparent || mView == null) { if (mView != null) { removeView(mView); } + Context ctx = getContext(); mTransparent = value; if (mTransparent) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) { From f218d627589954b8b222c8f03bdf9c96fe2c629f Mon Sep 17 00:00:00 2001 From: Artur Bilski Date: Wed, 3 Sep 2025 10:47:18 +0200 Subject: [PATCH 2/3] Assert positive dimensions of `ImageReader` instance. --- .../main/java/com/webgpu/WebGPUAHBView.java | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/packages/webgpu/android/src/main/java/com/webgpu/WebGPUAHBView.java b/packages/webgpu/android/src/main/java/com/webgpu/WebGPUAHBView.java index 073b7351e..d7dbed87f 100644 --- a/packages/webgpu/android/src/main/java/com/webgpu/WebGPUAHBView.java +++ b/packages/webgpu/android/src/main/java/com/webgpu/WebGPUAHBView.java @@ -32,22 +32,27 @@ public WebGPUAHBView(Context context, WebGPUAPI api) { mApi = api; } - private ImageReader createReader() { - ImageReader reader = ImageReader.newInstance(getWidth(), getHeight(), PixelFormat.RGBA_8888, 2, HardwareBuffer.USAGE_GPU_SAMPLED_IMAGE | + private static ImageReader createReader(int width, int height, ImageReader.OnImageAvailableListener listener) { + ImageReader reader = ImageReader.newInstance(width, height, PixelFormat.RGBA_8888, 2, HardwareBuffer.USAGE_GPU_SAMPLED_IMAGE | HardwareBuffer.USAGE_GPU_COLOR_OUTPUT); - reader.setOnImageAvailableListener(this, null); + reader.setOnImageAvailableListener(listener, null); return reader; } @Override protected void onLayout(boolean changed, int left, int top, int right, int bottom) { super.onLayout(changed, left, top, right, bottom); + if (mReader == null) { - mReader = createReader(); - mApi.surfaceCreated(mReader.getSurface()); - } else { - mApi.surfaceChanged(mReader.getSurface()); + int width = getWidth(); + int height = getHeight(); + + if (width == 0 || height == 0) return; + + mReader = WebGPUAHBView.createReader(width, height, this); } + + mApi.surfaceChanged(mReader.getSurface()); } @Override From 6b63cb7bbaf583c2b5d632815e7ffb4bfc35e25a Mon Sep 17 00:00:00 2001 From: Artur Bilski Date: Mon, 8 Sep 2025 07:39:36 +0200 Subject: [PATCH 3/3] Cleanup gitignore files. --- .gitignore | 6 ------ packages/webgpu/.gitignore | 9 +++++---- 2 files changed, 5 insertions(+), 10 deletions(-) diff --git a/.gitignore b/.gitignore index 60de60316..d5d3804d6 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,3 @@ -!packages/webgpu/scripts/build # Yarn .package/.yarn/* .yarn/* @@ -65,11 +64,6 @@ package/lib # Externals -packages/webgpu/libs -packages/webgpu/cpp/dawn/ -packages/webgpu/cpp/webgpu/ -packages/webgpu/lib -!packages/webgpu/scripts/build artifacts/ diff --git a/packages/webgpu/.gitignore b/packages/webgpu/.gitignore index 1cc9e5603..6887d69b7 100644 --- a/packages/webgpu/.gitignore +++ b/packages/webgpu/.gitignore @@ -1,11 +1,7 @@ -!scripts/build # OSX # .DS_Store -# XDE -.expo/ - # VSCode .vscode/ jsconfig.json @@ -71,3 +67,8 @@ android/keystores/debug.keystore # generated by bob lib/ + +libs/ +cpp/dawn/ +cpp/webgpu/ +scripts/build