#include "src/gpu/ganesh/GrRenderTaskCluster.h"
#include "include/core/SkRefCnt.h"
#include "include/core/SkString.h"
#include "include/core/SkTypes.h"
#include "src/base/SkTInternalLList.h"
#include "src/core/SkTHash.h"
#include "src/gpu/ganesh/GrRenderTask.h"
#include "src/gpu/ganesh/GrSurfaceProxy.h"
usingnamespaceskia_private;
#define CLUSTER_DEBUGF …
static GrSurfaceProxy* first_target(GrRenderTask* task) { … }
#ifdef SK_DEBUG
[[maybe_unused]] static SkString describe_task(GrRenderTask* t) { … }
[[maybe_unused]] static SkString describe_tasks(SkSpan<const sk_sp<GrRenderTask>> collection) { … }
[[maybe_unused]] static SkString describe_tasks(const SkTInternalLList<GrRenderTask>& collection) { … }
static void validate(SkSpan<const sk_sp<GrRenderTask>> input,
const SkTInternalLList<GrRenderTask>& llist) { … }
#endif
static bool depends_on(GrRenderTask* depender, GrRenderTask* dependee) { … }
static bool task_cluster_visit(GrRenderTask* task, SkTInternalLList<GrRenderTask>* llist,
THashMap<GrSurfaceProxy*, GrRenderTask*>* lastTaskMap) { … }
bool GrClusterRenderTasks(SkSpan<const sk_sp<GrRenderTask>> input,
SkTInternalLList<GrRenderTask>* llist) { … }
#undef CLUSTER_DEBUGF