From a94d39eb022a4896299e38d900712b063985b2e3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Mockers?= Date: Fri, 3 Apr 2026 13:07:12 +0200 Subject: [PATCH 1/5] try more wasm support --- .github/workflows/workflow-wasm.yml | 46 ++++++++++++++--------------- 1 file changed, 22 insertions(+), 24 deletions(-) diff --git a/.github/workflows/workflow-wasm.yml b/.github/workflows/workflow-wasm.yml index 1503d2be..5bf18753 100644 --- a/.github/workflows/workflow-wasm.yml +++ b/.github/workflows/workflow-wasm.yml @@ -39,39 +39,37 @@ jobs: fail-fast: false matrix: include: - - runner: "macos-14" + - runner: "macos-latest" browser: "chromium" api: "webgpu" - - runner: "ubuntu-24.04" + - runner: "macos-latest" + browser: "webkit" + api: "webgpu" + - runner: "ubuntu-latest" + browser: "chromium" + api: "webgpu" + + - runner: "ubuntu-latest" browser: "firefox" api: "webgl2" - # works, but text is buggy - # - runner: "ubuntu-latest" - # browser: "chromium" - # api: "webgl2" - # doesn't work but should, don't know why - # - runner: "macos-14" - # browser: "chromium" - # api: "webgl2" - # - runner: "macos-14" - # browser: "webkit" - # api: "webgl2" - # - runner: "macos-14" - # browser: "firefox" - # api: "webgl2" - # doesn't work for now, that's expected - # - runner: "macos-14" - # browser: "webkit" - # api: "webgpu" - # - runner: "macos-14" + - runner: "ubuntu-latest" + browser: "chromium" + api: "webgl2" + - runner: "macos-latest" + browser: "chromium" + api: "webgl2" + - runner: "macos-latest" + browser: "webkit" + api: "webgl2" + - runner: "macos-latest" + browser: "firefox" + api: "webgl2" + # - runner: "macos-latest" # browser: "firefox" # api: "webgpu" # - runner: "ubuntu-latest" # browser: "firefox" # api: "webgpu" - # - runner: "ubuntu-latest" - # browser: "chromium" - # api: "webgpu" steps: - uses: actions/checkout@v6 with: From 02840ef9b12031668049c05063e386dc94116ae8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Mockers?= Date: Fri, 3 Apr 2026 13:35:56 +0200 Subject: [PATCH 2/5] more wasm platforms and windows --- .github/workflows/workflow-wasm.yml | 41 ++++++++++++++++++++++------- 1 file changed, 32 insertions(+), 9 deletions(-) diff --git a/.github/workflows/workflow-wasm.yml b/.github/workflows/workflow-wasm.yml index 5bf18753..4f5e0a52 100644 --- a/.github/workflows/workflow-wasm.yml +++ b/.github/workflows/workflow-wasm.yml @@ -43,11 +43,25 @@ jobs: browser: "chromium" api: "webgpu" - runner: "macos-latest" - browser: "webkit" + browser: "firefox" api: "webgpu" + # Failed to create wgpu surface + # - runner: "macos-latest" + # browser: "webkit" + # api: "webgpu" + # Unable to find a GPU + # - runner: "ubuntu-latest" + # browser: "chromium" + # api: "webgpu" - runner: "ubuntu-latest" + browser: "firefox" + api: "webgpu" + - runner: "windows-latest" browser: "chromium" api: "webgpu" + - runner: "windows-latest" + browser: "firefox" + api: "webgpu" - runner: "ubuntu-latest" browser: "firefox" @@ -64,12 +78,12 @@ jobs: - runner: "macos-latest" browser: "firefox" api: "webgl2" - # - runner: "macos-latest" - # browser: "firefox" - # api: "webgpu" - # - runner: "ubuntu-latest" - # browser: "firefox" - # api: "webgpu" + - runner: "windows-latest" + browser: "firefox" + api: "webgl2" + - runner: "windows-latest" + browser: "chromium" + api: "webgl2" steps: - uses: actions/checkout@v6 with: @@ -92,7 +106,16 @@ jobs: npx playwright install --with-deps cd ../.. - - name: Run examples + - name: Run examples (windows) + if: runner.os == 'windows' + shell: bash + run: | + # start a webserver + python3 -m http.server --directory examples/wasm & + + cargo run -p build-wasm-example -- --browsers ${{ matrix.browser }} --api ${{ matrix.api }} --frames 25 --test 2d_shapes testbed_ui bloom_2d atmospheric_fog pbr split_screen + + - name: Run examples (linux) if: runner.os == 'linux' shell: bash run: | @@ -101,7 +124,7 @@ jobs: xvfb-run cargo run -p build-wasm-example -- --browsers ${{ matrix.browser }} --api ${{ matrix.api }} --frames 25 --test 2d_shapes testbed_ui bloom_2d atmospheric_fog pbr split_screen - - name: Run examples + - name: Run examples (macos) if: runner.os == 'macos' shell: bash run: | From 86642cb53b25e5b7df4911300a1bb176fd724707 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Mockers?= Date: Fri, 3 Apr 2026 13:39:00 +0200 Subject: [PATCH 3/5] better workflow --- .github/workflows/workflow-wasm.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.github/workflows/workflow-wasm.yml b/.github/workflows/workflow-wasm.yml index 4f5e0a52..ed0cb651 100644 --- a/.github/workflows/workflow-wasm.yml +++ b/.github/workflows/workflow-wasm.yml @@ -20,16 +20,22 @@ on: repository: required: true type: string + default: "bevyengine/bevy" + description: "Bevy repository to use" gitref: required: true type: string + default: "main" + description: "Git reference to use" pixeleagle_project: required: true type: string default: "B25A040A-A980-4602-B90C-D480AB84076D" + description: "Pixeleagle project ID" branch: required: true type: string + description: "Branch name that will be used for the report" jobs: wasm-run: From fbead4b5fab07d3929b19b37382bad1688e00132 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Mockers?= Date: Fri, 3 Apr 2026 19:26:32 +0200 Subject: [PATCH 4/5] hack --- .github/workflows/workflow-wasm.yml | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/.github/workflows/workflow-wasm.yml b/.github/workflows/workflow-wasm.yml index ed0cb651..7e334304 100644 --- a/.github/workflows/workflow-wasm.yml +++ b/.github/workflows/workflow-wasm.yml @@ -59,9 +59,10 @@ jobs: # - runner: "ubuntu-latest" # browser: "chromium" # api: "webgpu" - - runner: "ubuntu-latest" - browser: "firefox" - api: "webgpu" + # Failed to create wgpu surface + # - runner: "ubuntu-latest" + # browser: "firefox" + # api: "webgpu" - runner: "windows-latest" browser: "chromium" api: "webgpu" @@ -116,6 +117,10 @@ jobs: if: runner.os == 'windows' shell: bash run: | + # xshell uses std::process::Command which only resolves .exe on + # Windows, not .cmd (xshell#82). Patch npx -> npx.cmd in the tool. + sed -i 's/"npx /"npx.cmd /' tools/build-wasm-example/src/main.rs + # start a webserver python3 -m http.server --directory examples/wasm & From 78dbb6a161b1d92310a1d89847d5ae16039b0d2a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Mockers?= Date: Fri, 3 Apr 2026 20:49:22 +0200 Subject: [PATCH 5/5] disable buggy tuples --- .github/workflows/workflow-wasm.yml | 38 ++++++++++++++++------------- 1 file changed, 21 insertions(+), 17 deletions(-) diff --git a/.github/workflows/workflow-wasm.yml b/.github/workflows/workflow-wasm.yml index 7e334304..d0d5b31f 100644 --- a/.github/workflows/workflow-wasm.yml +++ b/.github/workflows/workflow-wasm.yml @@ -63,12 +63,14 @@ jobs: # - runner: "ubuntu-latest" # browser: "firefox" # api: "webgpu" - - runner: "windows-latest" - browser: "chromium" - api: "webgpu" - - runner: "windows-latest" - browser: "firefox" - api: "webgpu" + # Unable to find a GPU! + # - runner: "windows-latest" + # browser: "chromium" + # api: "webgpu" + # Failed to create wgpu surface + # - runner: "windows-latest" + # browser: "firefox" + # api: "webgpu" - runner: "ubuntu-latest" browser: "firefox" @@ -82,15 +84,18 @@ jobs: - runner: "macos-latest" browser: "webkit" api: "webgl2" - - runner: "macos-latest" - browser: "firefox" - api: "webgl2" - - runner: "windows-latest" - browser: "firefox" - api: "webgl2" - - runner: "windows-latest" - browser: "chromium" - api: "webgl2" + # crash: Too many bindings of type StorageBuffers in Stage ShaderStages(COMPUTE) + # - runner: "macos-latest" + # browser: "firefox" + # api: "webgl2" + # Failed to create wgpu surface + # - runner: "windows-latest" + # browser: "firefox" + # api: "webgl2" + # crash: BindGroupLayout with 'sparse buffer update bind group layout' label is invalid + # - runner: "windows-latest" + # browser: "chromium" + # api: "webgl2" steps: - uses: actions/checkout@v6 with: @@ -117,8 +122,7 @@ jobs: if: runner.os == 'windows' shell: bash run: | - # xshell uses std::process::Command which only resolves .exe on - # Windows, not .cmd (xshell#82). Patch npx -> npx.cmd in the tool. + # workaround for xshell not finding npx (not auto adding the .cmd extension) sed -i 's/"npx /"npx.cmd /' tools/build-wasm-example/src/main.rs # start a webserver