mirror of
https://github.com/encounter/dawn-cmake.git
synced 2025-12-15 08:06:19 +00:00
Use a descriptor for BindGroupLayout (#211)
* Use a descriptor for BindGroupLayout * Fix MatchesLambda * Add WireTests.StructureOfStructureArrayArgument * Add BindGroupValidationTests.BindGroupLayoutCache
This commit is contained in:
@@ -149,6 +149,7 @@ namespace utils {
|
||||
|
||||
return desc;
|
||||
}
|
||||
|
||||
nxt::PipelineLayout MakeBasicPipelineLayout(const nxt::Device& device,
|
||||
const nxt::BindGroupLayout* bindGroupLayout) {
|
||||
nxt::PipelineLayoutDescriptor descriptor;
|
||||
@@ -162,4 +163,21 @@ namespace utils {
|
||||
return device.CreatePipelineLayout(&descriptor);
|
||||
}
|
||||
|
||||
nxt::BindGroupLayout MakeBindGroupLayout(
|
||||
const nxt::Device& device,
|
||||
std::initializer_list<nxt::BindGroupBinding> bindingsInitializer) {
|
||||
std::vector<nxt::BindGroupBinding> bindings;
|
||||
nxt::ShaderStageBit kNoStages{};
|
||||
for (const nxt::BindGroupBinding& binding : bindingsInitializer) {
|
||||
if (binding.visibility != kNoStages) {
|
||||
bindings.push_back(binding);
|
||||
}
|
||||
}
|
||||
|
||||
nxt::BindGroupLayoutDescriptor descriptor;
|
||||
descriptor.numBindings = static_cast<uint32_t>(bindings.size());
|
||||
descriptor.bindings = bindings.data();
|
||||
return device.CreateBindGroupLayout(&descriptor);
|
||||
}
|
||||
|
||||
} // namespace utils
|
||||
|
||||
@@ -51,5 +51,8 @@ namespace utils {
|
||||
nxt::SamplerDescriptor GetDefaultSamplerDescriptor();
|
||||
nxt::PipelineLayout MakeBasicPipelineLayout(const nxt::Device& device,
|
||||
const nxt::BindGroupLayout* bindGroupLayout);
|
||||
nxt::BindGroupLayout MakeBindGroupLayout(
|
||||
const nxt::Device& device,
|
||||
std::initializer_list<nxt::BindGroupBinding> bindingsInitializer);
|
||||
|
||||
} // namespace utils
|
||||
|
||||
Reference in New Issue
Block a user