5#ifndef FLUTTER_IMPELLER_RENDERER_COMPUTE_PIPELINE_DESCRIPTOR_H_
6#define FLUTTER_IMPELLER_RENDERER_COMPUTE_PIPELINE_DESCRIPTOR_H_
23 :
public Comparable<ComputePipelineDescriptor> {
34 std::shared_ptr<const ShaderFunction> function);
50 std::size_t
GetHash()
const override;
55 template <
size_t Size>
57 const std::array<DescriptorSetLayout, Size>& inputs) {
68 std::shared_ptr<const ShaderFunction> entrypoint_;
69 std::array<uint32_t, 3> workgroup_size_ = {0u, 0u, 0u};
70 std::vector<DescriptorSetLayout> descriptor_set_layouts_;
const std::vector< DescriptorSetLayout > & GetDescriptorSetLayouts() const
ComputePipelineDescriptor & SetLabel(std::string_view label)
std::shared_ptr< const ShaderFunction > GetStageEntrypoint() const
bool IsEqual(const ComputePipelineDescriptor &other) const override
std::size_t GetHash() const override
~ComputePipelineDescriptor()
std::array< uint32_t, 3 > GetWorkgroupSize() const
ComputePipelineDescriptor & SetStageEntrypoint(std::shared_ptr< const ShaderFunction > function)
ComputePipelineDescriptor & SetWorkgroupSize(std::array< uint32_t, 3 > size)
Set the workgroup (threadgroup) size declared by the shader.
ComputePipelineDescriptor()
const std::string & GetLabel() const
bool RegisterDescriptorSetLayouts(const std::array< DescriptorSetLayout, Size > &inputs)