Skip to content

Commit 45f5aa3

Browse files
committed
Deploying to master from @ gfx-rs/wgpu@4ed5021 🚀
1 parent f4889bb commit 45f5aa3

File tree

187 files changed

+858
-740
lines changed

Some content is hidden

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

187 files changed

+858
-740
lines changed

doc/help.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Documentation for Rustdoc"><title>Help</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/${f}">`).join(""))</script><link rel="stylesheet" href="./static.files/normalize-9960930a.css"><link rel="stylesheet" href="./static.files/rustdoc-46132b98.css"><meta name="rustdoc-vars" data-root-path="./" data-static-root-path="./static.files/" data-current-crate="naga" data-themes="" data-resource-suffix="" data-rustdoc-version="1.86.0-nightly (a580b5c37 2025-01-08)" data-channel="nightly" data-search-js="search-75f5ac3e.js" data-settings-js="settings-0f613d39.js" ><script src="./static.files/storage-59e33391.js"></script><script defer src="./static.files/main-5f194d8c.js"></script><noscript><link rel="stylesheet" href="./static.files/noscript-893ab5e7.css"></noscript><link rel="alternate icon" type="image/png" href="./static.files/favicon-32x32-6580c154.png"><link rel="icon" type="image/svg+xml" href="./static.files/favicon-044be391.svg"></head><body class="rustdoc mod sys"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle" title="show sidebar"></button><a class="logo-container" href="./index.html"><img class="rust-logo" src="./static.files/rust-logo-9a9549ea.svg" alt=""></a></nav><nav class="sidebar"><div class="sidebar-crate"><a class="logo-container" href="./index.html"><img class="rust-logo" src="./static.files/rust-logo-9a9549ea.svg" alt="logo"></a><h2><a href="./index.html">Rustdoc</a><span class="version">1.86.0-nightly</span></h2></div><div class="version">(a580b5c37 2025-01-08)</div><h2 class="location">Help</h2><div class="sidebar-elems"></div></nav><div class="sidebar-resizer"></div><main><div class="width-limiter"><rustdoc-search></rustdoc-search><section id="main-content" class="content"><div class="main-heading"><h1>Rustdoc help</h1><span class="out-of-band"><a id="back" href="javascript:void(0)" onclick="history.back();">Back</a></span></div><noscript><section><p>You need to enable JavaScript to use keyboard commands or search.</p><p>For more information, browse the <a href="https://doc.rust-lang.org/rustdoc/">rustdoc handbook</a>.</p></section></noscript></section></div></main></body></html>
1+
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Documentation for Rustdoc"><title>Help</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/${f}">`).join(""))</script><link rel="stylesheet" href="./static.files/normalize-9960930a.css"><link rel="stylesheet" href="./static.files/rustdoc-46132b98.css"><meta name="rustdoc-vars" data-root-path="./" data-static-root-path="./static.files/" data-current-crate="wgpu_test" data-themes="" data-resource-suffix="" data-rustdoc-version="1.86.0-nightly (a580b5c37 2025-01-08)" data-channel="nightly" data-search-js="search-75f5ac3e.js" data-settings-js="settings-0f613d39.js" ><script src="./static.files/storage-59e33391.js"></script><script defer src="./static.files/main-5f194d8c.js"></script><noscript><link rel="stylesheet" href="./static.files/noscript-893ab5e7.css"></noscript><link rel="alternate icon" type="image/png" href="./static.files/favicon-32x32-6580c154.png"><link rel="icon" type="image/svg+xml" href="./static.files/favicon-044be391.svg"></head><body class="rustdoc mod sys"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle" title="show sidebar"></button><a class="logo-container" href="./index.html"><img class="rust-logo" src="./static.files/rust-logo-9a9549ea.svg" alt=""></a></nav><nav class="sidebar"><div class="sidebar-crate"><a class="logo-container" href="./index.html"><img class="rust-logo" src="./static.files/rust-logo-9a9549ea.svg" alt="logo"></a><h2><a href="./index.html">Rustdoc</a><span class="version">1.86.0-nightly</span></h2></div><div class="version">(a580b5c37 2025-01-08)</div><h2 class="location">Help</h2><div class="sidebar-elems"></div></nav><div class="sidebar-resizer"></div><main><div class="width-limiter"><rustdoc-search></rustdoc-search><section id="main-content" class="content"><div class="main-heading"><h1>Rustdoc help</h1><span class="out-of-band"><a id="back" href="javascript:void(0)" onclick="history.back();">Back</a></span></div><noscript><section><p>You need to enable JavaScript to use keyboard commands or search.</p><p>For more information, browse the <a href="https://doc.rust-lang.org/rustdoc/">rustdoc handbook</a>.</p></section></noscript></section></div></main></body></html>

