@@ -275,23 +275,13 @@ ComputePipeline::ComputePipeline(
275275 const ComputePipeline::Descriptor& descriptor,
276276 VkPipelineCache pipeline_cache)
277277 : device_(device), handle_{VK_NULL_HANDLE} {
278- SpecVarList specialization_constants;
279-
280- specialization_constants.reserve (
281- 3 + descriptor.specialization_constants .size ());
282- specialization_constants.append (descriptor.local_wg_size [0 ]);
283- specialization_constants.append (descriptor.local_wg_size [1 ]);
284- specialization_constants.append (descriptor.local_wg_size [2 ]);
285-
286- specialization_constants.append (descriptor.specialization_constants );
287- const std::vector<VkSpecializationMapEntry> map_entries =
288- specialization_constants.generate_map_entries ();
278+ map_entries_ = descriptor.specialization_constants .generate_map_entries ();
289279
290280 const VkSpecializationInfo specialization_info{
291- specialization_constants.size (), // mapEntryCount
292- map_entries .data (), // pMapEntries
293- specialization_constants.data_nbytes (), // dataSize
294- specialization_constants.data (), // pData
281+ descriptor. specialization_constants .size (), // mapEntryCount
282+ map_entries_ .data (), // pMapEntries
283+ descriptor. specialization_constants .data_nbytes (), // dataSize
284+ descriptor. specialization_constants .data (), // pData
295285 };
296286
297287 const VkPipelineShaderStageCreateInfo shader_stage_create_info{
@@ -330,7 +320,9 @@ ComputePipeline::ComputePipeline(
330320}
331321
332322ComputePipeline::ComputePipeline (ComputePipeline&& other) noexcept
333- : device_(other.device_), handle_(other.handle_) {
323+ : device_(other.device_),
324+ handle_ (other.handle_),
325+ map_entries_(std::move(other.map_entries_)) {
334326 other.handle_ = VK_NULL_HANDLE;
335327}
336328
0 commit comments