Revert "Reimplement TwoPointConicalGradient_gpu"
This reverts commit 84f18c422a
.
Reason for revert: GMs are incorrect on some mobile devices
Original change's description:
> Reimplement TwoPointConicalGradient_gpu
>
> 4.24% faster in gradient_conical_clamp_shallow_dither
> 6.43% faster in gradient_conicalOutZero_clamp_hicolor
> 10.41% faster in gradient_conicalOut_clamp_hicolor
> 14.85% faster in gradient_conicalOutZero_clamp_3color
> 16.72% faster in gradient_conicalOut_clamp
> 24.30% faster in gradient_conicalOut_clamp_3color
>
> CQ_INCLUDE_TRYBOTS=skia.primary:Test-Android-Clang-Nexus7-GPU-Tegra3-arm-Release-All-Android,Test-Android-Clang-Nexus7-GPU-Tegra3-arm-Debug-All-Android
>
> Bug: skia:
> Change-Id: I6bc1f24c9463fc9c2acbcba7bd4d55b37ade1613
> Reviewed-on: https://skia-review.googlesource.com/82161
> Reviewed-by: Greg Daniel <egdaniel@google.com>
> Commit-Queue: Yuqian Li <liyuqian@google.com>
TBR=egdaniel@google.com,fmalita@google.com,liyuqian@google.com
Change-Id: Ieb20cce12a958abb8293218b89baf3d5a2aad0a8
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: skia:
Cq-Include-Trybots: skia.primary:Test-Android-Clang-Nexus7-GPU-Tegra3-arm-Release-All-Android, Test-Android-Clang-Nexus7-GPU-Tegra3-arm-Debug-All-Android
Reviewed-on: https://skia-review.googlesource.com/84801
Reviewed-by: Yuqian Li <liyuqian@google.com>
Commit-Queue: Yuqian Li <liyuqian@google.com>
This commit is contained in:
parent
b5213b88e8
commit
2c4e56c366
@ -49,17 +49,6 @@ static sk_sp<SkShader> Make2ConicalOutside(const SkPoint pts[2], const GradData&
|
|||||||
data.fPos, data.fCount, tm, 0, &localMatrix);
|
data.fPos, data.fCount, tm, 0, &localMatrix);
|
||||||
}
|
}
|
||||||
|
|
||||||
static sk_sp<SkShader> Make2ConicalOutsideStrip(const SkPoint pts[2], const GradData& data,
|
|
||||||
SkShader::TileMode tm, const SkMatrix& localMatrix) {
|
|
||||||
SkPoint center0, center1;
|
|
||||||
SkScalar radius0 = (pts[1].fX - pts[0].fX) / 10;
|
|
||||||
SkScalar radius1 = (pts[1].fX - pts[0].fX) / 3;
|
|
||||||
center0.set(pts[0].fX + radius0, pts[0].fY + radius0);
|
|
||||||
center1.set(pts[1].fX - radius1, pts[1].fY - radius1);
|
|
||||||
return SkGradientShader::MakeTwoPointConical(center0, radius1, center1, radius1, data.fColors,
|
|
||||||
data.fPos, data.fCount, tm, 0, &localMatrix);
|
|
||||||
}
|
|
||||||
|
|
||||||
static sk_sp<SkShader> Make2ConicalOutsideFlip(const SkPoint pts[2], const GradData& data,
|
static sk_sp<SkShader> Make2ConicalOutsideFlip(const SkPoint pts[2], const GradData& data,
|
||||||
SkShader::TileMode tm, const SkMatrix& localMatrix) {
|
SkShader::TileMode tm, const SkMatrix& localMatrix) {
|
||||||
SkPoint center0, center1;
|
SkPoint center0, center1;
|
||||||
@ -264,8 +253,7 @@ typedef sk_sp<SkShader> (*GradMaker)(const SkPoint pts[2], const GradData& data,
|
|||||||
|
|
||||||
constexpr GradMaker gGradMakersOutside[] = {
|
constexpr GradMaker gGradMakersOutside[] = {
|
||||||
Make2ConicalOutside, Make2ConicalOutsideFlip,
|
Make2ConicalOutside, Make2ConicalOutsideFlip,
|
||||||
Make2ConicalZeroRadOutside, Make2ConicalZeroRadFlipOutside,
|
Make2ConicalZeroRadOutside, Make2ConicalZeroRadFlipOutside
|
||||||
Make2ConicalOutsideStrip
|
|
||||||
};
|
};
|
||||||
|
|
||||||
constexpr GradMaker gGradMakersInside[] = {
|
constexpr GradMaker gGradMakersInside[] = {
|
||||||
|
@ -54,7 +54,7 @@ SkTArray<GrXPFactoryTestFactory*, true>* GrXPFactoryTestFactory::GetFactories()
|
|||||||
* we verify the count is as expected. If a new factory is added, then these numbers must be
|
* we verify the count is as expected. If a new factory is added, then these numbers must be
|
||||||
* manually adjusted.
|
* manually adjusted.
|
||||||
*/
|
*/
|
||||||
static const int kFPFactoryCount = 38;
|
static const int kFPFactoryCount = 42;
|
||||||
static const int kGPFactoryCount = 14;
|
static const int kGPFactoryCount = 14;
|
||||||
static const int kXPFactoryCount = 4;
|
static const int kXPFactoryCount = 4;
|
||||||
|
|
||||||
|
@ -69,6 +69,8 @@ public:
|
|||||||
kBlockInputFragmentProcessor_ClassID,
|
kBlockInputFragmentProcessor_ClassID,
|
||||||
kCCPRClipProcessor_ClassID,
|
kCCPRClipProcessor_ClassID,
|
||||||
kCircleGeometryProcessor_ClassID,
|
kCircleGeometryProcessor_ClassID,
|
||||||
|
kCircleInside2PtConicalEffect_ClassID,
|
||||||
|
kCircleOutside2PtConicalEffect_ClassID,
|
||||||
kCircularRRectEffect_ClassID,
|
kCircularRRectEffect_ClassID,
|
||||||
kColorMatrixEffect_ClassID,
|
kColorMatrixEffect_ClassID,
|
||||||
kColorTableEffect_ClassID,
|
kColorTableEffect_ClassID,
|
||||||
@ -81,9 +83,11 @@ public:
|
|||||||
kDefaultGeoProc_ClassID,
|
kDefaultGeoProc_ClassID,
|
||||||
kDIEllipseGeometryProcessor_ClassID,
|
kDIEllipseGeometryProcessor_ClassID,
|
||||||
kDisableColorXP_ClassID,
|
kDisableColorXP_ClassID,
|
||||||
kTwoPointConicalEffect_ClassID,
|
kEdge2PtConicalEffect_ClassID,
|
||||||
kEllipseGeometryProcessor_ClassID,
|
kEllipseGeometryProcessor_ClassID,
|
||||||
kEllipticalRRectEffect_ClassID,
|
kEllipticalRRectEffect_ClassID,
|
||||||
|
kFocalInside2PtConicalEffect_ClassID,
|
||||||
|
kFocalOutside2PtConicalEffect_ClassID,
|
||||||
kGP_ClassID,
|
kGP_ClassID,
|
||||||
kGrAARectEffect_ClassID,
|
kGrAARectEffect_ClassID,
|
||||||
kGrAlphaThresholdFragmentProcessor_ClassID,
|
kGrAlphaThresholdFragmentProcessor_ClassID,
|
||||||
|
@ -255,7 +255,7 @@ protected:
|
|||||||
GrGradientEffect(ClassID classID, const CreateArgs&, bool isOpaque);
|
GrGradientEffect(ClassID classID, const CreateArgs&, bool isOpaque);
|
||||||
explicit GrGradientEffect(const GrGradientEffect&); // facilitates clone() implementations
|
explicit GrGradientEffect(const GrGradientEffect&); // facilitates clone() implementations
|
||||||
|
|
||||||
void onGetGLSLProcessorKey(const GrShaderCaps&, GrProcessorKeyBuilder*) const override;
|
void onGetGLSLProcessorKey(const GrShaderCaps&, GrProcessorKeyBuilder*) const final;
|
||||||
|
|
||||||
// Helper function used by derived class factories to handle color space transformation and
|
// Helper function used by derived class factories to handle color space transformation and
|
||||||
// modulation by input alpha.
|
// modulation by input alpha.
|
||||||
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user