doc/search-index.js

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

doc/search.desc/wgpu/wgpu-desc-0-.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

doc/search.desc/wgpu_types/wgpu_types-desc-0-.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

doc/settings.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Settings of Rustdoc"><title>Settings</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/${f}">`).join(""))</script><link rel="stylesheet" href="./static.files/normalize-9960930a.css"><link rel="stylesheet" href="./static.files/rustdoc-46132b98.css"><meta name="rustdoc-vars" data-root-path="./" data-static-root-path="./static.files/" data-current-crate="naga" data-themes="" data-resource-suffix="" data-rustdoc-version="1.86.0-nightly (a580b5c37 2025-01-08)" data-channel="nightly" data-search-js="search-75f5ac3e.js" data-settings-js="settings-0f613d39.js" ><script src="./static.files/storage-59e33391.js"></script><script defer src="./static.files/main-5f194d8c.js"></script><noscript><link rel="stylesheet" href="./static.files/noscript-893ab5e7.css"></noscript><link rel="alternate icon" type="image/png" href="./static.files/favicon-32x32-6580c154.png"><link rel="icon" type="image/svg+xml" href="./static.files/favicon-044be391.svg"></head><body class="rustdoc mod sys"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle" title="show sidebar"></button><a class="logo-container" href="./index.html"><img class="rust-logo" src="./static.files/rust-logo-9a9549ea.svg" alt=""></a></nav><nav class="sidebar"><div class="sidebar-crate"><a class="logo-container" href="./index.html"><img class="rust-logo" src="./static.files/rust-logo-9a9549ea.svg" alt="logo"></a><h2><a href="./index.html">Rustdoc</a><span class="version">1.86.0-nightly</span></h2></div><div class="version">(a580b5c37 2025-01-08)</div><h2 class="location">Settings</h2><div class="sidebar-elems"></div></nav><div class="sidebar-resizer"></div><main><div class="width-limiter"><rustdoc-search></rustdoc-search><section id="main-content" class="content"><div class="main-heading"><h1>Rustdoc settings</h1><span class="out-of-band"><a id="back" href="javascript:void(0)" onclick="history.back();">Back</a></span></div><noscript><section>You need to enable JavaScript be able to update your settings.</section></noscript><script defer src="./static.files/settings-0f613d39.js"></script></section></div></main></body></html>
1+
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Settings of Rustdoc"><title>Settings</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/${f}">`).join(""))</script><link rel="stylesheet" href="./static.files/normalize-9960930a.css"><link rel="stylesheet" href="./static.files/rustdoc-46132b98.css"><meta name="rustdoc-vars" data-root-path="./" data-static-root-path="./static.files/" data-current-crate="wgpu_test" data-themes="" data-resource-suffix="" data-rustdoc-version="1.86.0-nightly (a580b5c37 2025-01-08)" data-channel="nightly" data-search-js="search-75f5ac3e.js" data-settings-js="settings-0f613d39.js" ><script src="./static.files/storage-59e33391.js"></script><script defer src="./static.files/main-5f194d8c.js"></script><noscript><link rel="stylesheet" href="./static.files/noscript-893ab5e7.css"></noscript><link rel="alternate icon" type="image/png" href="./static.files/favicon-32x32-6580c154.png"><link rel="icon" type="image/svg+xml" href="./static.files/favicon-044be391.svg"></head><body class="rustdoc mod sys"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle" title="show sidebar"></button><a class="logo-container" href="./index.html"><img class="rust-logo" src="./static.files/rust-logo-9a9549ea.svg" alt=""></a></nav><nav class="sidebar"><div class="sidebar-crate"><a class="logo-container" href="./index.html"><img class="rust-logo" src="./static.files/rust-logo-9a9549ea.svg" alt="logo"></a><h2><a href="./index.html">Rustdoc</a><span class="version">1.86.0-nightly</span></h2></div><div class="version">(a580b5c37 2025-01-08)</div><h2 class="location">Settings</h2><div class="sidebar-elems"></div></nav><div class="sidebar-resizer"></div><main><div class="width-limiter"><rustdoc-search></rustdoc-search><section id="main-content" class="content"><div class="main-heading"><h1>Rustdoc settings</h1><span class="out-of-band"><a id="back" href="javascript:void(0)" onclick="history.back();">Back</a></span></div><noscript><section>You need to enable JavaScript be able to update your settings.</section></noscript><script defer src="./static.files/settings-0f613d39.js"></script></section></div></main></body></html>

