aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
Commit message (Collapse)AuthorAge
* Add tokens and entry points for KHR_blend_equation_advancedGravatar cdalton2015-04-21
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1039693004
* Import glTextureBarrierGravatar cdalton2015-04-21
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1090163002
* Support HWUI rename of DisplayListRendererGravatar tomhudson2015-04-21
| | | | | | R=djsollen@google.com,ccraik@google.com Review URL: https://codereview.chromium.org/1086083004
* Some simple optimizations for improving GrAtlasTextContext perfGravatar joshualitt2015-04-21
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1093083003
* Add support for rotating / scaling / translating gpu cached distance field ↵Gravatar joshualitt2015-04-21
| | | | | | | | textblobs BUG=skia: Review URL: https://codereview.chromium.org/1092283002
* Split default and user-supplied event tracers.Gravatar mtklein2015-04-21
| | | | | | | | | | | Chrome's got a test scenario where setting the user-supplied tracer is racing with a concurrent use of the default tracer. BUG=chromium:437044 No public API changes. TBR=reed@google.com Review URL: https://codereview.chromium.org/1099123002
* Store pointers to GrGlyph directly in BitmapTextBlob. This patch improves ↵Gravatar joshualitt2015-04-21
| | | | | | | | performance by avoiding hashmap lookups under normal use BUG=skia: Review URL: https://codereview.chromium.org/1087203004
* Revert of Convert Color32 code to perfect blend. (patchset #6 id:100001 of ↵Gravatar mtklein2015-04-21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | https://codereview.chromium.org/1098913002/) Reason for revert: Xfermode_SrcOver not looking encouraging. Up to 50% regressions. https://perf.skia.org/#3242 Original issue's description: > Convert Color32 code to perfect blend. > > Before we commit to blend_256_round_alt, let's make sure blend_perfect is > really slower in practice (i.e. regresses on perf.skia.org). > > blend_perfect is really the most desirable algorithm if we can afford it. Not > only is it correct, but it's easy to think about and break into correct pieces: > for instance, its div255() doesn't require any coordination with the multiply. > > This looks like a 30% hit according to microbenches. That said, microbenches > said my previous change would be a 20-25% perf improvement, but it didn't end > up showing a significant effect at a high level. > > As for correctness, I see a bunch of off-by-1 compared to blend_256_round_alt > (exactly what we'd expect), and one off-by-3 in a GM that looks like it has a > bunch of overdraw. > > BUG=skia: > > Committed: https://skia.googlesource.com/skia/+/61221e7f87a99765b0e034020e06bb018e2a08c2 TBR=reed@google.com,fmalita@chromium.org,mtklein@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia: Review URL: https://codereview.chromium.org/1083923006
* Pack BitmapTextBlob a bit tighterGravatar joshualitt2015-04-21
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1092973004
* reuse scaler across consecutive textbatch flushesGravatar joshualitt2015-04-21
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1091313002
* A small patch to enable distance field text in textblobsGravatar joshualitt2015-04-21
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1098653005
* SkTHash: remove()Gravatar mtklein2015-04-21
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1057043003
* Undo the bounds mapping of bounds for GrOvalRenderer for certain drawsGravatar egdaniel2015-04-21
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1099873002
* fix valgrind uninitialized var errorGravatar caryclark2015-04-21
| | | | | | R=mtklein@google.com Review URL: https://codereview.chromium.org/1097293002
* Make the GPU dashing effect MSAA-friendly.Gravatar senorblanco2015-04-20
| | | | Review URL: https://codereview.chromium.org/1092793006
* Regularize lmp::XXX_element_handler.Gravatar bungeman2015-04-20
| | | | | | | | | | | | | | This makes all non-XMLCALL element_handler functions uniform by making their signature void XXX_element_handler(FamilyData* self, const char** attributes) This makes the code somewhat easier to follow, as it makes explicit which functions are actually logically methods of FamilyData (start with 'FamilyData* self') and which are called directly by expat (start with 'void* data'). Review URL: https://codereview.chromium.org/1086943007
* Minor modifications to GrProgramDesc.h.Gravatar jvanverth2015-04-20
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1100483003
* Return correctly mapped bounds from GrOvalRenderer.Gravatar egdaniel2015-04-20
| | | | | | | | | | | | | | Before we were returning non transformed bounds for the ovals instead of device bounds from the various draw calls. This was causing us to do dst copies from the wrong portion of the screen when there was some transform on the matrix. This fixes the gpu issues from the new imagefilters-xfermodes gm as well an old bug from the srcmode GM. BUG=skia: Review URL: https://codereview.chromium.org/1090453003
* Regularize informative messages in Android font parser.Gravatar bungeman2015-04-20
| | | | | | | | The Android font parser prints a number of helpful messages when something seems amiss in the configuration file. Give all of these messages a common and more informative format. Review URL: https://codereview.chromium.org/1096063003
* Convert Color32 code to perfect blend.Gravatar mtklein2015-04-20
| | | | | | | | | | | | | | | | | | | | | Before we commit to blend_256_round_alt, let's make sure blend_perfect is really slower in practice (i.e. regresses on perf.skia.org). blend_perfect is really the most desirable algorithm if we can afford it. Not only is it correct, but it's easy to think about and break into correct pieces: for instance, its div255() doesn't require any coordination with the multiply. This looks like a 30% hit according to microbenches. That said, microbenches said my previous change would be a 20-25% perf improvement, but it didn't end up showing a significant effect at a high level. As for correctness, I see a bunch of off-by-1 compared to blend_256_round_alt (exactly what we'd expect), and one off-by-3 in a GM that looks like it has a bunch of overdraw. BUG=skia: Review URL: https://codereview.chromium.org/1098913002
* Now, path ops natively intersect conics, quads, and cubics in any ↵Gravatar caryclark2015-04-20
| | | | | | | | | | | combination. There are still a class of cubic tests that fail and a handful of undiagnosed failures from skps and fuzz tests, but things are much better overall. Extended tests (150M+) run to completion in release in about 6 minutes; the standard test suite exceeds 100K and finishes in a few seconds on desktops. TBR=reed BUG=skia:3588 Review URL: https://codereview.chromium.org/1037953004
* apply xfermode after imagefilter when we create a tmp layerGravatar reed2015-04-20
| | | | | | BUG=skia:3741 Review URL: https://codereview.chromium.org/1091173003
* Fix point count computation in tessellating path renderer.Gravatar senorblanco2015-04-20
| | | | | | | | | | | | | The conic, quadratic and cubic computations were using tolerance^2 instead of tolerance when computing maximum point count, causing paths to be undertessellated when magnifying and overtessellated when minifying. (Funny story: this bug went unnoticed back when we were tessellating paths in screen space, when tolerance and its square were both 1.) BUG=skia:3731 Review URL: https://codereview.chromium.org/1095773003
* remove dead code from SK_SUPPORT_LEGACY_BLITANTIH2V2Gravatar reed2015-04-20
| | | | | | | | | no image changes expected in skia or chrome/blink BUG=skia: TBR= Review URL: https://codereview.chromium.org/1050953003
* Respect declared font style on Android.Gravatar bungeman2015-04-17
| | | | | | | | | | | | | | | | | | | | Previously the normal/italic style bit was obtained from scanning the font file. With the new format the style may be stated explicitly, and this explicit value in the configuration file should override any information obtained from the font data itself. This change allows the font element's style attribute to override the font's style, but retains the default 'auto' setting for backwards compatibility. Repecting the style bit may become more important with variation fonts, because it will be up to the configuration writer to determine what values of the 'slnt' variation should be considered 'normal' or 'italic'. DOCS_PREVIEW= https://skia.org/?cl=1092093002 Committed: https://skia.googlesource.com/skia/+/673e902c9b9982a167f54f1cc175d8d9cab8bcaf Review URL: https://codereview.chromium.org/1092093002
* Revert of Respect declared font style on Android. (patchset #6 id:100001 of ↵Gravatar jcgregorio2015-04-17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | https://codereview.chromium.org/1092093002/) Reason for revert: Failed on the compile bots. Original issue's description: > Respect declared font style on Android. > > Previously the normal/italic style bit was obtained from scanning the > font file. With the new format the style may be stated explicitly, and > this explicit value in the configuration file should override any > information obtained from the font data itself. > > This change allows the font element's style attribute to override the > font's style, but retains the default 'auto' setting for backwards > compatibility. Repecting the style bit may become more important with > variation fonts, because it will be up to the configuration writer to > determine what values of the 'slnt' variation should be considered > 'normal' or 'italic'. > > DOCS_PREVIEW= https://skia.org/?cl=1092093002 > > Committed: https://skia.googlesource.com/skia/+/673e902c9b9982a167f54f1cc175d8d9cab8bcaf TBR=mtklein@google.com,tomhudson@google.com,scroggo@google.com,bungeman@google.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Review URL: https://codereview.chromium.org/1082173004
* PDF: Correctly embed JPEG images directly into PDF output.Gravatar halcanary2015-04-17
| | | | | | | | | We only embed images with YUV planes. That should only grab the subset of color JPEGs supported by PDF. BUG=skia:3180 Review URL: https://codereview.chromium.org/1025773002
* Respect declared font style on Android.Gravatar bungeman2015-04-17
| | | | | | | | | | | | | | | | | | Previously the normal/italic style bit was obtained from scanning the font file. With the new format the style may be stated explicitly, and this explicit value in the configuration file should override any information obtained from the font data itself. This change allows the font element's style attribute to override the font's style, but retains the default 'auto' setting for backwards compatibility. Repecting the style bit may become more important with variation fonts, because it will be up to the configuration writer to determine what values of the 'slnt' variation should be considered 'normal' or 'italic'. DOCS_PREVIEW= https://skia.org/?cl=1092093002 Review URL: https://codereview.chromium.org/1092093002
* Trace contention for lockPixels mutexGravatar enne2015-04-17
| | | | Review URL: https://codereview.chromium.org/1090103002
* Rework SSE and NEON Color32 algorithms to be more correct and faster.Gravatar mtklein2015-04-17
| | | | | | | | | | | | | | | | | | | | This algorithm changes the blend math, guarded by SK_LEGACY_COLOR32_MATH. The new math is more correct: it's never off by more than 1, and correct in all the interesting 0x00 and 0xFF edge cases, where the old math was never off by more than 2, and not always correct on the edges. If you look at tests/BlendTest.cpp, the old code was using the `blend_256_plus1_trunc` algorithm, while the new code uses `blend_256_round_alt`. Neither uses `blend_perfect`, which is about ~35% slower than `blend_256_round_alt`. This will require an unfathomable number of rebaselines, first to Skia, then to Blink when I remove the guard. I plan to follow up with some integer SIMD abstractions that can unify these two implementations into a single algorithm. This was originally what I was working on here, but the correctness gains seem to be quite compelling. The only places these two algorithms really differ greatly now is the kernel function, and even there they can really both be expressed abstractly as: - multiply 8-bits and 8-bits producing 16-bits - add 16-bits to 16-bits, returning the top 8 bits. All the constants are the same, except SSE is a little faster to keep 8 16-bit inverse alphas, NEON's a little faster to keep 8 8-bit inverse alphas. I may need to take this small speed win back to unify the two. We should expect a ~25% speedup on Intel (mostly from unrolling to 8 pixels) and a ~20% speedup on ARM (mostly from using vaddhn to add `color`, round, and narrow back down to 8-bit all into one instruction. (I am probably missing several more related bugs here.) BUG=skia:3738,skia:420,chromium:111470 Review URL: https://codereview.chromium.org/1092433002
* Remove filename from SkFontDescriptor.Gravatar bungeman2015-04-17
| | | | | | | | | | No one actually uses it, so remove it. Keep the string id for backward compatibility. TBR=reed@google.com This doesn't change any public API. Review URL: https://codereview.chromium.org/1057413005
* Small change to allow DistanceField and BMP text to coexist in a blobGravatar joshualitt2015-04-17
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1096753002
* Initial CL to add distance field support to GrAtlasTextContextGravatar joshualitt2015-04-17
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1082843002
* Revert of Revert of remove unused (by clients) SkPathUtils (patchset #1 id:1 ↵Gravatar reed2015-04-16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | of https://codereview.chromium.org/1060703003/) Reason for revert: fix (removal from gypi/gn files) has landed in chrome. Original issue's description: > Revert of remove unused (by clients) SkPathUtils (patchset #1 id:1 of https://codereview.chromium.org/1088383003/) > > Reason for revert: > This change is causing the DEPS roll to fail: > > > http://build.chromium.org/p/tryserver.chromium.linux/builders/android_chromium_gn_compile_rel/builds/78771/steps/gn/logs/stdio > > Original issue's description: > > remove unused (by clients) SkPathUtils > > > > BUG=skia: > > > > Committed: https://skia.googlesource.com/skia/+/aab35d91b8b80acd1902594bbf542083fdfa4bb7 > > TBR=scroggo@google.com,reed@chromium.org > NOPRESUBMIT=true > NOTREECHECKS=true > NOTRY=true > BUG=skia: > > Committed: https://skia.googlesource.com/skia/+/bdb0bf5f8858043878d8a4fa8130c6c87bef3fd4 TBR=scroggo@google.com,jcgregorio@google.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia: Review URL: https://codereview.chromium.org/1091963002
* Add PS 'all' weight name to scanFont.Gravatar bungeman2015-04-16
| | | | | | | | Multiple Master fonts often list their weight as 'all'. However, they usually default to normal weight. State explicitly that we know about this weight string. Review URL: https://codereview.chromium.org/1092793002
* Improve tessellating path rasterizer performance on dashed paths.Gravatar senorblanco2015-04-16
| | | | | | | | | | | | | With dashed paths, we get a lot of geometry on the same sort line. Since the vertices are sorted, it makes more sense to insert edges from the end (in sort order) than the beginning. This requires maintaining both the head and tail of the active edge list. This gives a ~20% perf improvement on tabl_digg.skp. BUG=skia:3733 Review URL: https://codereview.chromium.org/1089903002
* add textblob cache freeallGravatar joshualitt2015-04-16
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1088683004
* Rename GrStencilBuffer to GrStencilAttachmentGravatar egdaniel2015-04-16
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1083133002
* SkScaledBitmapSampler: fix memory overwrittenGravatar zoran.jovanovic2015-04-16
| | | | | | | | | | | | | | | | | | | Memory will be overwritten while downsampling some interlaced gif images, most commonly with odd sizes, when index of destination row stores in the current line computed from GifInterlaceIter meets: X is an integer in [0..height-1] and (X < height) && ((X - sampleSize/2) % sampleSize == 0) && ((X - sampleSize/2)/sampleSize >= height/sampleSize) Signed-off-by: Lu Tong <lu.x.tong@sonymobile.com> BUG=skia: Review URL: https://codereview.chromium.org/1085253002
* Add ReverseIter to GrTRecorderGravatar cdalton2015-04-16
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1035083004
* Revert of remove unused (by clients) SkPathUtils (patchset #1 id:1 of ↵Gravatar jcgregorio2015-04-16
| | | | | | | | | | | | | | | | | | | | | | | | https://codereview.chromium.org/1088383003/) Reason for revert: This change is causing the DEPS roll to fail: http://build.chromium.org/p/tryserver.chromium.linux/builders/android_chromium_gn_compile_rel/builds/78771/steps/gn/logs/stdio Original issue's description: > remove unused (by clients) SkPathUtils > > BUG=skia: > > Committed: https://skia.googlesource.com/skia/+/aab35d91b8b80acd1902594bbf542083fdfa4bb7 TBR=scroggo@google.com,reed@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia: Review URL: https://codereview.chromium.org/1060703003
* Don't serialize anything for SkEmptyShader.Gravatar mtklein2015-04-16
| | | | | | BUG=skia:3735 Review URL: https://codereview.chromium.org/1097433002
* remove unused (by clients) SkPathUtilsGravatar reed2015-04-16
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1088383003
* Zero jpeg_decompress_struct before calling jpeg_calc_output_dimensions().Gravatar mtklein2015-04-16
| | | | | | | | | | https://uberchromegw.corp.google.com/i/client.skia/builders/Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-Valgrind/builds/38/steps/dm/logs/stdio (Must have been https://codereview.chromium.org/1076923002 ?) BUG=skia: Review URL: https://codereview.chromium.org/1094603002
* remove older version of cubic->coeffGravatar reed2015-04-15
| | | | | | | BUG=skia: TBR= Review URL: https://codereview.chromium.org/1084623004
* Speeup hairline curves (quads and cubics) (patchset #7 id:120001 of ↵Gravatar reed2015-04-15
| | | | | | | | | | | | | https://codereview.chromium.org/1078413003/)" ah ha! Check for the define *after* we pull in SkUserConfig.h (indirectly) This reverts commit 639a82855b94b93c4fa45560e67df8ec4a8bbb3a. BUG=skia: TBR= Review URL: https://codereview.chromium.org/1084283003
* Revert of make blitAntiH2 virtual, to prep for larger change (patchset #1 ↵Gravatar reed2015-04-15
| | | | | | | | | | | | | | | | | | | | | | | | | id:1 of https://codereview.chromium.org/1048323005/) Reason for revert: end of test Original issue's description: > make blitAntiH2 virtual, to prep for larger change > > testing... > > BUG=skia: > TBR= > > Committed: https://skia.googlesource.com/skia/+/33afdaa5213cf118b3ca290bb343253c8593756d TBR= NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia: Review URL: https://codereview.chromium.org/1086293002
* make blitAntiH2 virtual, to prep for larger changeGravatar reed2015-04-15
| | | | | | | | | testing... BUG=skia: TBR= Review URL: https://codereview.chromium.org/1048323005
* Revert of Speeup hairline curves (quads and cubics) (patchset #7 id:120001 ↵Gravatar reed2015-04-15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | of https://codereview.chromium.org/1078413003/) Reason for revert: Crazy failings in chrome tests http://build.chromium.org/p/client.skia/builders/Linux%20Tests/builds/1862 Original issue's description: > Speeup hairline curves (quads and cubics) > > /skia/trunk> cat ../old.txt > maxrss loops min median mean max stddev samples config bench > 9M 1 4.28ms 4.32ms 4.36ms 4.67ms 3% ▄▁▁▃▂▂▁▁▂█ 8888 path_hairline_small_AA_cubic > 9M 1 743µs 767µs 770µs 825µs 4% ▃▃▇▃▁▁▅▁█▁ 8888 path_hairline_small_AA_conic > 9M 1 533µs 606µs 598µs 680µs 9% ▁▂▂█▆▇▇▄▂▂ 8888 path_hairline_small_AA_quad > 9M 1 451µs 452µs 456µs 495µs 3% ▁▁▁▁█▁▁▁▁▁ 8888 path_hairline_small_AA_line > > /skia/trunk> cat ../new.txt > maxrss loops min median mean max stddev samples config bench > 9M 1 827µs 827µs 831µs 869µs 2% ▁▁▁▁▁▁▁█▁▁ 8888 path_hairline_small_AA_cubic > 9M 1 515µs 517µs 517µs 518µs 0% ▇█▆▅▃▃▁▁▁▅ 8888 path_hairline_small_AA_conic > 9M 1 310µs 311µs 315µs 332µs 2% ▂▁█▆▁▁▁▁▁▁ 8888 path_hairline_small_AA_quad > 9M 1 254µs 254µs 258µs 276µs 3% ▁▁▁▁▁▁▁█▇▂ 8888 path_hairline_small_AA_line > > Edited revert of https://codereview.chromium.org/1085013003 > > TBR= > > Expectations: > - no effect on chrome, as it is guarded > - lots of tiny rebaselines for skia TBR= NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Review URL: https://codereview.chromium.org/1092483003
* Don't draw if SkShader::asNewFragmentProcessor fails.Gravatar bsalomon2015-04-15
| | | | | | BUG=chromium:473156 Review URL: https://codereview.chromium.org/1089063002