Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(413)

Issue 1153993002: Revert of Implement Porter Duff XP with a blend table (Closed)

Created:
5 years, 7 months ago by bungeman-skia
Modified:
5 years, 7 months ago
CC:
reviews_skia.org, Kimmo Kinnunen, vbuzinov, Mark Kilgard, borenet
Base URL:
https://skia.googlesource.com/skia.git@master
Target Ref:
refs/heads/master
Project:
skia
Visibility:
Public.

Description

Revert of Implement Porter Duff XP with a blend table (patchset #12 id:220001 of https://codereview.chromium.org/1124373002/) Reason for revert: Blocking DEPS roll into Chromium. Crashing virtual/gpu/fast/canvas/canvas-composite-*.html tests with the assert ../../third_party/skia/src/gpu/gl/builders/GrGLFragmentShaderBuilder.cpp:281: failed assertion "k110_GrGLSLGeneration != gpu->glslGeneration() || fOutputs.empty()" Original issue's description: > Implement Porter Duff XP with a blend table > > Removes the runtime logic used by PorterDuffXferProcessor to decide > blend coeffs and shader outputs, and instead uses a compile-time > constant table of pre-selected blend formulas. > > Introduces a new blend strategy for srcCoeff=0 that can apply coverage > with a reverse subtract blend equation instead of dual source > blending. > > Adds new macros in GrBlend.h to analyze blend formulas both runtime. > > Removes kSetCoverageDrawing_OptFlag and GrSimplifyBlend as they are no > longer used. > > Adds a GM that verifies all xfermodes, including arithmetic, with the > color/coverage invariants used by Porter Duff. > > Adds a unit test that verifies each Porter Duff formula with every > color/coverage invariant. > > Major changes: > > * Uses a reverse subtract blend equation for coverage when srcCoeff=0 > (clear, dst-out [Sa=1], dst-in, modulate). Platforms that don't > support dual source blending no longer require a dst copy for > dst-in and modulate. > > * Sets BlendInfo::fWriteColor to false when the blend does not modify > the dst. GrGLGpu will now use glColorMask instead of blending for > these modes (dst, dst-in [Sa=1], modulate ignored for [Sc=1]). > > * Converts all SA blend coeffs to One for opaque inputs, and ISA to > Zero if there is also no coverage. (We keep ISA around when there > is coverage because we use it to tweak alpha for coverage.) > > * Abandons solid white optimizations for the sake of simplicity > (screen was the only mode that previous had solid white opts). > > Minor differences: > > * Inconsequential differences in opt flags (e.g. we now return > kCanTweakAlphaForCoverage_OptFlag even when there is no coverage). > > * Src coeffs when the shader outputs 0. > > * IS2C vs IS2A when the secondary output is scalar. > > BUG=skia: > > Committed: https://skia.googlesource.com/skia/+/9a70920db22b6309c671f8e5d519bb95570e4414 TBR=egdaniel@google.com,bsalomon@google.com,cdalton@nvidia.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia: Committed: https://skia.googlesource.com/skia/+/c33db93d1b285923b5deef97ecb04d4d01e05dd5

Patch Set 1 #

Unified diffs Side-by-side diffs Delta from patch set Stats (+645 lines, -2054 lines) Patch
D gm/aaxfermodes.cpp View 1 chunk +0 lines, -191 lines 0 comments Download
M gyp/gpu.gypi View 1 chunk +1 line, -0 lines 0 comments Download
M include/gpu/GrColor.h View 1 chunk +0 lines, -4 lines 0 comments Download
M include/gpu/GrXferProcessor.h View 2 chunks +8 lines, -0 lines 0 comments Download
M include/gpu/effects/GrPorterDuffXferProcessor.h View 2 chunks +4 lines, -5 lines 0 comments Download
M src/gpu/GrBlend.h View 3 chunks +8 lines, -105 lines 0 comments Download
A src/gpu/GrBlend.cpp View 1 chunk +154 lines, -0 lines 0 comments Download
M src/gpu/effects/GrPorterDuffXferProcessor.cpp View 13 chunks +470 lines, -469 lines 0 comments Download
D tests/GrPorterDuffTest.cpp View 1 chunk +0 lines, -1280 lines 0 comments Download

Messages

Total messages: 10 (3 generated)
bungeman-skia
Created Revert of Implement Porter Duff XP with a blend table
5 years, 7 months ago (2015-05-23 00:43:33 UTC) #1
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1153993002/1
5 years, 7 months ago (2015-05-23 00:43:41 UTC) #2
commit-bot: I haz the power
Failed to apply patch for src/gpu/effects/GrPorterDuffXferProcessor.cpp: While running git apply --index -3 -p1; <stdin>:410: trailing ...
5 years, 7 months ago (2015-05-23 00:43:53 UTC) #4
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1153993002/1
5 years, 7 months ago (2015-05-23 00:55:21 UTC) #6
commit-bot: I haz the power
Committed patchset #1 (id:1) as https://skia.googlesource.com/skia/+/c33db93d1b285923b5deef97ecb04d4d01e05dd5
5 years, 7 months ago (2015-05-23 00:55:30 UTC) #7
bungeman-skia
On 2015/05/23 00:55:30, I haz the power - commit-bot wrote: > Committed patchset #1 (id:1) ...
5 years, 7 months ago (2015-05-23 00:58:03 UTC) #8
reed2
5 years, 7 months ago (2015-05-23 16:46:04 UTC) #10
Message was sent while issue was closed.
Ben, the roller seems funny. I tried to stop and restart it, but only succeeded
in stopping it ... oops.

Powered by Google App Engine
This is Rietveld 408576698