doc/src/wgpu_core/binding_model.rs.html

Lines changed: 51 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1027,7 +1027,32 @@
10271027
<a href="#1026" id="1026">1026</a>
10281028
<a href="#1027" id="1027">1027</a>
10291029
<a href="#1028" id="1028">1028</a>
1030-
<a href="#1029" id="1029">1029</a></pre></div><pre class="rust"><code><span class="kw">use crate</span>::{
1030+
<a href="#1029" id="1029">1029</a>
1031+
<a href="#1030" id="1030">1030</a>
1032+
<a href="#1031" id="1031">1031</a>
1033+
<a href="#1032" id="1032">1032</a>
1034+
<a href="#1033" id="1033">1033</a>
1035+
<a href="#1034" id="1034">1034</a>
1036+
<a href="#1035" id="1035">1035</a>
1037+
<a href="#1036" id="1036">1036</a>
1038+
<a href="#1037" id="1037">1037</a>
1039+
<a href="#1038" id="1038">1038</a>
1040+
<a href="#1039" id="1039">1039</a>
1041+
<a href="#1040" id="1040">1040</a>
1042+
<a href="#1041" id="1041">1041</a>
1043+
<a href="#1042" id="1042">1042</a>
1044+
<a href="#1043" id="1043">1043</a>
1045+
<a href="#1044" id="1044">1044</a>
1046+
<a href="#1045" id="1045">1045</a>
1047+
<a href="#1046" id="1046">1046</a>
1048+
<a href="#1047" id="1047">1047</a>
1049+
<a href="#1048" id="1048">1048</a>
1050+
<a href="#1049" id="1049">1049</a>
1051+
<a href="#1050" id="1050">1050</a>
1052+
<a href="#1051" id="1051">1051</a>
1053+
<a href="#1052" id="1052">1052</a>
1054+
<a href="#1053" id="1053">1053</a>
1055+
<a href="#1054" id="1054">1054</a></pre></div><pre class="rust"><code><span class="kw">use crate</span>::{
10311056
device::{
10321057
bgl, Device, DeviceError, MissingDownlevelFlags, MissingFeatures, SHADER_STAGE_COUNT,
10331058
},
@@ -1097,6 +1122,10 @@
10971122
},
10981123
<span class="attr">#[error(transparent)]
10991124
</span>TooManyBindings(BindingTypeMaxCountError),
1125+
<span class="attr">#[error(<span class="string">"Bind groups may not contain both a binding array and a dynamically offset buffer"</span>)]
1126+
</span>ContainsBothBindingArrayAndDynamicOffsetArray,
1127+
<span class="attr">#[error(<span class="string">"Bind groups may not contain both a binding array and a uniform buffer"</span>)]
1128+
</span>ContainsBothBindingArrayAndUniformBuffer,
11001129
<span class="attr">#[error(<span class="string">"Binding index {binding} is greater than the maximum number {maximum}"</span>)]
11011130
</span>InvalidBindingIndex { binding: u32, maximum: u32 },
11021131
<span class="attr">#[error(<span class="string">"Invalid visibility {0:?}"</span>)]
@@ -1348,6 +1377,7 @@
13481377
storage_textures: PerStageBindingTypeCounter,
13491378
uniform_buffers: PerStageBindingTypeCounter,
13501379
acceleration_structures: PerStageBindingTypeCounter,
1380+
has_bindless_array: bool,
13511381
}
13521382

13531383
<span class="kw">impl </span>BindingTypeMaxCountValidator {
@@ -1387,6 +1417,9 @@
13871417
<span class="self">self</span>.acceleration_structures.add(binding.visibility, count);
13881418
}
13891419
}
1420+
<span class="kw">if </span>binding.count.is_some() {
1421+
<span class="self">self</span>.has_bindless_array = <span class="bool-val">true</span>;
1422+
}
13901423
}
13911424

