lsalzman
40254c2c2d
SkBlendARGB32 and S32[A]_Blend_BlitRow32 are currently formulated as: SkAlphaMulQ(src, src_scale) + SkAlphaMulQ(dst, dst_scale), which boils down to ((src*src_scale)>>8) + ((dst*dst_scale)>>8). In particular, note that the intermediate precision is discarded before the two parts are added together, causing the final result to possibly inaccurate.
...
In Firefox, we use SkCanvas::saveLayer in combination with a backdrop that initializes the layer to the background. When this is blended back onto background using transparency, where the source and destination pixel colors are the same, the resulting color after the blend is not preserved due to the lost precision mentioned above. In cases where this operation is repeatedly performed, this causes substantially noticeable differences in color as evidenced in this downstream Firefox bug report: https://bugzilla.mozilla.org/show_bug.cgi?id=1200684
In the test-case in the downstream report, essentially it does blend(src=0xFF2E3338, dst=0xFF2E3338, scale=217), which gives the result 0xFF2E3237, while we would expect to get back 0xFF2E3338.
This problem goes away if the blend is instead reformulated to effectively do (src*src_scale + dst*dst_scale)>>8, which keeps the intermediate precision during the addition before shifting it off.
This modifies the blending operations thusly. The performance should remain mostly unchanged, or possibly improve slightly, so there should be no real downside to doing this, with the benefit of making the results more accurate. Without this, it is currently unsafe for Firefox to blend a layer back onto itself that was initialized with a copy of its background.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2097883002
CQ_INCLUDE_TRYBOTS=master.client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot
[mtklein adds...]
No public API changes.
TBR=reed@google.com
Review-Url: https://codereview.chromium.org/2097883002
2016-08-05 11:48:45 -07:00
reed
f77c47b782
use SkMakeBitmapShader to not force copies when possible
...
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2216403002
Review-Url: https://codereview.chromium.org/2216403002
2016-08-05 10:15:00 -07:00
robertphillips
29f9fe45ef
Rename GrDrawingManager::drawContext to makeDrawContext
...
This was violating our naming convention
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2216643002
Review-Url: https://codereview.chromium.org/2216643002
2016-08-05 09:28:20 -07:00
mtklein
8e522e4fa1
Roll GN
...
No major new features... just good to keep up.
60f7f9a..9c6ad6f
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2218063002
Review-Url: https://codereview.chromium.org/2218063002
2016-08-05 08:40:03 -07:00
vjiaoblack
955e879c6d
Making a sample for shadow maps for more intensive development
...
Merge branch 'shadow-gm' into shadow-sample
Added variable size shadow maps. Also fixed some bugs
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2198933002
Review-Url: https://codereview.chromium.org/2198933002
2016-08-05 07:55:01 -07:00
robertphillips
9aff85a545
Minor clean up related to blur mask filters
...
This is the non-substantive portion of: https://codereview.chromium.org/2201133002/ (Implement GPU occluded blur mask filter)
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2214163003
Review-Url: https://codereview.chromium.org/2214163003
2016-08-05 07:51:30 -07:00
bungeman
feb3c1a57f
Move to SkDataTable::MakeXXX and sk_sp.
...
Change SkDataTable::NewXXX to SkDataTable::MakeXXX and return sk_sp.
This updates users of SkDataTable to sk_sp as well.
There do not appear to be any external users of these methods.
Review-Url: https://codereview.chromium.org/2211143002
2016-08-05 06:51:50 -07:00
egdaniel
4c35a3f905
Fix vulkan resolve
...
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2215353003
Review-Url: https://codereview.chromium.org/2215353003
2016-08-05 06:35:39 -07:00
borenet
2c3112d517
[recipes] Increase test coverage
...
Remove a bunch of "pragma: no cover" by removing unused code or adding test bots to cover.
BUG=skia:5578
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2215443003
Review-Url: https://codereview.chromium.org/2215443003
2016-08-05 06:30:10 -07:00
borenet
e2251acbaa
[recipes] Separate builder_spec into compile/test/perf recipes
...
BUG=skia:5578
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2205473002
Review-Url: https://codereview.chromium.org/2205473002
2016-08-05 05:40:59 -07:00
borenet
d460a3c256
[recipes] Remove build environment vars from default_env
...
BUG=skia:5578
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2209423002
Review-Url: https://codereview.chromium.org/2209423002
2016-08-05 05:18:06 -07:00
reed
ac09554dce
check zero-length text draws
...
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2215113002
TBR=
Review-Url: https://codereview.chromium.org/2215113002
2016-08-04 15:54:41 -07:00
csmartdalton
3b88a03e98
Remove color-dodge/burn from NVIDIA blacklist on 355.00+
...
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2212593002
Review-Url: https://codereview.chromium.org/2212593002
2016-08-04 14:43:50 -07:00
egdaniel
52ad25151a
Implement Vulkan Resolve.
...
First step to getting msaa running on vulkan
BUG=skia:5127
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2210383002
Review-Url: https://codereview.chromium.org/2210383002
2016-08-04 12:50:01 -07:00
robertphillips
401c1968a1
Add new GM for occluded blurmask filter draws
...
This splits out just the GM portion of https://codereview.chromium.org/2201993003/ (Add GM to test out blurmaskfilter occluders) which included some API changes
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2214033002
Review-Url: https://codereview.chromium.org/2214033002
2016-08-04 12:35:46 -07:00
jvanverth
1ba1d372c2
Get Mac viewer working with SDL
...
Also fixes SkiaSDLExample.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2210603003
Review-Url: https://codereview.chromium.org/2210603003
2016-08-04 12:30:31 -07:00
dvonbeck
1b9e2fb494
This CL's base is the CL that sets up the distance vector field req. exposure: https://codereview.chromium.org/2114993002/
...
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2151653002
Review-Url: https://codereview.chromium.org/2151653002
2016-08-04 12:27:26 -07:00
msarett
b8d1aac87a
Create a separate src for colorspace tests
...
This will allow me to run these tests in sRGB mode, while
leaving most of the image tests disabled.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2206953006
Review-Url: https://codereview.chromium.org/2206953006
2016-08-04 12:22:06 -07:00
borenet
3f5a47599b
[recipes] Fixes for Coverage bot
...
BUG=skia:5578
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2217523002
Review-Url: https://codereview.chromium.org/2217523002
2016-08-04 12:16:03 -07:00
borenet
c7233ef925
[recipes] Stop pretending that buildbot_spec is a step, simplify
...
Since we no longer have to call out to obtain the buildbot_spec, merge
the two functions in vars API. As a side effect, this applies
default_env to the sync steps as well, which shouldn't have an
appreciable effect on bot behavior.
BUG=skia:5578
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2209343002
Review-Url: https://codereview.chromium.org/2209343002
2016-08-04 11:33:02 -07:00
borenet
538d5b68e8
Move builder_spec, [dm|nanobench]_flags, builder_name_schema to recipes
...
- builder_name_schema becomes its own recipe module.
- builder_spec, dm, and nanobench flags move into vars module.
- recipe expectation diffs include:
- no more buildbot_spec.py step
- "real" dm and nanobench flags, instead of --dummy-flags
- some inconsequential stuff in visualbench, which is removed anyway.
BUG=skia:5578
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2215803002
Review-Url: https://codereview.chromium.org/2215803002
2016-08-04 11:07:10 -07:00
halcanary
4e44efe504
SkRTConf: eliminate
...
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2212473002
DOCS_PREVIEW= https://skia.org/?cl=2212473002
CQ_INCLUDE_TRYBOTS=master.client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot
[mtklein]
TBR=reed@google.com
Only removing unused public API.
Review-Url: https://codereview.chromium.org/2212473002
2016-08-04 10:47:16 -07:00
msarett
6fc699aab7
Update skimage VERSION: attempt 3
...
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2211973002
Review-Url: https://codereview.chromium.org/2211973002
2016-08-04 10:39:22 -07:00
mtklein
ee269f44d9
GN: make SkPMColor BGRA on Linux. All other platforms are auto-detected.
...
This technically shouldn't cause us to draw differently, but sometimes
does on buggy GMs, and also has us go down slightly different code paths.
It's good to be consistent with GYP, Chromium, Google3, etc.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2214023002
Review-Url: https://codereview.chromium.org/2214023002
2016-08-04 09:52:11 -07:00
mtklein
691b78423e
Slim the CQ down to the GN bots, where they exist.
...
If no one objects to my "GN bot plan" email, this unblocks us from removing
a bunch of non-GN bots.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2207073002
CQ_INCLUDE_TRYBOTS=master.client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Debug-GN-Trybot,Test-Ubuntu-GCC-ShuttleA-GPU-GTX660-x86_64-Release-GN-Trybot
Review-Url: https://codereview.chromium.org/2207073002
2016-08-04 09:47:38 -07:00
robertphillips
276d3286b3
Add new bench for occluded blurmaskfilter draws
...
w/ occluders
44/44 MB 6 497us 500us 500us 502us 0% .oOOooooOO gpu bluroccludedrrect
w/o occluders
41/41 MB 5 1.08ms 1.09ms 1.12ms 1.47ms 11% .........O gpu bluroccludedrrect
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2203153002
Review-Url: https://codereview.chromium.org/2203153002
2016-08-04 09:03:20 -07:00
robertphillips
15c42ca310
Remove SkSurface::MakeRenderTargetDirect
...
split into:
https://codereview.chromium.org/2182543003/ (Move prepareForExternalIO from GrRenderTarget to GrDrawContext)
https://codereview.chromium.org/2187573002/ (Reduce usage of MakeRenderTargetDirect)
https://codereview.chromium.org/2186073002/ (Rename GrContext's newDrawContext & drawContext to makeDrawContext)
https://codereview.chromium.org/2178353005/ (Remove use of MakeRenderTargetDirect from view system)
https://codereview.chromium.org/2198433003/ (Remove some ancillary users of SkSurface::MakeRenderTargetDirect)
https://codereview.chromium.org/2208483004/ (Remove GrRenderTarget member variable from SkGpuDevice)
https://codereview.chromium.org/2211473002/ (Move GrContext::makeDrawContext to new GrContextPriv object)
TBR=bsalomon@google.com
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2176333002
Review-Url: https://codereview.chromium.org/2176333002
2016-08-04 08:45:02 -07:00
fmalita
b83cdbcbb0
Show SVG file name in SampleApp title
...
R=robertphillips@google.com ,stephana@google.com
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2217483002
Review-Url: https://codereview.chromium.org/2217483002
2016-08-04 08:39:41 -07:00
msarett
2825bad08c
Revert of Update skimage VERSION: attempt 2 (patchset #1 id:1 of https://codereview.chromium.org/2213973002/ )
...
Reason for revert:
Think this is going to break Windows again.
Original issue's description:
> Update skimage VERSION: attempt 2
>
> BUG=skia:
> GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2213973002
>
> Committed: https://skia.googlesource.com/skia/+/d6dec3f4a1365d34e147234acf3c4a3629146457
TBR=borenet@google.com
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:
Review-Url: https://codereview.chromium.org/2216523003
2016-08-04 07:46:44 -07:00
msarett
d6dec3f4a1
Update skimage VERSION: attempt 2
...
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2213973002
Review-Url: https://codereview.chromium.org/2213973002
2016-08-04 07:29:09 -07:00
fmalita
a48f0e302c
Speculative fix for internal builds
...
Guard the DMSrcSink SkSVGDOM.h include.
TBR=dogben@google.com
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2210583003
Review-Url: https://codereview.chromium.org/2210583003
2016-08-04 06:26:05 -07:00
robertphillips
714712bfc9
Remove GrRenderTarget member variable from SkGpuDevice
...
Split out of: https://codereview.chromium.org/2176333002/ (Remove SkSurface::MakeRenderTargetDirect)
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2208483004
Review-Url: https://codereview.chromium.org/2208483004
2016-08-04 06:20:45 -07:00
mtklein
7a1f45f9e5
spin off easy stuff from Herb's windows GN CL
...
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2209533004
No public API changes.
TBR=reed@google.com
Review-Url: https://codereview.chromium.org/2209533004
2016-08-04 06:19:33 -07:00
borenet
aa6a80526f
Revert of Update to new skimage VERSION (patchset #1 id:1 of https://codereview.chromium.org/2211633002/ )
...
Reason for revert:
The CIPD package is broken
Original issue's description:
> Update to new skimage VERSION
> TBR=borenet@google.com
> BUG=skia:
> GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2211633002
>
> Committed: https://skia.googlesource.com/skia/+/52d1be5ca7b1ba8cc450be7dd6377ea5bb73386a
TBR=msarett@google.com
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:
Review-Url: https://codereview.chromium.org/2216613002
2016-08-04 04:47:23 -07:00
fmalita
a2b9fdfe0b
Add an SVG DM source
...
R=mtklein@google.com ,robertphillips@google.com,stephana@google.com
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2209593004
Review-Url: https://codereview.chromium.org/2209593004
2016-08-03 19:53:36 -07:00
mtklein
b979634012
Revert of SkRTConf: reduce functionality to what we use, increase simplicity (patchset #8 id:150001 of https://codereview.chromium.org/2212473002/ )
...
Reason for revert:
missed GrVkPipelineStateCache
Original issue's description:
> SkRTConf: reduce functionality to what we use, increase simplicity
>
> GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2212473002
> DOCS_PREVIEW= https://skia.org/?cl=2212473002
> CQ_INCLUDE_TRYBOTS=master.client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot
>
> [mtklein]
> TBR=reed@google.com
> Only removing unused public API.
>
> Committed: https://skia.googlesource.com/skia/+/ef59974708dade6fa72fb0218d4f8a9590175c47
TBR=halcanary@google.com
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
Review-Url: https://codereview.chromium.org/2215433003
2016-08-03 19:19:48 -07:00
msarett
52d1be5ca7
Update to new skimage VERSION
...
TBR=borenet@google.com
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2211633002
Review-Url: https://codereview.chromium.org/2211633002
2016-08-03 15:48:32 -07:00
msarett
a5c357f2d4
Fix compiler complaints about uninit vars
...
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2206143003
Review-Url: https://codereview.chromium.org/2206143003
2016-08-03 15:46:33 -07:00
halcanary
ef59974708
SkRTConf: reduce functionality to what we use, increase simplicity
...
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2212473002
DOCS_PREVIEW= https://skia.org/?cl=2212473002
CQ_INCLUDE_TRYBOTS=master.client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot
[mtklein]
TBR=reed@google.com
Only removing unused public API.
Review-Url: https://codereview.chromium.org/2212473002
2016-08-03 15:30:37 -07:00
halcanary
19a9720978
GN: build sfntly, icu, harfbuzz
...
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2200833010
Review-Url: https://codereview.chromium.org/2200833010
2016-08-03 15:08:04 -07:00
robertphillips
4fd74aec9f
Move GrContext::makeDrawContext to new GrContextPriv object
...
We don't want external clients to be able to call the wrapping makeDrawContext. The "creating" makeDrawContext needs to be public for external image filters.
The 3 specialized drawContext creators on GrContextPriv (to wrap backend objects) are also to be kept from public use and will be used to remove SkSurface::MakeRenderTargetDirect.
Split out of: https://codereview.chromium.org/2176333002/ (Remove SkSurface::MakeRenderTargetDirect)
TBR=bsalomon@google.com
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2211473002
Review-Url: https://codereview.chromium.org/2211473002
2016-08-03 14:26:53 -07:00
mtklein
4db3b7969f
Require gn format in presubmit
...
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2203283003
Review-Url: https://codereview.chromium.org/2203283003
2016-08-03 14:18:23 -07:00
halcanary
18e0cbc52a
SkPDF: fewer GYP_DEFINES
...
also: hack a unit test
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2208743003
Review-Url: https://codereview.chromium.org/2208743003
2016-08-03 14:17:53 -07:00
bungeman
ffae30db4a
Convert SkAutoTUnref<SkData> to sk_sp<SkData>.
...
With the move from SkData::NewXXX to SkData::MakeXXX most
SkAutoTUnref<SkData> were changed to sk_sp<SkData>. However,
there are still a few SkAutoTUnref<SkData> around, so clean
them up.
Review-Url: https://codereview.chromium.org/2212493002
2016-08-03 13:32:32 -07:00
msarett
d1ec89b1ac
Perform color correction on png decodes
...
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2184543003
CQ_INCLUDE_TRYBOTS=master.client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot
Review-Url: https://codereview.chromium.org/2184543003
2016-08-03 12:59:27 -07:00
ethannicholas
f789b38935
added initial GLSL support to skslc
...
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2185393003
Review-Url: https://codereview.chromium.org/2185393003
2016-08-03 12:43:36 -07:00
fmenozzi
e57b8c9a79
Add new benchmark for testing special hard stop gradient cases
...
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2206713002
Review-Url: https://codereview.chromium.org/2206713002
2016-08-03 12:12:19 -07:00
halcanary
dabd4f0b79
SkPDF: PDFShader code modernized.
...
Motivation: reduce code complexity.
SkCanon stores SkPDFShader::State next to SkDFObject, not inside.
many places use sk_sp<T> rather than T* to represent ownership.
SkPDFShader::State no longer holds bitmap.
SkPDFShader::State gets move constructor, no longer heap-allocated.
Classes removed:
SkPDFFunctionShader
SkPDFAlphaFunctionShader
SkPDFImageShader
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2193973002
Review-Url: https://codereview.chromium.org/2193973002
2016-08-03 11:16:57 -07:00
mtklein
62e1a1a4ba
Make SK_BUILD_FOR_WIN32 auto-detection work.
...
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2205173003
No public API changes
TBR=reed@google.com
Review-Url: https://codereview.chromium.org/2205173003
2016-08-03 11:09:59 -07:00
msarett
96206a96f3
Finish delete of SkNinePatch
...
TBR=djsollen@google.com
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2206333002
Review-Url: https://codereview.chromium.org/2206333002
2016-08-03 11:04:01 -07:00