29 vk_compute_pipeline_create_info_.sType = VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO;
30 vk_compute_pipeline_create_info_.pNext =
nullptr;
31 vk_compute_pipeline_create_info_.flags = 0;
32 vk_compute_pipeline_create_info_.layout = VK_NULL_HANDLE;
33 vk_compute_pipeline_create_info_.basePipelineHandle = VK_NULL_HANDLE;
34 vk_compute_pipeline_create_info_.basePipelineIndex = 0;
35 VkPipelineShaderStageCreateInfo &vk_pipeline_shader_stage_create_info =
36 vk_compute_pipeline_create_info_.stage;
37 vk_pipeline_shader_stage_create_info.sType = VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO;
38 vk_pipeline_shader_stage_create_info.pNext =
nullptr;
39 vk_pipeline_shader_stage_create_info.flags = 0;
40 vk_pipeline_shader_stage_create_info.stage = VK_SHADER_STAGE_COMPUTE_BIT;
41 vk_pipeline_shader_stage_create_info.module = VK_NULL_HANDLE;
42 vk_pipeline_shader_stage_create_info.pName =
"main";
45 vk_graphics_pipeline_create_info_ = {};
46 vk_graphics_pipeline_create_info_.sType = VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO;
47 vk_graphics_pipeline_create_info_.pNext = &vk_pipeline_rendering_create_info_;
48 vk_graphics_pipeline_create_info_.stageCount = 0;
49 vk_graphics_pipeline_create_info_.pStages = vk_pipeline_shader_stage_create_info_;
50 vk_graphics_pipeline_create_info_.pInputAssemblyState =
51 &vk_pipeline_input_assembly_state_create_info_;
52 vk_graphics_pipeline_create_info_.pVertexInputState =
53 &vk_pipeline_vertex_input_state_create_info_;
54 vk_graphics_pipeline_create_info_.pRasterizationState =
55 &vk_pipeline_rasterization_state_create_info_;
56 vk_graphics_pipeline_create_info_.pDynamicState = &vk_pipeline_dynamic_state_create_info_;
57 vk_graphics_pipeline_create_info_.pViewportState = &vk_pipeline_viewport_state_create_info_;
58 vk_graphics_pipeline_create_info_.pMultisampleState =
59 &vk_pipeline_multisample_state_create_info_;
60 vk_graphics_pipeline_create_info_.pColorBlendState = &vk_pipeline_color_blend_state_create_info_;
63 vk_pipeline_rendering_create_info_ = {};
64 vk_pipeline_rendering_create_info_.sType = VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO;
68 vk_pipeline_shader_stage_create_info_[
i].sType =
69 VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO;
70 vk_pipeline_shader_stage_create_info_[
i].pNext =
nullptr;
71 vk_pipeline_shader_stage_create_info_[
i].flags = 0;
72 vk_pipeline_shader_stage_create_info_[
i].module = VK_NULL_HANDLE;
73 vk_pipeline_shader_stage_create_info_[
i].pName =
"main";
75 vk_pipeline_shader_stage_create_info_[0].stage = VK_SHADER_STAGE_VERTEX_BIT;
76 vk_pipeline_shader_stage_create_info_[1].stage = VK_SHADER_STAGE_FRAGMENT_BIT;
77 vk_pipeline_shader_stage_create_info_[2].stage = VK_SHADER_STAGE_GEOMETRY_BIT;
80 vk_pipeline_input_assembly_state_create_info_ = {};
81 vk_pipeline_input_assembly_state_create_info_.sType =
82 VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO;
85 vk_pipeline_vertex_input_state_create_info_ = {};
86 vk_pipeline_vertex_input_state_create_info_.sType =
87 VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO;
90 vk_pipeline_rasterization_state_create_info_ = {};
91 vk_pipeline_rasterization_state_create_info_.sType =
92 VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO;
93 vk_pipeline_rasterization_state_create_info_.lineWidth = 1.0f;
94 vk_pipeline_rasterization_state_create_info_.frontFace = VK_FRONT_FACE_CLOCKWISE;
95 vk_pipeline_rasterization_state_create_info_.pNext =
96 &vk_pipeline_rasterization_provoking_vertex_state_info_;
98 vk_pipeline_rasterization_provoking_vertex_state_info_ = {};
99 vk_pipeline_rasterization_provoking_vertex_state_info_.sType =
100 VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT;
101 vk_pipeline_rasterization_provoking_vertex_state_info_.provokingVertexMode =
102 VK_PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT;
104 vk_dynamic_states_ = {VK_DYNAMIC_STATE_VIEWPORT, VK_DYNAMIC_STATE_SCISSOR};
105 vk_pipeline_dynamic_state_create_info_ = {};
106 vk_pipeline_dynamic_state_create_info_.sType =
107 VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO;
109 vk_pipeline_viewport_state_create_info_ = {};
110 vk_pipeline_viewport_state_create_info_.sType =
111 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO;
114 vk_pipeline_multisample_state_create_info_ = {};
115 vk_pipeline_multisample_state_create_info_.sType =
116 VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO;
117 vk_pipeline_multisample_state_create_info_.rasterizationSamples = VK_SAMPLE_COUNT_1_BIT;
118 vk_pipeline_multisample_state_create_info_.minSampleShading = 1.0f;
121 vk_pipeline_color_blend_state_create_info_ = {};
122 vk_pipeline_color_blend_state_create_info_.sType =
123 VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO;
124 vk_pipeline_color_blend_attachment_state_template_.colorWriteMask = VK_COLOR_COMPONENT_R_BIT |
125 VK_COLOR_COMPONENT_G_BIT |
126 VK_COLOR_COMPONENT_B_BIT |
127 VK_COLOR_COMPONENT_A_BIT;
129 vk_pipeline_depth_stencil_state_create_info_ = {};
130 vk_pipeline_depth_stencil_state_create_info_.sType =
131 VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO;
134 vk_specialization_info_.mapEntryCount = 0;
135 vk_specialization_info_.pMapEntries =
nullptr;
136 vk_specialization_info_.dataSize = 0;
137 vk_specialization_info_.pData =
nullptr;
139 vk_push_constant_range_.stageFlags = 0;
140 vk_push_constant_range_.offset = 0;
141 vk_push_constant_range_.size = 0;
231 const bool is_static_shader,
232 VkPipeline vk_pipeline_base)
234 std::scoped_lock
lock(mutex_);
236 const VkPipeline *found_pipeline = graphic_pipelines_.lookup_ptr(graphics_info);
237 if (found_pipeline) {
238 VkPipeline
result = *found_pipeline;
244 VkSpecializationInfo *specialization_info = specialization_info_update(
248 vk_graphics_pipeline_create_info_.stageCount =
250 vk_pipeline_shader_stage_create_info_[0].module =
252 vk_pipeline_shader_stage_create_info_[0].pSpecializationInfo = specialization_info;
253 vk_pipeline_shader_stage_create_info_[1].module =
255 vk_pipeline_shader_stage_create_info_[1].pSpecializationInfo = specialization_info;
256 vk_pipeline_shader_stage_create_info_[2].module =
258 vk_pipeline_shader_stage_create_info_[2].pSpecializationInfo = specialization_info;
262 vk_pipeline_input_assembly_state_create_info_.primitiveRestartEnable =
264 VK_PRIMITIVE_TOPOLOGY_POINT_LIST,
265 VK_PRIMITIVE_TOPOLOGY_LINE_LIST,
266 VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST,
267 VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY) ?
270 vk_pipeline_vertex_input_state_create_info_.pVertexAttributeDescriptions =
272 vk_pipeline_vertex_input_state_create_info_.vertexAttributeDescriptionCount =
274 vk_pipeline_vertex_input_state_create_info_.pVertexBindingDescriptions =
276 vk_pipeline_vertex_input_state_create_info_.vertexBindingDescriptionCount =
280 vk_pipeline_rasterization_state_create_info_.frontFace = graphics_info.
state.
invert_facing ?
281 VK_FRONT_FACE_COUNTER_CLOCKWISE :
282 VK_FRONT_FACE_CLOCKWISE;
286 vk_pipeline_rasterization_state_create_info_.depthBiasEnable = VK_TRUE;
287 vk_pipeline_rasterization_state_create_info_.depthBiasSlopeFactor = 2.0f;
288 vk_pipeline_rasterization_state_create_info_.depthBiasConstantFactor = 1.0f;
289 vk_pipeline_rasterization_state_create_info_.depthBiasClamp = 0.0f;
292 vk_pipeline_rasterization_state_create_info_.depthBiasEnable = VK_FALSE;
294 vk_pipeline_rasterization_state_create_info_.frontFace = graphics_info.
state.
invert_facing ?
295 VK_FRONT_FACE_COUNTER_CLOCKWISE :
296 VK_FRONT_FACE_CLOCKWISE;
297 vk_pipeline_rasterization_provoking_vertex_state_info_.provokingVertexMode =
299 VK_PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT :
300 VK_PROVOKING_VERTEX_MODE_FIRST_VERTEX_EXT;
303 vk_pipeline_dynamic_state_create_info_.dynamicStateCount = vk_dynamic_states_.size();
304 vk_pipeline_dynamic_state_create_info_.pDynamicStates = vk_dynamic_states_.data();
307 vk_pipeline_viewport_state_create_info_.pViewports =
nullptr;
308 vk_pipeline_viewport_state_create_info_.viewportCount =
310 vk_pipeline_viewport_state_create_info_.pScissors =
nullptr;
311 vk_pipeline_viewport_state_create_info_.scissorCount =
317 VkPipelineColorBlendStateCreateInfo &cb = vk_pipeline_color_blend_state_create_info_;
318 VkPipelineColorBlendAttachmentState &att_state =
319 vk_pipeline_color_blend_attachment_state_template_;
321 att_state.blendEnable = VK_TRUE;
322 att_state.alphaBlendOp = VK_BLEND_OP_ADD;
323 att_state.colorBlendOp = VK_BLEND_OP_ADD;
324 att_state.srcColorBlendFactor = VK_BLEND_FACTOR_DST_ALPHA;
325 att_state.dstColorBlendFactor = VK_BLEND_FACTOR_ONE;
326 att_state.srcAlphaBlendFactor = VK_BLEND_FACTOR_ZERO;
327 att_state.dstAlphaBlendFactor = VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA;
328 att_state.colorWriteMask = 0;
329 cb.blendConstants[0] = 1.0f;
330 cb.blendConstants[1] = 1.0f;
331 cb.blendConstants[2] = 1.0f;
332 cb.blendConstants[3] = 1.0f;
337 att_state.srcColorBlendFactor = VK_BLEND_FACTOR_SRC_ALPHA;
338 att_state.dstColorBlendFactor = VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA;
339 att_state.srcAlphaBlendFactor = VK_BLEND_FACTOR_ONE;
340 att_state.dstAlphaBlendFactor = VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA;
344 att_state.srcColorBlendFactor = VK_BLEND_FACTOR_ONE;
345 att_state.dstColorBlendFactor = VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA;
346 att_state.srcAlphaBlendFactor = VK_BLEND_FACTOR_ONE;
347 att_state.dstAlphaBlendFactor = VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA;
351 att_state.srcColorBlendFactor = VK_BLEND_FACTOR_SRC_ALPHA;
352 att_state.dstColorBlendFactor = VK_BLEND_FACTOR_ONE;
353 att_state.srcAlphaBlendFactor = VK_BLEND_FACTOR_ZERO;
354 att_state.dstAlphaBlendFactor = VK_BLEND_FACTOR_ONE;
359 att_state.srcColorBlendFactor = VK_BLEND_FACTOR_ONE;
360 att_state.dstColorBlendFactor = VK_BLEND_FACTOR_ONE;
361 att_state.srcAlphaBlendFactor = VK_BLEND_FACTOR_ONE;
362 att_state.dstAlphaBlendFactor = VK_BLEND_FACTOR_ONE;
366 att_state.srcColorBlendFactor = VK_BLEND_FACTOR_DST_COLOR;
367 att_state.dstColorBlendFactor = VK_BLEND_FACTOR_ZERO;
368 att_state.srcAlphaBlendFactor = VK_BLEND_FACTOR_DST_ALPHA;
369 att_state.dstAlphaBlendFactor = VK_BLEND_FACTOR_ZERO;
373 att_state.srcColorBlendFactor = VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR;
374 att_state.dstColorBlendFactor = VK_BLEND_FACTOR_ZERO;
375 att_state.srcAlphaBlendFactor = VK_BLEND_FACTOR_ZERO;
376 att_state.dstAlphaBlendFactor = VK_BLEND_FACTOR_ONE;
380 att_state.srcColorBlendFactor = VK_BLEND_FACTOR_ONE;
381 att_state.dstColorBlendFactor = VK_BLEND_FACTOR_ONE;
382 att_state.srcAlphaBlendFactor = VK_BLEND_FACTOR_ZERO;
383 att_state.dstAlphaBlendFactor = VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA;
387 att_state.srcColorBlendFactor = VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA;
388 att_state.dstColorBlendFactor = VK_BLEND_FACTOR_SRC_ALPHA;
389 att_state.srcAlphaBlendFactor = VK_BLEND_FACTOR_ZERO;
390 att_state.dstAlphaBlendFactor = VK_BLEND_FACTOR_SRC_ALPHA;
394 att_state.srcColorBlendFactor = VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA;
395 att_state.dstColorBlendFactor = VK_BLEND_FACTOR_ONE;
396 att_state.srcAlphaBlendFactor = VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA;
397 att_state.dstAlphaBlendFactor = VK_BLEND_FACTOR_ONE;
401 att_state.srcColorBlendFactor = VK_BLEND_FACTOR_ONE;
402 att_state.dstColorBlendFactor = VK_BLEND_FACTOR_SRC1_COLOR;
403 att_state.srcAlphaBlendFactor = VK_BLEND_FACTOR_ONE;
404 att_state.dstAlphaBlendFactor = VK_BLEND_FACTOR_SRC1_ALPHA;
408 att_state.srcColorBlendFactor = VK_BLEND_FACTOR_ZERO;
409 att_state.dstColorBlendFactor = VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA;
410 att_state.srcAlphaBlendFactor = VK_BLEND_FACTOR_ZERO;
411 att_state.dstAlphaBlendFactor = VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA;
416 att_state.alphaBlendOp = VK_BLEND_OP_REVERSE_SUBTRACT;
417 att_state.colorBlendOp = VK_BLEND_OP_REVERSE_SUBTRACT;
420 att_state.alphaBlendOp = VK_BLEND_OP_ADD;
421 att_state.colorBlendOp = VK_BLEND_OP_ADD;
425 att_state.blendEnable = VK_TRUE;
428 att_state.blendEnable = VK_FALSE;
433 att_state.colorWriteMask |= VK_COLOR_COMPONENT_R_BIT;
436 att_state.colorWriteMask |= VK_COLOR_COMPONENT_G_BIT;
439 att_state.colorWriteMask |= VK_COLOR_COMPONENT_B_BIT;
442 att_state.colorWriteMask |= VK_COLOR_COMPONENT_A_BIT;
447 cb.logicOpEnable = VK_TRUE;
448 cb.logicOp = VK_LOGIC_OP_XOR;
451 vk_pipeline_color_blend_attachment_states_.clear();
452 vk_pipeline_color_blend_attachment_states_.append_n_times(
453 vk_pipeline_color_blend_attachment_state_template_,
455 vk_pipeline_color_blend_state_create_info_.attachmentCount =
456 vk_pipeline_color_blend_attachment_states_.size();
457 vk_pipeline_color_blend_state_create_info_.pAttachments =
458 vk_pipeline_color_blend_attachment_states_.data();
462 vk_graphics_pipeline_create_info_.pDepthStencilState =
463 &vk_pipeline_depth_stencil_state_create_info_;
464 vk_pipeline_depth_stencil_state_create_info_.depthWriteEnable =
467 vk_pipeline_depth_stencil_state_create_info_.depthTestEnable = VK_TRUE;
470 vk_pipeline_depth_stencil_state_create_info_.depthCompareOp = VK_COMPARE_OP_LESS;
473 vk_pipeline_depth_stencil_state_create_info_.depthCompareOp = VK_COMPARE_OP_LESS_OR_EQUAL;
476 vk_pipeline_depth_stencil_state_create_info_.depthCompareOp = VK_COMPARE_OP_EQUAL;
479 vk_pipeline_depth_stencil_state_create_info_.depthCompareOp = VK_COMPARE_OP_GREATER;
482 vk_pipeline_depth_stencil_state_create_info_.depthCompareOp =
483 VK_COMPARE_OP_GREATER_OR_EQUAL;
486 vk_pipeline_depth_stencil_state_create_info_.depthCompareOp = VK_COMPARE_OP_ALWAYS;
489 vk_pipeline_depth_stencil_state_create_info_.depthTestEnable = VK_FALSE;
490 vk_pipeline_depth_stencil_state_create_info_.depthCompareOp = VK_COMPARE_OP_NEVER;
496 vk_graphics_pipeline_create_info_.pDepthStencilState =
497 &vk_pipeline_depth_stencil_state_create_info_;
501 vk_pipeline_depth_stencil_state_create_info_.stencilTestEnable = VK_TRUE;
502 vk_pipeline_depth_stencil_state_create_info_.front.compareOp = VK_COMPARE_OP_NOT_EQUAL;
505 vk_pipeline_depth_stencil_state_create_info_.stencilTestEnable = VK_TRUE;
506 vk_pipeline_depth_stencil_state_create_info_.front.compareOp = VK_COMPARE_OP_EQUAL;
509 vk_pipeline_depth_stencil_state_create_info_.stencilTestEnable = VK_TRUE;
510 vk_pipeline_depth_stencil_state_create_info_.front.compareOp = VK_COMPARE_OP_ALWAYS;
513 vk_pipeline_depth_stencil_state_create_info_.stencilTestEnable = VK_FALSE;
514 vk_pipeline_depth_stencil_state_create_info_.front.compareOp = VK_COMPARE_OP_ALWAYS;
518 vk_pipeline_depth_stencil_state_create_info_.front.compareMask =
520 vk_pipeline_depth_stencil_state_create_info_.front.reference =
522 vk_pipeline_depth_stencil_state_create_info_.front.writeMask =
527 vk_pipeline_depth_stencil_state_create_info_.front.failOp = VK_STENCIL_OP_KEEP;
528 vk_pipeline_depth_stencil_state_create_info_.front.passOp = VK_STENCIL_OP_REPLACE;
529 vk_pipeline_depth_stencil_state_create_info_.front.depthFailOp = VK_STENCIL_OP_KEEP;
530 vk_pipeline_depth_stencil_state_create_info_.back =
531 vk_pipeline_depth_stencil_state_create_info_.front;
535 vk_pipeline_depth_stencil_state_create_info_.front.failOp = VK_STENCIL_OP_KEEP;
536 vk_pipeline_depth_stencil_state_create_info_.front.passOp =
537 VK_STENCIL_OP_DECREMENT_AND_WRAP;
538 vk_pipeline_depth_stencil_state_create_info_.front.depthFailOp = VK_STENCIL_OP_KEEP;
539 vk_pipeline_depth_stencil_state_create_info_.back =
540 vk_pipeline_depth_stencil_state_create_info_.front;
541 vk_pipeline_depth_stencil_state_create_info_.back.passOp =
542 VK_STENCIL_OP_INCREMENT_AND_WRAP;
546 vk_pipeline_depth_stencil_state_create_info_.front.failOp = VK_STENCIL_OP_KEEP;
547 vk_pipeline_depth_stencil_state_create_info_.front.passOp = VK_STENCIL_OP_KEEP;
548 vk_pipeline_depth_stencil_state_create_info_.front.depthFailOp =
549 VK_STENCIL_OP_INCREMENT_AND_WRAP;
550 vk_pipeline_depth_stencil_state_create_info_.back =
551 vk_pipeline_depth_stencil_state_create_info_.front;
552 vk_pipeline_depth_stencil_state_create_info_.back.depthFailOp =
553 VK_STENCIL_OP_DECREMENT_AND_WRAP;
558 vk_pipeline_depth_stencil_state_create_info_.front.failOp = VK_STENCIL_OP_KEEP;
559 vk_pipeline_depth_stencil_state_create_info_.front.passOp = VK_STENCIL_OP_KEEP;
560 vk_pipeline_depth_stencil_state_create_info_.front.depthFailOp = VK_STENCIL_OP_KEEP;
561 vk_pipeline_depth_stencil_state_create_info_.back =
562 vk_pipeline_depth_stencil_state_create_info_.front;
569 vk_pipeline_rendering_create_info_.depthAttachmentFormat =
571 vk_pipeline_rendering_create_info_.stencilAttachmentFormat =
573 vk_pipeline_rendering_create_info_.colorAttachmentCount =
575 vk_pipeline_rendering_create_info_.pColorAttachmentFormats =
580 vk_graphics_pipeline_create_info_.pNext, &vk_pipeline_rendering_create_info_,
nullptr));
581 vk_graphics_pipeline_create_info_.pNext =
nullptr;
588 vk_graphics_pipeline_create_info_.basePipelineHandle = vk_pipeline_base;
594 vk_graphics_pipeline_create_info_.flags = VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT;
597 VkPipeline pipeline = VK_NULL_HANDLE;
598 vkCreateGraphicsPipelines(device.
vk_handle(),
599 is_static_shader ? vk_pipeline_cache_static_ :
600 vk_pipeline_cache_non_static_,
602 &vk_graphics_pipeline_create_info_,
605 graphic_pipelines_.add(graphics_info, pipeline);
608 specialization_info_reset();
609 vk_graphics_pipeline_create_info_.flags = 0;
610 vk_graphics_pipeline_create_info_.stageCount = 0;
611 vk_graphics_pipeline_create_info_.layout = VK_NULL_HANDLE;
612 vk_graphics_pipeline_create_info_.basePipelineHandle = VK_NULL_HANDLE;
613 vk_graphics_pipeline_create_info_.renderPass = VK_NULL_HANDLE;
614 for (VkPipelineShaderStageCreateInfo &info :
617 info.module = VK_NULL_HANDLE;
618 info.pSpecializationInfo =
nullptr;
620 vk_pipeline_input_assembly_state_create_info_.topology = VK_PRIMITIVE_TOPOLOGY_POINT_LIST;
621 vk_pipeline_input_assembly_state_create_info_.primitiveRestartEnable = VK_TRUE;
622 vk_pipeline_vertex_input_state_create_info_.pVertexAttributeDescriptions =
nullptr;
623 vk_pipeline_vertex_input_state_create_info_.vertexAttributeDescriptionCount = 0;
624 vk_pipeline_vertex_input_state_create_info_.pVertexBindingDescriptions =
nullptr;
625 vk_pipeline_vertex_input_state_create_info_.vertexBindingDescriptionCount = 0;
626 vk_pipeline_rasterization_state_create_info_.frontFace = VK_FRONT_FACE_CLOCKWISE;
627 vk_pipeline_rasterization_state_create_info_.cullMode = VK_CULL_MODE_NONE;
628 vk_pipeline_rasterization_state_create_info_.depthBiasEnable = VK_FALSE;
629 vk_pipeline_rasterization_state_create_info_.depthBiasSlopeFactor = 0.0f;
630 vk_pipeline_rasterization_state_create_info_.depthBiasConstantFactor = 0.0f;
631 vk_pipeline_rasterization_state_create_info_.depthBiasClamp = 0.0f;
632 vk_pipeline_rasterization_state_create_info_.frontFace = VK_FRONT_FACE_COUNTER_CLOCKWISE;
633 vk_pipeline_rasterization_provoking_vertex_state_info_.provokingVertexMode =
634 VK_PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT;
635 vk_pipeline_viewport_state_create_info_.pScissors =
nullptr;
636 vk_pipeline_viewport_state_create_info_.scissorCount = 0;
637 vk_pipeline_viewport_state_create_info_.pViewports =
nullptr;
638 vk_pipeline_viewport_state_create_info_.viewportCount = 0;
639 vk_pipeline_color_blend_state_create_info_.attachmentCount = 0;
640 vk_pipeline_color_blend_state_create_info_.logicOpEnable = VK_FALSE;
641 vk_pipeline_color_blend_state_create_info_.pAttachments =
nullptr;
642 vk_pipeline_rendering_create_info_.colorAttachmentCount = 0;
643 vk_pipeline_rendering_create_info_.depthAttachmentFormat = VK_FORMAT_UNDEFINED;
644 vk_pipeline_rendering_create_info_.pColorAttachmentFormats =
nullptr;
645 vk_pipeline_rendering_create_info_.stencilAttachmentFormat = VK_FORMAT_UNDEFINED;
646 vk_pipeline_depth_stencil_state_create_info_.depthTestEnable = VK_FALSE;
647 vk_pipeline_depth_stencil_state_create_info_.depthWriteEnable = VK_FALSE;
648 vk_pipeline_depth_stencil_state_create_info_.depthCompareOp = VK_COMPARE_OP_NEVER;
649 vk_pipeline_depth_stencil_state_create_info_.stencilTestEnable = VK_FALSE;
650 vk_pipeline_depth_stencil_state_create_info_.front = {};
651 vk_pipeline_depth_stencil_state_create_info_.back = {};
652 vk_graphics_pipeline_create_info_.pDepthStencilState =
nullptr;