13921425
<span class="kw">pub</span>(<span class="kw">crate</span>) <span class="kw">fn </span>merge(<span class="kw-2">&amp;mut </span><span class="self">self</span>, other: <span class="kw-2">&amp;</span><span class="self">Self</span>) {
@@ -1438,6 +1471,23 @@
14381471
)<span class="question-mark">?</span>;
14391472
<span class="prelude-val">Ok</span>(())
14401473
}
1474+
1475+
<span class="doccomment">/// Validate that the bind group layout does not contain both a binding array and a dynamic offset array.
1476+
///
1477+
/// This allows us to use `UPDATE_AFTER_BIND` on vulkan for bindless arrays. Vulkan does not allow
1478+
/// `UPDATE_AFTER_BIND` on dynamic offset arrays. See &lt;https://github.com/gfx-rs/wgpu/issues/6737&gt;
1479+
</span><span class="kw">pub</span>(<span class="kw">crate</span>) <span class="kw">fn </span>validate_binding_arrays(<span class="kw-2">&amp;</span><span class="self">self</span>) -&gt; <span class="prelude-ty">Result</span>&lt;(), CreateBindGroupLayoutError&gt; {
1480+
<span class="kw">let </span>has_dynamic_offset_array =
1481+
<span class="self">self</span>.dynamic_uniform_buffers &gt; <span class="number">0 </span>|| <span class="self">self</span>.dynamic_storage_buffers &gt; <span class="number">0</span>;
1482+
<span class="kw">let </span>has_uniform_buffer = <span class="self">self</span>.uniform_buffers.max().<span class="number">1 </span>&gt; <span class="number">0</span>;
1483+
<span class="kw">if </span><span class="self">self</span>.has_bindless_array &amp;&amp; has_dynamic_offset_array {
1484+
<span class="kw">return </span><span class="prelude-val">Err</span>(CreateBindGroupLayoutError::ContainsBothBindingArrayAndDynamicOffsetArray);
1485+
}
1486+
<span class="kw">if </span><span class="self">self</span>.has_bindless_array &amp;&amp; has_uniform_buffer {
1487+
<span class="kw">return </span><span class="prelude-val">Err</span>(CreateBindGroupLayoutError::ContainsBothBindingArrayAndUniformBuffer);
1488+
}
1489+
<span class="prelude-val">Ok</span>(())
1490+
}
14411491
}
14421492

14431493
<span class="doccomment">/// Bindable resource and the slot to bind it to.

doc/src/wgpu_core/device/resource.rs.html

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3758,7 +3758,10 @@
37583758
<a href="#3757" id="3757">3757</a>
37593759
<a href="#3758" id="3758">3758</a>
37603760
<a href="#3759" id="3759">3759</a>
3761-
<a href="#3760" id="3760">3760</a></pre></div><pre class="rust"><code><span class="attr">#[cfg(feature = <span class="string">"trace"</span>)]
3761+
<a href="#3760" id="3760">3760</a>
3762+
<a href="#3761" id="3761">3761</a>
3763+
<a href="#3762" id="3762">3762</a>
3764+
<a href="#3763" id="3763">3763</a></pre></div><pre class="rust"><code><span class="attr">#[cfg(feature = <span class="string">"trace"</span>)]
37623765
</span><span class="kw">use </span><span class="kw">crate</span>::device::trace;
37633766
<span class="kw">use crate</span>::{
37643767
binding_model::{<span class="self">self</span>, BindGroup, BindGroupLayout, BindGroupLayoutEntryError},
@@ -5668,6 +5671,9 @@
56685671
.validate(<span class="kw-2">&amp;</span><span class="self">self</span>.limits)
56695672
.map_err(binding_model::CreateBindGroupLayoutError::TooManyBindings)<span class="question-mark">?</span>;
56705673

5674+
<span class="comment">// Validate that binding arrays don't conflict with dynamic offsets.
5675+
</span>count_validator.validate_binding_arrays()<span class="question-mark">?</span>;
5676+
56715677
<span class="kw">let </span>bgl = BindGroupLayout {
56725678
raw: ManuallyDrop::new(raw),
56735679
device: <span class="self">self</span>.clone(),

0 commit comments

Comments
 (0)