2013-04-08 11:50:46 +00:00
|
|
|
/*
|
|
|
|
* Copyright 2012 Google Inc.
|
|
|
|
*
|
|
|
|
* Use of this source code is governed by a BSD-style license that can be
|
|
|
|
* found in the LICENSE file.
|
|
|
|
*/
|
|
|
|
#ifndef PathOpsExtendedTest_DEFINED
|
|
|
|
#define PathOpsExtendedTest_DEFINED
|
|
|
|
|
|
|
|
#include "SkBitmap.h"
|
|
|
|
#include "SkPath.h"
|
2013-04-10 15:55:37 +00:00
|
|
|
#include "SkPathOpsTypes.h"
|
2013-04-08 11:50:46 +00:00
|
|
|
#include "SkStream.h"
|
|
|
|
#include "SkThread.h"
|
2013-04-10 15:55:37 +00:00
|
|
|
#include "SkThreadUtils.h"
|
|
|
|
#include "Test.h"
|
2013-04-08 11:50:46 +00:00
|
|
|
|
2013-04-10 15:55:37 +00:00
|
|
|
struct PathOpsThreadState;
|
2013-04-08 11:50:46 +00:00
|
|
|
|
|
|
|
struct TestDesc {
|
2014-04-14 17:08:59 +00:00
|
|
|
void (*fun)(skiatest::Reporter*, const char* filename);
|
2013-04-08 11:50:46 +00:00
|
|
|
const char* str;
|
|
|
|
};
|
|
|
|
|
|
|
|
//extern int comparePaths(const SkPath& one, const SkPath& two);
|
|
|
|
extern int comparePaths(const SkPath& one, const SkPath& two, SkBitmap& bitmap);
|
|
|
|
extern bool drawAsciiPaths(const SkPath& one, const SkPath& two, bool drawPaths);
|
|
|
|
extern void showOp(const SkPathOp op);
|
|
|
|
extern bool testPathOp(skiatest::Reporter* reporter, const SkPath& a, const SkPath& b,
|
2014-04-14 17:08:59 +00:00
|
|
|
const SkPathOp , const char* testName);
|
|
|
|
extern bool testPathFailOp(skiatest::Reporter* reporter, const SkPath& a, const SkPath& b,
|
|
|
|
const SkPathOp , const char* testName);
|
2013-07-16 16:11:16 +00:00
|
|
|
extern bool testThreadedPathOp(skiatest::Reporter* reporter, const SkPath& a, const SkPath& b,
|
2014-04-14 17:08:59 +00:00
|
|
|
const SkPathOp , const char* testName);
|
2013-04-10 15:55:37 +00:00
|
|
|
extern bool testSimplify(SkPath& path, bool useXor, SkPath& out, PathOpsThreadState& state,
|
|
|
|
const char* pathStr);
|
2014-04-14 17:08:59 +00:00
|
|
|
extern bool testSimplify(skiatest::Reporter* reporter, const SkPath& path, const char* filename);
|
2013-04-08 11:50:46 +00:00
|
|
|
|
Revert of SkThreadPool ~~> SkTaskGroup (patchset #4 id:60001 of https://codereview.chromium.org/531653002/)
Reason for revert:
Leaks, leaks, leaks.
Original issue's description:
> SkThreadPool ~~> SkTaskGroup
>
> SkTaskGroup is like SkThreadPool except the threads stay in
> one global pool. Each SkTaskGroup itself is tiny (4 bytes)
> and its wait() method applies only to tasks add()ed to that
> instance, not the whole thread pool.
>
> This means we don't need to bring up new thread pools when
> tests themselves want to use multithreading (e.g. pathops,
> quilt). We just create a new SkTaskGroup and wait for that
> to complete. This should be more efficient, and allow us
> to expand where we use threads to really latency sensitive
> places. E.g. we can probably now use these in nanobench
> for CPU .skp rendering.
>
> Now that all threads are sharing the same pool, I think we
> can remove most of the custom mechanism pathops tests use
> to control threading. They'll just ride on the global pool
> with all other tests now.
>
> This (temporarily?) removes the GPU multithreading feature
> from DM, which we don't use.
>
> On my desktop, DM runs a little faster (57s -> 55s) in
> Debug, and a lot faster in Release (36s -> 24s). The bots
> show speedups of similar proportions, cutting more than a
> minute off the N4/Release and Win7/Debug runtimes.
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/9c7207b5dc71dc5a96a2eb107d401133333d5b6f
R=caryclark@google.com, bsalomon@google.com, bungeman@google.com, reed@google.com, mtklein@chromium.org
TBR=bsalomon@google.com, bungeman@google.com, caryclark@google.com, mtklein@chromium.org, reed@google.com
NOTREECHECKS=true
NOTRY=true
BUG=skia:
Author: mtklein@google.com
Review URL: https://codereview.chromium.org/533393002
2014-09-03 21:17:48 +00:00
|
|
|
int initializeTests(skiatest::Reporter* reporter, const char* testName);
|
2013-04-10 15:55:37 +00:00
|
|
|
void outputProgress(char* ramStr, const char* pathStr, SkPath::FillType );
|
|
|
|
void outputProgress(char* ramStr, const char* pathStr, SkPathOp op);
|
2013-04-08 11:50:46 +00:00
|
|
|
|
|
|
|
void RunTestSet(skiatest::Reporter* reporter, TestDesc tests[], size_t count,
|
2014-04-14 17:08:59 +00:00
|
|
|
void (*firstTest)(skiatest::Reporter* , const char* filename),
|
|
|
|
void (*stopTest)(skiatest::Reporter* , const char* filename), bool reverse);
|
|
|
|
void ShowTestArray();
|
2013-04-18 15:58:21 +00:00
|
|
|
void ShowTestName(PathOpsThreadState* data, int a, int b, int c, int d);
|
2013-07-08 17:17:02 +00:00
|
|
|
void ShowFunctionHeader(const char* name);
|
|
|
|
void ShowPath(const SkPath& path, const char* pathName);
|
|
|
|
void ShowOp(SkPathOp op, const char* pathOne, const char* pathTwo);
|
2013-04-08 11:50:46 +00:00
|
|
|
|
|
|
|
#endif
|