From b73b7484dba13163518544ec21f212fc112d4ac2 Mon Sep 17 00:00:00 2001 From: Jim Blandy Date: Thu, 21 Nov 2024 20:57:25 +0000 Subject: [PATCH] Bug 1930274: Update wgpu to b89a57f8c (2024-11-8) r!#webgpu-reviewers r=webgpu-reviewers,supply-chain-reviewers,ErichDonGubler Differential Revision: https://phabricator.services.mozilla.com/D228519 --- .cargo/config.toml.in | 4 +- Cargo.lock | 8 +-- gfx/wgpu_bindings/Cargo.toml | 12 ++-- gfx/wgpu_bindings/moz.yaml | 4 +- supply-chain/audits.toml | 28 +++++--- third_party/rust/naga/.cargo-checksum.json | 2 +- third_party/rust/naga/Cargo.toml | 4 +- third_party/rust/naga/src/back/glsl/mod.rs | 2 +- third_party/rust/naga/src/valid/analyzer.rs | 10 ++- .../rust/wgpu-core/.cargo-checksum.json | 2 +- third_party/rust/wgpu-core/Cargo.toml | 2 +- .../rust/wgpu-core/src/command/compute.rs | 11 ++++ third_party/rust/wgpu-core/src/command/mod.rs | 4 +- .../rust/wgpu-core/src/command/render.rs | 7 ++ .../rust/wgpu-core/src/device/global.rs | 30 ++++----- third_party/rust/wgpu-core/src/device/life.rs | 66 +++++++------------ .../rust/wgpu-core/src/device/queue.rs | 15 +++-- .../rust/wgpu-core/src/device/resource.rs | 2 - third_party/rust/wgpu-core/src/resource.rs | 10 +-- .../rust/wgpu-hal/.cargo-checksum.json | 2 +- third_party/rust/wgpu-hal/Cargo.toml | 2 +- third_party/rust/wgpu-hal/src/dx12/mod.rs | 6 ++ .../rust/wgpu-hal/src/metal/command.rs | 16 +++-- 23 files changed, 137 insertions(+), 112 deletions(-) diff --git a/.cargo/config.toml.in b/.cargo/config.toml.in index 83e186718105..ab47cb8d0ba1 100644 --- a/.cargo/config.toml.in +++ b/.cargo/config.toml.in @@ -25,9 +25,9 @@ git = "https://github.com/franziskuskiefer/cose-rust" rev = "43c22248d136c8b38fe42ea709d08da6355cf04b" replace-with = "vendored-sources" -[source."git+https://github.com/gfx-rs/wgpu?rev=16f012bc9327b23345b6feed754204acb6df6beb"] +[source."git+https://github.com/gfx-rs/wgpu?rev=b89a57f8ca9d8f93ef7995c8003152240fdbbe12"] git = "https://github.com/gfx-rs/wgpu" -rev = "16f012bc9327b23345b6feed754204acb6df6beb" +rev = "b89a57f8ca9d8f93ef7995c8003152240fdbbe12" replace-with = "vendored-sources" [source."git+https://github.com/hsivonen/any_all_workaround?rev=7fb1b7034c9f172aade21ee1c8554e8d8a48af80"] diff --git a/Cargo.lock b/Cargo.lock index fa27cc1a2354..05c58ca25aa2 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4280,7 +4280,7 @@ checksum = "a2983372caf4480544083767bf2d27defafe32af49ab4df3a0b7fc90793a3664" [[package]] name = "naga" version = "23.0.0" -source = "git+https://github.com/gfx-rs/wgpu?rev=16f012bc9327b23345b6feed754204acb6df6beb#16f012bc9327b23345b6feed754204acb6df6beb" +source = "git+https://github.com/gfx-rs/wgpu?rev=b89a57f8ca9d8f93ef7995c8003152240fdbbe12#b89a57f8ca9d8f93ef7995c8003152240fdbbe12" dependencies = [ "arrayvec", "bit-set", @@ -7113,7 +7113,7 @@ dependencies = [ [[package]] name = "wgpu-core" version = "23.0.0" -source = "git+https://github.com/gfx-rs/wgpu?rev=16f012bc9327b23345b6feed754204acb6df6beb#16f012bc9327b23345b6feed754204acb6df6beb" +source = "git+https://github.com/gfx-rs/wgpu?rev=b89a57f8ca9d8f93ef7995c8003152240fdbbe12#b89a57f8ca9d8f93ef7995c8003152240fdbbe12" dependencies = [ "arrayvec", "bit-vec", @@ -7138,7 +7138,7 @@ dependencies = [ [[package]] name = "wgpu-hal" version = "23.0.0" -source = "git+https://github.com/gfx-rs/wgpu?rev=16f012bc9327b23345b6feed754204acb6df6beb#16f012bc9327b23345b6feed754204acb6df6beb" +source = "git+https://github.com/gfx-rs/wgpu?rev=b89a57f8ca9d8f93ef7995c8003152240fdbbe12#b89a57f8ca9d8f93ef7995c8003152240fdbbe12" dependencies = [ "android_system_properties", "arrayvec", @@ -7177,7 +7177,7 @@ dependencies = [ [[package]] name = "wgpu-types" version = "23.0.0" -source = "git+https://github.com/gfx-rs/wgpu?rev=16f012bc9327b23345b6feed754204acb6df6beb#16f012bc9327b23345b6feed754204acb6df6beb" +source = "git+https://github.com/gfx-rs/wgpu?rev=b89a57f8ca9d8f93ef7995c8003152240fdbbe12#b89a57f8ca9d8f93ef7995c8003152240fdbbe12" dependencies = [ "bitflags 2.6.0", "js-sys", diff --git a/gfx/wgpu_bindings/Cargo.toml b/gfx/wgpu_bindings/Cargo.toml index 992aefa963cf..872ea1b1d3d4 100644 --- a/gfx/wgpu_bindings/Cargo.toml +++ b/gfx/wgpu_bindings/Cargo.toml @@ -17,7 +17,7 @@ default = [] [dependencies.wgc] package = "wgpu-core" git = "https://github.com/gfx-rs/wgpu" -rev = "16f012bc9327b23345b6feed754204acb6df6beb" +rev = "b89a57f8ca9d8f93ef7995c8003152240fdbbe12" # TODO: remove the replay feature on the next update containing https://github.com/gfx-rs/wgpu/pull/5182 features = ["serde", "replay", "trace", "strict_asserts", "wgsl", "api_log_info"] @@ -26,32 +26,32 @@ features = ["serde", "replay", "trace", "strict_asserts", "wgsl", "api_log_info" [target.'cfg(any(target_os = "macos", target_os = "ios"))'.dependencies.wgc] package = "wgpu-core" git = "https://github.com/gfx-rs/wgpu" -rev = "16f012bc9327b23345b6feed754204acb6df6beb" +rev = "b89a57f8ca9d8f93ef7995c8003152240fdbbe12" features = ["metal"] # We want the wgpu-core Direct3D backends on Windows. [target.'cfg(windows)'.dependencies.wgc] package = "wgpu-core" git = "https://github.com/gfx-rs/wgpu" -rev = "16f012bc9327b23345b6feed754204acb6df6beb" +rev = "b89a57f8ca9d8f93ef7995c8003152240fdbbe12" features = ["dx12"] # We want the wgpu-core Vulkan backend on Linux and Windows. [target.'cfg(any(windows, all(unix, not(any(target_os = "macos", target_os = "ios")))))'.dependencies.wgc] package = "wgpu-core" git = "https://github.com/gfx-rs/wgpu" -rev = "16f012bc9327b23345b6feed754204acb6df6beb" +rev = "b89a57f8ca9d8f93ef7995c8003152240fdbbe12" features = ["vulkan"] [dependencies.wgt] package = "wgpu-types" git = "https://github.com/gfx-rs/wgpu" -rev = "16f012bc9327b23345b6feed754204acb6df6beb" +rev = "b89a57f8ca9d8f93ef7995c8003152240fdbbe12" [dependencies.wgh] package = "wgpu-hal" git = "https://github.com/gfx-rs/wgpu" -rev = "16f012bc9327b23345b6feed754204acb6df6beb" +rev = "b89a57f8ca9d8f93ef7995c8003152240fdbbe12" features = ["oom_panic", "device_lost_panic", "internal_error_panic"] [target.'cfg(windows)'.dependencies] diff --git a/gfx/wgpu_bindings/moz.yaml b/gfx/wgpu_bindings/moz.yaml index fc9a5b49343e..c06d571a8a8d 100644 --- a/gfx/wgpu_bindings/moz.yaml +++ b/gfx/wgpu_bindings/moz.yaml @@ -20,11 +20,11 @@ origin: # Human-readable identifier for this version/release # Generally "version NNN", "tag SSS", "bookmark SSS" - release: 16f012bc9327b23345b6feed754204acb6df6beb (2024-10-31T23:13:48Z). + release: b89a57f8ca9d8f93ef7995c8003152240fdbbe12 (2024-11-8). # Revision to pull in # Must be a long or short commit SHA (long preferred) - revision: 16f012bc9327b23345b6feed754204acb6df6beb + revision: b89a57f8ca9d8f93ef7995c8003152240fdbbe12 license: ['MIT', 'Apache-2.0'] diff --git a/supply-chain/audits.toml b/supply-chain/audits.toml index 0df4d15fbe48..a249d8106a68 100644 --- a/supply-chain/audits.toml +++ b/supply-chain/audits.toml @@ -3282,9 +3282,12 @@ criteria = "safe-to-deploy" delta = "22.0.0 -> 23.0.0" [[audits.naga]] -who = "Erich Gubler " +who = [ + "Erich Gubler ", + "Jim Blandy ", +] criteria = "safe-to-deploy" -delta = "23.0.0 -> 23.0.0@git:16f012bc9327b23345b6feed754204acb6df6beb" +delta = "23.0.0 -> 23.0.0@git:b89a57f8ca9d8f93ef7995c8003152240fdbbe12" importable = false [[audits.net2]] @@ -5396,9 +5399,12 @@ criteria = "safe-to-deploy" delta = "22.0.0 -> 23.0.0" [[audits.wgpu-core]] -who = "Erich Gubler " +who = [ + "Erich Gubler ", + "Jim Blandy ", +] criteria = "safe-to-deploy" -delta = "23.0.0 -> 23.0.0@git:16f012bc9327b23345b6feed754204acb6df6beb" +delta = "23.0.0 -> 23.0.0@git:b89a57f8ca9d8f93ef7995c8003152240fdbbe12" importable = false [[audits.wgpu-hal]] @@ -5470,9 +5476,12 @@ criteria = "safe-to-deploy" delta = "22.0.0 -> 23.0.0" [[audits.wgpu-hal]] -who = "Erich Gubler " +who = [ + "Erich Gubler ", + "Jim Blandy ", +] criteria = "safe-to-deploy" -delta = "23.0.0 -> 23.0.0@git:16f012bc9327b23345b6feed754204acb6df6beb" +delta = "23.0.0 -> 23.0.0@git:b89a57f8ca9d8f93ef7995c8003152240fdbbe12" importable = false [[audits.wgpu-types]] @@ -5544,9 +5553,12 @@ criteria = "safe-to-deploy" delta = "22.0.0 -> 23.0.0" [[audits.wgpu-types]] -who = "Erich Gubler " +who = [ + "Erich Gubler ", + "Jim Blandy ", +] criteria = "safe-to-deploy" -delta = "23.0.0 -> 23.0.0@git:16f012bc9327b23345b6feed754204acb6df6beb" +delta = "23.0.0 -> 23.0.0@git:b89a57f8ca9d8f93ef7995c8003152240fdbbe12" importable = false [[audits.whatsys]] diff --git a/third_party/rust/naga/.cargo-checksum.json b/third_party/rust/naga/.cargo-checksum.json index 3e1e55723314..a400e3df19e4 100644 --- a/third_party/rust/naga/.cargo-checksum.json +++ b/third_party/rust/naga/.cargo-checksum.json @@ -1 +1 @@ -{"files":{".cargo/config.toml":"d7389d2a0c08ec72b79e83a3c76980903e3f9123625c32e69c798721193e2e74","CHANGELOG.md":"e60105d413f857e37dae165f819c47491d0a595183d3c9146b259d811b98b14f","Cargo.toml":"7331c8b09e3a2d047c5bc0a511f88be81682265e1795955a64f14b084eeeeebc","README.md":"00a6070ebadb15a9488f117b286f50e4838a7dd0a28d41c9fcff4781c6b49171","build.rs":"824e90067aa04ad8726a49476b1af51f5c5c16f9a0b372f00398b3748d723662","src/arena/handle.rs":"1bf2edcca03d7cb466e1f8bd4bf1c966b805505ea2ee3641c39aa04811413478","src/arena/handle_set.rs":"3b8dbba40c67491b3c282b8ba0e79b259220f94739285b6ddfac1bced2334354","src/arena/handlevec.rs":"dfc9249478eb6980c13587c740d91234214bc7e0eef90e6f40b3d99decf70a58","src/arena/mod.rs":"14db142163133eb9ca582bc3665450f49cc4b1cfbda043b8b1518590cdda73be","src/arena/range.rs":"88683c36b137499ab537cf906505c2bd0871e0b9177e3a4e55da9db4e86df6a2","src/arena/unique_arena.rs":"22761770dbcbb6ac497ebdcf07173b3f07fc3c74bc0a70990d5fad882f4f471f","src/back/continue_forward.rs":"f95b810164db51fde368362624ce2569826b47dc3460df316b879abba48e5388","src/back/dot/mod.rs":"617c3ba398ee2435be2eda459db202e9073423b4c30b34a143356c515cb0f139","src/back/glsl/features.rs":"8df4635a346f65c3ca11d38550ecc6f6e5d10fc1721dc222c3473337ded56d63","src/back/glsl/keywords.rs":"b8883e5ee8a3d400fa44fef2baffe2853e72ff91e832499c128454d325ceccd9","src/back/glsl/mod.rs":"6d1f3926166f06e9b1bbb710cbe7aaaffd2f50b6a8903331d994a856f7a7908c","src/back/hlsl/conv.rs":"8f12243fbfff12875c67277f366a243fc543528ce9f4995bb55dd196c8e76e55","src/back/hlsl/help.rs":"7dbc4ac84251d4932e6f5e500dfb3c67cc4439e5020fab073a92ba6c9cea6c79","src/back/hlsl/keywords.rs":"a7164690a4da866e6bfb18ced20e32cc8c42dd7387e0e84addf0c2674f529cf5","src/back/hlsl/mod.rs":"4e70ecf15f90a3b453a8b7cb6f9b5f68c360dd246d84b88c0b303c22c8c054ac","src/back/hlsl/storage.rs":"53b35fe30d170c0bcb7ec522ab8a304b52d4539cd2be2f766342d55ed5ec5cf1","src/back/hlsl/writer.rs":"2f096db9c1f1a62764fbf0751e67da132e66c20f851008b9a2f983eed1924df1","src/back/mod.rs":"59a3fd1215829497dc6d576fd01618c730987517c36244338ff7bb2a60eb663b","src/back/msl/keywords.rs":"e6a4ef77363f995de1f8079c0b8591497cbf9520c5d3b2d41c7e1f483e8abd24","src/back/msl/mod.rs":"3bd2e95f4147997cc868de0d2dc32fdc96c5e2b4ac59c44cd579540bd3fa2a67","src/back/msl/sampler.rs":"9b01d68669e12ff7123243284b85e1a9d2c4d49140bd74ca32dedc007cbf15af","src/back/msl/writer.rs":"7ad43eb1c541e7801ce18588536ce6c9294cc0702d661233e3ed7262101bd823","src/back/pipeline_constants.rs":"76a5944c5cd548c26daa065f980cf8dd2e72ba3a5b97c267ac4f2c44c6b7e8d1","src/back/spv/block.rs":"7a3cf2cca00dc74074cc946750f6284d7f1abf7b67dda649118091a245c24ba0","src/back/spv/helpers.rs":"0ba90760dd2dbc6ad461454d33d6b4a75a603326e8ba7e3c2538c6360da9b445","src/back/spv/image.rs":"12c9693e0f9abee6e81c1cb1d3d993153438a103b82d95344fcf5fe00330976d","src/back/spv/index.rs":"07edd32e0aace781b98745f4c4b8533d6cd845b4772db85af825d7d56146db0a","src/back/spv/instructions.rs":"253b1fcb2883302734255fbc2d5fcebe3309ccdbb4784f33cf33c7fa66317967","src/back/spv/layout.rs":"e263de53cd2f9a03ad94b82b434ce636609bc1ed435a2d1132951663bfaa8ebd","src/back/spv/mod.rs":"5ddc2357e30d748c01c0b5c263978537df3c0dfc321b91a2873af02916695495","src/back/spv/ray.rs":"aa19a556db38e5d9461fe8d7adafa890cbee1100439f737a350194dea8083319","src/back/spv/recyclable.rs":"8061e39ea5357c8d55081a81fb836e762fd9793c1c6b04ae5d714af32677e616","src/back/spv/selection.rs":"81e404abfa0a977f7c1f76ccb37a78d13ccadbda229048dad53cc67687cc39db","src/back/spv/subgroup.rs":"288524de89fb2fff20c34cf9047bd209142c8b183a0e6123e88ae7f05c5d4cb5","src/back/spv/writer.rs":"180b1ff6ccbcf97b2d0e2dd193fd8bf3ae83aa4a019789d22daf75395584c284","src/back/wgsl/mod.rs":"70a108f4d297ce0581067500e0c6a579bcbc2ae63f4ed0afbd2da8f0199c435e","src/back/wgsl/polyfill/inverse/inverse_2x2_f16.wgsl":"9e7635d04724822931c805a8b35e76d6d294d447e4ea8d57b308ce45609bf736","src/back/wgsl/polyfill/inverse/inverse_2x2_f32.wgsl":"340d491abde07f93996391796db65a5f88402663eaf6b9d2d894d11cb8cf8b6d","src/back/wgsl/polyfill/inverse/inverse_3x3_f16.wgsl":"4f13a1a4b3e1b51f0f992d13c55cf854a80917554a4d13c997819fa1fe776ba4","src/back/wgsl/polyfill/inverse/inverse_3x3_f32.wgsl":"9b16d2f4b9e433c8e03a0cb46ab48508f3bf7e185ce1b4e26106c47e81a677cb","src/back/wgsl/polyfill/inverse/inverse_4x4_f16.wgsl":"86d39d1db5d03995b404950279db7f1698ad9622982aa319fdedb7532673235b","src/back/wgsl/polyfill/inverse/inverse_4x4_f32.wgsl":"dc510525ac2dce66389a8c4bf8b2f31f0dedd9e6debdbe4ffd939a0a7fc533d3","src/back/wgsl/polyfill/mod.rs":"f4ab3c9b9cdc36d16dab00d0f7f07d6e6beda0e27a36053e9b5ffeeb7ca18edc","src/back/wgsl/writer.rs":"097bf8d7f277ba369de5e3f38438885af40df6f7408d3b90e0c4eb10a50658d1","src/block.rs":"e447f7e041fd67052b23d1139cf0574eea93220a818af71691d960bdf026d45f","src/compact/expressions.rs":"a04f5dbc936693280fddc328df623af0b8d1fc0d11bd01987df9104e9c27bea1","src/compact/functions.rs":"27c084ca6b475999a3367f8ea429dbf7326a54c83ef86898b7ba67366f9bb828","src/compact/handle_set_map.rs":"748de9563f0ff897c113ba665f3e59ab3a023050e2206eb7d566a31f61fc32e5","src/compact/mod.rs":"7ec6bea36d11438c391c37d9a193b323d7fb365de6b9dfd45e78a3240dbab7ba","src/compact/statements.rs":"360e2bb6c2b7fdf4f9de368048ae574b2efd171adf34be44f84fbe21a15f5def","src/compact/types.rs":"9e73ac7dfdaf4b10eda1c938b881857392abc1315adcc035fc3980d63236cf37","src/diagnostic_filter.rs":"36a6da8531b25cb1957b5713ec3268a300a8b617485a7d42bc27274539114cdc","src/error.rs":"ca7b251c0d09e4cc46a79a3c249c6849a85b5a6c6745b35ae613166fc30b50ba","src/front/atomic_upgrade.rs":"98d2e2ea4192faa4d5f4887fef7ae71234de1df32df2f5f4e0761a847dc468c9","src/front/glsl/ast.rs":"663e815ea3e511f0445ef910340c380ff1bcf63805329ab7ca8cf35de7f902ed","src/front/glsl/builtins.rs":"c87b42740a7c67b04d3b4b88fad3ee0c750eda8b8b6d5ab4e06aa9a1cbd4e20e","src/front/glsl/context.rs":"52c1926bc3d913ce2ac9ec0068f684fc85972628e221189dc0fc1bbb38d62f31","src/front/glsl/error.rs":"2ef5061decd42dfc3054fd0f1a86dc7168e2064572571147117d798e39675722","src/front/glsl/functions.rs":"864e82e74c63c82b7e8b02dcd8d71686fc174e903f5ecd4348c971365f5f095f","src/front/glsl/lex.rs":"08736ae8beb955da5b0e6e3e0f45995a824995f7096d516a2910417e9c7afa32","src/front/glsl/mod.rs":"bf97bf1710d5d1f8facb77913cb82868697920914a96ed309adf0f19154a2ab4","src/front/glsl/offset.rs":"9358602ca4f9ef21d5066d674dae757bf88fdf5c289c4360534354d13bd41dc0","src/front/glsl/parser.rs":"a752f2abac17e6d35c0eb406f2f1c24d2b622a55b1bececbdd13614edb686622","src/front/glsl/parser/declarations.rs":"796514c1d571b324817bf1236d4c1227a91a512c0660ce5bb1264cd900027158","src/front/glsl/parser/expressions.rs":"af9c21b4aacc964d080285d670f6707d60b12d11de2920836f71814d9148aa46","src/front/glsl/parser/functions.rs":"dd5980bd731bcd8044bbfa16f760cdc77c02422ec116d7ebbbe64fcbe1fb7a04","src/front/glsl/parser/types.rs":"0aad1c665058d3babe3c8ddc0ccf9be21c4cf18c807167fd125fb86a6b5f8873","src/front/glsl/parser_tests.rs":"c44ed3252096c83a0ce1ea9be8d2b867784cdc1c11aa4501aee1a85d86c62511","src/front/glsl/token.rs":"c25c489b152ee2d445ace3c2046473abe64d558b8d27fa08709110e58718b6ac","src/front/glsl/types.rs":"91c3a4e4d11b397ea647ff287e17a48baedf2f2c310e81b04618675daeb83f69","src/front/glsl/variables.rs":"4b95ce4e6dd76bcf8eec5e54f4be85ead6062a59e1235cfdbbfc8cf3f1671a83","src/front/interpolator.rs":"9b6ca498d5fbd9bc1515510a04e303a00b324121d7285da3c955cfe18eb4224c","src/front/mod.rs":"ba984fc9b933a844fa8dadf05dea70f308911054ad3f10448d652706e158b4bd","src/front/spv/convert.rs":"5dc6e4328d9d345ebcebd2a671a8fd9fd5316ad7f122a6251bfb633cd6ffec6c","src/front/spv/error.rs":"6835a4fd90f675a90b39eb2af52c689d0339668d89f2fe5ba9a0afa5b7f0a561","src/front/spv/function.rs":"e584dbeaa5f7e1ff107f3e7e5211b0bfb8f7b9878a74dbe29dc7941cb33b2e0f","src/front/spv/image.rs":"16141ea0140f4f668f19249f8ab083dab78aa1bb9d07f54d199a569d560cc3e1","src/front/spv/mod.rs":"39b3da93815aff2b6afc926937879c1644673b12c419181434cd56ee2c1cf4d1","src/front/spv/null.rs":"a8ff44e97ffe42a4773d89b88fdb3a8ef8fba58bf6645c73b7a66470234ccf10","src/front/type_gen.rs":"49d8aae89143a0cba182c5271a2aa60972251c1603144bd21567565ff64b2274","src/front/wgsl/error.rs":"c9c72b36e63e69050b845e820228abf6d2a1d4e186d1c8ec6ad6c9951feefc14","src/front/wgsl/index.rs":"caf16ac352824d580a5073253ec13a284cb66d6dbe7b9ac08262fc722e31292a","src/front/wgsl/lower/construction.rs":"68ccb994d4e23e6067a47d355609798278fef65e17cc9256264b3ed007c81b03","src/front/wgsl/lower/conversion.rs":"492293f4f3fc7786a3a480ca0f43a10ae5ac8557cf1903cdd616ca624093b951","src/front/wgsl/lower/mod.rs":"d765164689b63e24e086f472d886f07df86d5d271c2b1476633a27ce2b315b50","src/front/wgsl/mod.rs":"680a2b23b6fbb8dbe8c9ede6e9928abf5bbbe41c605774daffabbaecc56353bd","src/front/wgsl/parse/ast.rs":"bc55ea98403bee59388e58f4f49225de294322fc54472353ac8898f0f644e970","src/front/wgsl/parse/conv.rs":"190dd3c1c0f14f0cd26fca6efc328c893c96eb0300fb332f1aedbfb40b8a8000","src/front/wgsl/parse/directive.rs":"3beee2d7d0dd2e5fa2cc91adf41b99b182f790dd5758ef8cd0421934e32df888","src/front/wgsl/parse/directive/enable_extension.rs":"3e2c6b21603b3d52bddf3c3ef872fa1027a74e11c0a8ded7a3b507b775a5b6ce","src/front/wgsl/parse/directive/language_extension.rs":"ee92bd45e8d1b659814389803e87e798b173e47d69d7618926eac92918f38875","src/front/wgsl/parse/lexer.rs":"23f6cfc73263a87261669fb943a79909f7d64faf7f54f63db998533448a103e5","src/front/wgsl/parse/mod.rs":"bc0f74ee9c39fd6950ad3bd3381197e93f2674c097f508de33afa7e6f6f953d4","src/front/wgsl/parse/number.rs":"dafd3d8651cfa1389cb359d76d39bd689e54f8d5025aa23e06c6edd871369efd","src/front/wgsl/tests.rs":"7a0a083a5b66af8e7d4b1a02401b27f077eb72d07181b610693f35b11f107c6c","src/front/wgsl/to_wgsl.rs":"84be4fdb54f7d7d6dfcaedd1b48b6e6ee958685d950ec2007567b909cdc79289","src/keywords/mod.rs":"47a6fde012bf7d1e70f0fac7762f6a8e7dca6b9bbb99e2cada773c61527cfbfe","src/keywords/wgsl.rs":"c648ac44241ad55c8c8bad3d8f1bab973d11ddb9c380dcca369b735ed3975309","src/lib.rs":"5cb1b921d4ff9cd8e300c6ab25ea26487e3472e3c2f1b91e1e8847130522616c","src/non_max_u32.rs":"3f4aafc8e2775982187507d49e7aa58befffdaba71c9287be42afdfde28bcb66","src/proc/constant_evaluator.rs":"810d992677e4601bbba5da42c811894d75b6af9b947b11ebf377853432e94391","src/proc/emitter.rs":"39ac886c651e2ad33c06a676a7e4826a0e93de0af660c01e8e4b1f7406742f88","src/proc/index.rs":"519cf6dd13de041a0315d86c5d6b96852cf2fcd71dc28c43b05713076f291d63","src/proc/layouter.rs":"e95fd9defa08e0c610d22d7cd795a6af787610d1ff0d4ed27798b4ffd2098cf1","src/proc/mod.rs":"4b3ae1dd04e424b3122d22f524bd6d37643f3fc2d4d4896c6aa3092d13fde350","src/proc/namer.rs":"7328fac41e40890c64c7ee2fa985a4395424f18b08d30f30ca2583fdabd2fd35","src/proc/terminator.rs":"fef2160473fcddd670c6b5806a8ea0ecbdcc0fdf6ed793dce131ecd08cce3944","src/proc/typifier.rs":"0f247eedb9cad9d496e845c152e585fb535aae8cca1124ebd20f0aeb5bde60bf","src/span.rs":"fe0dfe0530d78f4078a1cada6a148c3448f3b18cfe2cbce0ab09d81add51f259","src/valid/analyzer.rs":"c34cf5bb885a35bad28b6a3e5f732cb4498f7dfd4cb7b10548fc3dd15376de53","src/valid/compose.rs":"83e4c09c39f853cf085b83b87e48b3db571da619132960d3ec954ebdfb0a74f2","src/valid/expression.rs":"f36ca63450720ccf1ec9f65e2226c7958ed30a31bbc5f2ba6444958269c00eda","src/valid/function.rs":"49b254ca098cc808de8a63a7c7ce986b88ffc66c5ca3d89d4513f1b420f718e8","src/valid/handles.rs":"fd9e52370d76b9ff57357c651a951112246ca6c4794b59c021601e9c6b11a0bd","src/valid/interface.rs":"c03dc8a70c69993c6ed82c12451486eeb99014f35f9600b34d34d5ecdcef5d18","src/valid/mod.rs":"4130656e5d14c54de38d4f7e7e8cb15ffe60c19ddf93aa976b2fc3e990ddbf45","src/valid/type.rs":"1a7725af90a952e5472cbb0d4b93ad01cee1c20e86985c7c691e5a9665c906bb"},"package":null} \ No newline at end of file +{"files":{".cargo/config.toml":"d7389d2a0c08ec72b79e83a3c76980903e3f9123625c32e69c798721193e2e74","CHANGELOG.md":"e60105d413f857e37dae165f819c47491d0a595183d3c9146b259d811b98b14f","Cargo.toml":"6c64c5998e5d4fb06da97d12a71134295f9c486cd0b707dc0e98bdd5c0c3d161","README.md":"00a6070ebadb15a9488f117b286f50e4838a7dd0a28d41c9fcff4781c6b49171","build.rs":"824e90067aa04ad8726a49476b1af51f5c5c16f9a0b372f00398b3748d723662","src/arena/handle.rs":"1bf2edcca03d7cb466e1f8bd4bf1c966b805505ea2ee3641c39aa04811413478","src/arena/handle_set.rs":"3b8dbba40c67491b3c282b8ba0e79b259220f94739285b6ddfac1bced2334354","src/arena/handlevec.rs":"dfc9249478eb6980c13587c740d91234214bc7e0eef90e6f40b3d99decf70a58","src/arena/mod.rs":"14db142163133eb9ca582bc3665450f49cc4b1cfbda043b8b1518590cdda73be","src/arena/range.rs":"88683c36b137499ab537cf906505c2bd0871e0b9177e3a4e55da9db4e86df6a2","src/arena/unique_arena.rs":"22761770dbcbb6ac497ebdcf07173b3f07fc3c74bc0a70990d5fad882f4f471f","src/back/continue_forward.rs":"f95b810164db51fde368362624ce2569826b47dc3460df316b879abba48e5388","src/back/dot/mod.rs":"617c3ba398ee2435be2eda459db202e9073423b4c30b34a143356c515cb0f139","src/back/glsl/features.rs":"8df4635a346f65c3ca11d38550ecc6f6e5d10fc1721dc222c3473337ded56d63","src/back/glsl/keywords.rs":"b8883e5ee8a3d400fa44fef2baffe2853e72ff91e832499c128454d325ceccd9","src/back/glsl/mod.rs":"c0998622ec93b7a627e02813a1c98b309de0f3a73652238b7726b48a7f6ce14f","src/back/hlsl/conv.rs":"8f12243fbfff12875c67277f366a243fc543528ce9f4995bb55dd196c8e76e55","src/back/hlsl/help.rs":"7dbc4ac84251d4932e6f5e500dfb3c67cc4439e5020fab073a92ba6c9cea6c79","src/back/hlsl/keywords.rs":"a7164690a4da866e6bfb18ced20e32cc8c42dd7387e0e84addf0c2674f529cf5","src/back/hlsl/mod.rs":"4e70ecf15f90a3b453a8b7cb6f9b5f68c360dd246d84b88c0b303c22c8c054ac","src/back/hlsl/storage.rs":"53b35fe30d170c0bcb7ec522ab8a304b52d4539cd2be2f766342d55ed5ec5cf1","src/back/hlsl/writer.rs":"2f096db9c1f1a62764fbf0751e67da132e66c20f851008b9a2f983eed1924df1","src/back/mod.rs":"59a3fd1215829497dc6d576fd01618c730987517c36244338ff7bb2a60eb663b","src/back/msl/keywords.rs":"e6a4ef77363f995de1f8079c0b8591497cbf9520c5d3b2d41c7e1f483e8abd24","src/back/msl/mod.rs":"3bd2e95f4147997cc868de0d2dc32fdc96c5e2b4ac59c44cd579540bd3fa2a67","src/back/msl/sampler.rs":"9b01d68669e12ff7123243284b85e1a9d2c4d49140bd74ca32dedc007cbf15af","src/back/msl/writer.rs":"7ad43eb1c541e7801ce18588536ce6c9294cc0702d661233e3ed7262101bd823","src/back/pipeline_constants.rs":"76a5944c5cd548c26daa065f980cf8dd2e72ba3a5b97c267ac4f2c44c6b7e8d1","src/back/spv/block.rs":"7a3cf2cca00dc74074cc946750f6284d7f1abf7b67dda649118091a245c24ba0","src/back/spv/helpers.rs":"0ba90760dd2dbc6ad461454d33d6b4a75a603326e8ba7e3c2538c6360da9b445","src/back/spv/image.rs":"12c9693e0f9abee6e81c1cb1d3d993153438a103b82d95344fcf5fe00330976d","src/back/spv/index.rs":"07edd32e0aace781b98745f4c4b8533d6cd845b4772db85af825d7d56146db0a","src/back/spv/instructions.rs":"253b1fcb2883302734255fbc2d5fcebe3309ccdbb4784f33cf33c7fa66317967","src/back/spv/layout.rs":"e263de53cd2f9a03ad94b82b434ce636609bc1ed435a2d1132951663bfaa8ebd","src/back/spv/mod.rs":"5ddc2357e30d748c01c0b5c263978537df3c0dfc321b91a2873af02916695495","src/back/spv/ray.rs":"aa19a556db38e5d9461fe8d7adafa890cbee1100439f737a350194dea8083319","src/back/spv/recyclable.rs":"8061e39ea5357c8d55081a81fb836e762fd9793c1c6b04ae5d714af32677e616","src/back/spv/selection.rs":"81e404abfa0a977f7c1f76ccb37a78d13ccadbda229048dad53cc67687cc39db","src/back/spv/subgroup.rs":"288524de89fb2fff20c34cf9047bd209142c8b183a0e6123e88ae7f05c5d4cb5","src/back/spv/writer.rs":"180b1ff6ccbcf97b2d0e2dd193fd8bf3ae83aa4a019789d22daf75395584c284","src/back/wgsl/mod.rs":"70a108f4d297ce0581067500e0c6a579bcbc2ae63f4ed0afbd2da8f0199c435e","src/back/wgsl/polyfill/inverse/inverse_2x2_f16.wgsl":"9e7635d04724822931c805a8b35e76d6d294d447e4ea8d57b308ce45609bf736","src/back/wgsl/polyfill/inverse/inverse_2x2_f32.wgsl":"340d491abde07f93996391796db65a5f88402663eaf6b9d2d894d11cb8cf8b6d","src/back/wgsl/polyfill/inverse/inverse_3x3_f16.wgsl":"4f13a1a4b3e1b51f0f992d13c55cf854a80917554a4d13c997819fa1fe776ba4","src/back/wgsl/polyfill/inverse/inverse_3x3_f32.wgsl":"9b16d2f4b9e433c8e03a0cb46ab48508f3bf7e185ce1b4e26106c47e81a677cb","src/back/wgsl/polyfill/inverse/inverse_4x4_f16.wgsl":"86d39d1db5d03995b404950279db7f1698ad9622982aa319fdedb7532673235b","src/back/wgsl/polyfill/inverse/inverse_4x4_f32.wgsl":"dc510525ac2dce66389a8c4bf8b2f31f0dedd9e6debdbe4ffd939a0a7fc533d3","src/back/wgsl/polyfill/mod.rs":"f4ab3c9b9cdc36d16dab00d0f7f07d6e6beda0e27a36053e9b5ffeeb7ca18edc","src/back/wgsl/writer.rs":"097bf8d7f277ba369de5e3f38438885af40df6f7408d3b90e0c4eb10a50658d1","src/block.rs":"e447f7e041fd67052b23d1139cf0574eea93220a818af71691d960bdf026d45f","src/compact/expressions.rs":"a04f5dbc936693280fddc328df623af0b8d1fc0d11bd01987df9104e9c27bea1","src/compact/functions.rs":"27c084ca6b475999a3367f8ea429dbf7326a54c83ef86898b7ba67366f9bb828","src/compact/handle_set_map.rs":"748de9563f0ff897c113ba665f3e59ab3a023050e2206eb7d566a31f61fc32e5","src/compact/mod.rs":"7ec6bea36d11438c391c37d9a193b323d7fb365de6b9dfd45e78a3240dbab7ba","src/compact/statements.rs":"360e2bb6c2b7fdf4f9de368048ae574b2efd171adf34be44f84fbe21a15f5def","src/compact/types.rs":"9e73ac7dfdaf4b10eda1c938b881857392abc1315adcc035fc3980d63236cf37","src/diagnostic_filter.rs":"36a6da8531b25cb1957b5713ec3268a300a8b617485a7d42bc27274539114cdc","src/error.rs":"ca7b251c0d09e4cc46a79a3c249c6849a85b5a6c6745b35ae613166fc30b50ba","src/front/atomic_upgrade.rs":"98d2e2ea4192faa4d5f4887fef7ae71234de1df32df2f5f4e0761a847dc468c9","src/front/glsl/ast.rs":"663e815ea3e511f0445ef910340c380ff1bcf63805329ab7ca8cf35de7f902ed","src/front/glsl/builtins.rs":"c87b42740a7c67b04d3b4b88fad3ee0c750eda8b8b6d5ab4e06aa9a1cbd4e20e","src/front/glsl/context.rs":"52c1926bc3d913ce2ac9ec0068f684fc85972628e221189dc0fc1bbb38d62f31","src/front/glsl/error.rs":"2ef5061decd42dfc3054fd0f1a86dc7168e2064572571147117d798e39675722","src/front/glsl/functions.rs":"864e82e74c63c82b7e8b02dcd8d71686fc174e903f5ecd4348c971365f5f095f","src/front/glsl/lex.rs":"08736ae8beb955da5b0e6e3e0f45995a824995f7096d516a2910417e9c7afa32","src/front/glsl/mod.rs":"bf97bf1710d5d1f8facb77913cb82868697920914a96ed309adf0f19154a2ab4","src/front/glsl/offset.rs":"9358602ca4f9ef21d5066d674dae757bf88fdf5c289c4360534354d13bd41dc0","src/front/glsl/parser.rs":"a752f2abac17e6d35c0eb406f2f1c24d2b622a55b1bececbdd13614edb686622","src/front/glsl/parser/declarations.rs":"796514c1d571b324817bf1236d4c1227a91a512c0660ce5bb1264cd900027158","src/front/glsl/parser/expressions.rs":"af9c21b4aacc964d080285d670f6707d60b12d11de2920836f71814d9148aa46","src/front/glsl/parser/functions.rs":"dd5980bd731bcd8044bbfa16f760cdc77c02422ec116d7ebbbe64fcbe1fb7a04","src/front/glsl/parser/types.rs":"0aad1c665058d3babe3c8ddc0ccf9be21c4cf18c807167fd125fb86a6b5f8873","src/front/glsl/parser_tests.rs":"c44ed3252096c83a0ce1ea9be8d2b867784cdc1c11aa4501aee1a85d86c62511","src/front/glsl/token.rs":"c25c489b152ee2d445ace3c2046473abe64d558b8d27fa08709110e58718b6ac","src/front/glsl/types.rs":"91c3a4e4d11b397ea647ff287e17a48baedf2f2c310e81b04618675daeb83f69","src/front/glsl/variables.rs":"4b95ce4e6dd76bcf8eec5e54f4be85ead6062a59e1235cfdbbfc8cf3f1671a83","src/front/interpolator.rs":"9b6ca498d5fbd9bc1515510a04e303a00b324121d7285da3c955cfe18eb4224c","src/front/mod.rs":"ba984fc9b933a844fa8dadf05dea70f308911054ad3f10448d652706e158b4bd","src/front/spv/convert.rs":"5dc6e4328d9d345ebcebd2a671a8fd9fd5316ad7f122a6251bfb633cd6ffec6c","src/front/spv/error.rs":"6835a4fd90f675a90b39eb2af52c689d0339668d89f2fe5ba9a0afa5b7f0a561","src/front/spv/function.rs":"e584dbeaa5f7e1ff107f3e7e5211b0bfb8f7b9878a74dbe29dc7941cb33b2e0f","src/front/spv/image.rs":"16141ea0140f4f668f19249f8ab083dab78aa1bb9d07f54d199a569d560cc3e1","src/front/spv/mod.rs":"39b3da93815aff2b6afc926937879c1644673b12c419181434cd56ee2c1cf4d1","src/front/spv/null.rs":"a8ff44e97ffe42a4773d89b88fdb3a8ef8fba58bf6645c73b7a66470234ccf10","src/front/type_gen.rs":"49d8aae89143a0cba182c5271a2aa60972251c1603144bd21567565ff64b2274","src/front/wgsl/error.rs":"c9c72b36e63e69050b845e820228abf6d2a1d4e186d1c8ec6ad6c9951feefc14","src/front/wgsl/index.rs":"caf16ac352824d580a5073253ec13a284cb66d6dbe7b9ac08262fc722e31292a","src/front/wgsl/lower/construction.rs":"68ccb994d4e23e6067a47d355609798278fef65e17cc9256264b3ed007c81b03","src/front/wgsl/lower/conversion.rs":"492293f4f3fc7786a3a480ca0f43a10ae5ac8557cf1903cdd616ca624093b951","src/front/wgsl/lower/mod.rs":"d765164689b63e24e086f472d886f07df86d5d271c2b1476633a27ce2b315b50","src/front/wgsl/mod.rs":"680a2b23b6fbb8dbe8c9ede6e9928abf5bbbe41c605774daffabbaecc56353bd","src/front/wgsl/parse/ast.rs":"bc55ea98403bee59388e58f4f49225de294322fc54472353ac8898f0f644e970","src/front/wgsl/parse/conv.rs":"190dd3c1c0f14f0cd26fca6efc328c893c96eb0300fb332f1aedbfb40b8a8000","src/front/wgsl/parse/directive.rs":"3beee2d7d0dd2e5fa2cc91adf41b99b182f790dd5758ef8cd0421934e32df888","src/front/wgsl/parse/directive/enable_extension.rs":"3e2c6b21603b3d52bddf3c3ef872fa1027a74e11c0a8ded7a3b507b775a5b6ce","src/front/wgsl/parse/directive/language_extension.rs":"ee92bd45e8d1b659814389803e87e798b173e47d69d7618926eac92918f38875","src/front/wgsl/parse/lexer.rs":"23f6cfc73263a87261669fb943a79909f7d64faf7f54f63db998533448a103e5","src/front/wgsl/parse/mod.rs":"bc0f74ee9c39fd6950ad3bd3381197e93f2674c097f508de33afa7e6f6f953d4","src/front/wgsl/parse/number.rs":"dafd3d8651cfa1389cb359d76d39bd689e54f8d5025aa23e06c6edd871369efd","src/front/wgsl/tests.rs":"7a0a083a5b66af8e7d4b1a02401b27f077eb72d07181b610693f35b11f107c6c","src/front/wgsl/to_wgsl.rs":"84be4fdb54f7d7d6dfcaedd1b48b6e6ee958685d950ec2007567b909cdc79289","src/keywords/mod.rs":"47a6fde012bf7d1e70f0fac7762f6a8e7dca6b9bbb99e2cada773c61527cfbfe","src/keywords/wgsl.rs":"c648ac44241ad55c8c8bad3d8f1bab973d11ddb9c380dcca369b735ed3975309","src/lib.rs":"5cb1b921d4ff9cd8e300c6ab25ea26487e3472e3c2f1b91e1e8847130522616c","src/non_max_u32.rs":"3f4aafc8e2775982187507d49e7aa58befffdaba71c9287be42afdfde28bcb66","src/proc/constant_evaluator.rs":"810d992677e4601bbba5da42c811894d75b6af9b947b11ebf377853432e94391","src/proc/emitter.rs":"39ac886c651e2ad33c06a676a7e4826a0e93de0af660c01e8e4b1f7406742f88","src/proc/index.rs":"519cf6dd13de041a0315d86c5d6b96852cf2fcd71dc28c43b05713076f291d63","src/proc/layouter.rs":"e95fd9defa08e0c610d22d7cd795a6af787610d1ff0d4ed27798b4ffd2098cf1","src/proc/mod.rs":"4b3ae1dd04e424b3122d22f524bd6d37643f3fc2d4d4896c6aa3092d13fde350","src/proc/namer.rs":"7328fac41e40890c64c7ee2fa985a4395424f18b08d30f30ca2583fdabd2fd35","src/proc/terminator.rs":"fef2160473fcddd670c6b5806a8ea0ecbdcc0fdf6ed793dce131ecd08cce3944","src/proc/typifier.rs":"0f247eedb9cad9d496e845c152e585fb535aae8cca1124ebd20f0aeb5bde60bf","src/span.rs":"fe0dfe0530d78f4078a1cada6a148c3448f3b18cfe2cbce0ab09d81add51f259","src/valid/analyzer.rs":"929955940457f7207707e2fe2dc6e017a3b6af30d1c75819eb23b2b6b4875f22","src/valid/compose.rs":"83e4c09c39f853cf085b83b87e48b3db571da619132960d3ec954ebdfb0a74f2","src/valid/expression.rs":"f36ca63450720ccf1ec9f65e2226c7958ed30a31bbc5f2ba6444958269c00eda","src/valid/function.rs":"49b254ca098cc808de8a63a7c7ce986b88ffc66c5ca3d89d4513f1b420f718e8","src/valid/handles.rs":"fd9e52370d76b9ff57357c651a951112246ca6c4794b59c021601e9c6b11a0bd","src/valid/interface.rs":"c03dc8a70c69993c6ed82c12451486eeb99014f35f9600b34d34d5ecdcef5d18","src/valid/mod.rs":"4130656e5d14c54de38d4f7e7e8cb15ffe60c19ddf93aa976b2fc3e990ddbf45","src/valid/type.rs":"1a7725af90a952e5472cbb0d4b93ad01cee1c20e86985c7c691e5a9665c906bb"},"package":null} \ No newline at end of file diff --git a/third_party/rust/naga/Cargo.toml b/third_party/rust/naga/Cargo.toml index 4283c80e09f9..786b85bd91f5 100644 --- a/third_party/rust/naga/Cargo.toml +++ b/third_party/rust/naga/Cargo.toml @@ -84,7 +84,7 @@ optional = true version = "1.1.0" [dependencies.serde] -version = "1.0.213" +version = "1.0.214" features = ["derive"] optional = true @@ -96,7 +96,7 @@ optional = true version = "1.4.1" [dependencies.thiserror] -version = "1.0.65" +version = "1.0.67" [dependencies.unicode-xid] version = "0.2.6" diff --git a/third_party/rust/naga/src/back/glsl/mod.rs b/third_party/rust/naga/src/back/glsl/mod.rs index de4a31b74c25..1a7ed7cbe9ee 100644 --- a/third_party/rust/naga/src/back/glsl/mod.rs +++ b/third_party/rust/naga/src/back/glsl/mod.rs @@ -3095,7 +3095,7 @@ impl<'a, W: Write> Writer<'a, W> { self.write_expr(image, ctx)?; // All textureSize calls requires an lod argument // except for multisampled samplers - if class.is_multisampled() { + if !class.is_multisampled() { write!(self.out, ", 0")?; } write!(self.out, ")")?; diff --git a/third_party/rust/naga/src/valid/analyzer.rs b/third_party/rust/naga/src/valid/analyzer.rs index af95fd098f8f..6b4679632ea7 100644 --- a/third_party/rust/naga/src/valid/analyzer.rs +++ b/third_party/rust/naga/src/valid/analyzer.rs @@ -421,7 +421,10 @@ impl FunctionInfo { let image_storage = match sampling.image { GlobalOrArgument::Global(var) => GlobalOrArgument::Global(var), GlobalOrArgument::Argument(i) => { - let handle = arguments[i as usize]; + let Some(handle) = arguments.get(i as usize).cloned() else { + // Argument count mismatch, will be reported later by validate_call + break; + }; GlobalOrArgument::from_expression(expression_arena, handle).map_err( |source| { FunctionError::Expression { handle, source } @@ -434,7 +437,10 @@ impl FunctionInfo { let sampler_storage = match sampling.sampler { GlobalOrArgument::Global(var) => GlobalOrArgument::Global(var), GlobalOrArgument::Argument(i) => { - let handle = arguments[i as usize]; + let Some(handle) = arguments.get(i as usize).cloned() else { + // Argument count mismatch, will be reported later by validate_call + break; + }; GlobalOrArgument::from_expression(expression_arena, handle).map_err( |source| { FunctionError::Expression { handle, source } diff --git a/third_party/rust/wgpu-core/.cargo-checksum.json b/third_party/rust/wgpu-core/.cargo-checksum.json index fe283b36112d..17ac1660191c 100644 --- a/third_party/rust/wgpu-core/.cargo-checksum.json +++ b/third_party/rust/wgpu-core/.cargo-checksum.json @@ -1 +1 @@ -{"files":{"Cargo.toml":"880d8e9ad35a9832036e115854b710b43ddd7412f0ce3e47a3fc128d34360151","LICENSE.APACHE":"a6cba85bc92e0cff7a450b1d873c0eaa2e9fc96bf472df0247a26bec77bf3ff9","LICENSE.MIT":"c7fea58d1cfe49634cd92e54fc10a9d871f4b275321a4cd8c09e449122caaeb4","build.rs":"a99478d7f63fb41429e3834f4d0e5cd333f94ba1834c68295f929170e16987de","src/binding_model.rs":"de0992f927f071d05383d0f07a5772bcddd26e1d3d13157b886ff0e769c5c470","src/command/allocator.rs":"882d780e5d58b7a60370b58fffd7f35ffd4c087cf2ff2536267fcd57071b5f68","src/command/bind.rs":"bc990a59391737d4917d4cd7efbd7abc38e95ae7ed1da5662b1f35c74a425a75","src/command/bundle.rs":"1652560431ca3509e3e88f185489f75a5184196ca7819c71e436542f4767a6a1","src/command/clear.rs":"adaa0701e6d9ad3204ccc330246a71f7e4b110da7d186c0c926e92220cc84a70","src/command/compute.rs":"2a28948fd9117d6efc38c30e8883df8ce2f3a273cfb2f1b15358a4c9ce726940","src/command/compute_command.rs":"7befc7eb479c150f71510730c16e737bb390cbf5d2d58b0a44327ad4375938e9","src/command/draw.rs":"2f9e1d08f77425baa4680ea8b8e023321f8ac3a986f78299f8cc8bc083353fc1","src/command/memory_init.rs":"fadd17881d35ea5b2918de48ae9d631e16d6c49aba744d334e3edee64c0e839d","src/command/mod.rs":"c007a7f94a9ba94233b6d0721b3c3655a6e6c2cb9192ca20a408a0c3d5af788d","src/command/query.rs":"74ade834ad8098473a1d94259bfd98afb67b3d61cda591f3f5953153155e0717","src/command/render.rs":"06911d9fe73267c10827e25d4f1f728dacfc572fb9afad076fda1d85fbf349d4","src/command/render_command.rs":"314a05272478511f0b62bdb3aa409284d1c7ce84a8715476feef7d058b782276","src/command/timestamp_writes.rs":"38d3a48ec70043c0cbf4113a8751a3bf267c31c3c8328dcfd9d86bacbc800dc3","src/command/transfer.rs":"0d389abc58d94002dcf20141c904979b824e5b5b015b4955b7ad721c75265623","src/conv.rs":"9bbcd0660741a808d29788266bbac34af54c58e8db8ed856082f8d2d1dfb792d","src/device/bgl.rs":"1198f47a486d4cad4c03b49c98d690bac039a7b370cc241a5f279c6767e0b010","src/device/global.rs":"4c767e419b74237a9854d94fa18a9a58fa43f7c1ba33336f5d87a23e7d37606b","src/device/life.rs":"5a6267bb36278c806905919cc016569bc13d1d7ab4afef10366890a32dd0fe79","src/device/mod.rs":"9bd5545d14c1ca2388a1b585242f14185ad86132f15b23e328ab401ad0b6883c","src/device/queue.rs":"c9422f8b1203ca4313686d18e01c8dd058017d13a2787388188c6739bc48202e","src/device/resource.rs":"b11a8256e3552d65cc4e1b7e374cff854c01a45323c7886a656877d10e512aa5","src/device/trace.rs":"0e38395e0f41b763975d94d0b538ccbb926a3d784d4bfc78048884789c5b9d09","src/error.rs":"f509aa8a57c04e1aea9ba1b4a1589d007666018cd619db3f822c37082a76b871","src/global.rs":"6003cff3fcfc54b809485cf0529671aa0d2965f2248cdbae8176039db43e1596","src/hal_api.rs":"29377c036d3eaaa05d83b87644a9a33916824eb51aa2d005704cde97e77925cb","src/hash_utils.rs":"e8d484027c7ce81978e4679a5e20af9416ab7d2fa595f1ca95992b29d625b0ca","src/hub.rs":"31a4db7de30722bbd605f3ead5aefdc20dac720c3c73b79f679e71e13ccb07e7","src/id.rs":"360be13c450d11dd67593419a8ea96a514a0ebfc828525b0189382d0d8836a5d","src/identity.rs":"28917262fa245d81a5c2738513c3376c3a8d9b581fb44e9b2e0bf365b921911f","src/indirect_validation.rs":"787c738cd2de2174ee64cbfacd4e20284e2e97fdcc1a9ffc587d64393fa5a8a2","src/init_tracker/buffer.rs":"85e7c942b0acc1b2f724bb63ca015389c8a9a853198c37108a162326a2b5e70b","src/init_tracker/mod.rs":"039f2c6a98b066f80fd28f1b01f84b5d42e56f92176ac63b22dd572b06e4804d","src/init_tracker/texture.rs":"8e69fa256bf7cf7ce7bcbe28991e12990bf199ddb359b7a2bd40eee950a0fea9","src/instance.rs":"e32431478f38fd4d381ebbfde79ca016a9b5859ac8440861d71a21077e87e79b","src/lib.rs":"29b204a4bfd21c1cd17b8c9c066003e6a0d98a1abd23c562a5e53bf724ca6ee7","src/lock/mod.rs":"c58ae08a8e6108432d9e14e7d8b7bd15af7bb5e98bf700d6bd9a469b80a38b11","src/lock/observing.rs":"50d7c675e64cc89a188c12163e1920e75fe64db1682e843fff778efd751aa037","src/lock/rank.rs":"e6eebdb0fe0bf5e6ef7f8b522b1d83957643d244f84e1523a1e96f8f0a8d8126","src/lock/ranked.rs":"bafe6f295b4cade449cc41491c0dcd1497a6e04c5d902124040ac2056996a44d","src/lock/vanilla.rs":"57581d4671e226438b55f74c4195baa0c4fe1d9f4911a4c026b667c77ab574ff","src/pipeline.rs":"ceda5eea46bb8881ce55269b4006210f862b60c1fde2881f1c3e13c509a5369f","src/pipeline_cache.rs":"dbb6b93562a15c9b27acc006545449a6c033280433c1950806243fcfe0850c3e","src/pool.rs":"7899e74874da17c83ec39a88b360de12f564ef4bee2bb1240c37becdaeb57a86","src/present.rs":"651231d2d5e4116449ac21fc860b750b1a2a237b1ba3eb6a42548fcdb79a7963","src/registry.rs":"adf47a507fe23abf6307cb37ea1cf5053294a3263fed477f39481cb7c690b5d7","src/resource.rs":"66938b6677ee3acda19c4e9afb3816c6154770cd437d498d1e01538e4384d563","src/snatch.rs":"cd5dd9ad14f197499156e0e96a81be73df36490cb02553acdfeb8a287c349435","src/storage.rs":"4b1bfd1bee2ba3d98ab2019508ca65d4bef83a9b7189641bd326cfdb16317e41","src/track/buffer.rs":"dc671db7ab4b8378af0e4a0f7dab181d86708922f942e3b01f7fc5d48507c509","src/track/metadata.rs":"f714b6316595fd735d2b2034b218cadc35851ea6e5fd16207264e32f3bc3de32","src/track/mod.rs":"7e80349251c0874ed1d50847beee61e193ae706b9161405061e35c26d389c1f2","src/track/range.rs":"2a15794e79b0470d5ba6b3267173a42f34312878e1cb288f198d2854a7888e53","src/track/stateless.rs":"e404d58dbe2644bed4a9fcdc2c01a699322d669aaa4e6619750347519fb56625","src/track/texture.rs":"06fe56b826059cfd06cc3ccc26cc2f1e22c19178f63e32696c421b2717b8dacb","src/validation.rs":"6ea396fec9f934aaed00cee98b348e9b569187028fea2bf79f89b70ad8c35442","src/weak_vec.rs":"e6e719e2bfa470b97e92d9a71c0cab6d3c2c4aad1999e48965c5ee00f559e7e3"},"package":null} \ No newline at end of file +{"files":{"Cargo.toml":"1b3f6d9f6090a1aad862134ff59fd1bb1230a05b357d7f5fc2722d3f84477ca4","LICENSE.APACHE":"a6cba85bc92e0cff7a450b1d873c0eaa2e9fc96bf472df0247a26bec77bf3ff9","LICENSE.MIT":"c7fea58d1cfe49634cd92e54fc10a9d871f4b275321a4cd8c09e449122caaeb4","build.rs":"a99478d7f63fb41429e3834f4d0e5cd333f94ba1834c68295f929170e16987de","src/binding_model.rs":"de0992f927f071d05383d0f07a5772bcddd26e1d3d13157b886ff0e769c5c470","src/command/allocator.rs":"882d780e5d58b7a60370b58fffd7f35ffd4c087cf2ff2536267fcd57071b5f68","src/command/bind.rs":"bc990a59391737d4917d4cd7efbd7abc38e95ae7ed1da5662b1f35c74a425a75","src/command/bundle.rs":"1652560431ca3509e3e88f185489f75a5184196ca7819c71e436542f4767a6a1","src/command/clear.rs":"adaa0701e6d9ad3204ccc330246a71f7e4b110da7d186c0c926e92220cc84a70","src/command/compute.rs":"8b547b50818146e56b8a5a25ce88f9c0314b433590b7b61aea14bbac0ecce390","src/command/compute_command.rs":"7befc7eb479c150f71510730c16e737bb390cbf5d2d58b0a44327ad4375938e9","src/command/draw.rs":"2f9e1d08f77425baa4680ea8b8e023321f8ac3a986f78299f8cc8bc083353fc1","src/command/memory_init.rs":"fadd17881d35ea5b2918de48ae9d631e16d6c49aba744d334e3edee64c0e839d","src/command/mod.rs":"bac7ae8b3aaa3a66b418547fcb43f11f25adcdc548be812ff7ea1f986ab436e9","src/command/query.rs":"74ade834ad8098473a1d94259bfd98afb67b3d61cda591f3f5953153155e0717","src/command/render.rs":"e8e7c2adff5ff248cdeaa8e47940ba6f39001300df8b1414602fddd4de9380cd","src/command/render_command.rs":"314a05272478511f0b62bdb3aa409284d1c7ce84a8715476feef7d058b782276","src/command/timestamp_writes.rs":"38d3a48ec70043c0cbf4113a8751a3bf267c31c3c8328dcfd9d86bacbc800dc3","src/command/transfer.rs":"0d389abc58d94002dcf20141c904979b824e5b5b015b4955b7ad721c75265623","src/conv.rs":"9bbcd0660741a808d29788266bbac34af54c58e8db8ed856082f8d2d1dfb792d","src/device/bgl.rs":"1198f47a486d4cad4c03b49c98d690bac039a7b370cc241a5f279c6767e0b010","src/device/global.rs":"6635c0be35c00f2373056162f2bb9467114910bd59d22dd56237ffd50e24be1b","src/device/life.rs":"a3e3e9619f481ce1c9561b30a740d95df8f0c04ccf61791196caaddd579fe591","src/device/mod.rs":"9bd5545d14c1ca2388a1b585242f14185ad86132f15b23e328ab401ad0b6883c","src/device/queue.rs":"676d8cfa2cf475e27ab27ccdf501058c90815e2e34963c513c79530dcc5580c4","src/device/resource.rs":"bb499d65233ab4494f350da637dfeeb206672c870728dc2b18bfe348a40bc4ae","src/device/trace.rs":"0e38395e0f41b763975d94d0b538ccbb926a3d784d4bfc78048884789c5b9d09","src/error.rs":"f509aa8a57c04e1aea9ba1b4a1589d007666018cd619db3f822c37082a76b871","src/global.rs":"6003cff3fcfc54b809485cf0529671aa0d2965f2248cdbae8176039db43e1596","src/hal_api.rs":"29377c036d3eaaa05d83b87644a9a33916824eb51aa2d005704cde97e77925cb","src/hash_utils.rs":"e8d484027c7ce81978e4679a5e20af9416ab7d2fa595f1ca95992b29d625b0ca","src/hub.rs":"31a4db7de30722bbd605f3ead5aefdc20dac720c3c73b79f679e71e13ccb07e7","src/id.rs":"360be13c450d11dd67593419a8ea96a514a0ebfc828525b0189382d0d8836a5d","src/identity.rs":"28917262fa245d81a5c2738513c3376c3a8d9b581fb44e9b2e0bf365b921911f","src/indirect_validation.rs":"787c738cd2de2174ee64cbfacd4e20284e2e97fdcc1a9ffc587d64393fa5a8a2","src/init_tracker/buffer.rs":"85e7c942b0acc1b2f724bb63ca015389c8a9a853198c37108a162326a2b5e70b","src/init_tracker/mod.rs":"039f2c6a98b066f80fd28f1b01f84b5d42e56f92176ac63b22dd572b06e4804d","src/init_tracker/texture.rs":"8e69fa256bf7cf7ce7bcbe28991e12990bf199ddb359b7a2bd40eee950a0fea9","src/instance.rs":"e32431478f38fd4d381ebbfde79ca016a9b5859ac8440861d71a21077e87e79b","src/lib.rs":"29b204a4bfd21c1cd17b8c9c066003e6a0d98a1abd23c562a5e53bf724ca6ee7","src/lock/mod.rs":"c58ae08a8e6108432d9e14e7d8b7bd15af7bb5e98bf700d6bd9a469b80a38b11","src/lock/observing.rs":"50d7c675e64cc89a188c12163e1920e75fe64db1682e843fff778efd751aa037","src/lock/rank.rs":"e6eebdb0fe0bf5e6ef7f8b522b1d83957643d244f84e1523a1e96f8f0a8d8126","src/lock/ranked.rs":"bafe6f295b4cade449cc41491c0dcd1497a6e04c5d902124040ac2056996a44d","src/lock/vanilla.rs":"57581d4671e226438b55f74c4195baa0c4fe1d9f4911a4c026b667c77ab574ff","src/pipeline.rs":"ceda5eea46bb8881ce55269b4006210f862b60c1fde2881f1c3e13c509a5369f","src/pipeline_cache.rs":"dbb6b93562a15c9b27acc006545449a6c033280433c1950806243fcfe0850c3e","src/pool.rs":"7899e74874da17c83ec39a88b360de12f564ef4bee2bb1240c37becdaeb57a86","src/present.rs":"651231d2d5e4116449ac21fc860b750b1a2a237b1ba3eb6a42548fcdb79a7963","src/registry.rs":"adf47a507fe23abf6307cb37ea1cf5053294a3263fed477f39481cb7c690b5d7","src/resource.rs":"a93c238d24bfdc64dc66eebc7c91c0d99e62e72968942fd01087fc2c67ebeaa5","src/snatch.rs":"cd5dd9ad14f197499156e0e96a81be73df36490cb02553acdfeb8a287c349435","src/storage.rs":"4b1bfd1bee2ba3d98ab2019508ca65d4bef83a9b7189641bd326cfdb16317e41","src/track/buffer.rs":"dc671db7ab4b8378af0e4a0f7dab181d86708922f942e3b01f7fc5d48507c509","src/track/metadata.rs":"f714b6316595fd735d2b2034b218cadc35851ea6e5fd16207264e32f3bc3de32","src/track/mod.rs":"7e80349251c0874ed1d50847beee61e193ae706b9161405061e35c26d389c1f2","src/track/range.rs":"2a15794e79b0470d5ba6b3267173a42f34312878e1cb288f198d2854a7888e53","src/track/stateless.rs":"e404d58dbe2644bed4a9fcdc2c01a699322d669aaa4e6619750347519fb56625","src/track/texture.rs":"06fe56b826059cfd06cc3ccc26cc2f1e22c19178f63e32696c421b2717b8dacb","src/validation.rs":"6ea396fec9f934aaed00cee98b348e9b569187028fea2bf79f89b70ad8c35442","src/weak_vec.rs":"e6e719e2bfa470b97e92d9a71c0cab6d3c2c4aad1999e48965c5ee00f559e7e3"},"package":null} \ No newline at end of file diff --git a/third_party/rust/wgpu-core/Cargo.toml b/third_party/rust/wgpu-core/Cargo.toml index 6b1768e13541..7f99ec153eba 100644 --- a/third_party/rust/wgpu-core/Cargo.toml +++ b/third_party/rust/wgpu-core/Cargo.toml @@ -109,7 +109,7 @@ optional = true version = "1" [dependencies.thiserror] -version = "1.0.65" +version = "1.0.67" [dependencies.wgt] version = "23.0.0" diff --git a/third_party/rust/wgpu-core/src/command/compute.rs b/third_party/rust/wgpu-core/src/command/compute.rs index 07dcc2475a27..93654c923599 100644 --- a/third_party/rust/wgpu-core/src/command/compute.rs +++ b/third_party/rust/wgpu-core/src/command/compute.rs @@ -312,6 +312,17 @@ impl Global { Ok(query_set) => query_set, Err(e) => return make_err(e.into(), arc_desc), }; + match query_set.same_device(&cmd_buf.device) { + Ok(()) => (), + Err(e) => return make_err(e.into(), arc_desc), + } + match cmd_buf + .device + .require_features(wgt::Features::TIMESTAMP_QUERY) + { + Ok(()) => (), + Err(e) => return make_err(e.into(), arc_desc), + } Some(ArcPassTimestampWrites { query_set, diff --git a/third_party/rust/wgpu-core/src/command/mod.rs b/third_party/rust/wgpu-core/src/command/mod.rs index 42c80d3ca529..540ff9d2e5eb 100644 --- a/third_party/rust/wgpu-core/src/command/mod.rs +++ b/third_party/rust/wgpu-core/src/command/mod.rs @@ -26,7 +26,7 @@ pub use timestamp_writes::PassTimestampWrites; use self::memory_init::CommandBufferTextureMemoryActions; -use crate::device::{Device, DeviceError}; +use crate::device::{Device, DeviceError, MissingFeatures}; use crate::lock::{rank, Mutex}; use crate::snatch::SnatchGuard; @@ -642,6 +642,8 @@ pub enum CommandEncoderError { InvalidColorAttachment(#[from] ColorAttachmentError), #[error(transparent)] InvalidResource(#[from] InvalidResourceError), + #[error(transparent)] + MissingFeatures(#[from] MissingFeatures), } impl Global { diff --git a/third_party/rust/wgpu-core/src/command/render.rs b/third_party/rust/wgpu-core/src/command/render.rs index d22eb5f0d6f5..6102d0d4927f 100644 --- a/third_party/rust/wgpu-core/src/command/render.rs +++ b/third_party/rust/wgpu-core/src/command/render.rs @@ -1358,9 +1358,11 @@ impl Global { }) = color_attachment { let view = texture_views.get(*view_id).get()?; + view.same_device(device)?; let resolve_target = if let Some(resolve_target_id) = resolve_target { let rt_arc = texture_views.get(*resolve_target_id).get()?; + rt_arc.same_device(device)?; Some(rt_arc) } else { @@ -1382,6 +1384,7 @@ impl Global { arc_desc.depth_stencil_attachment = if let Some(depth_stencil_attachment) = desc.depth_stencil_attachment { let view = texture_views.get(depth_stencil_attachment.view).get()?; + view.same_device(device)?; Some(ArcRenderPassDepthStencilAttachment { view, @@ -1394,6 +1397,9 @@ impl Global { arc_desc.timestamp_writes = if let Some(tw) = desc.timestamp_writes { let query_set = query_sets.get(tw.query_set).get()?; + query_set.same_device(device)?; + + device.require_features(wgt::Features::TIMESTAMP_QUERY)?; Some(ArcPassTimestampWrites { query_set, @@ -1407,6 +1413,7 @@ impl Global { arc_desc.occlusion_query_set = if let Some(occlusion_query_set) = desc.occlusion_query_set { let query_set = query_sets.get(occlusion_query_set).get()?; + query_set.same_device(device)?; Some(query_set) } else { diff --git a/third_party/rust/wgpu-core/src/device/global.rs b/third_party/rust/wgpu-core/src/device/global.rs index 583d3e03d395..72ba39dc874a 100644 --- a/third_party/rust/wgpu-core/src/device/global.rs +++ b/third_party/rust/wgpu-core/src/device/global.rs @@ -2147,33 +2147,27 @@ impl Global { offset: BufferAddress, size: Option, op: BufferMapOperation, - ) -> BufferAccessResult { + ) -> Result { profiling::scope!("Buffer::map_async"); api_log!("Buffer::map_async {buffer_id:?} offset {offset:?} size {size:?} op: {op:?}"); let hub = &self.hub; - let op_and_err = 'error: { - let buffer = match hub.buffers.get(buffer_id).get() { - Ok(buffer) => buffer, - Err(e) => break 'error Some((op, e.into())), - }; - - buffer.map_async(offset, size, op).err() + let map_result = match hub.buffers.get(buffer_id).get() { + Ok(buffer) => buffer.map_async(offset, size, op), + Err(e) => Err((op, e.into())), }; - // User callbacks must not be called while holding `buffer.map_async`'s locks, so we - // defer the error callback if it needs to be called immediately (typically when running - // into errors). - if let Some((mut operation, err)) = op_and_err { - if let Some(callback) = operation.callback.take() { - callback.call(Err(err.clone())); + match map_result { + Ok(submission_index) => Ok(submission_index), + Err((mut operation, err)) => { + if let Some(callback) = operation.callback.take() { + callback.call(Err(err.clone())); + } + log::error!("Buffer::map_async error: {err}"); + Err(err) } - log::error!("Buffer::map_async error: {err}"); - return Err(err); } - - Ok(()) } pub fn buffer_get_mapped_range( diff --git a/third_party/rust/wgpu-core/src/device/life.rs b/third_party/rust/wgpu-core/src/device/life.rs index e6aed78a08be..84ff18440ad4 100644 --- a/third_party/rust/wgpu-core/src/device/life.rs +++ b/third_party/rust/wgpu-core/src/device/life.rs @@ -126,35 +126,20 @@ pub enum WaitIdleError { /// - Each buffer's `ResourceInfo::submission_index` records the index of the /// most recent queue submission that uses that buffer. /// -/// - Calling `Global::buffer_map_async` adds the buffer to -/// `self.mapped`, and changes `Buffer::map_state` to prevent it -/// from being used in any new submissions. -/// /// - When the device is polled, the following `LifetimeTracker` methods decide /// what should happen next: /// -/// 1) `triage_mapped` drains `self.mapped`, checking the submission index -/// of each buffer against the queue submissions that have finished -/// execution. Buffers used by submissions still in flight go in -/// `self.active[index].mapped`, and the rest go into -/// `self.ready_to_map`. -/// -/// 2) `triage_submissions` moves entries in `self.active[i]` for completed +/// 1) `triage_submissions` moves entries in `self.active[i]` for completed /// submissions to `self.ready_to_map`. At this point, both /// `self.active` and `self.ready_to_map` are up to date with the given /// submission index. /// -/// 3) `handle_mapping` drains `self.ready_to_map` and actually maps the +/// 2) `handle_mapping` drains `self.ready_to_map` and actually maps the /// buffers, collecting a list of notification closures to call. /// /// Only calling `Global::buffer_map_async` clones a new `Arc` for the /// buffer. This new `Arc` is only dropped by `handle_mapping`. pub(crate) struct LifetimeTracker { - /// Buffers for which a call to [`Buffer::map_async`] has succeeded, but - /// which haven't been examined by `triage_mapped` yet to decide when they - /// can be mapped. - mapped: Vec>, - /// Resources used by queue submissions still in flight. One entry per /// submission, with older submissions appearing before younger. /// @@ -182,7 +167,6 @@ pub(crate) struct LifetimeTracker { impl LifetimeTracker { pub fn new() -> Self { Self { - mapped: Vec::new(), active: Vec::new(), ready_to_map: Vec::new(), work_done_closures: SmallVec::new(), @@ -211,8 +195,21 @@ impl LifetimeTracker { }); } - pub(crate) fn map(&mut self, value: &Arc) { - self.mapped.push(value.clone()); + pub(crate) fn map(&mut self, buffer: &Arc) -> Option { + // Determine which buffers are ready to map, and which must wait for the GPU. + let submission = self + .active + .iter_mut() + .rev() + .find(|a| a.contains_buffer(buffer)); + + let maybe_submission_index = submission.as_ref().map(|s| s.index); + + submission + .map_or(&mut self.ready_to_map, |a| &mut a.mapped) + .push(buffer.clone()); + + maybe_submission_index } /// Returns the submission index of the most recent submission that uses the @@ -304,41 +301,24 @@ impl LifetimeTracker { } } - pub fn add_work_done_closure(&mut self, closure: SubmittedWorkDoneClosure) { + pub fn add_work_done_closure( + &mut self, + closure: SubmittedWorkDoneClosure, + ) -> Option { match self.active.last_mut() { Some(active) => { active.work_done_closures.push(closure); + Some(active.index) } // We must defer the closure until all previously occurring map_async closures // have fired. This is required by the spec. None => { self.work_done_closures.push(closure); + None } } } - /// Determine which buffers are ready to map, and which must wait for the - /// GPU. - /// - /// See the documentation for [`LifetimeTracker`] for details. - pub(crate) fn triage_mapped(&mut self) { - if self.mapped.is_empty() { - return; - } - - for buffer in self.mapped.drain(..) { - let submission = self - .active - .iter_mut() - .rev() - .find(|a| a.contains_buffer(&buffer)); - - submission - .map_or(&mut self.ready_to_map, |a| &mut a.mapped) - .push(buffer); - } - } - /// Map the buffers in `self.ready_to_map`. /// /// Return a list of mapping notifications to send. diff --git a/third_party/rust/wgpu-core/src/device/queue.rs b/third_party/rust/wgpu-core/src/device/queue.rs index da4ee6395b9c..25e8806c9cb9 100644 --- a/third_party/rust/wgpu-core/src/device/queue.rs +++ b/third_party/rust/wgpu-core/src/device/queue.rs @@ -1256,10 +1256,13 @@ impl Queue { unsafe { self.raw().get_timestamp_period() } } - pub fn on_submitted_work_done(&self, closure: SubmittedWorkDoneClosure) { + pub fn on_submitted_work_done( + &self, + closure: SubmittedWorkDoneClosure, + ) -> Option { api_log!("Queue::on_submitted_work_done"); //TODO: flush pending writes - self.device.lock_life().add_work_done_closure(closure); + self.device.lock_life().add_work_done_closure(closure) } } @@ -1402,9 +1405,13 @@ impl Global { &self, queue_id: QueueId, closure: SubmittedWorkDoneClosure, - ) { + ) -> SubmissionIndex { + api_log!("Queue::on_submitted_work_done {queue_id:?}"); + + //TODO: flush pending writes let queue = self.hub.queues.get(queue_id); - queue.on_submitted_work_done(closure); + let result = queue.on_submitted_work_done(closure); + result.unwrap_or(0) // '0' means no wait is necessary } } diff --git a/third_party/rust/wgpu-core/src/device/resource.rs b/third_party/rust/wgpu-core/src/device/resource.rs index 21ecf85d247c..46271f7ac991 100644 --- a/third_party/rust/wgpu-core/src/device/resource.rs +++ b/third_party/rust/wgpu-core/src/device/resource.rs @@ -493,8 +493,6 @@ impl Device { let submission_closures = life_tracker.triage_submissions(submission_index, &self.command_allocator); - life_tracker.triage_mapped(); - let mapping_closures = life_tracker.handle_mapping(self.raw(), &snatch_guard); let queue_empty = life_tracker.queue_empty(); diff --git a/third_party/rust/wgpu-core/src/resource.rs b/third_party/rust/wgpu-core/src/resource.rs index bddccd9395fc..157b83641ae1 100644 --- a/third_party/rust/wgpu-core/src/resource.rs +++ b/third_party/rust/wgpu-core/src/resource.rs @@ -15,7 +15,7 @@ use crate::{ snatch::{SnatchGuard, Snatchable}, track::{SharedTrackerIndexAllocator, TextureSelector, TrackerIndex}, weak_vec::WeakVec, - Label, LabelHelpers, + Label, LabelHelpers, SubmissionIndex, }; use smallvec::SmallVec; @@ -304,7 +304,7 @@ impl BufferMapCallback { // SAFETY: the contract of the call to from_c says that this unsafe is sound. BufferMapCallbackInner::C { inner } => unsafe { let status = match result { - Ok(()) => BufferMapAsyncStatus::Success, + Ok(_) => BufferMapAsyncStatus::Success, Err(BufferAccessError::Device(_)) => BufferMapAsyncStatus::ContextLost, Err(BufferAccessError::InvalidResource(_)) | Err(BufferAccessError::DestroyedResource(_)) => BufferMapAsyncStatus::Invalid, @@ -546,7 +546,7 @@ impl Buffer { offset: wgt::BufferAddress, size: Option, op: BufferMapOperation, - ) -> Result<(), (BufferMapOperation, BufferAccessError)> { + ) -> Result { let range_size = if let Some(size) = size { size } else if offset > self.size { @@ -633,9 +633,9 @@ impl Buffer { .buffers .set_single(self, internal_use); - device.lock_life().map(self); + let submit_index = device.lock_life().map(self).unwrap_or(0); // '0' means no wait is necessary - Ok(()) + Ok(submit_index) } // Note: This must not be called while holding a lock. diff --git a/third_party/rust/wgpu-hal/.cargo-checksum.json b/third_party/rust/wgpu-hal/.cargo-checksum.json index ccecfbd4ab96..adfe9f362be5 100644 --- a/third_party/rust/wgpu-hal/.cargo-checksum.json +++ b/third_party/rust/wgpu-hal/.cargo-checksum.json @@ -1 +1 @@ -{"files":{"Cargo.toml":"3c2a3a0e4bb2420bee93ad367b11cd86fddf34ab6082089ae719ea3d954abe38","LICENSE.APACHE":"a6cba85bc92e0cff7a450b1d873c0eaa2e9fc96bf472df0247a26bec77bf3ff9","LICENSE.MIT":"c7fea58d1cfe49634cd92e54fc10a9d871f4b275321a4cd8c09e449122caaeb4","README.md":"8930213345c3edb1273533f22d2c44bd8a7c6c4fe2510d71852a7e2d27116c6e","build.rs":"c80bdc0152a00471eec6ed0dd0f7d55d0b975498a00ba05e94100c84ad639a49","examples/halmark/main.rs":"251a067ed7e8cfe8850b5dc1789b5ae3e35ddde2540196fa649337eee8ede022","examples/halmark/shader.wgsl":"26c256ec36d6f0e9a1647431ca772766bee4382d64eaa718ba7b488dcfb6bcca","examples/raw-gles.em.html":"70fbe68394a1a4522192de1dcfaf7d399f60d7bdf5de70b708f9bb0417427546","examples/raw-gles.rs":"efa99462c04f4728c5db738af4901bfd238405a95fc815b5cc95c7d2343c62bf","examples/ray-traced-triangle/main.rs":"8ae2b5da8e58651b76e19deb236995830a2b5955d1ecc4cd4c0afaa1b3b5c659","examples/ray-traced-triangle/shader.wgsl":"cc10caf92746724a71f6dd0dbc3a71e57b37c7d1d83278556805a535c0728a9d","src/auxil/dxgi/conv.rs":"0c68c8890d1a4e397f5f8465af3612b90181e4ebc4ebdfefbd40a4f845993bc2","src/auxil/dxgi/exception.rs":"fd9ca0a9bdfe028ee9d41d149f91351de7563c23864757fd4e6f3e046192f65f","src/auxil/dxgi/factory.rs":"f47fb2c35b53b23e623fabbbf0ad531c5cc4611fffd5d1afa9088e25f0885f59","src/auxil/dxgi/mod.rs":"a202564d9ac97530b16a234b87d180cd345aae705e082a9b1177dcde813645f9","src/auxil/dxgi/result.rs":"a14b8b0dd052e7dde11220043f180d2e8ce7ae522dea6e96536c82db13fc7abc","src/auxil/dxgi/time.rs":"6235cc071b8535b4b58f843dbaf4ff4564a37e80a99c452c4a8988e436192483","src/auxil/mod.rs":"b07c43813541136786f06b8a0c11a8b89157932dde14c0f7a4ead1ba1ee401cc","src/auxil/renderdoc.rs":"b4514932dac7b7a2c5660f14182511695c7076dd868e2679aaaa5a3cb305700f","src/dx12/adapter.rs":"16cb1bfe2666f56e269db34f25545649643a4d768b7451796bc3842167ad5e7b","src/dx12/command.rs":"36d6f6b9df257023f43f5ff73c9d459c5f88ef79046bbb5bd408a04fbf9e441d","src/dx12/conv.rs":"14d74445762d000f88067670118a4a259e37e94002904879fbdc56a965236955","src/dx12/descriptor.rs":"46e47cb6ca2b50631872aebdecb9beb6c43c205f8e04f89f867c4830eb8139f6","src/dx12/device.rs":"ecbef435091b985353786c531900c9931223535f96df248f121fd8438fd01f2b","src/dx12/instance.rs":"58ee9969b9b14861e352fdad9af94d14774621df5547609d23f02533d6dc7275","src/dx12/mod.rs":"2526c87f19bfb63f36c95070cbc47faa2acba58b60896fc12e70d4d63b985448","src/dx12/shader_compilation.rs":"17b9c082cbc5af35d8f5dbfdec216c4caad9ed8ece2c8ccaa5a266d8cac64491","src/dx12/suballocation.rs":"f71bb7ee28cb3396608db86d0564f3a4dfe3a662ee6c2a9bb518dd5d8a78fb79","src/dx12/types.rs":"3fc7619fc09303eb3c936d4ded6889f94ce9e8b9aa62742ce900baa1b1e1cca7","src/dx12/view.rs":"1b10cee262487ca0466d07c4f994ff6b1ff95178bd037d1c8a1cf1a74cea0581","src/dynamic/adapter.rs":"ea69fd063e4f0492e7927bcca64501640daa53af9b2d81b8948ac7c5836d0910","src/dynamic/command.rs":"a6d7c8e05ca783a618a51f9ff25af7cbad0cc4f5b4486da8c39eb21458cd7588","src/dynamic/device.rs":"3023e8e69ed712989f321eb705ffae5acfa764ceb62ed8703cd89a856c796728","src/dynamic/instance.rs":"6c1f3b325a8059ae4717e016d03d3c1f6074c98422f787f776aeb6d46a828c26","src/dynamic/mod.rs":"c8f25c902c35306a15cdbe47d8c3877968d9ca6586c5b2c3db1f9e45d7f536fb","src/dynamic/queue.rs":"23367e59dbf97cbaf5363cc68c00b0d2096a296f79ec5f636479f2132ab9a39c","src/dynamic/surface.rs":"c07327f244687c4a700390d3a8f0a443e4fff2a9192bf026962687bad945ccd2","src/empty.rs":"e6681210a0352cb7eb9e85149b2b6e5d1d875a316ca480ab31dcfe05570b0d6b","src/gles/adapter.rs":"cabe4ea115a9dd26f28117b6256a826f133c12b648eb23cea741c59bf181dfd1","src/gles/command.rs":"470347bb905f702dd3b9e6cf80f1e5bf0ee53b069f4b347bb4d49216c548d901","src/gles/conv.rs":"addf1deae35a6d5d38c49a95932e2fbd5c51caa87299a1eb19a145576977353c","src/gles/device.rs":"b45db0bb52fe5b57eab7f6a41d6855b678de2b4dd59c58536ab6b42fcf62c9ee","src/gles/egl.rs":"601f6986c3a1fb63a93badb78aa7463a36a19f90c31831f761bc96b9f8a9b342","src/gles/emscripten.rs":"d225171b044a949bb4ebc295d975f73cca85440e8f892605bf5ef42373e6772d","src/gles/mod.rs":"9fa0b7c97090077ea4bc75a35261de65a32873de15a4f06bad6fd6ca1ac4c3e3","src/gles/queue.rs":"884db398081c5b1f9a29bdb1846fbab4c8f9dec474fdd1e08ea6b85c44e560b5","src/gles/shaders/clear.frag":"9133ed8ed97d3641fbb6b5f5ea894a3554c629ccc1b80a5fc9221d7293aa1954","src/gles/shaders/clear.vert":"a543768725f4121ff2e9e1fb5b00644931e9d6f2f946c0ef01968afb5a135abd","src/gles/shaders/srgb_present.frag":"dd9a43c339a2fa4ccf7f6a1854c6f400cabf271a7d5e9230768e9f39d47f3ff5","src/gles/shaders/srgb_present.vert":"6e85d489403d80b81cc94790730bb53b309dfc5eeede8f1ea3412a660f31d357","src/gles/web.rs":"4c4438fdacbd720a9c07c1b2fcaaeb4b82522eb26d2180b52bb52a91cd76a243","src/gles/wgl.rs":"0d3ccbe0040646d9bd5cefd5b3769acd46b5a4f0cf5be627b008f8fe584958b3","src/lib.rs":"eceb36e803cc568b3d4b8ff2c40311a0e99a083d5c212d8caf0a312263e5f7fb","src/metal/adapter.rs":"fceb4ab5233411993da8c8eebbb04c9cea9605c02d8a4e0514d86d0852be33f0","src/metal/command.rs":"6c566d1ed5fa121ba7b2948f8bae0b2917087619e6178327160e7f7b388d0b5e","src/metal/conv.rs":"a34a44e6affb594f3285f8d585b0fb33132aa7dc6a612f7c1aecaa400fe43265","src/metal/device.rs":"b8b5ee8c8b522213cabce183d4130169d67c8ce933d5963acdb8cd0ca2edb17d","src/metal/mod.rs":"b1d8e977a83c4603e86699c9874e804256ce04e17294aa0ff67fe80eca52a6d0","src/metal/surface.rs":"6fe7aa7e3d35b9dd77369345dc6034e1403a25f350661dd0cda5cb7f2a55263a","src/metal/time.rs":"c32d69f30e846dfcc0e39e01097fb80df63b2bebb6586143bb62494999850246","src/vulkan/adapter.rs":"9afa7a3d2504c643ede73b211ba809e8e0b0b3a0b701c7bce25cbe748373e95d","src/vulkan/command.rs":"855d88242ee6daf0ed796a477ab5a4387aa2b47d0d026daa16019485a6f424f4","src/vulkan/conv.rs":"41b62e73124cdad43dd261e7a4f2e2c30e9d43d15e526d225ca523fc18284abd","src/vulkan/device.rs":"9918cd9f51209060d884c834c3f6a05492a02060b654071061d6416a35434e2a","src/vulkan/instance.rs":"fa0fb09e6be9c4326694196c03c6b627e6728eaf3dce07c651f671a320a65b44","src/vulkan/mod.rs":"c79376e6ad8b1cd6b19e3e1347f0fdf5018d2ac57248a1cd293e7f775450cc11"},"package":null} \ No newline at end of file +{"files":{"Cargo.toml":"f18efa02e3f04b423ef8e2cf89ca707385e06c459043b33d828f1607d11a8589","LICENSE.APACHE":"a6cba85bc92e0cff7a450b1d873c0eaa2e9fc96bf472df0247a26bec77bf3ff9","LICENSE.MIT":"c7fea58d1cfe49634cd92e54fc10a9d871f4b275321a4cd8c09e449122caaeb4","README.md":"8930213345c3edb1273533f22d2c44bd8a7c6c4fe2510d71852a7e2d27116c6e","build.rs":"c80bdc0152a00471eec6ed0dd0f7d55d0b975498a00ba05e94100c84ad639a49","examples/halmark/main.rs":"251a067ed7e8cfe8850b5dc1789b5ae3e35ddde2540196fa649337eee8ede022","examples/halmark/shader.wgsl":"26c256ec36d6f0e9a1647431ca772766bee4382d64eaa718ba7b488dcfb6bcca","examples/raw-gles.em.html":"70fbe68394a1a4522192de1dcfaf7d399f60d7bdf5de70b708f9bb0417427546","examples/raw-gles.rs":"efa99462c04f4728c5db738af4901bfd238405a95fc815b5cc95c7d2343c62bf","examples/ray-traced-triangle/main.rs":"8ae2b5da8e58651b76e19deb236995830a2b5955d1ecc4cd4c0afaa1b3b5c659","examples/ray-traced-triangle/shader.wgsl":"cc10caf92746724a71f6dd0dbc3a71e57b37c7d1d83278556805a535c0728a9d","src/auxil/dxgi/conv.rs":"0c68c8890d1a4e397f5f8465af3612b90181e4ebc4ebdfefbd40a4f845993bc2","src/auxil/dxgi/exception.rs":"fd9ca0a9bdfe028ee9d41d149f91351de7563c23864757fd4e6f3e046192f65f","src/auxil/dxgi/factory.rs":"f47fb2c35b53b23e623fabbbf0ad531c5cc4611fffd5d1afa9088e25f0885f59","src/auxil/dxgi/mod.rs":"a202564d9ac97530b16a234b87d180cd345aae705e082a9b1177dcde813645f9","src/auxil/dxgi/result.rs":"a14b8b0dd052e7dde11220043f180d2e8ce7ae522dea6e96536c82db13fc7abc","src/auxil/dxgi/time.rs":"6235cc071b8535b4b58f843dbaf4ff4564a37e80a99c452c4a8988e436192483","src/auxil/mod.rs":"b07c43813541136786f06b8a0c11a8b89157932dde14c0f7a4ead1ba1ee401cc","src/auxil/renderdoc.rs":"b4514932dac7b7a2c5660f14182511695c7076dd868e2679aaaa5a3cb305700f","src/dx12/adapter.rs":"16cb1bfe2666f56e269db34f25545649643a4d768b7451796bc3842167ad5e7b","src/dx12/command.rs":"36d6f6b9df257023f43f5ff73c9d459c5f88ef79046bbb5bd408a04fbf9e441d","src/dx12/conv.rs":"14d74445762d000f88067670118a4a259e37e94002904879fbdc56a965236955","src/dx12/descriptor.rs":"46e47cb6ca2b50631872aebdecb9beb6c43c205f8e04f89f867c4830eb8139f6","src/dx12/device.rs":"ecbef435091b985353786c531900c9931223535f96df248f121fd8438fd01f2b","src/dx12/instance.rs":"58ee9969b9b14861e352fdad9af94d14774621df5547609d23f02533d6dc7275","src/dx12/mod.rs":"c30f161302ea2b912d82e7e1ee4bed4911bba485f5c3258ed1afb8721e6bd86b","src/dx12/shader_compilation.rs":"17b9c082cbc5af35d8f5dbfdec216c4caad9ed8ece2c8ccaa5a266d8cac64491","src/dx12/suballocation.rs":"f71bb7ee28cb3396608db86d0564f3a4dfe3a662ee6c2a9bb518dd5d8a78fb79","src/dx12/types.rs":"3fc7619fc09303eb3c936d4ded6889f94ce9e8b9aa62742ce900baa1b1e1cca7","src/dx12/view.rs":"1b10cee262487ca0466d07c4f994ff6b1ff95178bd037d1c8a1cf1a74cea0581","src/dynamic/adapter.rs":"ea69fd063e4f0492e7927bcca64501640daa53af9b2d81b8948ac7c5836d0910","src/dynamic/command.rs":"a6d7c8e05ca783a618a51f9ff25af7cbad0cc4f5b4486da8c39eb21458cd7588","src/dynamic/device.rs":"3023e8e69ed712989f321eb705ffae5acfa764ceb62ed8703cd89a856c796728","src/dynamic/instance.rs":"6c1f3b325a8059ae4717e016d03d3c1f6074c98422f787f776aeb6d46a828c26","src/dynamic/mod.rs":"c8f25c902c35306a15cdbe47d8c3877968d9ca6586c5b2c3db1f9e45d7f536fb","src/dynamic/queue.rs":"23367e59dbf97cbaf5363cc68c00b0d2096a296f79ec5f636479f2132ab9a39c","src/dynamic/surface.rs":"c07327f244687c4a700390d3a8f0a443e4fff2a9192bf026962687bad945ccd2","src/empty.rs":"e6681210a0352cb7eb9e85149b2b6e5d1d875a316ca480ab31dcfe05570b0d6b","src/gles/adapter.rs":"cabe4ea115a9dd26f28117b6256a826f133c12b648eb23cea741c59bf181dfd1","src/gles/command.rs":"470347bb905f702dd3b9e6cf80f1e5bf0ee53b069f4b347bb4d49216c548d901","src/gles/conv.rs":"addf1deae35a6d5d38c49a95932e2fbd5c51caa87299a1eb19a145576977353c","src/gles/device.rs":"b45db0bb52fe5b57eab7f6a41d6855b678de2b4dd59c58536ab6b42fcf62c9ee","src/gles/egl.rs":"601f6986c3a1fb63a93badb78aa7463a36a19f90c31831f761bc96b9f8a9b342","src/gles/emscripten.rs":"d225171b044a949bb4ebc295d975f73cca85440e8f892605bf5ef42373e6772d","src/gles/mod.rs":"9fa0b7c97090077ea4bc75a35261de65a32873de15a4f06bad6fd6ca1ac4c3e3","src/gles/queue.rs":"884db398081c5b1f9a29bdb1846fbab4c8f9dec474fdd1e08ea6b85c44e560b5","src/gles/shaders/clear.frag":"9133ed8ed97d3641fbb6b5f5ea894a3554c629ccc1b80a5fc9221d7293aa1954","src/gles/shaders/clear.vert":"a543768725f4121ff2e9e1fb5b00644931e9d6f2f946c0ef01968afb5a135abd","src/gles/shaders/srgb_present.frag":"dd9a43c339a2fa4ccf7f6a1854c6f400cabf271a7d5e9230768e9f39d47f3ff5","src/gles/shaders/srgb_present.vert":"6e85d489403d80b81cc94790730bb53b309dfc5eeede8f1ea3412a660f31d357","src/gles/web.rs":"4c4438fdacbd720a9c07c1b2fcaaeb4b82522eb26d2180b52bb52a91cd76a243","src/gles/wgl.rs":"0d3ccbe0040646d9bd5cefd5b3769acd46b5a4f0cf5be627b008f8fe584958b3","src/lib.rs":"eceb36e803cc568b3d4b8ff2c40311a0e99a083d5c212d8caf0a312263e5f7fb","src/metal/adapter.rs":"fceb4ab5233411993da8c8eebbb04c9cea9605c02d8a4e0514d86d0852be33f0","src/metal/command.rs":"5531e66e285fabfd4fe436231d83194e0edb0dd783105a52626a06c7451fbc9e","src/metal/conv.rs":"a34a44e6affb594f3285f8d585b0fb33132aa7dc6a612f7c1aecaa400fe43265","src/metal/device.rs":"b8b5ee8c8b522213cabce183d4130169d67c8ce933d5963acdb8cd0ca2edb17d","src/metal/mod.rs":"b1d8e977a83c4603e86699c9874e804256ce04e17294aa0ff67fe80eca52a6d0","src/metal/surface.rs":"6fe7aa7e3d35b9dd77369345dc6034e1403a25f350661dd0cda5cb7f2a55263a","src/metal/time.rs":"c32d69f30e846dfcc0e39e01097fb80df63b2bebb6586143bb62494999850246","src/vulkan/adapter.rs":"9afa7a3d2504c643ede73b211ba809e8e0b0b3a0b701c7bce25cbe748373e95d","src/vulkan/command.rs":"855d88242ee6daf0ed796a477ab5a4387aa2b47d0d026daa16019485a6f424f4","src/vulkan/conv.rs":"41b62e73124cdad43dd261e7a4f2e2c30e9d43d15e526d225ca523fc18284abd","src/vulkan/device.rs":"9918cd9f51209060d884c834c3f6a05492a02060b654071061d6416a35434e2a","src/vulkan/instance.rs":"fa0fb09e6be9c4326694196c03c6b627e6728eaf3dce07c651f671a320a65b44","src/vulkan/mod.rs":"c79376e6ad8b1cd6b19e3e1347f0fdf5018d2ac57248a1cd293e7f775450cc11"},"package":null} \ No newline at end of file diff --git a/third_party/rust/wgpu-hal/Cargo.toml b/third_party/rust/wgpu-hal/Cargo.toml index e0afa0cd3745..7254f013598b 100644 --- a/third_party/rust/wgpu-hal/Cargo.toml +++ b/third_party/rust/wgpu-hal/Cargo.toml @@ -102,7 +102,7 @@ version = "0.6" version = "1.1.0" [dependencies.thiserror] -version = "1.0.65" +version = "1.0.67" [dependencies.wgt] version = "23.0.0" diff --git a/third_party/rust/wgpu-hal/src/dx12/mod.rs b/third_party/rust/wgpu-hal/src/dx12/mod.rs index 92c009b9c317..bc9f0db15617 100644 --- a/third_party/rust/wgpu-hal/src/dx12/mod.rs +++ b/third_party/rust/wgpu-hal/src/dx12/mod.rs @@ -777,6 +777,12 @@ pub struct Texture { allocation: Option, } +impl Texture { + pub unsafe fn raw_resource(&self) -> &Direct3D12::ID3D12Resource { + &self.resource + } +} + impl crate::DynTexture for Texture {} impl crate::DynSurfaceTexture for Texture {} diff --git a/third_party/rust/wgpu-hal/src/metal/command.rs b/third_party/rust/wgpu-hal/src/metal/command.rs index 9e38cf865627..f113639a13b2 100644 --- a/third_party/rust/wgpu-hal/src/metal/command.rs +++ b/third_party/rust/wgpu-hal/src/metal/command.rs @@ -1240,13 +1240,15 @@ impl crate::CommandEncoder for super::CommandEncoder { } unsafe fn dispatch(&mut self, count: [u32; 3]) { - let encoder = self.state.compute.as_ref().unwrap(); - let raw_count = metal::MTLSize { - width: count[0] as u64, - height: count[1] as u64, - depth: count[2] as u64, - }; - encoder.dispatch_thread_groups(raw_count, self.state.raw_wg_size); + if count[0] > 0 && count[1] > 0 && count[2] > 0 { + let encoder = self.state.compute.as_ref().unwrap(); + let raw_count = metal::MTLSize { + width: count[0] as u64, + height: count[1] as u64, + depth: count[2] as u64, + }; + encoder.dispatch_thread_groups(raw_count, self.state.raw_wg_size); + } } unsafe fn dispatch_indirect(&mut self, buffer: &super::Buffer, offset: wgt::BufferAddress) {