Proposal: Allow use of WGPU_BUFFER_BINDING_LAYOUT_INIT/etc for defaulting #450
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
An alternative to PR #424. (This proposal prevents us from removing
Undefined
from the binding type enums, which that PR did.)This moves the defaulting to
BindingNotUsed
out toWGPU_BIND_GROUP_LAYOUT_ENTRY_INIT
so that it still generates aWGPUBindGroupLayoutEntry
with no bindings set, but changesWGPU_BUFFER_BINDING_LAYOUT_INIT
WGPU_SAMPLER_BINDING_LAYOUT_INIT
WGPU_TEXTURE_BINDING_LAYOUT_INIT
WGPU_STORAGE_TEXTURE_BINDING_LAYOUT_INIT
so that they set their respective types to
Undefined
instead ofBindingNotUsed
.There honestly isn't that much value in this in C, but it is more consistent with JS and should work better for higher-level language bindings. These examples all resolve to
{ binding, visibility, buffer: { type: "uniform", hasDynamicOffset: false, minBindingSize: 0 } }
:In JS:
In C:
In C++, something like: