8#ifndef skgpu_graphite_compute_DispatchGroup_DEFINED
9#define skgpu_graphite_compute_DispatchGroup_DEFINED
40 std::variant<std::monostate, BufferView, TextureIndex, SamplerIndex>;
179 std::unique_ptr<DispatchGroup>
finalize();
181#if defined(GRAPHITE_TEST_UTILS)
193 bool appendStepInternal(
const ComputeStep*,
const std::variant<WorkgroupSize, BufferView>&);
202 std::unique_ptr<DispatchGroup> fObj;
205 OutputTable fOutputTable;
static int step(int x, SkScalar min, SkScalar max)
bool appendStepIndirect(const ComputeStep *, BufferView indirectBuffer)
void assignSharedBuffer(BufferView buffer, unsigned int slot, ClearBuffer cleared=ClearBuffer::kNo)
sk_sp< TextureProxy > getSharedTextureResource(unsigned int slot) const
std::unique_ptr< DispatchGroup > finalize()
bool appendStep(const ComputeStep *, std::optional< WorkgroupSize > globalSize=std::nullopt)
const OutputTable & outputTable() const
void assignSharedTexture(sk_sp< TextureProxy > texture, unsigned int slot)
BindBufferInfo getSharedBufferResource(unsigned int slot) const
void addResourceRefs(CommandBuffer *) const
const ComputePipeline * getPipeline(size_t index) const
const Texture * getTexture(size_t index) const
friend class DispatchGroupBuilder
sk_sp< Task > snapChildTask()
const skia_private::TArray< Dispatch > & dispatches() const
bool prepareResources(ResourceProvider *)
const Sampler * getSampler(size_t index) const
static const uint8_t buffer[]
std::variant< BufferView, TextureIndex, SamplerIndex > DispatchResource
constexpr int kMaxComputeDataFlowSlots
std::variant< std::monostate, BufferView, TextureIndex, SamplerIndex > DispatchResourceOptional
DispatchResourceOptional fSharedSlots[kMaxComputeDataFlowSlots]
skia_private::TArray< ComputeStep::WorkgroupBufferDesc > fWorkgroupBuffers
std::optional< WorkgroupSize > fGlobalDispatchSize
std::variant< WorkgroupSize, BufferView > fGlobalSizeOrIndirect
skia_private::TArray< ResourceBinding > fBindings
DispatchResource fResource