66 desc.SetLabel(
SPrintF(
"%s Pipeline", FragmentShader::kLabel.data()));
75 if (!vertex_function || !fragment_function) {
77 << VertexShader::kEntrypointName <<
"' and '"
78 << FragmentShader::kEntrypointName
79 <<
"' for pipeline named '" << VertexShader::kLabel
84 desc.AddStageEntrypoint(std::move(vertex_function));
85 desc.AddStageEntrypoint(std::move(fragment_function));
90 auto vertex_descriptor = std::make_shared<VertexDescriptor>();
91 vertex_descriptor->SetStageInputs(VertexShader::kAllShaderStageInputs,
92 VertexShader::kInterleavedBufferLayout);
93 vertex_descriptor->RegisterDescriptorSetLayouts(
94 VertexShader::kDescriptorSetLayouts);
95 vertex_descriptor->RegisterDescriptorSetLayouts(
96 FragmentShader::kDescriptorSetLayouts);
97 desc.SetVertexDescriptor(std::move(vertex_descriptor));
107 desc.SetColorAttachmentDescriptor(0u, color0);
114 desc.SetDepthStencilAttachmentDescriptor(depth0);
115 desc.SetDepthPixelFormat(
123 desc.SetStencilAttachmentDescriptors(stencil0);
124 desc.SetStencilPixelFormat(