17 size_t layout_count) {
18 inputs_.reserve(inputs_.size() + count);
19 layouts_.reserve(layouts_.size() + layout_count);
20 for (
size_t i = 0; i < count; i++) {
21 inputs_.emplace_back(*stage_inputs[i]);
23 for (
size_t i = 0; i < layout_count; i++) {
24 layouts_.emplace_back(*stage_layout[i]);
31 desc_set_layouts_.reserve(desc_set_layouts_.size() + count);
32 for (
size_t i = 0; i < count; i++) {
33 desc_set_layouts_.emplace_back(desc_set_layout[i]);
39 auto seed = fml::HashCombine();
40 for (
const auto& input : inputs_) {
41 fml::HashCombineSeed(seed, input.GetHash());
43 for (
const auto& layout : layouts_) {
44 fml::HashCombineSeed(seed, layout.GetHash());
51 return inputs_ == other.inputs_ && layouts_ == other.layouts_;
63 const std::vector<DescriptorSetLayout>&
65 return desc_set_layouts_;