         let encoder = try self.makeComputeCommandEncoder()
         guard let _buffer = device.makeBuffer(buffer) else { throw MetalRenderer.Error(description: "MTLDevice.makeBuffer failed.") }
         
-        let pipeline = try renderer.request_pipeline("stencil_triangle")
+        let pipeline = try renderer.request_pipeline(pipeline)
         encoder.setComputePipelineState(pipeline)
         
         encoder.setValues(UInt32(offset_x), UInt32(offset_y), UInt32(width), index: 0)

                    let q2 = p2 * transform
                    
                    triangle_render_buffer.append((GPPoint(q0), GPPoint(q1), GPPoint(q2)))
                    triangle_bound = triangle_bound?.union(Rect.bound([q0, q1, q2])) ?? Rect.bound([q0, q1, q2])
                    
                    if triangle_render_buffer.count >= stencil_buffer_limit {
                        try render_triangle(width: width, height: height, bound: triangle_bound ?? Rect(), buffer: triangle_render_buffer, output: output)
                        triangle_render_buffer = []
                    }
                    

                    let q2 = p2 * transform
                    
                    quadratic_render_buffer.append((GPPoint(q0), GPPoint(q1), GPPoint(q2)))
                    
                    let __bound = Rect.bound([q0, q1, q2])
                    quadratic_bound = quadratic_bound?.union(__bound) ?? __bound
                    _bound = _bound?.union(__bound) ?? __bound
                    
                    if quadratic_render_buffer.count >= stencil_buffer_limit {
                        try render_stencil(width: width, height: height, pipeline: "stencil_quadratic", bound: quadratic_bound, buffer: quadratic_render_buffer, output: output)
                        quadratic_bound = nil
                        quadratic_render_buffer = []
                    }
                    
