5 #ifndef FLUTTER_IMPELLER_RENDERER_COMPUTE_PASS_H_
6 #define FLUTTER_IMPELLER_RENDERER_COMPUTE_PASS_H_
12 #include "fml/status.h"
31 void SetLabel(
const std::string& label);
49 virtual fml::Status
Compute(std::array<uint32_t, 3> workgroup_count) = 0;
Compute passes encode compute shader into the underlying command buffer.
const std::shared_ptr< const Context > context_
virtual void OnSetLabel(const std::string &label)=0
virtual void AddBufferMemoryBarrier()=0
Ensures all previously encoded compute command's buffer writes are visible to any subsequent compute ...
virtual void SetCommandLabel(std::string_view label)=0
ComputePass(std::shared_ptr< const Context > context)
virtual fml::Status Compute(std::array< uint32_t, 3 > workgroup_count)=0
Dispatch a grid of compute workgroups.
void SetLabel(const std::string &label)
virtual void SetPipeline(const std::shared_ptr< Pipeline< ComputePipelineDescriptor >> &pipeline)=0
const Context & GetContext() const
virtual bool EncodeCommands() const =0
Encode the recorded commands to the underlying command buffer.
virtual bool IsValid() const =0
virtual void AddTextureMemoryBarrier()=0
Ensures all previously encoded compute command's texture writes are visible to any subsequent compute...
To do anything rendering related with Impeller, you need a context.
std::shared_ptr< ContextGLES > context
std::shared_ptr< PipelineGLES > pipeline
An interface for binding resources. This is implemented by |Command| and |ComputeCommand| to make GPU...