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

Issue 138013009: Culling API (Closed)

Created:
6 years, 10 months ago by f(malita)
Modified:
6 years, 9 months ago
CC:
skia-review_googlegroups.com
Visibility:
Public.

Description

Culling API *** SKP format breaking change *** Adding a couple of culling primitives: pushCull(SkRect) & popCull(). These are currently only plumbed for SKP playback quickreject. At record time, we perform a couple of optimizations to trim down the number of redundant culls: * collapse empty pushCull/popCull pairs * skip pushCull/popCull pairs nested within an identical cull rect Things still missing/to consider: * use an inlineable, simplified quickreject (Mike's old prototype) * debugger visualization for cull boxes * BBH integration: the initial prototype had some minimal BBH support, but since the optimizations required expensive rewinds and culling is expected to be a BBH alternative, it got dropped. R=reed@google.com,robertphillips@google.com,bsalomon@google.com Committed: http://code.google.com/p/skia/source/detail?r=13611

Patch Set 1 #

Patch Set 2 : Comments, formatting. #

Total comments: 11

Patch Set 3 : Updated per comments. #

Patch Set 4 : Rebased, fCullOffsetStack decl -> unconditional #

Total comments: 18

Patch Set 5 : Updated per comments. #

Patch Set 6 : Release build fix. #

Total comments: 3

Patch Set 7 : Assert nested culls. #

Total comments: 3

Patch Set 8 : Updated per comments. #

Unified diffs Side-by-side diffs Delta from patch set Stats (+202 lines, -9 lines) Patch
M debugger/QT/SkDebuggerGUI.cpp View 2 chunks +4 lines, -2 lines 0 comments Download
M include/core/SkCanvas.h View 1 2 3 4 5 6 7 3 chunks +23 lines, -0 lines 0 comments Download
M include/core/SkPicture.h View 1 2 3 1 chunk +2 lines, -1 line 0 comments Download
M include/utils/SkDumpCanvas.h View 1 2 3 4 2 chunks +5 lines, -1 line 0 comments Download
M src/core/SkCanvas.cpp View 1 2 3 4 5 6 7 2 chunks +9 lines, -0 lines 0 comments Download
M src/core/SkPictureFlat.h View 1 2 3 4 1 chunk +3 lines, -1 line 0 comments Download
M src/core/SkPicturePlayback.cpp View 1 2 3 4 4 chunks +26 lines, -4 lines 0 comments Download
M src/core/SkPictureRecord.h View 1 2 3 2 chunks +4 lines, -0 lines 0 comments Download
M src/core/SkPictureRecord.cpp View 1 2 3 4 5 6 3 chunks +66 lines, -0 lines 0 comments Download
M src/utils/SkDumpCanvas.cpp View 1 2 3 1 chunk +9 lines, -0 lines 0 comments Download
M src/utils/debugger/SkDebugCanvas.h View 1 2 3 1 chunk +2 lines, -0 lines 0 comments Download
M src/utils/debugger/SkDebugCanvas.cpp View 1 2 3 4 5 6 7 1 chunk +8 lines, -0 lines 0 comments Download
M src/utils/debugger/SkDrawCommand.h View 1 2 3 1 chunk +20 lines, -0 lines 0 comments Download
M src/utils/debugger/SkDrawCommand.cpp View 1 2 3 4 2 chunks +21 lines, -0 lines 0 comments Download

Messages

Total messages: 22 (0 generated)
f(malita)
6 years, 10 months ago (2014-02-12 05:15:37 UTC) #1
reed1
public api lgtm -- not reviewed impl per-se https://codereview.chromium.org/138013009/diff/70001/include/core/SkCanvas.h File include/core/SkCanvas.h (right): https://codereview.chromium.org/138013009/diff/70001/include/core/SkCanvas.h#newcode914 include/core/SkCanvas.h:914: } ...
6 years, 10 months ago (2014-02-14 14:39:05 UTC) #2
caryclark
https://codereview.chromium.org/138013009/diff/70001/include/core/SkCanvas.h File include/core/SkCanvas.h (right): https://codereview.chromium.org/138013009/diff/70001/include/core/SkCanvas.h#newcode910 include/core/SkCanvas.h:910: if (fCullCount > 0) { since you have the ...
6 years, 10 months ago (2014-02-14 14:54:34 UTC) #3
f(malita)
https://codereview.chromium.org/138013009/diff/70001/include/core/SkCanvas.h File include/core/SkCanvas.h (right): https://codereview.chromium.org/138013009/diff/70001/include/core/SkCanvas.h#newcode910 include/core/SkCanvas.h:910: if (fCullCount > 0) { On 2014/02/14 14:54:35, caryclark ...
6 years, 10 months ago (2014-02-20 02:37:26 UTC) #4
f(malita)
Bump.
6 years, 10 months ago (2014-02-24 20:34:52 UTC) #5
reed1
robert/cary/brian -- speak now or forever ... have to change the impl yourself :)
6 years, 10 months ago (2014-02-24 21:21:56 UTC) #6
caryclark
lgtm
6 years, 10 months ago (2014-02-24 21:31:09 UTC) #7
bsalomon
On 2014/02/24 21:31:09, caryclark wrote: > lgtm lgtm
6 years, 10 months ago (2014-02-24 21:53:25 UTC) #8
tomhudson
I'm probably missing something deep - why is SkPictureRecord::fCullOffsetStack only defined #ifndef SK_COLLAPSE_MATRIX_CLIP_STATE? The actual ...
6 years, 10 months ago (2014-02-25 13:27:15 UTC) #9
f(malita)
On 2014/02/25 13:27:15, tomhudson wrote: > I'm probably missing something deep - why is SkPictureRecord::fCullOffsetStack ...
6 years, 10 months ago (2014-02-25 13:52:36 UTC) #10
robertphillips
https://codereview.chromium.org/138013009/diff/380001/include/core/SkCanvas.h File include/core/SkCanvas.h (right): https://codereview.chromium.org/138013009/diff/380001/include/core/SkCanvas.h#newcode944 include/core/SkCanvas.h:944: void pushCull(const SkRect& cullRect) { ++fCullCount? https://codereview.chromium.org/138013009/diff/380001/include/core/SkCanvas.h#newcode952 include/core/SkCanvas.h:952: void ...
6 years, 10 months ago (2014-02-25 15:58:40 UTC) #11
f(malita)
https://codereview.chromium.org/138013009/diff/380001/include/utils/SkDumpCanvas.h File include/utils/SkDumpCanvas.h (right): https://codereview.chromium.org/138013009/diff/380001/include/utils/SkDumpCanvas.h#newcode36 include/utils/SkDumpCanvas.h:36: kClip_Verb, On 2014/02/25 15:58:41, robertphillips wrote: > Will this ...
6 years, 10 months ago (2014-02-25 16:50:28 UTC) #12
iancottrell
https://codereview.chromium.org/138013009/diff/420001/include/core/SkCanvas.h File include/core/SkCanvas.h (right): https://codereview.chromium.org/138013009/diff/420001/include/core/SkCanvas.h#newcode943 include/core/SkCanvas.h:943: */ Forgive me if I am misunderstanding something, I ...
6 years, 10 months ago (2014-02-26 10:36:06 UTC) #13
tomhudson
From the patch description: * use an inlineable, simplified quickreject (Mike's old prototype) What about ...
6 years, 10 months ago (2014-02-26 10:36:32 UTC) #14
robertphillips
https://codereview.chromium.org/138013009/diff/420001/include/core/SkCanvas.h File include/core/SkCanvas.h (right): https://codereview.chromium.org/138013009/diff/420001/include/core/SkCanvas.h#newcode943 include/core/SkCanvas.h:943: */ This is more of a contract on the ...
6 years, 10 months ago (2014-02-26 13:52:01 UTC) #15
f(malita)
On 2014/02/26 10:36:32, tomhudson wrote: > What about Justin's old prototype (possibly > https://codereview.chromium.org/12545009/?) of ...
6 years, 10 months ago (2014-02-26 14:23:54 UTC) #16
bsalomon
On 2014/02/26 14:23:54, Florin Malita wrote: > > If instead we are adding a clipping ...
6 years, 10 months ago (2014-02-26 14:27:31 UTC) #17
f(malita)
On 2014/02/25 16:50:28, Florin Malita wrote: > https://codereview.chromium.org/138013009/diff/380001/src/core/SkPictureRecord.cpp#newcode1555 > src/core/SkPictureRecord.cpp:1555: void SkPictureRecord::onPushCull(const > SkRect& cullRect) ...
6 years, 10 months ago (2014-02-26 15:03:50 UTC) #18
robertphillips
lgtm + a comment suggestion & nits https://codereview.chromium.org/138013009/diff/440001/include/core/SkCanvas.h File include/core/SkCanvas.h (right): https://codereview.chromium.org/138013009/diff/440001/include/core/SkCanvas.h#newcode938 include/core/SkCanvas.h:938: /** Maybe ...
6 years, 9 months ago (2014-02-27 14:12:36 UTC) #19
f(malita)
The CQ bit was checked by fmalita@chromium.org
6 years, 9 months ago (2014-02-27 16:45:15 UTC) #20
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://skia-tree-status.appspot.com/cq/fmalita@chromium.org/138013009/460001
6 years, 9 months ago (2014-02-27 16:45:17 UTC) #21
commit-bot: I haz the power
6 years, 9 months ago (2014-02-27 17:40:18 UTC) #22
Message was sent while issue was closed.
Change committed as 13611

Powered by Google App Engine
This is Rietveld 408576698