Skip to content

Commit 1d72ab1

Browse files
committed
Merge branch 'metal-icb-multi-draw-indirect' into metal-icb-multi-draw-indirect-count
Rebase the count lowering onto the pooled ICB base: count draws take their ICB from the per-adapter pool, skip the reset pass (they execute a GPU-clamped range, so unexecuted slots are never read), and inherit the per-family optimize gating.
2 parents 4db50bf + b50306a commit 1d72ab1

466 files changed

Lines changed: 14751 additions & 5269 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.deny.toml

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,10 +27,6 @@ allow-wildcard-paths = true
2727

2828
[advisories]
2929
ignore = [
30-
# `paste` crate is no longer maintained https://rustsec.org/advisories/RUSTSEC-2024-0436
31-
# It's a transitive dependency of `wgpu-core` via `macro_rules_attribute`.
32-
# https://github.com/gfx-rs/wgpu/issues/7873
33-
"RUSTSEC-2024-0436",
3430
# `bincode` is no longer maintained https://rustsec.org/advisories/RUSTSEC-2025-0141
3531
# We only use it directly for tests and tools. It is also used indirectly via deno.
3632
"RUSTSEC-2025-0141",

.github/ISSUE_TEMPLATE/bug_report.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ labels: bug
66
assignees: ""
77
---
88

9-
<!-- Thank you for filing this! Please read the [debugging tips](https://github.com/gfx-rs/wgpu/wiki/Debugging-wgpu-Applications).
9+
<!-- Thank you for filing this! Please read the [debugging tips](https://docs.rs/wgpu/latest/wgpu/documentation/debugging/debugging_applications/index.html).
1010
That may let you investigate on your own, or provide additional information that helps us to assist.-->
1111

1212
**Description**

.github/actions/install-agility-sdk/action.yml

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,12 @@ runs:
44
using: "composite"
55
steps:
66
- shell: bash
7-
run: |
7+
# NOTE: We ignore the `github-env` lint because we trust:
8+
#
9+
# - Our `install-agility-sdk` task's output
10+
# - Otherwise, `WGPU_DX12_AGILITY_SDK_REQUIRE` is a fixed environment variable that is easy
11+
# to audit.
12+
run: | # zizmor: ignore[github-env]
813
set -e
914
1015
cargo xtask install-agility-sdk >> "$GITHUB_ENV"

.github/actions/install-dxc/action.yml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,11 @@ runs:
44
using: "composite"
55
steps:
66
- shell: bash
7-
run: |
7+
# NOTE: We ignore the `github-env` lint because we trust:
8+
#
9+
# - The `cygpath` tool
10+
# - The contents of the DXC release we use.
11+
run: | # zizmor: ignore[github-env]
812
set -e
913
1014
export DXC_RELEASE="v1.9.2602.24"

.github/actions/install-mesa/action.yml

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,12 @@ runs:
2020
env:
2121
MESA_VERSION: ${{ inputs.version }}
2222
CI_BINARY_BUILD: ${{ inputs.ci-binary-build }}
23-
run: |
23+
# NOTE: We ignore `github-env` because we trust:
24+
#
25+
# - The `cygpath` tool
26+
# - The `$PWD` variable
27+
# - The contents of the Mesa archive we download here, which we control.
28+
run: | # zizmor: ignore[github-env]
2429
set -e
2530
2631
curl -L --retry 5 https://github.com/gfx-rs/ci-build/releases/download/$CI_BINARY_BUILD/mesa-$MESA_VERSION-linux-x86_64.tar.xz -o mesa.tar.xz
@@ -51,14 +56,20 @@ runs:
5156
env:
5257
MESA_VERSION: ${{ inputs.version }}
5358
CI_BINARY_BUILD: ${{ inputs.ci-binary-build }}
54-
run: |
59+
INPUTS_TARGET_DIR: ${{ inputs.target-dir }}
60+
# NOTE: We ignore `github-env` because we trust:
61+
#
62+
# - The `cygpath` tool
63+
# - The `$PWD` variable
64+
# - The contents of the Mesa archive we download here.
65+
run: | # zizmor: ignore[github-env]
5566
set -e
5667
5768
curl.exe -L --retry 5 https://github.com/pal1000/mesa-dist-win/releases/download/$MESA_VERSION/mesa3d-$MESA_VERSION-release-msvc.7z -o mesa.7z
5869
7z.exe e mesa.7z -omesa x64/{opengl32.dll,libgallium_wgl.dll,libglapi.dll,vulkan_lvp.dll,lvp_icd.x86_64.json}
5970
60-
cp -v mesa/* ${{ inputs.target-dir }}/
61-
cp -v mesa/* ${{ inputs.target-dir }}/deps
71+
cp -v mesa/* ${INPUTS_TARGET_DIR}/
72+
cp -v mesa/* ${INPUTS_TARGET_DIR}/deps
6273
6374
# We need to use cygpath to convert PWD to a windows path as we're using bash.
6475
echo "VK_DRIVER_FILES=`cygpath --windows $PWD/mesa/lvp_icd.x86_64.json`" >> "$GITHUB_ENV"

.github/actions/install-vulkan-sdk/action.yml

Lines changed: 20 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@ description: "Install Vulkan SDK"
33
inputs:
44
# Sourced from https://vulkan.lunarg.com/sdk/home#linux
55
version:
6-
default: "1.4.328"
6+
default: "1.4.357"
77
full-version:
8-
default: "1.4.328.1"
8+
default: "1.4.357.0"
99
runs:
1010
using: "composite"
1111
steps:
@@ -15,14 +15,17 @@ runs:
1515
env:
1616
VULKAN_SDK_VERSION: ${{ inputs.version }}
1717
VULKAN_FULL_SDK_VERSION: ${{ inputs.full-version }}
18-
run: |
18+
# NOTE: We ignore the `github-env` lint because we trust:
19+
#
20+
# - The contents of the Vulkan SDK we are downloading.
21+
run: | # zizmor: ignore[github-env]
1922
set -e
2023
21-
curl -L --retry 5 https://sdk.lunarg.com/sdk/download/${{ env.VULKAN_FULL_SDK_VERSION }}/linux/vulkansdk-linux-x86_64-${{ env.VULKAN_FULL_SDK_VERSION }}.tar.xz -o vulkan-sdk.tar.xz
24+
curl -L --retry 5 https://sdk.lunarg.com/sdk/download/${VULKAN_FULL_SDK_VERSION}/linux/vulkansdk-linux-x86_64-${VULKAN_FULL_SDK_VERSION}.tar.xz -o vulkan-sdk.tar.xz
2225
mkdir vulkan-sdk
2326
tar xpf vulkan-sdk.tar.xz -C vulkan-sdk
2427
25-
mv ./vulkan-sdk/${{ env.VULKAN_FULL_SDK_VERSION }} $HOME/VulkanSDK
28+
mv ./vulkan-sdk/${VULKAN_FULL_SDK_VERSION} $HOME/VulkanSDK
2629
2730
echo "$HOME/VulkanSDK/x86_64/bin" >> "$GITHUB_PATH"
2831
echo "LD_LIBRARY_PATH=$HOME/VulkanSDK/x86_64/lib${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}" >> "$GITHUB_ENV"
@@ -34,28 +37,34 @@ runs:
3437
env:
3538
VULKAN_SDK_VERSION: ${{ inputs.version }}
3639
VULKAN_FULL_SDK_VERSION: ${{ inputs.full-version }}
37-
run: |
40+
# NOTE: We ignore the `github-env` lint because we trust:
41+
#
42+
# - The contents of the Vulkan SDK we are downloading.
43+
run: | # zizmor: ignore[github-env]
3844
set -e
3945
40-
curl.exe -L --retry 5 https://sdk.lunarg.com/sdk/download/${{ env.VULKAN_FULL_SDK_VERSION }}/windows/vulkansdk-windows-X64-${{ env.VULKAN_FULL_SDK_VERSION }}.exe -o vulkan-sdk-installer.exe
46+
curl.exe -L --retry 5 https://sdk.lunarg.com/sdk/download/${VULKAN_FULL_SDK_VERSION}/windows/vulkansdk-windows-X64-${VULKAN_FULL_SDK_VERSION}.exe -o vulkan-sdk-installer.exe
4147
4248
./vulkan-sdk-installer.exe --accept-licenses --default-answer --confirm-command install
4349
44-
echo "C:/VulkanSDK/${{ env.VULKAN_FULL_SDK_VERSION }}/Bin" >> "$GITHUB_PATH"
50+
echo "C:/VulkanSDK/${VULKAN_FULL_SDK_VERSION}/Bin" >> "$GITHUB_PATH"
4551
4652
- name: (Mac) Install Vulkan SDK
4753
if: runner.os == 'macOS'
4854
shell: bash
4955
env:
5056
VULKAN_SDK_VERSION: ${{ inputs.version }}
5157
VULKAN_FULL_SDK_VERSION: ${{ inputs.full-version }}
52-
run: |
58+
# NOTE: We ignore the `github-env` lint because we trust:
59+
#
60+
# - The contents of the Vulkan SDK we are downloading.
61+
run: | # zizmor: ignore[github-env]
5362
set -e
5463
55-
curl -L --retry 5 https://sdk.lunarg.com/sdk/download/${{ env.VULKAN_FULL_SDK_VERSION }}/mac/vulkansdk-macos-${{ env.VULKAN_FULL_SDK_VERSION }}.zip -o vulkan-sdk.zip
64+
curl -L --retry 5 https://sdk.lunarg.com/sdk/download/${VULKAN_FULL_SDK_VERSION}/mac/vulkansdk-macos-${VULKAN_FULL_SDK_VERSION}.zip -o vulkan-sdk.zip
5665
unzip vulkan-sdk.zip -d vulkan-sdk
5766
5867
ls -l vulkan-sdk
59-
sudo ./vulkan-sdk/vulkansdk-macOS-${{ env.VULKAN_FULL_SDK_VERSION }}.app/Contents/MacOS/vulkansdk-macOS-${{ env.VULKAN_FULL_SDK_VERSION }} --root "$HOME/VulkanSDK" --accept-licenses --default-answer --confirm-command install
68+
sudo ./vulkan-sdk/vulkansdk-macOS-${VULKAN_FULL_SDK_VERSION}.app/Contents/MacOS/vulkansdk-macOS-${VULKAN_FULL_SDK_VERSION} --root "$HOME/VulkanSDK" --accept-licenses --default-answer --confirm-command install
6069
6170
echo "$HOME/VulkanSDK/macOS/bin" >> "$GITHUB_PATH"

.github/actions/install-warp/action.yml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,9 @@ runs:
88
using: "composite"
99
steps:
1010
- shell: bash
11+
env:
12+
INPUTS_TARGET_DIR: ${{ inputs.target-dir }}
1113
run: |
1214
set -e
1315
14-
cargo xtask install-warp --target-dir ${{ inputs.target-dir }}
16+
cargo xtask install-warp --target-dir ${INPUTS_TARGET_DIR}

.github/pull_request_template.md

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,11 @@ approved. Don't use draft PR status to indicate this._
1010
_Describe what problem this is solving, and how it's solved._
1111

1212
**Testing**
13-
_Explain how this change is tested._
13+
_Explain what you have done to ensure this change is adequately tested
14+
(e.g. adding test cases, running tests on an unusual platform, or
15+
manually checking visual results)._
1416

1517
**Squash or Rebase?**
16-
1718
_If your pull request contains multiple commits, please indicate whether
1819
they need to be squashed into a single commit before they're merged,
1920
or if they're ready to rebase onto `trunk` as they stand. In the
@@ -32,10 +33,10 @@ person(s) who reviewed your changes. This will make sure it gets re-added to the
3233
<!-- Note that checking all the boxes is not necessary to open a PR. -->
3334

3435
- [ ] I self-reviewed and fully understand this PR.
35-
- [ ] WebGPU implementations built with `wgpu` may be affected behaviorally.
36-
- [ ] Validation and feature gates are in place to confine behavioral changes.
37-
- [ ] Tests demonstrate the validation and altered logic works. <!-- See `docs/testing.md` -->
3836
- [ ] `CHANGELOG.md` entries for the user-facing effects of this change are present. <!-- See instructions at the top of `CHANGELOG.md`. -->
3937
- [ ] The PR is minimal, and doesn't make sense to land as multiple PRs.
4038
- [ ] Commits are logically scoped and individually reviewable.
4139
- [ ] The PR description has enough context to understand the motivation and solution implemented.
40+
- [ ] (If applicable) WebGPU implementations built with `wgpu` may be affected behaviorally.
41+
- [ ] (If applicable) Validation and feature gates are in place to confine behavioral changes.
42+
- [ ] (If applicable) Tests demonstrate the validation and altered logic works. <!-- See `docs/testing.md` -->

.github/workflows/changelog.yml

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,13 +38,18 @@ jobs:
3838
name: Check changelog for errors
3939
runs-on: ubuntu-latest
4040

41+
permissions: {}
42+
4143
steps:
4244
- name: Checkout repo
43-
uses: actions/checkout@v7
45+
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
4446
with:
4547
fetch-depth: 0
48+
persist-credentials: false
4649

4750
# NOTE: Keep label name(s) in sync. with `xtask`'s implementation.
4851
- name: Run `cargo xtask changelog …`
52+
env:
53+
GITHUB_EVENT_PULL_REQUEST_BASE_REF: ${{ github.event.pull_request.base.ref }}
4954
run: |
50-
cargo xtask changelog "origin/${{ github.event.pull_request.base.ref }}" ${{ contains(github.event.pull_request.labels.*.name, 'changelog: released entry changed') && '--allow-released-changes' || '' }}
55+
cargo xtask changelog "origin/${GITHUB_EVENT_PULL_REQUEST_BASE_REF}" ${{ contains(github.event.pull_request.labels.*.name, 'changelog: released entry changed') && '--allow-released-changes' || '' }}

0 commit comments

Comments
 (0)